步骤:
ps c:/> $ s = new -pssession -computername machineB ps c:/> Invoke-Command -Session $ s-ScriptBlock {$ filecount =(Get-ChildItem c:\ temp \ test.vbs -Recurse)} ps c:/> Invoke-Command -Session $ s-ScriptBlock {$ filecount}
我收到目录c:\ temp,文件名为test.vbs
现在我要执行test.vbs
ps c:/> Invoke-Command -ComputerName MachineB {& “C:\ TEMP \ test.vbs”}
执行上述命令后,我看不到test.vbs没有远程执行。 我的期望是收到消息箱。
我不理解它是否被执行。
任何人都可以帮我在本地使用power shell执行远程脚本。
非常感谢。
答案 0 :(得分:0)
如果我对你的问题的理解是正确的,你想从机器A对机器B执行test.vbs,我认为它不可能在PowerShell中。
我前段时间遇到过同样的问题。 Enter-PsSession和Invoke-Command都不能为你做这件事可能只是因为它们不是为此而设计的。如果您远程运行任何PowerShell cmdlet,它们工作正常,例如Get-Item您可以轻松地在机器B上获取项目。但是如果您尝试执行PowerShell远程会话之外的操作,例如运行将启动新CScript.exe进程的vbs脚本,则它将无法工作。这是由于某种原因导致此PowerShell远程处理的底层实现。
如果你确实需要这样做,我有两个解决方法