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
を使用することが実用的になります。
エンタープライズ ファイアウォールなどによって分散コンポーネント オブジェクト モデル (DCOM) 呼び出しがブロックされた場合に備えて、WS-Management (WSMan) プロトコルを使用してコンピューターを再起動できます。 詳細については、「WS-Management プロトコルの」を参照してください。
このコマンドレットでは、コマンドで 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 指定します。
偽装 パラメーターは、要求者の 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 オブジェクトに格納され、パスワードは SecureStringとして格納されます。
手記
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 パラメーターは、コンピューターが再起動するまで無期限に待機します。 タイムアウト を使用して、タイミングと For および Delay パラメーターを調整して、再起動されたコンピューターで特定のサービスが使用可能になるまで待機できます。
Wait パラメーターは、ローカル コンピューターを再起動するときに無効です。
ComputerName パラメーターの値にリモート コンピューターとローカル コンピューターの名前が含まれている場合、Restart-Computer
は、ローカル コンピューターで 待機するが、リモート コンピューターの再起動を待機するために終了しないエラーを生成します。
このパラメーターは、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 では、この問題を解決するために実装が変更されています。