当我在远程计算机上本地运行此命令时,它可以工作:
powershell -Command "(New-Object Net.WebClient).DownloadFile('<WebPath>', 'C:\Users\<user>\Desktop\file.exe')"
当我在批处理文件中使用PsExec远程尝试相同的命令时:
(Set downloadFileCommand = powershell -Command "(New-Object Net.WebClient).DownloadFile('%WebPath%', 'C$\Users\<user>\Desktop\file.exe')")
PsExec.exe \\<remote_machine> -u %username% -p %password% -s -d cmd /c %downloadFileCommand%
我正在使用进程ID #id_number在remote_machine上启动&#34; cmd。&#34;
但是,没有任何反应,下载也没有执行。这里的建议: Run PowerShell scripts on remote PC
对我不起作用。
有什么建议吗?
编辑:
我设法使用以下命令通过命令行(在cmd中)下载文件:
PsExec.exe \\<remote_machine> -u <username> -p <password> -d powershell -Command (New-Object Net.WebClient).DownloadFile('<url address','C:\file.exe')
但是当我在批处理文件中尝试这个时它不起作用:
(Set DownloadInstaller = "powershell -Command (New-Object Net.WebClient).DownloadFile('<url address','C:\file.exe')")
PsExec.exe \\<remote_machine> -u %username% -p %password% -h -d cmd /c %DownloadInstaller%
答案 0 :(得分:0)
这很有效 - 所有这一切都在一条线上。我有一个循环变量,一个远程计算机(%% a)。我假设当我使用PsExec时,C:\ ... \ file.exe在远程计算机中本地“认为”C:\,但可能并非如此。
我必须在一行中编写所有内容,因为DownloadFile中的路径(我要将文件下载到的位置)位于远程计算机本地(这是一个循环变量):
PsExec.exe \\%%a -u %username% -p %password% -h -d cmd /c powershell.exe -Command "&{ (New-Object System.Net.WebClient).DownloadFile('%url%','\\%%a\C$\Users\<username>\Desktop\%file%')}")