【问题标题】:Limitations of Fast User Switching in Windows 10Windows 10 中快速用户切换的限制
【发布时间】:2020-02-09 08:49:38
【问题描述】:

不确定这是否更适合 SO 或服务器故障。

在单元测试期间遇到了似乎是 Windows 10 上“快速用户切换”的限制。有以下两行批处理文件。

C:\Windows\System32\timeout.exe 30
C:\Windows\System32\shutdown.exe /L

打开 CMD.exe 并运行 bat 文件。 “快速切换”(即登录)到另一个帐户。超时按计划完成,但注销语句无效...用户仍处于登录状态。当您返回时,您可以看到shutdown.exe 在屏幕上,但会话仍处于活动状态。

如果您运行脚本并保持登录帐户,30 秒后,注销命令会按预期工作。

如果您调用屏幕保护程序而不是快速切换(即:锁定帐户),也会发现同样的限制。 30 秒后,第一个命令完成,但会话仍处于活动状态。

我搜索了 MSDN 和 Google,但关于快速用户切换和锁定功能以及它们如何限制用户在切换或锁定时可以执行的操作的文档很少。

【问题讨论】:

  • 您是否以“管理员身份”运行批处理文件?

标签: windows cmd windows-screensaver


【解决方案1】:

您绝对可以在会话被锁定时结束会话,但您不能使用shutdown.exe 正在使用的普通ExitWindows API call 来执行此操作。见notes in MSDN

EWX_LOGOFF
关闭在调用 ExitWindowsEx 函数的进程的登录会话中运行的所有进程。然后它将用户注销。

此标志只能由在交互式用户登录会话中运行的进程使用。

对于仅使用批处理文件的解决方案,logoff 和相关的终端服务器工具允许您结束锁定的会话。在 Windows 10 1903 上测试时使用 PowerShell 的示例:

sleep 30    
logoff ([System.Diagnostics.Process]::GetCurrentProcess().SessionId)

就文档而言,Windows 的多会话支持在远程桌面服务中得到了最有力的记录。用于 RDS 的所有建议和 API 都适用于快速用户切换。见About Remote Desktop Services

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多