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