我在远程PC(RPC001)上安装了PS 1.0.我使用Windows Sysinternals工具PSExec.exe在远程执行以下过程:
PSExec \\RPC001 -u myID -p myPWD PowerShell C:\script\StartPS.ps1 par1 par2
我之后可以看到PowerShell.exe进程在远程PC上运行,但它实际上什么也没做,只是挂在那里.我试着在脚本中放一个简单的"Write-Output/Host"代码.我通过RTS在遥控器上运行相同的脚本,它在那里工作.
不确定我是否遗漏了使用PSExec运行脚本的任何其他内容,或者它是PSExec.exe限制.我想在远程启动一个PS脚本,在本地做一些事情(在本地压缩一些文件并删除旧文件).
我在Stackoverflow中问了一个类似的问题:PowerShell 运行远程进程.唐建议我使用PSExec.这听起来像是解决问题的另一种方法.但是,我无法使用PowerShell.有什么办法让PS在远程PC上工作?
顺便说一句,我不能使用PS 2.0,因为我的网络不允许我安装PS 2.0所需的Windows XP SP3.
在进一步调查PSExec工具之后,我想我得到了答案.我需要添加-i选项告诉PSExec以交互方式在远程启动进程:
PSExec \\RPC001 -i -u myID -p myPWD PowerShell C:\script\StartPS.ps1 par1 par2
没有-i,powershell.exe正在等待模式下的远程运行.有趣的是,如果我运行一个简单的蝙蝠(没有PS蝙蝠),它工作正常.也许这对于PS案件来说是特别的吗?欢迎评论和解释.
接受的答案对我不起作用,但以下是:
>PsExec.exe \\-u -p /accepteula cmd /c "powershell -noninteractive -command gci c:\"
这里的例子