Out-GridViewを使用してPowerShellでテーブルデータを表示および選択する
Out-GridView コマンドレットを使用すると、さまざまな基準に基づいてフィルタリングまたは並べ替えることができるインタラクティブなグラフィカルテーブルとしてデータを表示できます。オブジェクトを選択するための最も簡単なGUIをユーザーに提供するスクリプトで、Out-Gridviewコマンドレットを使用できます。
実際、Out-GridViewは、.NET DataGridViewを実行するためのラッパーです。 、Windowsフォームコントロールの標準のグラフィックフォーム 。
Out-GridViewテーブルの使用
Out-GridViewコマンドレットを使用してWindowsサービスとそのプロパティのリストを表示する最も簡単な例を見てみましょう。
Get-Service | Select DisplayName,Status,ServiceName,Can* | Out-GridView
ご覧のとおり、Windowsサービスのプロパティのリストを含むグラフィックテーブルフォームが表示されました。コマンドレットは、オブジェクトのプロパティまたはデータ型に基づいて列名を自動的に設定し、データ形式を定義できない場合はPSObjectのプロパティを拡張します。
フィルタボックスを使用してフォームを検索できます。
PowerShellから直接Excelテーブルのデータにアクセスできます。
条件の追加を使用することもできます ボタンをクリックしてテーブルを検索します。以下のスクリーンショットでは、 VMWを持つ実行中のサービスのリストを使用して最も単純なフィルターを作成しました。 彼らの名前で。フィルタは、オブジェクトプロパティの値に直接基づいて作成されます。
または、CPU使用率が最も高い上位10プロセスのリストを表示しましょう( –タイトルを使用してOut-GridViewウィンドウの名前を変更しました オプション):
Get-Process | Sort-Object CPU -Descending | Select -First 10 | Out-GridView -Title "Top 10 CPU processes"
列ヘッダーをクリックすると、テーブルの内容を昇順/降順ですばやく並べ替えることができます。
PassThruスイッチを備えたOut-GridViewコマンドレット
ただし、最も強力なOut-Gridview機能は、 –PassThruです。 オプション。PowerShellスクリプトに新しいレベルのユーザーフレンドリーなGUIを提供します。
このオプションはPowerShell3.0以降で使用可能であり、ユーザーはテーブル内の1つ以上のオブジェクトを選択し、標準パイプを使用してPowerShellスクリプトの次のコマンドレットにそれらを渡すことができます。
たとえば、次のPowerShellスクリプトは、実行中のWindowsサービスのリストを表示します。ユーザーがリストからサービスを選択し、[OK]をクリックします。
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
を選択します
次のオプションを使用して、ユーザーがテーブル内の1つのアイテムのみまたは複数のアイテムを選択できるようにすることができます。
-OutputMode Single and -OutputMode Multiple
Ctrlを押し続けます テーブル内の複数の行を選択します。
PowerShellスクリプトでGUIとしてOut-Gridviewを使用する方法
Out-GridViewを使用するいくつかの興味深い例を次に示します。
PowerShell履歴から以前のコマンドのリストを表示し、選択したコマンドを再度実行するには:
Get-History | Out-GridView -PassThru | Invoke-Expression
追加のWindowsコンポーネントのリストを表示し、選択したもの(RSAT Active Directory管理ツールや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
AD PowerShellモジュールのGet-ADUserコマンドレットを使用して、特定のOUで有効になっているユーザーのリストを表示し、ユーザーのドメインパスワードをリセットできます。
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は使用できます オプション多くのコマンドレットがServerCoreにアクセスする必要があります。例:
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コマンドレットを削除しましたが、バージョン7.0で返しました。 PowerShell 6.xを使用している場合は、次のコマンドを使用して最新バージョンに更新します。
iex "& { $(irm https://aka.ms/install-powershell.ps1) } -UseMSI"
ご覧のとおり、Out-GridViewを使用すると、PowerShellスクリプトに優れたグラフィカルインターフェイスを追加できます。
-
PowerShellを使用したExcelファイルへのデータの読み取りと書き込み
この記事では、PowerShellスクリプトから直接Excelワークシートからデータを読み書きする方法を示します。 ExcelをPowerShellと一緒に使用して、コンピューター、サーバー、インフラストラクチャ、ActiveDirectoryなどに関するさまざまなレポートのインベントリと生成を行うことができます。 別のCOMオブジェクト(コンポーネントオブジェクトモデル)を介して、PowerShellからExcelシートにアクセスできます。これには、Excelがコンピューターにインストールされている必要があります。 Excelセルのデータにアクセスする方法を示す前に、Excelファ
-
PowerShell を使用してファイルとフォルダーを削除する方法
すべてのファイルとフォルダーを手動で削除するのは面倒です。ただし、PowerShell の使い方を知っていれば、その必要はありません。この記事では、PowerShell を使用して Windows のファイルとフォルダーを削除するさまざまな方法を紹介します。 PowerShell を使用してファイルとフォルダーを削除する PowerShell は、Windows が提供する無料のコマンド自動化ツールです。簡単に言えば、コマンド プロンプト ウィンドウ内で起動するシェルの助けを借りて、オペレーティング システムをより詳細に制御するのに役立ちます。 コマンドレットとも呼ばれるコマンドレットを利