我目前正在重组我正在为之工作的公司的活动目录用户列表,而做这个工作的人做了一个糟糕的工作,当然不再在这里工作了。
我的问题是: 我想要一个Excel电子表格(理想情况下)包含用户图表的“成员”选项卡中包含的所有信息。
我试图创build一个查询,但结果只给了我一个“成员”的东西,而不是“成员”选项卡的实际内容的用户列表。
有没有办法做到这一点,无论是通过命令提示符或直接从Active Directory?
公平的警告:我对VBS和Powershell一无所知。
如果你想得到一个用户的组成员身份,运行这个是PowerShell :
Get-ADPrincipalGroupMembership Username | Select Name
其中Username名是您正在查询的用户的名称。
我有这个,你将需要学习一些PowerShell将它转储到一个CSV,现在它只是转储到一个文本文件。
$users = Get-ADUser -Filter * -Properties * -SearchBase "OU=something,DC=domain,DC=net" foreach ($user in $users) { $file = $user.Name + '_ACL' (Get-ADUser –Identity $user –Properties MemberOf).MemberOf -replace '^CN=([^,]+),OU=.+$','$1' | Out-File c:\PSResults\$file.txt }
我从来没有花时间让它工作的CSV输出,因为这是我所需要的。
您可以在“AD用户和计算机”中input以下查询string来创build并定义应用于包含用户的OU的新查询:
(&(&(&(&(objectCategory=user)(userAccountControl=512)))))
然后使用AD窗口顶部的“导出列表”将结果导出到csv。
要将文件转换为CSV文件,只需将代码中的“Out-File c:\ PSResults \ $ file.txt”replace为“Export-CSV -path c:\ PSResults \ $ file.csv -NoTypeInformation”
所以它看起来像这样:
$users = Get-ADUser -Filter * -Properties * -SearchBase "OU=something,DC=domain,DC=net" foreach ($user in $users) { $file = $user.Name + '_ACL' (Get-ADUser –Identity $user –Properties MemberOf).MemberOf -replace '^CN=([^,]+),OU=.+$','$1' | Export-CSV -path c:\PSResults\$file.csv -NoTypeInformation }
然而,正如其他人已经发布,下面是最好的使用,因为它是一个简单的衬垫:
Get-ADPrincipalGroupMembership USERNAME | Select Name | Export-CSV -path C:\Temp\file.csv -NoTypeInformation