3

A.bat というバッチ ファイルがあります。実行時に、この A.bat は別のバッチ ファイル、たとえば remote.bat を作成します。

remote.bat を手動でリモート マシンにコピーすると、100% 完璧に動作します。ただし、A.bat で psExec の一部として使用すると、まったく機能しません。ただし、実行中の私のA.batは..

Connecting to ABCDEF machine
Starting PsExec Server on ABCDEF machine
Copying C:\remote.bat on ABCDEF machine
Started C:\remote.bat ABCDEF machine with Process Id XXXX

ただし、remote.bat ファイルはまったく実行されていないように見えます。

私がremote.batの中に持っているのは..

net use \\DIR1\DIR2 password /user:Administrator 
XCOPY \\DIR1\DIR2\DIR3\DIR4\* c:\DIR3\DIR4\ /E 

リモート マシンの C: の下に作成された DIR3\DIR4 がまったく表示されません。ただし、remote.bat を手動でコピーしてリモート マシンで実行すると機能します。

PsExec を呼び出すために使用するコマンドは次のとおりです。

psexec \\MachineName -u Administrator -p pasword -d -c -f c:\remote.bat

何かアドバイス?お願いします?

4

1 に答える 1

2

BATファイルとCMDの関連付けは、ローカルユーザープロファイルにあります。Shellがそれを正確に処理する方法はわかりませんが、リモートターゲットでpsexecを呼び出しても、cmdを呼び出してバッチファイルを実行することはできません。

代わりにこのようcmd.exe /cに前に置いてください:remote.bat

psexec \\MachineName -u Administrator -p pasword -d -c -f cmd.exe /c c:\remote.bat

ただし、最初にファイルremote.batを取得する必要があります。全体は次のようになります:

net use \\MachineName\C$ password /user:Administrator 
XCOPY remote.bat \\MachineName\C$\remote.bat
psexec \\MachineName -u Administrator -p pasword -d -c -f cmd.exe /c c:\remote.bat
net use /delete \\MachineName\C$
于 2011-06-22T02:36:20.727 に答える