Windows PowerShell の使用

完了

GUI 管理ツールはコマンドライン ツールよりも多くの場合簡単に使用できますが、Contoso の IT 部門のマネージャーは、単純なスクリプトまたは単一のコマンドを使用して、多くの管理タスクをより迅速に実行できると信じています。 たとえば、Active Directory のユーザーとコンピューターを使用して複数のユーザー アカウントの同じ情報を更新するプロセスには時間がかかることがあります。 ただし、Windows PowerShell で Active Directory モジュールを使用すると、管理者はこの反復タスクを迅速に実行できます。 Windows PowerShell を使用して Contoso のサーバー インフラストラクチャを管理することによる影響を調査することにしました。

概要

Windows PowerShell は、Windows オペレーティング システムのすべての側面を管理するために使用できるコマンドラインおよびスクリプト環境です。 Windows PowerShell では、Restart-Computer など、動詞と名詞のペアで構成されるコマンドレットと呼ばれる特殊なコマンドを使用します。

また、Windows PowerShell を使用して、他のコンピューターにリモート接続したり、コンピューターの一覧に対して Windows PowerShell コマンドレットを実行したりすることもできます。これにより、1 つのコマンドライン命令を使用して複数のコンピューターに対して操作を実行できます。

Windows PowerShell のコマンドとコマンドレット

コマンドは、Windows PowerShell スクリプト言語を使用して構築するための構成要素です。 Windows PowerShell の主な機能を提供します。 コマンドを使用すると、複雑な管理上の問題のためのカスタム ソリューションを作成できます。

コマンドレットは、コマンドの基本的なコンポーネントです。 Windows オペレーティング システムおよびその他の Microsoft 製品で使用できる Windows PowerShell コマンドレットは多数あります。 前述のように、コマンドレットは動詞と名詞のペアで構成されています。

コマンドレットの動詞

コマンドレット名の動詞部分は、コマンドレットの動作を示します。 コマンドレットの作成者が使用する承認された動詞のセットがあります。これは、コマンドレット名の一貫性を提供します。 次の表で、これらの共通の動詞をまとめています。

動詞 説明
取得 ファイルやユーザーなどのリソースを取得します。
オン ファイルやユーザー プロパティなど、リソースに関連付けられているデータを変更します。
新規 ファイルやユーザーなどのリソースを作成します。
追加 リソースを複数のリソースのコンテナーに追加します。
[削除] リソースを複数のリソースのコンテナーから削除します。

コマンドレットの名詞

コマンドレット名の名詞部分は、コマンドレットが影響するリソースまたはオブジェクトの種類を示します。 同じリソースに対して動作するすべてのコマンドレットで同じ名詞を使用する必要があります。 たとえば、Windows サービスで動作するコマンドレットに対しては、名詞 Service を使用します。名詞 Process は、コンピューター上のプロセスを管理するために使用されます。

パラメーターの形式

パラメーターは、コマンドレットによって実行されるアクションを変更します。 各コマンドレットには、パラメーターなしのもの、パラメーター 1 つのもの、または多くのパラメーターがあるものがありえます。 パラメーター名はダッシュ (-) で始まります。 パラメーター名から渡す値をスペースで区切って指定します。 渡す値にスペースが含まれている場合は、テキストを引用符で囲む必要があります。 一部のパラメーターには複数の値を指定できます。複数の値はコンマで区切り、スペースは使用しません。

Windows PowerShell を使用して一般的な管理タスクを実行する方法を判断するには、次の例を参考にしてください。 次のコマンドは、実行中のサービスの一覧を表示します。

Get-Service | Where-Object {$_.Status -eq "Running"}

次のコマンドは、名前が "win" で始まり、WinRM と呼ばれるサービスを除外するサービスの一覧を表示します。

Get-Service -Name "win*" -Exclude "WinRM"

次のコマンドは、すべてのサービスの一覧を HTML 出力用にテキスト ファイル形式で出力します。

Get-Service | ConvertTo-Html > File.html

上記のコマンドのバリエーションは、サービスに関する選択されたデータのみを出力し、その出力を CSV ファイルにエクスポートします。

Get-Service | Select-Object Name, Status | Export-CSV c:\service.csv

次のコマンドは、Active Directory ユーザーについて、指定された情報 (会社の電話番号とユーザー プリンシパル名) を取得します。

Get-ADUser -Filter * -Properties OfficePhone | FT OfficePhone,UserPrincipalName

この最後の例では、AD DS ユーザー (Marketing OU 内のユーザー) のサブセットを取得し、各アカウントに説明を追加することによってプロパティを変更します。

Get-ADUser -Filter 'Name -like "*"' -SearchBase "OU=Marketing,DC=Contoso,DC=Com" | Set-ADUser -Description "Member of the Marketing Department"

Windows PowerShell ISE

ISE は、スクリプト エディター、デバッグ機能、インタラクティブなコンソール、および新しい Windows PowerShell コマンドの発見と学習に役立ついくつかのツールを提供する、完全なグラフィカル環境です。 このモジュールは、ISE のしくみについての基本的な知識を提供します。

A screenshot of Administrator: Windows PowerShell ISE. The administrator has enabled the Command preview window. The administrator has just run Get-localuser in the untitled script pane.

ペイン

ISE には、スクリプト ペイン (スクリプト エディター) とコンソール ペインの 2 つの主要なペインがあります。 2 ペイン レイアウトでは、これらを上下または左右に配置できます。 また、1 つのペインを最大化し、ペイン間を切り替えることもできます。 既定では、コマンド アドオン ペインも表示されます。ここでは、使用可能なコマンドを検索または参照したり、選択したコマンドのパラメーターを確認して入力したりできます。 同じ機能を提供するフローティング コマンド ウィンドウもあります。

ビューのカスタマイズ

ISE には、ビューをカスタマイズするいくつかの方法が用意されています。 ウィンドウの右下の領域にあるスライダーによって、アクティブなフォント サイズが変更されます。 [オプション] ダイアログ ボックスを使用すると、キーワードや文字列値など、さまざまな Windows PowerShell テキスト要素のフォントと色の選択をカスタマイズできます。 ISE では、ビジュアル テーマの作成がサポートされています。 テーマとは、ISE の外観をカスタマイズするためにグループとして適用できるフォントおよび色の設定のコレクションです。 プレゼンテーションを提供するなどの目的でカスタマイズするための、組み込みのテーマがいくつかあります。 ISE には、カスタム テーマを作成するオプションも用意されています。 ISE には他に次のような機能が含まれています。

  • 一般的に使用されるコマンドを格納するために使用できる、組み込みの拡張可能なスニペット ライブラリ。
  • Microsoft またはサード パーティによって作成されたアドインを読み込み、追加機能を提供する機能。
  • Windows PowerShell のデバッグ機能との統合。

Windows PowerShell のリモート処理

Windows PowerShell のリモート処理の目的は、リモートコンピューターに接続して、リモート コンピューターに対してコマンドを実行し、結果をローカル コンピューターに転送できるようにすることです。 これにより、各コンピューターへの接続を作成するのではなく、クライアント コンピューターからネットワーク上の複数のコンピューターで Windows PowerShell コマンドを実行できるようになります。

Windows PowerShell のリモート処理の主な目的は、バッチ管理を可能にすることです。これにより、一連のリモート コンピューターでコマンドを同時に実行できるようになります。 リモート処理は、次の表で説明する 3 つの方法のいずれかで使用できます。

メソッド 説明
一対一のリモート処理 一対一のリモート処理のシナリオ (対話型リモート処理とも呼ばれます) では、コンピューターにサインインして Windows PowerShell ウィンドウを開いた場合とまったく同じように、1 台のリモート コンピューターに接続し、Windows PowerShell コマンドを実行します。
一対多のリモート処理 一対多のリモート処理のシナリオ (ファン-アウトリモート処理とも呼ばれます) では、1 台以上のリモート コンピューターで並列で実行されるコマンドを発行します。 各リモート コンピューターを対話的に操作していません。 代わりに、コマンドが発行され、バッチで実行され、使用できるよう結果がコンピューターに返されます。
多対一のリモート処理 多対一のリモート処理シナリオ (ファンインリモート処理とも呼ばれます) では、複数の管理者が 1 台のコンピューターへのリモート接続を行います。 通常、これらの管理者は、同じリモート コンピューターに対して異なるアクセス許可を持ち、制限付きの Windows PowerShell セッションで作業している可能性があります。

注意事項

複数のコンピューターでコマンドを実行する場合、オペレーティング システム、ファイル システム構造、システム レジストリの違いなど、リモート コンピューターの違いに注意してください。

PowerShell ダイレクト

多くの管理者は、仮想化環境でサーバーの一部を実行することを選択します。 Windows 10 または Windows Server を実行している Hyper-V VM の管理を簡略化するために、PowerShell Direct と呼ばれる機能を使用できます。

PowerShell Direct を使用すると、ネットワーク、ファイアウォール、およびリモート管理構成に関係なく、ホスト オペレーティング システムから VM 内の Windows PowerShell コマンドレットまたはスクリプトを実行できます。