Mih*_*yan 6 windows powershell cmd remote-access powershell-2.0
我使用以下命令setup_server.exe在远程 Windows机器上运行:
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;"
Run Code Online (Sandbox Code Playgroud)
setup_server.exe的任务是创建一些配置文件并启动my_server.exe(一些守护进程),然后它完成。我想my_server.exe在setup_server.exe完成后继续运行。
因此,当我通过本地机器上的 CMD 执行此操作(即仅从setup_server.exeCMD运行)时,它可以工作,但是当我通过远程主机上的 powershell 执行此操作时,它不起作用。即my_server.exe开始,但在setup_server.exe关闭后服务器也被关闭(被杀死)。
所以问题如下:我应该使用哪些 powershell 标志/cmdlet 来使所描述的场景像在本地模式下一样工作?
注意:我想同步获取 的输出setup_server.exe,因此运行带有-AsJob标志的远程命令,可能对我不起作用,尽管我什至不知道它是否会在setup_server.exe结束后保持服务器的活动状态。
命令完成后保持远程 PowerShell 会话运行的方法是使用 PSSession,例如:
$s = new-PSSession computername
Invoke-Command -session $s { ..script.. }
... do other stuff, remote powershell.exe continues to run
Remove-PSSession $s # when you're done with the remote session
Run Code Online (Sandbox Code Playgroud)
一般来说,exe 应该独立于启动它们的应用程序运行。