Windows Server
 Computer >> コンピューター >  >> システム >> Windows Server

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

Out-GridViewを使用してPowerShellでテーブルデータを表示および選択する

ご覧のとおり、Windowsサービスのプロパティのリストを含むグラフィックテーブルフォームが表示されました。コマンドレットは、オブジェクトのプロパティまたはデータ型に基づいて列名を自動的に設定し、データ形式を定義できない場合はPSObjectのプロパティを拡張します。

フィルタボックスを使用してフォームを検索できます。

Out-GridViewを使用してPowerShellでテーブルデータを表示および選択する

PowerShellから直接Excelテーブルのデータにアクセスできます。

条件の追加を使用することもできます ボタンをクリックしてテーブルを検索します。以下のスクリーンショットでは、 VMWを持つ実行中のサービスのリストを使用して最も単純なフィルターを作成しました。 彼らの名前で。フィルタは、オブジェクトプロパティの値に直接基づいて作成されます。

Out-GridViewを使用してPowerShellでテーブルデータを表示および選択する

または、CPU使用率が最も高い上位10プロセスのリストを表示しましょう( –タイトルを使用してOut-GridViewウィンドウの名前を変更しました オプション):

Get-Process | Sort-Object CPU -Descending | Select -First 10 | Out-GridView -Title "Top 10 CPU processes"

列ヘッダーをクリックすると、テーブルの内容を昇順/降順ですばやく並べ替えることができます。

Out-GridViewを使用してPowerShellでテーブルデータを表示および選択する

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

スクリプトは、ユーザーが選択したサービスのみを再起動します。

Out-GridViewを使用してPowerShellでテーブルデータを表示および選択する

ユーザーが選択したオブジェクトを変数に保存できます:

$Svcs = Get-Service | Where-Object {$_.status -eq 'running'}| Out-GridView -Title "Select services" –PassThru

または、プロパティの値のみを保存できます。これを行うには、前のコマンドに次のパイプを追加します。

| Select -ExpandProperty Nameを選択します

Out-GridViewを使用してPowerShellでテーブルデータを表示および選択する

次のオプションを使用して、ユーザーがテーブル内の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

Out-GridViewを使用してPowerShellでテーブルデータを表示および選択する

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

Out-GridViewを使用してPowerShellでテーブルデータを表示および選択する

Invoke-Commandを使用すると、リモートコンピューターからデータを取得して、テーブルに表示できます。

Invoke-Command -ComputerName be-dc01, mun-dc01, mun-dc02 -ScriptBlock {Get-Culture} | Select-Object PSComputerName,DisplayName| Out-GridView

残念ながら、Out-GridViewコマンドレットはWindowsServerCoreでは使用できません。実行すると、次のエラーが発生します。

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スクリプトに優れたグラフィカルインターフェイスを追加できます。


  1. PowerShellを使用したExcelファイルへのデータの読み取りと書き込み

    この記事では、PowerShellスクリプトから直接Excelワークシートからデータを読み書きする方法を示します。 ExcelをPowerShellと一緒に使用して、コンピューター、サーバー、インフラストラクチャ、ActiveDirectoryなどに関するさまざまなレポートのインベントリと生成を行うことができます。 別のCOMオブジェクト(コンポーネントオブジェクトモデル)を介して、PowerShellからExcelシートにアクセスできます。これには、Excelがコンピューターにインストールされている必要があります。 Excelセルのデータにアクセスする方法を示す前に、Excelファ

  2. PowerShell を使用してファイルとフォルダーを削除する方法

    すべてのファイルとフォルダーを手動で削除するのは面倒です。ただし、PowerShell の使い方を知っていれば、その必要はありません。この記事では、PowerShell を使用して Windows のファイルとフォルダーを削除するさまざまな方法を紹介します。 PowerShell を使用してファイルとフォルダーを削除する PowerShell は、Windows が提供する無料のコマンド自動化ツールです。簡単に言えば、コマンド プロンプト ウィンドウ内で起動するシェルの助けを借りて、オペレーティング システムをより詳細に制御するのに役立ちます。 コマンドレットとも呼ばれるコマンドレットを利