web-dev-qa-db-ja.com

バッチファイルをWindowsマシンに送信し、実行します

PsExecは、ネットワーク上のコンピューターを介してファイルを送信し、そのリモートコンピューターで実行するのに最適ですが、ソフトウェアを開発していて、依存関係としてPsExecを使用できないため、PsExecを使用できません(法的な理由など)。

リモートコンピュータで実行部分を実現する最も簡単な方法は何ですか?本当に大変ですか?私はすでにxcopyで.batファイルをコピーしています...私はそれを実行する必要があります。

1
Luca Matteis

WMIを使用して、リモートでスクリプトまたはバイナリを実行できます。これは、リモートコンピューターFCSD-ISC1にあるバッチファイルC:\test.cmdを実行するVBSで記述された最小限の例です。

strComputer = "FCSD-ISC1"
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2:Win32_Process")
objWMIService.Create "C:\test.cmd", null, null, intProcessID

これについては、 このScripting Guyの記事 で詳しく説明しています。

5
jscott

C $共有をマウントし、。\ Tempディレクトリをテストして(存在しない場合は作成します)、そこにコピーすることをお勧めします。 (「admin $」管理共有がありますが、使用しないことをお勧めします。)

これは、コマンドラインからNet Use * \\servername\c$ /user:domain/accountを介して実行するか、ドライブをNet Use t: \\servername\c$ /user:domain/accountとして指定できます。

これはMSDNで十分に文書化されているはずです。スクリプト用に作成する場合、Microsoft ScriptCenterリポジトリには多くの例があります

2
gWaldo

私はもう関係がないことを知っていますが、完全性のために(このページはグーグルで高いです)私はここに追加しますPsexecのオープンソースバージョンであるRemComはここでそれを取得します: http://sourceforge.net/projects/rce /