आउट-ग्रिड व्यू cmdlet डेटा को एक इंटरेक्टिव ग्राफिकल टेबल के रूप में प्रदर्शित करने की अनुमति देता है जिसे विभिन्न मानदंडों के आधार पर फ़िल्टर या सॉर्ट किया जा सकता है। आप स्क्रिप्ट में आउट-ग्रिडव्यू cmdlet का उपयोग कर सकते हैं जहाँ आप किसी उपयोगकर्ता को ऑब्जेक्ट का चयन करने के लिए सरलतम GUI प्रदान करना चाहते हैं।
वास्तव में, आउट-ग्रिड व्यू .NET को चलाने के लिए एक आवरण है DataGridView , एक Windows प्रपत्र नियंत्रण . से एक मानक आलेखीय रूप .
आउट-ग्रिड व्यू टेबल का उपयोग करना
आइए विंडोज सेवाओं और उनके कुछ गुणों की सूची प्रदर्शित करने के लिए आउट-ग्रिड व्यू cmdlet का उपयोग करने का सबसे सरल उदाहरण देखें:
Get-Service | Select DisplayName,Status,ServiceName,Can* | Out-GridView
जैसा कि आप देख सकते हैं, विंडोज सेवा गुणों की सूची के साथ एक ग्राफिक टेबल फॉर्म दिखाई दिया। cmdlet ऑब्जेक्ट गुणों या डेटा प्रकार के आधार पर कॉलम नाम स्वचालित रूप से सेट करता है, और यदि डेटा प्रारूप को परिभाषित नहीं किया जा सकता है तो PSObject गुणों का विस्तार करता है।
आप फ़िल्टर बॉक्स का उपयोग करके प्रपत्र खोज सकते हैं।
आप एक्सेल टेबल में डेटा को सीधे पावरशेल से एक्सेस कर सकते हैं।
आप मानदंड जोड़ें . का भी उपयोग कर सकते हैं तालिका खोजने के लिए बटन। नीचे दिए गए स्क्रीनशॉट में, मैंने VMW . वाली चल रही सेवाओं की सूची के साथ सबसे सरल फ़िल्टर बनाया है उनके नाम में। फ़िल्टर सीधे वस्तु गुणों के मूल्यों के आधार पर बनाया जाता है।
या उच्चतम CPU उपयोग के साथ शीर्ष 10 प्रक्रियाओं की एक सूची प्रदर्शित करते हैं (मैंने –Title का उपयोग करके अपनी आउट-ग्रिड व्यू विंडो का नाम बदल दिया है। विकल्प):
Get-Process | Sort-Object CPU -Descending | Select -First 10 | Out-GridView -Title "Top 10 CPU processes"
आप स्तंभ शीर्षलेख पर क्लिक करके तालिका सामग्री को आरोही/अवरोही क्रम में त्वरित रूप से क्रमबद्ध कर सकते हैं।
आउट-ग्रिड व्यू cmdlet PassThru स्विच के साथ
हालांकि, सबसे शक्तिशाली आउट-ग्रिडव्यू विशेषता –PassThru . है विकल्प, जो आपकी पावरशेल स्क्रिप्ट के लिए उपयोगकर्ता के अनुकूल जीयूआई का एक नया स्तर प्रदान करता है।
विकल्प PowerShell 3.0 या उच्चतर में उपलब्ध है, उपयोगकर्ता को तालिका में एक या अधिक ऑब्जेक्ट का चयन करने की अनुमति देता है, और मानक पाइप का उपयोग करके उन्हें आपकी PowerShell स्क्रिप्ट में अगले cmdlets में भेजता है।
उदाहरण के लिए, निम्न PowerShell स्क्रिप्ट चल रही Windows सेवाओं की सूची प्रदर्शित करती है। उपयोगकर्ता सूची में एक सेवा का चयन करता है और ठीक क्लिक करता है।
Get-Service | Where-Object {$_.status -eq 'running'}| Out-GridView -Title "Select service to restart" –PassThru -OutputMode Multiple | Restart-service –verbose
स्क्रिप्ट केवल उपयोगकर्ता द्वारा चुनी गई सेवा को फिर से शुरू करेगी।
आप उपयोगकर्ता द्वारा चुनी गई वस्तुओं को एक चर में सहेज सकते हैं:
$Svcs = Get-Service | Where-Object {$_.status -eq 'running'}| Out-GridView -Title "Select services" –PassThru
या आप केवल एक संपत्ति के मूल्यों को बचा सकते हैं। ऐसा करने के लिए, निम्न पाइप को पिछली कमांड में जोड़ें:
| Select -ExpandProperty Name
आप निम्न विकल्पों का उपयोग करके किसी उपयोगकर्ता को तालिका में केवल एक आइटम या एकाधिक आइटम चुनने की अनुमति दे सकते हैं:
-OutputMode Single and -OutputMode Multiple
Ctrl Press को दबाकर रखें तालिका में एकाधिक पंक्तियों का चयन करने के लिए।
PowerShell स्क्रिप्ट में GUI के रूप में आउट-ग्रिडव्यू का उपयोग कैसे करें?
आउट-ग्रिड व्यू का उपयोग करने के कुछ और दिलचस्प उदाहरण यहां दिए गए हैं।
PowerShell इतिहास से पिछले आदेशों की सूची प्रदर्शित करने और चयनित आदेशों को फिर से चलाने के लिए:
Get-History | Out-GridView -PassThru | Invoke-Expression
अतिरिक्त Windows घटकों की सूची प्रदर्शित करने और चयनित स्थापित करने के लिए (उदाहरण के लिए, RSAT सक्रिय निर्देशिका प्रबंधन उपकरण और SSH क्लाइंट):
Get-WindowsCapability -Online | Where-Object {$_.State –eq “NotPresent”}| Out-GridView -PassThru |Add-WindowsCapability –Online
अपने RDS फ़ार्म के कनेक्शन ब्रोकर से RDP सत्रों की सूची प्राप्त करने के लिए और RDP छाया कनेक्शन का उपयोग करके उपयोगकर्ता के चयनित डेस्कटॉप से कनेक्ट करने के लिए:
import-module remotedesktop
$cbserver = "munrdsbroker1.woshub.com"
$id = get-rdusersession -ConnectionBroker $cbserver | Out-GridView -title "RD Connection" -PassThru | select hostserver, unifiedsessionid
$id2 = $id | select -ExpandProperty unifiedsessionid
$srv = $id | select -ExpandProperty hostserver
mstsc /v:"$srv" /shadow:"$id2" /control /noconsentprompt
आप किसी विशिष्ट OU में सक्षम उपयोगकर्ताओं की सूची प्रदर्शित करने और उपयोगकर्ता के डोमेन पासवर्ड को रीसेट करने के लिए AD PowerShell मॉड्यूल से Get-ADUser cmdlet का उपयोग कर सकते हैं:
Import-Module ActiveDirectory
$NewPasswd=Read-Host "Enter a new user password" –AsSecureString
Get-ADUser -filter {Enabled -eq "true"} -properties Name, displayname,EmailAddress,pwdLastSet -SearchBase ‘OU=Berlin,OU=DE,DC=woshub,DC=com’| Out-GridView -PassThru –title “Select a user to reset a password”| Set-ADAccountPassword -NewPassword $NewPasswd -Reset
Invoke-Command का उपयोग करके, आप दूरस्थ कंप्यूटर से डेटा प्राप्त कर सकते हैं और उन्हें एक तालिका में दिखा सकते हैं:
Invoke-Command -ComputerName be-dc01, mun-dc01, mun-dc02 -ScriptBlock {Get-Culture} | Select-Object PSComputerName,DisplayName| Out-GridView
out-gridview : To use the Out-GridView, install Windows PowerShell ISE by using Server Manager, and then restart this application. (Could not load file or assembly 'Microsoft.PowerShell.GraphicalHost, Version=3.0.0.0, Culture=neutral, PublicKeyToken=xxxxx' or one of its dependencies. The system cannot find the file specified.)
हालांकि, आप –ComputerName . का उपयोग कर सकते हैं विकल्प कई cmdlets को सर्वर कोर तक पहुंचना होता है। उदाहरण के लिए:
Get-Service -ComputerName lon-dc02 | Where-Object {$_.status -eq 'running'}| Out-GridView –Title "Select service to restart" -OutputMode Single|Restart-Service -Verbose
किसी कारण से, Microsoft ने PowerShell Core 6.x से Out-GridView cmdlet को हटा दिया, लेकिन इसे संस्करण 7.0 में वापस कर दिया। यदि आप पावरशेल 6.x का उपयोग कर रहे हैं, तो इस आदेश का उपयोग करके इसे नवीनतम संस्करण में अपडेट करें:
iex "& { $(irm https://aka.ms/install-powershell.ps1) } -UseMSI"
जैसा कि आप देख सकते हैं, आउट-ग्रिड व्यू आपकी पावरशेल स्क्रिप्ट में एक अच्छा ग्राफिकल इंटरफ़ेस जोड़ने की अनुमति देता है।