确定用户在 Windows 更新后是否可以使用 RDP

Determine if users can RDP after Windows Update

我正在为一组 SQL 服务器自动化 windows 更新,主要是 运行 在 Windows Server 2016 上。通常在安装更新后,您必须重新启动,并且在重新启动后的一段时间内,服务器正在应用更新并且用户无法远程访问服务器。在我的自动化中,我想等到那段时间结束后再报告更新成功。有没有我可以通过 powershell 远程检查的指示器来确定用户是否可以远程进入?

这段时间我检查了主要的 RDP 服务(termservice、SessionEnv 和 UmRdpService),它们都是 运行,所以如果有某种指标,那不是它们。也许某处有一个字段表明 windows 正在应用更新?如果重要的话,所有服务器都通过 VMWare 虚拟化。

感谢阅读!

如何测试远程桌面服务侦听的端口

test-netconnection server -port 3389

我在 ServerFault 上也没有任何运气,但我最终自己找到了解决方案,张贴在这里以防有人发现这个线程寻求帮助。

当您可以通过 RDP 返回服务器时,这实际上并不是一种改变状态的服务;这可能是在 windows 代码的某处确定的,您无法找到该标志。但是,TIWorker 程序在重新启动后运行以安装 windows,根据我最近的经验,当该 exe 完成时,您可以 100% 的时间进行 RDP,这对我的自动化来说已经足够了。

我以 5 秒的间隔循环遍历这段代码,直到 returns 0 行,然后结束。

    Get-Process -ComputerName $server | ? {$_.ProcessName -match 'TiWorker'}