我在从我创建的CSV导入组和成员资格数据时遇到了一些问题,原因是我正在导出导出成员的CN
名称而不是SamAccountName
或{ {1}}导入需要。
目前我导出的CSV如下所示:
"name","Members" "GROUP1","CN=LEEROY JENKINS,OU=ADMINISTRATORS,OU=USERS,OU=DOMAIN,DC=DOMAIN,DC=LOCAL;CN=MICHAEL JACKSON,OU=ADMINISTRATORS,OU=USERS,OU=DOMAIN,DC=DOMAIN,DC=LOCAL;CN=JERRY SPRINGER,OU=GUESTS,OU=USERS,OU=DOMAIN,DC=DOMAIN,DC=LOCAL" "GROUP2","CN=KIMMY SHMIDT,OU=ADMINISTRATORS,OU=USERS,OU=DOMAIN,DC=DOMAIN,DC=LOCAL;CN=MICHAEL JACKSON,OU=ADMINISTRATORS,OU=USERS,OU=DOMAIN,DC=DOMAIN,DC=LOCAL;CN=JERRY SPRINGER,OU=GUESTS,OU=USERS,OU=DOMAIN,DC=DOMAIN,DC=LOCAL"
我从执行中获得了:
DisplayName
我认为我有两个问题,一个是导入不会将CN作为有效的成员名称,也不确定它是否适用于每个拥有多个用户的组。
在旁注 - 我发现this article。然而,类似的问题,我还没有得到格式良好的'Group1 - Name1'表格。我基本上试图找出一种自动方式来创建一个包含可以导入Active Directory的组名和成员资格详细信息的表。
答案 0 :(得分:0)
我遇到了同样的问题,对我而言,这是因为群组有多个成员,而PowerShell并没有很好地处理1:M关系。我开始使用它来拉动小组成员:
(Get-ADGroupMember -Identity GroupName -Recursive | select name | Out-String).Trim()
因为这会将所有小组成员放入一个小区。请注意,Excel对单个单元格中的字符数有一个大小限制,因此如果您有一个包含数千个成员的组,则会对您造成错误。我确信有更好的方法,这对我有用。
您可以将当前脚本输入其中,即:
编辑以更贴近您的需求:
$Groups = Get-ADGroup -Filter {YOURFILTER} | select -ExpandProperty sAmAccountname
foreach($Group in $Groups)
{
$Members = (Get-ADGroupMember -Identity $Group | select sAmAccountName | out-string).Trim()
New-Object -TypeName PSCustomObject -Property @{
Users = $Members
Name = $Group
} | Export-Csv C:\Export.csv
}
只需确保垂直展开单元格以实际查看组成员。