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 回答