我一直试图使用PowerShell远程控制来运行计算器。我进入了powershell会话(使用Enter-PSSession
),并输入以下命令:
Start-Process calc.exe
我看着远程计算机,什么也没出现。当我尝试其他命令如Get-Process
或Stop-Process
时,它们可以正常工作。我在网上看了一下,看到我应该尝试使用-PassThrough
查看它是否做了什么,我得到了这个结果:
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
7 4 1228 2388 35 0.02 528 calc
所以我决定在我正在连接的计算机上查看任务管理器,看看进程是否正在运行,但它并不存在。只有当我点击"显示来自所有用户的流程时#34;它出现了,即使进程中列出的用户是我登录的用户。我尝试使用其他一些Windows程序,如mspaint和记事本,并得到相同的结果。
有谁知道为什么会这样?这些过程似乎在没有打开gui的情况下运行。
编辑:我刚刚注意到会话关闭后进程停止了。有办法克服这个问题吗?
答案 0 :(得分:3)
当您使用enter-pssession
创建会话时,它是自己的"实体" - 您无法将其连接到交互式桌面会话,也没有任何GUI用于您开始与之交互的应用程序。它只是一个基于交互式文本的控制台,即使您已经登录到控制台,它也是两个独立的用户会话,但它们无法通信。
因此即使您可以启动具有GUI的进程,也没有用于附加或显示的GUI。