Windows PowerShell でコンピューターをリセットするには、標準のコマンドライン ツールを使用するか、または WMI クラスを使用します。Windows PowerShell は単にツールを呼び出すために使用するだけですが、Windows PowerShell でコンピューターの電力状態を変更する手順には、Windows PowerShell での外部ツールの使用方法に関する重要な詳細も含まれています。
コンピューターのロック
一般的に入手可能なツールを使ってコンピューターを直接ロックする唯一の方法は、user32.dll の LockWorkstation() 関数を呼び出すことです。
rundll32.exe user32.dll,LockWorkStation
このコマンドを実行すると、ワークステーションが直ちにロックされます。このコマンドでは、rundll32.exe を使用して Windows DLL を実行 (および、繰り返し使用できるようにそれらのライブラリを保存) することにより、Windows の管理関数のライブラリである user32.dll を実行します。
Windows XP の場合など、ユーザーの簡易切り替えが有効なときにワークステーションをロックすると、現在のユーザーのスクリーン セーバーが起動するのではなく、ユーザーのログオン画面が表示されます。
ターミナル サーバーで特定のセッションをシャットダウンするには、tsshutdn.exe コマンド ライン ツールを使用します。
現在のセッションからのログオフ
ローカル システム上でセッションからログオフする場合、いくつかの方法が考えられます。最も簡単な方法は、リモート デスクトップ/ターミナル サービスのコマンドライン ツールである logoff.exe を使用することです (詳細については、Windows PowerShell のプロンプトで「logoff /?」と入力してください)。現在アクティブなセッションからログオフするには、引数を付けずに「logoff」と入力します。
また、shutdown.exe ツールにログオフのオプションを指定することもできます。
shutdown.exe -l
3 つ目は、WMI を使用する方法です。Win32_OperatingSystem クラスには、Win32Shutdown メソッドがあります。このメソッドに 0 フラグを指定して呼び出すと、ログオフが開始されます。
(Get-WmiObject -Class Win32_OperatingSystem -ComputerName .).Win32Shutdown(0)
詳細について、および Win32Shutdown メソッドの他の機能については、MSDN の「Win32Shutdown Method of the Win32_OperatingSystem Class (Win32_OperatingSystem クラスの Win32Shutdown メソッド)」を参照してください。
コンピューターのシャットダウンまたは再起動
通常、コンピューターのシャットダウンと再起動は同じ種類に属するタスクです。コンピューターをシャットダウンできるツールであれば、コンピューターを再起動することもできます。逆にコンピューターを再起動できるツールであれば、コンピューターをシャットダウンすることもできます。Windows PowerShell からコンピューターを簡単に再起動する方法としては、2 とおりの方法があります。Tsshutdn.exe または Shutdown.exe に適切な引数を指定して実行することです。詳細な使用方法は、tsshutdn.exe /? または shutdown.exe /? を実行して参照できます。
シャットダウン操作と再起動操作は、Windows PowerShell から直接 Win32_OperatingSystem を使用して実行することもできます。
コンピューターをシャットダウンするには、1 フラグを指定して Win32Shutdown メソッドを実行します。
(Get-WmiObject -Class Win32_OperatingSystem -ComputerName .).Win32Shutdown(1)
オペレーティング システムを再起動するには、2 フラグを指定して Win32Shutdown メソッドを実行します。
(Get-WmiObject -Class Win32_OperatingSystem -ComputerName .).Win32Shutdown(2)