Restart-Computer

ローカル コンピューターとリモート コンピューターでオペレーティング システムを再起動します。

構文

Restart-Computer
       [-WsmanAuthentication <String>]
       [[-ComputerName] <String[]>]
       [[-Credential]<PSCredential>]
       [-Force]
       [-Wait]
       [-Timeout <Int32>]
       [-For <WaitForServiceTypes>]
       [-Delay <Int16>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]

説明

このコマンドレットは、Windows プラットフォームでのみ使用できます。

Restart-Computer コマンドレットは、ローカル コンピューターとリモート コンピューター上のオペレーティング システムを再起動します。

Restart-Computerのパラメーターを使用して、再起動操作を実行したり、認証レベルと代替資格情報を指定したり、同時に実行する操作を制限したり、即時再起動を強制したりできます。

Windows PowerShell 3.0 以降では、再起動が完了するまで待ってから次のコマンドを実行できます。 待機タイムアウトとクエリ間隔を指定し、再起動されたコンピューターで特定のサービスが使用可能になるまで待機します。 この機能により、スクリプトや関数で Restart-Computer を使用することが実用的になります。

例 1: ローカル コンピューターを再起動する

Restart-Computer はローカル コンピューターを再起動します。

Restart-Computer

例 2: 複数のコンピューターを再起動する

Restart-Computer リモート コンピューターとローカル コンピューターを再起動できます。 ComputerName パラメーターは、コンピューター名の配列を受け入れます。

Restart-Computer -ComputerName Server01, Server02, localhost

例 3: テキスト ファイルからコンピューター名を取得する

Restart-Computer は、テキスト ファイルからコンピューター名の一覧を取得し、コンピューターを再起動します。 ComputerName パラメーターが指定されていません。 ただし、これは最初の位置パラメーターであるため、パイプラインから送信されるテキスト ファイルのコンピューター名を受け入れます。

Get-Content -Path C:\Domain01.txt | Restart-Computer

Get-Content では、 Path パラメーターを使用して、テキスト ファイル ( Domain01.txt) からコンピューター名の一覧を取得します。 コンピューター名はパイプラインに送信されます。 Restart-Computer は、各コンピューターを再起動します。

例 4: テキスト ファイルに一覧表示されているコンピューターの強制的な再起動

次の使用例は、 Domain01.txt ファイルに一覧表示されているコンピューターを強制的に再起動します。 テキスト ファイルのコンピューター名は変数に格納されます。 Force パラメーターは、直ちに再起動を強制します。

$Names = Get-Content -Path C:\Domain01.txt
$Creds = Get-Credential
Restart-Computer -ComputerName $Names -Credential $Creds -Force

Get-Content では、 Path パラメーターを使用して、テキスト ファイル ( Domain01.txt) からコンピューター名の一覧を取得します。 コンピューター名は変数 $Namesに格納されます。 Get-Credential は、ユーザー名とパスワードの入力を求め、変数 $Credsに値を格納します。 Restart-Computer は、 ComputerName および Credential パラメーターを変数と共に使用します。 Force パラメーターを指定すると、各コンピューターが直ちに再起動されます。

例 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: WsmanAuthentication を使用してコンピューターを再起動する

Restart-Computer は、 WsmanAuthentication メカニズムを使用してリモート コンピューターを再起動します。 Kerberos 認証は、現在のユーザーがリモート コンピューターを再起動するアクセス許可を持っているかどうかを決定します。 詳細については、「 AuthenticationMechanismを参照してください。

Restart-Computer -ComputerName Server01 -WsmanAuthentication Kerberos

Restart-Computer は、 ComputerName パラメーターを使用して、リモート コンピューターである Server01 を指定します。 WsmanAuthentication パラメーターは、認証方法を Kerberos として指定します。

パラメーター

-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

このアクションを実行するアクセス許可を持つユーザー アカウントを指定します。 既定値は現在のユーザーです。

User01Domain01\User01 などのユーザー名を入力するか、Get-Credential コマンドレットによって生成されたPSCredential オブジェクトを入力します。 ユーザー名を入力すると、パスワードの入力を求められます。

資格情報は PSCredential オブジェクトに格納され、パスワードは SecureString として格納されます。

Note

SecureString データ保護の詳細については、「 SecureString のセキュリティ保護方法」を 参照してください。

型:PSCredential
配置:1
規定値:Current user
必須: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

-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 で導入されました。

このパラメーターに使用できる値は、 BasicCredSSPDefaultDigestKerberos、および Negotiate です。

詳細については、「 AuthenticationMechanismを参照してください。

警告

資格情報セキュリティ サービス プロバイダー (CredSSP) 認証は、ユーザー資格情報が認証されるリモート コンピューターに渡される認証で、リモート ネットワーク共有へのアクセスなど、複数のリソースで認証を必要とするコマンド用に設計されています。 このメカニズムを使用すると、リモート操作のセキュリティ リスクが高まります。 リモート コンピューターのセキュリティが低下している場合は、そのリモート コンピューターに渡される資格情報を使用してネットワーク セッションが制御される場合があります。

型:String
指定可能な値:Basic, CredSSP, Default, Digest, Kerberos, Negotiate
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

入力

String

コンピューター名を含む文字列をこのコマンドレットにパイプできます。

出力

None

このコマンドレットは、出力を返しません。

メモ

  • Windows では、Restart-Computerは Windows Management Instrumentation (WMI) Win32_OperatingSystem クラスのWin32Shutdown メソッドを使用します。 この方法では、コンピューターの再起動に使用するユーザー アカウントに対して SeShutdownPrivilege 権限を有効にする必要があります。
  • Linux および Mac OS では、 Restart-Computer/sbin/shutdown bash ツールを使用します。