PowerShell中如何将net group域组查询结果转为逐行成员列表导出到TXT
PowerShell 域组成员提取脚本修正方案
你现有代码的核心问题是没有对行内的多成员按空格做拆分,且最终写入文件的是未经处理的原始行内容,没有得到单个成员每行的效果。
修正后完整代码
# 替换为你的实际输出文件路径 $outputPath = "指定的txt文件路径" # 替换引号内的内容为你要查询的真实域组名称,带空格的组名必须加引号包裹 $targetGroup = "你的目标域组名" # 查询域组原始数据 $rawData = net group /domain $targetGroup # 跳过net命令输出首尾的无关说明行,保留成员所在的有效行 $validLines = $rawData[8..($rawData.Count - 3)] # 逐行拆分成员:按任意长度的空格分割,过滤空值 $memberList = $validLines | ForEach-Object { $_ -split '\s+' | Where-Object { $_ } } # 导出到TXT文件,自动实现每个成员占一行 $memberList | Out-File -FilePath $outputPath -Encoding UTF8 -Force
关键修改说明
- 用
-split '\s+'匹配行内连续的多个空格作为分隔符,把一行内的多个成员拆分为独立字符串 - 用
Where-Object { $_ }过滤分割后产生的空值,避免行首行尾的空格导致输出空行 - 不需要使用
ConvertFrom-String和额外的字符串拼接,直接导出拆分后的成员数组即可,Out-File会自动让每个元素单独占一行
内容的提问来源于stack exchange,提问作者dontknowguy
相关产品推荐
相关产品推荐

