আউট-গ্রিডভিউ cmdlet একটি ইন্টারেক্টিভ গ্রাফিকাল টেবিল হিসাবে ডেটা প্রদর্শনের অনুমতি দেয় যা বিভিন্ন মানদণ্ডের উপর ভিত্তি করে ফিল্টার বা সাজানো যেতে পারে। আপনি স্ক্রিপ্টগুলিতে আউট-গ্রিডভিউ cmdlet ব্যবহার করতে পারেন যেখানে আপনি বস্তু নির্বাচন করার জন্য ব্যবহারকারীকে সহজতম GUI প্রদান করতে চান।
প্রকৃতপক্ষে, Out-GridView হল .NETDataGridView চালানোর জন্য একটি মোড়ক , একটি উইন্ডোজ ফর্ম কন্ট্রোল থেকে একটি আদর্শ গ্রাফিকাল ফর্ম৷ .
আউট-গ্রিডভিউ টেবিল ব্যবহার করা
আসুন Windows পরিষেবাগুলির একটি তালিকা এবং তাদের কিছু বৈশিষ্ট্য প্রদর্শন করতে Out-GridView cmdlet ব্যবহার করার সবচেয়ে সহজ উদাহরণটি দেখি:
Get-Service | Select DisplayName,Status,ServiceName,Can* | Out-GridView
আপনি দেখতে পাচ্ছেন, উইন্ডোজ পরিষেবা বৈশিষ্ট্যগুলির তালিকা সহ একটি গ্রাফিক টেবিল ফর্ম উপস্থিত হয়েছে। cmdlet স্বয়ংক্রিয়ভাবে অবজেক্টের বৈশিষ্ট্য বা ডেটা টাইপের উপর ভিত্তি করে কলামের নাম সেট করে এবং যদি ডেটা বিন্যাস সংজ্ঞায়িত করা না যায় তবে PSObject বৈশিষ্ট্য প্রসারিত করে।
আপনি ফিল্টার বক্স ব্যবহার করে ফর্ম অনুসন্ধান করতে পারেন.
আপনি PowerShell থেকে সরাসরি Excel টেবিলে ডেটা অ্যাক্সেস করতে পারেন।
আপনি মাপদণ্ড যোগ করুনও ব্যবহার করতে পারেন৷ টেবিল অনুসন্ধান করার জন্য বোতাম। নীচের স্ক্রিনশটে, আমি VMW সহ চলমান পরিষেবাগুলির একটি তালিকা সহ সবচেয়ে সহজ ফিল্টার তৈরি করেছি তাদের নামে। ফিল্টারটি সরাসরি বস্তুর বৈশিষ্ট্যের মানগুলির উপর ভিত্তি করে তৈরি করা হয়।
অথবা সর্বোচ্চ CPU ব্যবহার সহ শীর্ষ 10টি প্রক্রিয়ার একটি তালিকা প্রদর্শন করা যাক (আমি –শিরোনাম ব্যবহার করে আমার আউট-গ্রিডভিউ উইন্ডোর নাম পরিবর্তন করেছি বিকল্প):
Get-Process | Sort-Object CPU -Descending | Select -First 10 | Out-GridView -Title "Top 10 CPU processes"
আপনি কলাম হেডারে ক্লিক করে টেবিলের বিষয়বস্তুগুলিকে ঊর্ধ্বগত/অবরোহী ক্রমে বাছাই করতে পারেন।
PassThru স্যুইচ সহ আউট-গ্রিডভিউ cmdlet
যাইহোক, সবচেয়ে শক্তিশালী আউট-গ্রিডভিউ বৈশিষ্ট্য হল –PassThru বিকল্প, যা আপনার PowerShell স্ক্রিপ্টগুলির জন্য ব্যবহারকারী-বান্ধব GUI-এর একটি নতুন স্তর প্রদান করে৷
বিকল্পটি PowerShell 3.0 বা উচ্চতর সংস্করণে উপলব্ধ, একজন ব্যবহারকারীকে টেবিলে এক বা একাধিক বস্তু নির্বাচন করতে দেয় এবং আপনার PowerShell স্ক্রিপ্টের পরবর্তী cmdlets-এ স্ট্যান্ডার্ড পাইপ ব্যবহার করে সেগুলিকে পাস করে৷
উদাহরণস্বরূপ, নিম্নলিখিত পাওয়ারশেল স্ক্রিপ্টটি চলমান উইন্ডোজ পরিষেবাগুলির একটি তালিকা প্রদর্শন করে। একজন ব্যবহারকারী তালিকা থেকে একটি পরিষেবা নির্বাচন করে ওকে ক্লিক করে৷
৷
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 টিপুন এবং ধরে রাখুন টেবিলে একাধিক সারি নির্বাচন করতে।
PowerShell স্ক্রিপ্টে GUI হিসাবে আউট-গ্রিডভিউ কীভাবে ব্যবহার করবেন?
আউট-গ্রিডভিউ ব্যবহার করার আরও কিছু আকর্ষণীয় উদাহরণ এখানে।
PowerShell ইতিহাস থেকে পূর্ববর্তী কমান্ডগুলির একটি তালিকা প্রদর্শন করতে এবং নির্বাচিত কমান্ডগুলি আবার চালান:
Get-History | Out-GridView -PassThru | Invoke-Expression
অতিরিক্ত উইন্ডোজ উপাদানগুলির একটি তালিকা প্রদর্শন করতে এবং নির্বাচিত ইনস্টল করতে (উদাহরণস্বরূপ, RSAT অ্যাক্টিভ ডিরেক্টরি পরিচালনার সরঞ্জাম এবং SSH ক্লায়েন্ট):
Get-WindowsCapability -Online | Where-Object {$_.State –eq “NotPresent”}| Out-GridView -PassThru |Add-WindowsCapability –Online
আপনার আরডিএস ফার্মের সংযোগ ব্রোকার থেকে আরডিপি সেশনের একটি তালিকা পেতে এবং একটি আরডিপি ছায়া সংযোগ ব্যবহার করে ব্যবহারকারীর নির্বাচিত ডেস্কটপে সংযোগ করতে:
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 -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
কিছু কারণে, মাইক্রোসফ্ট PowerShell Core 6.x থেকে Out-GridView cmdlet সরিয়ে দিয়েছে, কিন্তু 7.0 সংস্করণে ফিরিয়ে দিয়েছে। আপনি যদি PowerShell 6.x ব্যবহার করেন, তাহলে এই কমান্ডটি ব্যবহার করে এটিকে সর্বশেষ সংস্করণে আপডেট করুন:
iex "& { $(irm https://aka.ms/install-powershell.ps1) } -UseMSI"
আপনি দেখতে পাচ্ছেন, আউট-গ্রিডভিউ আপনার পাওয়ারশেল স্ক্রিপ্টগুলিতে একটি সুন্দর গ্রাফিকাল ইন্টারফেস যোগ করার অনুমতি দেয়৷