2011-05-13 159 views
3

我有一个批处理文件,说A.bat 在执行时,这个A.bat将创建另一个批处理文件,说remote.batDOS批处理编程PSEXEC

如果我手动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 

我没有看到DIR3 \ DIR4越来越在C创建:我的远程机器都没有。但是,如果我手动复制remote.bat并在远程计算机上执行它,它将起作用。

我用来调用PSEXEC是

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

任何意见的命令?请?

+1

DOS ... whoooboy。我无法提供任何建议来解决此问题,但是您也可以尝试superuser.com上的问题。我不确定您的反馈会更好还是更糟。 – Joe 2011-05-13 04:47:02

+0

投票结束并迁移到超级用户。它只需要更多的选票。顺便说一句,因为你的批处理文件在远程机器上工作正常,它看起来像你在这里使用'psexec'。 “psexec”命令中的c:\ remote.bat是指远程机器上的副本* – pavium 2011-05-13 04:50:47

+0

@Joe:好的,如果不是DOS批处理编程,您还有什么建议在VPN上的远程机器上执行任务? – 2011-05-13 05:34:50

回答

2

BAT文件与C​​MD的关联在您的本地用户配置文件中。我不知道Shell如何处理它,但在远程目标上调用psexec不会调用cmd来运行批处理文件。

cmd.exe /cremote.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$