PsExecでWindowsをリモート操作

こんにちは松田です。

Windowsサーバを運用していると、ちょっとサーバでコマンド実行したいときに、

わざわざリモートデスクトップで接続するのは面倒くさい…ということがあると思います。

そんなときに使えるリモートでコマンドを実行する方法をご紹介します。

対象バージョン

  • Windows Vista以上
  • Windows Server 2008以上

PsExecのダウンロード

マイクロソフトが公開しているPsExecを使うことでリモートから任意のコマンドが実行できます。

https://docs.microsoft.com/en-us/sysinternals/downloads/psexec

からPsTools.zipをダウンロードし、適当なフォルダ(今回はC:\PsTools)に解凍します。

exeファイルがたくさん含まれていますが、PsExec.exeだけあればOKです。

リモートコマンドの実行

コマンドプロンプトを起動し、PsExec.exeにパスが通るようにフォルダ移動して、以下の形式で実行します。

cd C:\PsTools
PsExec.exe -u [ユーザ] -p [パスワード] \\[対象サーバ] [実行コマンド]

ユーザ名がAdministrator、パスワードが12345678、対象サーバが192.168.10.20、実行コマンドがipconfigの場合は、以下のようになります。

c:\PSTools> PsExec.exe -u Administrator -p "12345678" \\192.168.10.20 ipconfig

PsExec v2.2 - Execute processes remotely
Copyright (C) 2001-2016 Mark Russinovich
Sysinternals - www.sysinternals.com

Windows IP 構成

不明なアダプター ローカル エリア接続:

   メディアの状態. . . . . . . . . . . .: メディアは接続されていません
   接続固有の DNS サフィックス . . . . .:

イーサネット アダプター ローカル エリア接続:

   接続固有の DNS サフィックス . . . :
   IPv4 アドレス . . . . . . . . . . : 192.168.10.20
   サブネット マスク . . . . . . . . : 255.255.255.0
   デフォルト ゲートウェイ . . . . . : 192.168.10.1

ipconfig exited on 192.168.10.20 with error code 0.

なお、PsExecが出力するメッセージは標準エラー出力なので、2>${NULL}で捨てることでリモートコマンドの結果のみ表示させることができます。

実行できない場合

PsExecはポート445番(管理共有)を利用します。

対象サーバで管理共有が有効になっていること、ポート445番がファイアウォールで許可されていることをご確認ください。

WindowsXPやWindowsServer2003などの古いOSの場合は、エラーとなり実行できませんでした。

また、Windows7とWindowsServer2008(R2含む)は実行はできましたが、PsExecのコマンドプロンプトへの標準(エラー)出力が途中で止まることがありました。

終わりに

サクっとコマンドを実行したい場合は、PsExecは便利です。

また、RDPと違ってコマンド実行できるので、バッチからリモートコマンドを実行したい場合にも使えます。

ぜひ活用してみてください。

関連記事

TOP
TOP