Windows PowerShell は、システム管理者向けに特別に設計された Windows コマンド ライン シェルであり、対話型の DOS スタイルのコマンド ライン ウィンドウとスクリプト環境が含まれており、単独で使用することも、組み合わせて使用することもできます。テキスト メッセージを送受信するほとんどのシェルとは異なり、Windows PowerShell は .NET 共通言語ランタイムと .NET Framework に基づいて構築されており、.NET オブジェクトを受信および応答します。このような機能は、Windows の管理と構成のための新しいツールと方法を提供します。
パワーシェル
Windows PowerShell の重要な概念は、シェルに組み込まれたシンプルな単一機能のコマンド ライン ツールである「コマンドレット」です。ユーザーはコマンドを独立して使用できますが、その効果はアプリケーションのタスクと環境によって異なります。 Windows PowerShell には 100 を超える基本的なコマンド ラインが含まれており、ユーザーは独自のコマンド ラインを作成して他のユーザーと共有できます。
ほとんどのシェルと同様に、Windows PowerShell を使用すると、ファイル システムにアクセスするのと同じくらい簡単に、コンピューターのファイル システムにアクセスできます。
Windows Server 2008 R2 の PowerShell は 2.0 にアップグレードされ、リモート管理、完全なスクリプト環境、デバッグ ツールなど、多くの新機能が導入されました。ISE の新機能と PowerShell V2 の強化されたリモート機能を詳しく見てみましょう。 。
1. 統合スクリプト環境 ISE (統合スクリプト環境)
PowerShell の基本要件は、PowerShell スクリプトを簡単に作成してデバッグできることです。PowerShell v2 には、スクリプト パネル、出力パネル、および PowerShell スクリプトの作成を容易にする統合スクリプト環境 ISE (統合スクリプト環境) がバンドルされています。コマンドラインパネル。
ISEパネル
ISE コマンド ライン パネルは、PowerShell コマンド ライン パネルに非常に似ており、ユーザーはそこにコマンドを入力し、Enter キーを押してコマンドを実行できます。コマンドの実行結果は出力パネルに表示され、以前のすべてのコマンド実行の結果を明確に追跡できます。上部のスクリプト パネルはスクリプトの作成とデバッグに使用できます。スクリプト パネルは複数のスクリプトの併用をサポートしているため、操作が簡単です。
ユーザーがスクリプトをデバッグできるように、ISE ではさまざまな方法でデバッグ ブレークポイントを設定できます。これらのブレークポイントは、特定の特殊な条件下で手動または自動で設定できます。ブレークポイントを設定するコマンドでは、ユーザーはデバッグ スクリプトの名前と座標を指定する必要があります。
Set-PSBreakpoint .[スクリプトファイル名].ps1 -line X
複数のブレークポイントを設定する場合は、次のように座標を指定するときにカンマで区切る必要があります。
Set-PSBreakpoint .[スクリプトファイル名].ps1 -line X,Y,Z
特定の関数を呼び出すときにブレーク ポイントを設定する場合は、Set-PSBreakpoint コマンド、-Command パラメーター、および関数名を使用する必要があります。
Set-PSBreakPoint -Command [関数名]
ISE デバッガーは、特定の変数の読み取りまたは書き込み時にブレーク ポイントを設定することもできます。変数の読み取りまたは書き込み時にブレーク ポイントを設定するコマンドは次のとおりです。
Set-PSBreakpoint -Variable [変数名] -mode read
Set-PSBreakpoint -Variable [変数名] -mode write
ブレークポイントを設定すると、一意の識別子が付けられます。Disable-PSBreakpoint コマンドを使用して識別子を削除すると、ブレークポイントを削除できます。
無効化-PSBreakpointX
2. PowerShell v2のリモート機能強化
PowerShell v2 のもう 1 つの重要な機能は、新しいコマンド ライン Invoke-Command を追加するリモート操作機能 (PowerSell リモート処理) の強化です。現在、PowerSell リモート処理は Vista SP1、Windows Server 2008、および Windows 7 を実行しているコンピュータのみをサポートしており、対応するバージョンのリモート管理ツール WinRM をインストールする必要があることに注意してください。つまり、ユーザーは、PowerShell リモート処理を通じて PowerShell v2 と WinRM がインストールされている Vista SP1/Win 2008 コンピューターのみに接続できます。Vista (PowerShell のみがインストール可能) および WinXP システムがインストールされているコンピューターはサポートされていません。
PowerShell v2 のシステム要件と改善点
PowerShell 2.0 の CTP プレリリース バージョンでは、リモート コンピューターへの接続に Invoke-Expression コマンドが使用されます。
Invoke-Expression –computerName atl-fs-001 –command Get-Process
ユーザーがリモート コンピューター atl-fs-001 で Get-Process コマンドを実行する場合は、新しい Invoke-Command コマンドを使用できます。
呼び出しコマンド –computerName atl-fs-001 –scriptblock
2 つのコマンドの基本パラメーターは同じであることがわかりますが、PowerShell チームは Invoke-Expression コマンドを Invoke-Command に置き換え、-command を -scriptblock パラメーターに置き換えています。 、リモコンの動作の安定性、安全性、パフォーマンスが向上しました。
もちろん、このコマンドは複数のリモート コンピューターもサポートできます。リモート コンピューター atl-fs-001、atl-fs-002、および atl-fs-003 からプロセス情報を取得する必要がある場合は、次のコマンドを使用できます。
Invoke-Command –computerName atl-fs-001、atl-fs-002、atl-fs-003 –scriptblock
複数のリモートコンピュータをサポート
Invoke-Expression コマンドと同様に、Invoke-Command はリモート コンピューターに接続してコマンドを実行できますが、接続はすぐに失われます。リモート コンピューターへの永続的な接続が必要な場合は、次のコマンドを使用して PowerShell セッションを作成できます。
$objRunspace = 新しい実行スペース atl-fs-001、atl-fs-002、atl-fs-003
Invoke-Command コマンドの詳細が必要な場合は、次のコマンドを使用して手順と例を取得できます。
Get-Help Invoke-Command –詳細 |