【发布时间】:2013-07-17 16:45:44
【问题描述】:
我使用以下命令在远程 Windows 机器上运行 setup_server.exe:
powershell -command "$encpass=convertto-securestring -asplaintext RPASSWORD -force;$cred = New-Object System.Management.Automation.PSCredential -ArgumentList RUSER,$encpass; invoke-command -computername RCOMPUTERNAME -scriptblock {setup_server.exe} -credential $cred;"
setup_server.exe 的任务是创建一些配置文件并启动my_server.exe(一些守护进程),然后它就完成了。我希望my_server.exe 在setup_server.exe 完成后继续运行。
因此,当我通过本地机器上的 CMD 执行此操作时(即仅从 CMD 运行 setup_server.exe)它可以工作,但是当我通过远程主机上的 powershell 执行此操作时它不起作用。即my_server.exe 启动,但在setup_server.exe 关闭后服务器也关闭(杀死)。
所以问题如下: 我应该使用哪些 powershell 标志/cmdlet 来使所描述的场景在本地模式下工作?
注意:我想同步获取setup_server.exe 的输出,因此使用-AsJob 标志运行远程命令可能对我不起作用,尽管我什至不知道它是否会在@987654332 之后保持服务器活动@的结束。
【问题讨论】:
-
要么创建服务或计划任务来运行您的 exe 吗?
-
如果你通过
Start-Process(非阻塞的ps会话)而不是直接启动setup_server.exe是否有效?
标签: windows powershell cmd powershell-2.0 remote-access