Restart-Computer
ローカル コンピューターとリモート コンピューターでオペレーティング システムを再起動します。
構文
Restart-Computer
[-DcomAuthentication <AuthenticationLevel>]
[-Impersonation <ImpersonationLevel>]
[-WsmanAuthentication <String>]
[-Protocol <String>]
[[-ComputerName] <String[]>]
[[-Credential] <PSCredential>]
[-Force]
[-Wait]
[-Timeout <Int32>]
[-For <WaitForServiceTypes>]
[-Delay <Int16>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Restart-Computer
[-AsJob]
[-DcomAuthentication <AuthenticationLevel>]
[-Impersonation <ImpersonationLevel>]
[[-ComputerName] <String[]>]
[[-Credential] <PSCredential>]
[-Force]
[-ThrottleLimit <Int32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
説明
Restart-Computer
コマンドレットは、ローカル コンピューターとリモート コンピューター上のオペレーティング システムを再起動します。
Restart-Computer
のパラメーターを使用して、再起動操作をバックグラウンド ジョブとして実行したり、認証レベルと代替資格情報を指定したり、同時に実行する操作を制限したり、即時再起動を強制したりできます。
Windows PowerShell 3.0 以降では、再起動が完了するまで待ってから次のコマンドを実行できます。 待機タイムアウトとクエリ間隔を指定し、再起動されたコンピューターで特定のサービスが使用可能になるまで待機します。 この機能により、スクリプトや関数で Restart-Computer
を使用することが実用的になります。
WS-Management (WSMan) プロトコルを使用すると、エンタープライズ ファイアウォールなどで分散コンポーネント オブジェクト モデル (DCOM) 呼び出しがブロックされた場合に備えて、コンピューターを再起動できます。 詳細については、「 WS-Management Protocol」を参照してください。
このコマンドレットには、コマンドで AsJob パラメーターを使用する場合にのみ、Windows PowerShell リモート処理が必要です。
例
例 1: ローカル コンピューターを再起動する
Restart-Computer
はローカル コンピューターを再起動します。
Restart-Computer
例 2: 複数のコンピューターを再起動する
Restart-Computer
リモート コンピューターとローカル コンピューターを再起動できます。 ComputerName パラメーターは、コンピューター名の配列を受け入れます。
Restart-Computer -ComputerName Server01, Server02, localhost
例 3: バックグラウンド ジョブとしてコンピューターを再起動する
これらのコマンドは、 Restart-Computer
コマンドを 2 台のリモート コンピューターでバックグラウンド ジョブとして実行し、結果を取得します。
AsJobはローカル コンピューターでジョブを作成し、結果をローカル コンピューターに自動的に返すので、ローカル コマンドとしてReceive-Job
実行できます。
$Job = Restart-Computer -ComputerName "Server01", "Server02" -AsJob
$Job | Receive-Job
Restart-Computer
では、 ComputerName パラメーターを使用して、 Server01 および Server02 を指定します。 AsJob パラメーターは、バックグラウンド ジョブとしてコマンドを実行します。 ジョブ オブジェクトは、 $Job
変数に格納されます。 $Job
は、結果を取得する Receive-Job
コマンドレットにパイプラインを送信します。
例 4: リモート コンピューターを再起動する
Restart-Computer
は、カスタマイズされた偽装と認証設定を使用してリモート コンピューターを再起動します。
Restart-Computer -ComputerName Server01 -Impersonation Anonymous -DcomAuthentication PacketIntegrity
Restart-Computer
では、 ComputerName パラメーターを使用して Server01 を指定します。 Impersonation パラメーターは、要求者の ID を非表示にする Anonymous を指定します。 DcomAuthentication パラメーターは、接続の認証レベルとして PacketIntegrity を指定します。
例 5: テキスト ファイルに一覧表示されているコンピューターの強制的な再起動
次の使用例は、 Domain01.txt
ファイルに一覧表示されているコンピューターを強制的に再起動します。 テキスト ファイルのコンピューター名は変数に格納されます。 Force パラメーターは強制的に即時再起動し、ThrottleLimit パラメーターは同時接続の数を制限します。
$Names = Get-Content -Path C:\Domain01.txt
$Creds = Get-Credential
Restart-Computer -ComputerName $Names -Credential $Creds -Force -ThrottleLimit 10
Get-Content
では、 Path パラメーターを使用して、テキスト ファイル ( Domain01.txt) からコンピューター名の一覧を取得します。 コンピューター名は変数 $Names
に格納されます。 Get-Credential
は、ユーザー名とパスワードの入力を求め、変数 $Creds
に値を格納します。 Restart-Computer
は、 ComputerName および Credential パラメーターを変数と共に使用します。 Force パラメーターを指定すると、各コンピューターが直ちに再起動されます。 ThrottleLimit パラメーターは、コマンドを 10 個の同時接続に制限します。
例 6: リモート コンピューターを再起動し、PowerShell を待機する
Restart-Computer
はリモート コンピューターを再起動し、再起動されたコンピューターで PowerShell が使用できるようになるまで最大 5 分 (300 秒) 待機してから続行します。
Restart-Computer -ComputerName Server01 -Wait -For PowerShell -Timeout 300 -Delay 2
Restart-Computer
では、 ComputerName パラメーターを使用して Server01 を指定します。 Wait パラメーターは、再起動が完了するまで待機します。 Forは、PowerShell がリモート コンピューターでコマンドを実行できることを指定します。 Timeout パラメーターは、5 分間の待機を指定します。 Delay パラメーターは、リモート コンピューターを 2 秒ごとに照会して、再起動されたかどうかを判断します。
例 7: WSMan プロトコルを使用してコンピューターを再起動する
Restart-Computer
は、既定の DCOM ではなく WSMan プロトコルを使用してリモート コンピューターを再起動します。 Kerberos 認証は、現在のユーザーがリモート コンピューターを再起動するアクセス許可を持っているかどうかを決定します。
これらの設定は、DCOM がブロックされているために DCOM ベースの再起動が失敗する企業向けに設計されています。 たとえば、ファイアウォールなどです。
Restart-Computer -ComputerName Server01 -Protocol WSMan -WsmanAuthentication Kerberos
Restart-Computer
は、 ComputerName パラメーターを使用して、リモート コンピューターである Server01 を指定します。
Protocol パラメーターは、WSMan プロトコルを使用するように指定します。 WsmanAuthentication パラメーターは、認証方法を Kerberos として指定します。
パラメーター
-AsJob
Restart-Computer
がバックグラウンド ジョブとして実行されることを示します。
このパラメーターを使用するには、リモート処理用にローカル コンピューターとリモート コンピューターを構成する必要があります。 Windows Vista 以降のバージョンの Windows オペレーティング システムでは、 管理者として実行 オプションを使用して PowerShell を開く必要があります。 詳細については、「about_Remote_Requirements」を参照してください。
AsJob パラメーターを指定すると、コマンドはすぐにバックグラウンド ジョブを表すオブジェクトを返します。 ジョブが完了しても、引き続きセッションで作業できます。 ジョブは、ローカル コンピューターで作成され、リモート コンピューターでの結果は自動的にローカル コンピューターに返されます。 ジョブを管理するには、 Job コマンドレットを使用します。 ジョブの結果を取得するには、 Receive-Job
コマンドレットを使用します。
Windows PowerShell バックグラウンド ジョブの詳細については、「 about_Jobs と about_Remote_Jobs」を参照してください。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-ComputerName
1 つのコンピューター名またはコンピューター名のコンマ区切りの配列を指定します。 Restart-Computer
は、パイプラインまたは変数から ComputerName オブジェクトを受け取ります。
リモート コンピューターの NetBIOS 名、IP アドレス、または完全修飾ドメイン名を入力します。 ローカル コンピューターを指定するには、コンピューター名、ドット .
、または localhost を入力します。
このパラメーターは、PowerShell リモート処理には依存しません。 コンピューターがリモート コマンドを実行するように構成されていない場合でも、 ComputerName パラメーターを使用できます。
ComputerName パラメーターが指定されていない場合は、ローカル コンピューターRestart-Computer
再起動します。
型: | String[] |
Aliases: | CN, __SERVER, Server, IPAddress |
配置: | 0 |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-Confirm
Restart-Computer
を実行する前に確認を求めるメッセージが表示されます。
型: | SwitchParameter |
Aliases: | cf |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Credential
このアクションを実行するアクセス許可を持つユーザー アカウントを指定します。 既定値は現在のユーザーです。
User01 や Domain01\User01 などのユーザー名を入力するか、Get-Credential
コマンドレットによって生成されたPSCredential オブジェクトを入力します。 ユーザー名を入力すると、パスワードの入力を求められます。
資格情報は PSCredential オブジェクトに格納され、パスワードは SecureString として格納されます。
Note
SecureString データ保護の詳細については、「 SecureString のセキュリティ保護方法」を 参照してください。
型: | PSCredential |
配置: | 1 |
規定値: | Current user |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-DcomAuthentication
WMI 接続に使用する認証レベルを指定します。 Restart-Computer
は WMI を使用します。
有効な値は次の通りです。
- 呼び出し: 呼び出しレベルの COM 認証
- 接続: 接続レベルの COM 認証
- 既定値: Windows 認証
- なし: COM 認証なし
- パケット: パケット レベルの COM 認証。
- PacketIntegrity: パケット整合性レベルの COM 認証
- PacketPrivacy: パケット プライバシー レベルの COM 認証。
- 変更なし: 認証レベルは前のコマンドと同じです。
詳細については、「 AuthenticationLevel 列挙型を参照してください。
このパラメーターは、Windows PowerShell 3.0 で導入されました。
型: | AuthenticationLevel |
Aliases: | Authentication |
指定可能な値: | Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Delay
クエリの頻度を秒単位で指定します。 PowerShell は、 For パラメーターで指定されたサービスに対してクエリを実行し、コンピューターの再起動後にサービスを使用できるかどうかを判断します。
このパラメーターは、 Wait および For パラメーターと共にのみ有効です。
このパラメーターは Windows PowerShell 3.0 で導入されました。
Delay パラメーターが指定されていない場合、Restart-Computer
は 5 秒の遅延を使用します。
型: | Int16 |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-For
指定したサービスまたは機能がコンピューターの再起動後に使用可能になるまで待機する PowerShell の動作を指定します。 このパラメーターは、 Wait パラメーターでのみ有効です。
このパラメーターの有効値は、次のとおりです。
- 既定値: PowerShell の再起動を待機します。
- PowerShell: コンピューター上の PowerShell リモート セッションでコマンドを実行できます。
- WMI: コンピューターのWin32_ComputerSystem クエリへの応答を受信します。
- WinRM: WS-Management を使用して、コンピューターへのリモート セッションを確立できます。
このパラメーターは Windows PowerShell 3.0 で導入されました。
型: | WaitForServiceTypes |
指定可能な値: | Wmi, WinRM, PowerShell |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Force
コンピューターの即時再起動を強制します。
型: | SwitchParameter |
Aliases: | f |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Impersonation
このコマンドレットが WMI の呼び出しに使用する偽装レベルを指定します。 Restart-Computer
は WMI を使用します。
このパラメーターの有効値は、次のとおりです。
- 既定値: 既定の偽装。 名前にもかかわらず、これは既定値ではありません。
- 匿名: 呼び出し元の ID を非表示にします。
- 識別: オブジェクトが呼び出し元の資格情報を照会できるようにします。
- 偽装: オブジェクトが呼び出し元の資格情報を使用できるようにします。
型: | ImpersonationLevel |
指定可能な値: | Default, Anonymous, Identify, Impersonate, Delegate |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Protocol
コンピューターの再起動にどのプロトコルを使用するかを指定します。 有効な値は、 WSMan および DCOM です。
このパラメーターは、Windows PowerShell 3.0 で導入されました。
型: | String |
指定可能な値: | DCOM, WSMan |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-ThrottleLimit
このコマンドを実行するために確立できる最大コンカレント接続数を指定します。 スロットル制限は現在のコマンドのみに適用され、セッションまたはコンピューターには適用されません。
ThrottleLimit パラメーターが指定されていないか、値 0 が使用されている場合、Restart-Computer
は最大 32 個の同時接続を使用します。
型: | Int32 |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Timeout
待機期間を秒単位で指定します。 タイムアウトが経過すると、コンピューターが再起動されていなくても、 Restart-Computer
はコマンド プロンプトに戻ります。
Timeout パラメーターは、Wait パラメーターでのみ有効です。 Timeout は、 Wait パラメーターの無期限の待機期間をオーバーライドします。
このパラメーターは Windows PowerShell 3.0 で導入されました。
型: | Int32 |
Aliases: | TimeoutSec |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Wait
Restart-Computer
は PowerShell プロンプトを抑制し、コンピューターが再起動されるまでパイプラインをブロックします。 スクリプトでこのパラメーターを使用すると、コンピューターを再起動し、再起動が完了したときに処理を続行できます。
Wait パラメーターは、コンピューターが再起動するまで無期限に待機します。 Timeout を使用すると、タイミングと For パラメーターと Delay パラメーターを調整して、再起動されたコンピューターで特定のサービスが使用可能になるまで待機できます。
Wait パラメーターは、ローカル コンピューターを再起動するときに無効です。 ComputerName パラメーターの値にリモート コンピューターとローカル コンピューターの名前が含まれている場合、Restart-Computer
はローカル コンピューターで Wait の終了エラーを生成しますが、リモート コンピューターの再起動を待機します。
このパラメーターは Windows PowerShell 3.0 で導入されました。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-WhatIf
Restart-Computer
が実行された場合の動作を示します。 Restart-Computer
コマンドレットは実行されません。
型: | SwitchParameter |
Aliases: | wi |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-WsmanAuthentication
ユーザー資格情報の認証に使用するメカニズムを指定します。 このパラメーターは Windows PowerShell 3.0 で導入されました。
このパラメーターに使用できる値は、 Basic、 CredSSP、 Default、 Digest、 Kerberos、および Negotiate です。
詳細については、「 AuthenticationMechanismを参照してください。
警告
資格情報セキュリティ サービス プロバイダー (CredSSP) 認証は、ユーザー資格情報が認証されるリモート コンピューターに渡される認証で、リモート ネットワーク共有へのアクセスなど、複数のリソースで認証を必要とするコマンド用に設計されています。 このメカニズムを使用すると、リモート操作のセキュリティ リスクが高まります。 リモート コンピューターのセキュリティが低下している場合は、そのリモート コンピューターに渡される資格情報を使用してネットワーク セッションが制御される場合があります。
型: | String |
指定可能な値: | Basic, CredSSP, Default, Digest, Kerberos, Negotiate |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
入力
コンピューター名を含む文字列をこのコマンドレットにパイプできます。
出力
None
既定では、このコマンドレットは出力を返しません。
System.Management.Automation.RemotingJob
AsJob パラメーターを使用すると、このコマンドレットはジョブ オブジェクトを返します。
メモ
Restart-Computer
は Windows を実行しているコンピューターでのみ動作し、ローカル システムを含むシステムをシャットダウンするために WinRM と WMI が必要です。Restart-Computer
は、Windows Management Instrumentation (WMI) Win32_OperatingSystem クラスのWin32Shutdown メソッドを使用します。 この方法では、コンピューターの再起動に使用するユーザー アカウントに対して SeShutdownPrivilege 権限を有効にする必要があります。
Windows PowerShell 2.0 では、リモート コンピューターを再起動または停止するときに、 AsJob パラメーターが確実に機能しません。 Windows PowerShell 3.0 では、この問題を解決するように実装が変更されました。
関連リンク
PowerShell