次の方法で共有


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 パラメーターを使用して Server01Server02 を指定します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_Jobsabout_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

コンピューターの再起動にどのプロトコルを使用するかを指定します。 有効な値は WSManDCOM です

このパラメーターは、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 で導入されました。

このパラメーターに使用できる値は、 BasicCredSSPDefaultDigestKerberosNegotiate です。

詳細については、「 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

入力

String

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 では、この問題を解決するように実装が変更されました。