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

PowerShell导出AD指定组用户特定属性至CSV遇参数错误求助

解决Active Directory导出组用户属性的问题

嘿,你的问题出在**Get-ADGroupMember这个cmdlet根本没有-Properties参数**——它的作用只是列出组的成员,没法直接获取用户的详细属性。而且-Filter参数也不适用于它,咱们得换个思路:先拿到组成员列表,再用Get-ADUser去拉取你需要的属性。

下面是修正后的完整脚本,我给你拆解说清楚:

Import-Module ActiveDirectory

# 第一步:获取SerVAdmins组的所有成员,只保留用户对象(避免组里混了其他组/计算机)
$groupUsers = Get-ADGroupMember -Identity SerVAdmins | Where-Object { $_.objectClass -eq 'user' }

# 第二步:遍历每个用户,拉取指定属性,然后导出为结构化CSV
$groupUsers | ForEach-Object {
    Get-ADUser -Identity $_.SamAccountName -Properties GivenName, DisplayName, Mail, HomeDirectory
} | Select-Object GivenName, DisplayName, SamAccountName, Mail, HomeDirectory | Export-Csv -Path "ServAdmins_Users.csv" -NoTypeInformation -Encoding UTF8

关键细节说明:

  • 过滤用户对象:用Where-Object { $_.objectClass -eq 'user' }确保只处理用户,不然如果组里包含其他组或者计算机,Get-ADUser会报错。
  • 用Get-ADUser拉属性:只有Get-ADUser支持-Properties参数来获取非默认属性(比如Mail、HomeDirectory这些都不是默认返回的)。
  • 导出CSV而非TXT:Export-Csv会生成结构化的表格数据,比Out-File的纯文本好用太多,后续用Excel或者其他工具打开也方便。
  • 编码和类型信息:-NoTypeInformation会去掉CSV开头的PowerShell类型注释,-Encoding UTF8避免中文或特殊字符乱码。

如果你的组里肯定只有用户,也可以简化成一行(但还是推荐保留过滤步骤,更稳妥):

Import-Module ActiveDirectory
Get-ADGroupMember -Identity SerVAdmins | Where-Object { $_.objectClass -eq 'user' } | ForEach-Object { Get-ADUser $_ -Properties GivenName, DisplayName, Mail, HomeDirectory } | Select-Object GivenName, DisplayName, SamAccountName, Mail, HomeDirectory | Export-Csv "ServAdmins_Users.csv" -NoTypeInformation -Encoding UTF8

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:06:18