PsExecでWindowsをリモート操作

posted in: ツール | 0

こんにちは松田です。
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にパスが通るようにフォルダ移動して、以下の形式で実行します。

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

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

実行できない場合

PsExecはポート445番(管理共有)を利用します。
対象サーバで管理共有が有効になっていること、ポート445番がファイアウォールで許可されていることをご確認ください。
WindowsXPやWindowsServer2003などの古いOSの場合は、エラーとなり実行できませんでした。
また、Windows7とWindowsServer2008(R2含む)は実行はできましたが、PsExecのコマンドプロンプトへの標準(エラー)出力が途中で止まることがありました。

終わりに

サクっとコマンドを実行したい場合は、PsExecは便利です。
また、RDPと違ってコマンド実行できるので、バッチからリモートコマンドを実行したい場合にも使えます。
ぜひ活用してみてください。

LINEで送る
Pocket