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

如何将Get-ADGroupMember结果导出为指定格式的单行文本文件?

解决方案

这里是修正后的PowerShell脚本,解决了结果截断问题,并且能生成符合要求的文本文件:

# 定义要查询的AD组(可根据需求修改过滤条件)
$adGroups = Get-ADGroup -Filter "Name -like 'humdrives'"

# 存储生成的组内容行
$outputLines = @()

foreach ($group in $adGroups) {
    # 获取递归成员的SAMAccountName,仅保留用户对象
    $memberSams = Get-ADGroupMember -Identity $group -Recursive | 
                  Where-Object { $_.objectClass -eq 'user' } |
                  Select-Object -ExpandProperty sAMAccountName
    
    # 拼接成符合要求的行格式:Group 组名 SAM1 SAM2 ...
    $line = "Group $($group.Name) $($memberSams -join ' ')"
    $outputLines += $line
}

# 定义底部固定静态内容
$staticContent = @"
固定静态文本:
Include this text as static
Include this text also
Include this text as well
##########################
"@

# 合并内容并写入目标文件(替换为你的实际文件路径)
$outputLines + $staticContent | Out-File -FilePath "C:\Your\Target\Path\LicenseAssignments.txt" -Encoding UTF8

关键改进说明:

  • 解决结果截断:放弃用PSCustomObject存储数组形式的成员,直接将所有成员账号用空格拼接成字符串,彻底避免PowerShell默认输出时对数组的截断显示。
  • 匹配格式要求:直接构造每行的文本结构,严格遵循Group 组名 成员账号的单行格式。
  • 整合静态内容:通过Here-String定义固定文本,最后和组内容合并后一次性写入文件。
  • 过滤冗余对象:增加Where-Object { $_.objectClass -eq 'user' },避免把嵌套的AD组当作成员输出(不需要的话可删除该行)。
  • 编码兼容:指定-Encoding UTF8确保文件编码通用,避免乱码问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 21:37:25