Windows
 Computer >> コンピューター >  >> システム >> Windows

PowerShellを使ってWindows 10パソコンをリモートで再起動する6つの方法

システム管理者をはじめ、サーバーやPCの再起動が必要になる場面は少なくありません。通常はGUI(グラフィカルユーザーインターフェース)からリモートシャットダウンや再起動を行うことができますが、PowerShellを使えば、より柔軟かつ効率的にリモートコンピューターを再起動できます。本記事では、PowerShellを活用してWindows 10マシンをリモート再起動する6つの方法を詳しく解説します。

PowerShellでWindows 10をリモート再起動する手順

これらの方法を実行するための前提条件として、リモートシステムに接続でき、必要な認証が行えることを確認してください。また、対象のリモートシステムが「再起動保留」の状態になっていないことも事前にチェックしておきましょう。

事前に準備が必要なものは以下のとおりです。

  • リモートコンピューターのローカルAdministratorsグループに所属するユーザーアカウント
  • Windows PowerShell または PowerShell Core

1] Restart-Computerコマンドレットで再起動する

Restart-Computerコマンドレットは、シンプルでありながら柔軟なパラメーターを持つ、最も基本的な方法です。このコマンドを機能させるための追加の前提条件として、WinRMが構成され、リモートコンピューターのWindowsファイアウォールで許可されていること、さらにWMIがWindowsファイアウォール経由で許可されていることを確認してください。

Restart-Computer -ComputerName $ComputerName -Force

複数のコンピューターを並列で再起動する場合は、次のコマンドを実行します。

$ComputerArray | ForEach-Object -Parallel {
Restart-Computer -ComputerName $_ -Force
} -ThrottleLimit 3

2] Invoke-CimMethodコマンドレットで再起動する

Invoke-CimMethodは、WMIメソッドを利用してリモートシステムを再起動する方法です。Restart-Computerほど柔軟ではありませんが、CIMセッションを介した確実な操作が可能です。

このコマンドを機能させるための追加の前提条件として、WinRMが構成され、リモートコンピューターのWindowsファイアウォールで許可されている必要があります。

Invoke-CimMethod -ComputerName $ComputerName -ClassName 'Win32_OperatingSystem' -MethodName 'Reboot'

3] shutdown.exeで再起動する

shutdown.exeは、Windowsに標準搭載されているシステム再起動用の実行ファイルです。PowerShellコマンドではありませんが、堅牢で豊富なオプション群を提供しています。

このコマンドを機能させるための追加の前提条件として、リモートコンピューターでリモートレジストリサービスが有効になっていること、およびWMIがWindowsファイアウォールで許可されていることを確認してください。

shutdown.exe /m \\remotecomputer /r /t 0

4] PSExec.exeで再起動する

Sysinternalsツールキットの中でも最も利用頻度の高いユーティリティの一つであるpsexec.exeは、リモートシステムとの対話を容易にする多彩な機能を備えています。

このコマンドを機能させるための追加の前提条件として、SMBサービスが実行中であること、ファイルとプリンターの共有が有効であること、簡易ファイル共有が無効であること、そしてadmin$管理共有が利用可能であることを確認してください。

psexec.exe -d -h \\remotecomputer "shutdown.exe /r /t 0 /f"

5] RunDLL32.exeで再起動する

rundll32.exeは、shell32.dllなどの内部実行ファイルやWindows APIに対して特定のメソッドを実行するための手段を提供します。この機能を使ってシステムを再起動する方法は2つありますが、このコマンド自体は単体ではリモート実行できないため、Invoke-Commandと組み合わせてリモートシステム上で実行します。

方法1:

Invoke-Command -ComputerName $ComputerName -ScriptBlock { & rundll32.exe user.exe ExitWindowsExec }

方法2:

Invoke-Command -ComputerName $ComputerName -ScriptBlock { & rundll32.exe user.exe ExitWindowsExec }

6] Taskkill.exeで再起動する

最後に紹介するのはtaskkill.exeです。やや回りくどい方法ですが、Windowsの再起動を実現できます。lsass.exeプロセスを強制終了することで、Windowsの再起動が強制的にトリガーされます。

taskkill.exe /S \\remotecomputer /IM lsass.exe /F

以上、PowerShellを使ってリモートコンピューターを再起動する6つの方法でした。環境や権限に応じて最適な方法を選択し、日々のシステム管理業務にお役立てください。

  1. PowerShellでドライバーを一括エクスポートする方法【Windows 10】

    PowerShellをご存じでしょうか?PowerShellは、Windowsのシステム管理のために設計されたコマンドラインシェルおよびスクリプト言語です。Windows 10には最新バージョンであるPowerShell 5.0が標準搭載されており、ハードディスクのパーティション分割やシステムイメージの作成など、非常に便利な操作を実行できる強力なツールです。 この記事では、PowerShellの具体的な活用例として、「システムにインストールされているすべてのドライバーを外部のUSBメモリやDVDなどにエクスポート(書き出し)する方法」をご紹介します。この方法を使えば、システム上の全ドライバーを

  2. Windows 7でコマンドプロンプト(CMD)を使ってPCをリモートシャットダウンする方法

    パソコンを「リモート」でシャットダウンできると、急いでいるときなどに非常に便利です。わざわざその場まで移動しなくても、別の場所からシステムの電源を切ることができます。 ただし、実際にリモート操作を始める前に、まず押さえておくべき基本条件があります。 リモートシャットダウンに必要な前提条件 対象となるコンピューターの管理者権限が必要です。 ホームネットワークの場合は、すべてのコンピューターが同じワークグループに所属していること、そして同じ資格情報(ユーザー名とパスワード)を持つ管理者アカウントが設定されていることを確認してください。 対象コンピューターの正式なコンピューター名またはIPアドレス