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

PowerShell处理管理员列表文本时排除指定用户仅输出有效用户名怎么实现

PowerShell 脚本修改方案

问题原因

多余输出来自两个维度:

  • 你的C:\AdminUsers.txt本身是net localgroup administrators命令的原生输出,自带表头Members、分隔线,以及末尾的The command completed successfully.执行提示
  • Select-String返回的是MatchInfo类型对象而非纯文本,直接输出会携带额外属性信息

修改后代码

建议用数组存储要排除的用户,后续扩展更方便,同时直接过滤掉无效行:

# 定义需要排除的用户列表
$excludeUsers = @("Administrator", "Admin1", "Admin2")

$LocalAdmin = Get-Content C:\AdminUsers.txt | 
    Select-Object -Skip 2 | # 跳过前2行表头和分隔线
    Select-Object -SkipLast 1 | # 跳过最后1行执行成功提示
    Where-Object {
        $trimmedUser = $_.Trim()
        # 过滤空行 + 排除指定用户
        $trimmedUser -ne '' -and $trimmedUser -notin $excludeUsers
    }

# 输出纯用户名
$LocalAdmin

可选优化

如果你可以控制C:\AdminUsers.txt的生成过程,生成文件时就可以先过滤冗余内容,后续读取逻辑更简单:

# 生成管理员列表文件时就过滤冗余内容
net localgroup administrators | 
    Select-Object -Skip 2 | 
    Select-Object -SkipLast 1 | 
    Where-Object { $_.Trim() -ne '' } |
    Out-File C:\AdminUsers.txt -Encoding UTF8

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 10:45:00