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

如何用PowerShell注销用户且无用户时不显示错误

修复后的注销用户PowerShell脚本

以下是可以实现注销其他用户且无用户时不报错的脚本:

# 捕获quser的输出和错误信息
$quserOutput = quser.exe 2>&1

# 检查是否没有用户登录
if ($quserOutput -match 'No User exists') {
    exit 0
}

# 将quser输出解析为CSV格式
$users = $quserOutput | ForEach-Object { $_.Trim(' ', '>') } `
    -replace '\s{20,39}', ',,' `
    -replace '\s{2,}', ',' | ConvertFrom-Csv

# 过滤当前用户并注销其余用户
$users | Where-Object { $_.UserName -ne $env:USERNAME } | ForEach-Object {
    if ($_.ID) {
        # 执行注销操作,抑制错误输出
        logoff.exe $_.ID 2>&1 | Out-Null
    }
}

关键改进点:

  • 直接捕获quser.exe的标准输出和错误输出,避免依赖try/catch捕获原生程序错误
  • 检测到"No User exists"提示时直接正常退出,不抛出错误
  • 保留原有解析逻辑处理quser的列格式(包括空会话名的情况)
  • 增加实际注销操作(调用logoff.exe),并抑制注销过程中可能出现的错误(如会话已终止)
  • 确保不会注销当前登录的用户

注意:运行此脚本需要管理员权限才能注销其他用户。

内容的提问来源于stack exchange,提问作者s.x

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 22:00:55