远程执行 Powershell 命令

远程执行 Powershell 命令

我有一台安装了软件包的 Linux 服务器winexe。它与 PSExec 相同,在运行简单命令时一切正常,但当我使用下面的命令运行它时,我收到解析错误!

winexe -U user%password //host "powershell -Command (New-Object System.Net.WebClient).DownloadFile("http://host/filename.iso","c:\file.iso")"

有人能弄清楚这是什么问题吗?这是否会导致 URL 和文件名周围的引号与整个命令周围的引号发生冲突?

答案1

尝试使用以下格式:powershell.exe -Command "& {<command>}"

用你的例子来说,这对我有用:

powershell.exe -Command "& {(New-Object System.Net.WebClient).DownloadFile('http://google.com/robots.txt','c:\robots.txt')}"

另外,我在DownloadFile

参考:http://technet.microsoft.com/en-us/library/hh847736.aspx

答案2

嵌套使用双引号不起作用。请尝试以下方法:

winexe -U user%password //host "powershell -Command (New-Object System.Net.WebClient).DownloadFile('http://host/filename.iso','c:\file.iso')"

答案3

最简单的方法是使用单引号直接运行命令。例如,可以按如下方式列出进程:

winexe -U "Domain\PC-Name" //IP Address 'powershell.exe Get-Process'

相关内容