You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows Server 2016中注销除脚本运行用户外的所有其他用户

解决Windows Server 2016注销所有其他用户(排除当前用户)的问题

你的原脚本存在两个问题:一是仅处理了断开连接的会话,漏掉了活跃状态的用户;二是未排除当前执行脚本的用户,导致自身也被注销。以下是修正后的脚本,可实现注销所有其他用户(含活跃、断开连接状态)且保留当前用户的需求:

# 获取当前执行脚本的用户名
$currentUser = $env:USERNAME

# 查询所有用户会话,过滤掉当前用户和系统服务会话
query user | Where-Object {
    $_ -notmatch $currentUser -and $_ -notmatch 'services'
} | ForEach-Object {
    # 提取会话ID(每行的第二个字段)
    $sessionId = ($_ -split '\s+')[1]
    # 执行注销操作
    logoff $sessionId
}

脚本说明:

  • $currentUser = $env:USERNAME:直接获取当前用户的用户名,确保后续过滤时排除自身
  • query user:列出服务器上所有用户的会话信息,包含活跃、断开连接等状态
  • Where-Object:过滤条件排除当前用户的会话,同时排除系统服务相关的会话
  • 提取每行中的会话ID,通过logoff命令注销对应的用户会话

内容的提问来源于stack exchange,提问作者navin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 19:45:43