我已经在远程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上运行,但实际上它什么也不做,只是挂在那里。我试图在脚本中放置一个简单的代码“写出/主机”字符串。我在RTS上运行相同的脚本,在那里工作。

不确定我是否错过了使用PSEXEC运行脚本的其他任何内容,或者是PSEXEC.EXE限制。我想在遥控器上启动一个PS脚本,以便从我的框中在本地进行某些地方(本地压缩某些文件并删除旧文件)。

我在Stackoverflow中问了一个类似的问题: 通过PowerShell运行远程流程. 大学教师 建议我使用PSEXEC。这听起来像是解决问题的另一种方法。但是,我无法与PowerShell一起使用。有什么方法可以在远程PC上使用PS?

顺便说一句,我无法使用PS 2.0,因为我的网络不允许我安装Windows XP SP3,这是PS 2.0所需的。

有帮助吗?

解决方案

在进一步调查了PSEXEC工具之后,我想我得到了答案。我需要添加-i选项来告诉PSEXEC以交互式模式以远程启动流程:

PSExec \\RPC001 -i -u myID -p myPWD PowerShell C:\script\StartPS.ps1 par1 par2

没有-i,PowerShell.exe将在等待模式下在遥控器上运行。有趣的观点是,如果我运行一个简单的蝙蝠(蝙蝠中没有PS),则可以正常工作。也许这对PS案很特别?欢迎评论和解释。

其他提示

公认的答案对我不起作用,但以下是:

>PsExec.exe \\<SERVER FQDN> -u <DOMAIN\USER> -p <PASSWORD> /accepteula cmd 
    /c "powershell -noninteractive -command gci c:\"

示例来自 这里

您可以尝试以下操作吗?

psexec \\server cmd /c "echo . | powershell script.ps1"

接受的答案对我不起作用,但这确实如此。确保位置中的脚本(C: temp_下面的每个远程服务器上的脚本。Server.txt包含IP地址列表(每行1)。

psexec @servers.txt -u <username> cmd /c "powershell -noninteractive -file C:\temp\script.ps1"
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top