繁体   English   中英

如何(管理员)使用Windows 2008 R2远程桌面服务上的Powershell正常关闭在另一个用户会话中运行的窗口进程

How do I (administrator) gracefully close a window process running in another user session using powershell on Windows 2008 R2 Remote Desktop Services

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

如果我在会话中运行以下命令...

(Get-Process -Id $pid).CloseMainWindow()

我能够正常关闭进程(不会出现模式窗口或其他弹出窗口)。

但是,如果该pid在同一台计算机上的另一个用户会话中(正在运行RDS),则该进程不会关闭,并且CloseMainWindow()返回FALSE(如果在我自己的会话中运行,则返回TRUE)。 如果我从其他用户的会话中运行Powershell,它也将起作用。

我特别需要一种可以正常关闭程序的方法,因为该程序具有一些重要的清除操作,可以使其数据库保持秩序。 因此stop-process或process.kill()将不起作用。

1 个回复

经过长时间的研究,似乎不可能做到这一点。 但是,有一种解决方案至少可以满足我的一些要求。

您可以创建Windows计划任务,该任务在会话断开连接时触发。 这允许您以用户 (而不是管理员)身份运行清理作业,从而允许程序正常退出。

它有两个主要缺点。

  1. 即使用户只是轻微的网络中断,它也会被调用(因此,您必须在脚本中构建一个wait()函数以使其休眠一会儿,然后检查它是否仍然断开连接-这不是一个干净的解决方案。

  2. 注销事件期间不会调用它。 为此,您需要使用由GPO触发的注销脚本。

希望这对以后的人有所帮助。

3 以编程方式注销非管理员帐户上的远程桌面会话

我正在制作一个显示所有远程桌面会话并查找特殊进程并显示该进程是否正在该会话上运行的工具。 而且我需要注销用户。 我通过右键单击并选择“以管理员身份运行”来启动应用程序,我无法将requestExecutionLevel设置为admin,因为当您没有管理员权限时,您仍然可以查看所有会话。 ...

4 Windows服务在远程桌面中运行桌面程序

我需要在远程桌面中启动程序,该程序打开一个窗口并需要用户交互,但是我的应用程序是Windows服务。 我正在使用Windows2008。我已经成功创建了一个应用程序,但是仅通过鼠标,键盘和会话启动了启动程序,但是我需要在RDP中启动。 现在,我正在使用这些功能。 但是,只有在 ...

5 如何使用Powershell停用Windows远程桌面?

我们所有的测试盒都在VM上运行(Windows Server 2003/08),测试人员只能通过远程桌面访问它们。 某些维护步骤需要从系统中踢出所有用户并通过远程桌面停用访问权限。 我开始在powershell中编写维护脚本,并且正在寻找暂时停用远程桌面的方法。 这是可能的,任何直 ...

6 远程会话已断开连接,因为2008 r2中的远程桌面许可证服务器

我是第一次发布。 我在Windows 2008 r2上使用Google Server。 我已经安装了TS Plus,用于客户端生成。 突然所有客户开始出现此错误。 当我尝试使用管理员凭据连接服务器时,它给了我同样的错误。 我不知道该怎么办。 我找到了相关文章,但一无所获。 请帮我解 ...

9 以管理员身份启动PowerShell进程-窗口关闭

在PowerShell窗口中使用以下代码: 这可以正常工作,但是PowerShell实例不在提升的管理员模式下。 我试过了: 这将打开一个PowerShell实例,但会立即关闭。 如何停止新的提升权限的PowerShell实例关闭? ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM