2011-05-13 174 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$