我见过这个问题但我有一个特定的要求:我需要让 Windows 服务器机器在重新启动后启动用户会话,而无需解锁用户屏幕。
原因是我需要在一台需要用户会话的机器上自动运行很多东西,而这台机器每天都需要重启。我为这台机器使用了 VMWare 云提供商。如果我使用自动登录,提供商将能够访问这台机器的桌面而无需输入密码,如果我通过 SSH 或 RDP 连接(提供商会被要求输入密码),就不会发生这种情况。我相信如果我能够在不登录用户的情况下启动用户,那么这个问题就可以解决了。
答案1
一个想法是重复运行计划任务:
- 检查是否没有运行 SSH 会话并锁定屏幕
- 检测SSH正在运行并解锁屏幕。
要检测 SSH 会话,请参阅帖子 Powershell 替代 Unix 的 who 命令来显示 ssh 会话。
可以使用 PowerShell 编写该任务。本文中的以下命令将检测 SSH 会话:
Get-CimInstance -ClassName Win32_Process -Filter "Name = 'sshd.exe'" | Get-CimAssociatedInstance -Association Win32_SessionProcess | Get-CimAssociatedInstance -Association Win32_LoggedOnUser | Where-Object {$_.Name -ne 'SYSTEM'}
要锁定屏幕,您可以使用
nircmd
使用命令nircmd.exe monitor off
,或
显示关机实用程序
和doff.exe /l
。
可以将计划任务设置为每分钟运行一次,因为它对资源的要求不高。可以对 RDP 会话进行类似的测试。