我一直在尝试使用下面的代码来获取目标计算机所在的AD组列表,但我有一些困难。
Get-AdComputer -Identity $hostname -property "MemberOf"
当我执行代码时,我已经回复了。
DistinguishedName : CN=$hostname,OU=test,OU=test,OU=test All Workstations,DC=te
st,DC=test,DC=com
DNSHostName : $hostname Enabled : True
MemberOf : {CN=Flash_Player_Adobe_11.1.102_LCL,OU=test All Softw
are Groups,DC=test,DC=test,DC=test, CN=Adobe Acrobat X P
rofessional 10,OU=test All Software Groups,DC=test,DC=test,D
C=co.uk, CN=Silverlight_Microsoft_4.0.60.0_LCL,OU=test
All Software Groups,DC=test,DC=test,DC=test}
Name : %hostname ObjectClass : computer
ObjectGUID : 5cf00026-c91a-422e-8a3e-7ee546456717f
SamAccountName : Test
SID : f-1-5-21-18934363546-5655752-5353453-564535
UserPrincipalName :
有没有办法可以让memberOf返回(连接到机器的AD群组列表,并在列表中排序,只列出了组名。例如:
Silverlight_Microsoft_4.0.60.0_LCL
Adobe Acrobat XP Professional
等
答案 0 :(得分:2)
您可以使用正则表达式提取组名称:
(Get-ADComputer -Identity $hostname -Property MemberOf).MemberOf -replace '^CN=([^,]+),OU=.+$','$1'
答案 1 :(得分:1)
试试这个:
Get-AdComputer -Identity $hostname -property "MemberOf" | select -expand memberOf
评论后编辑:
试试这个我现在无法测试
Get-AdComputer -Identity $hostname -property "MemberOf" | select -expand memberOf | % { ($_.split(','))[0].replace('CN=','')}
答案 2 :(得分:1)
奥林,
不要忘记你的朋友dsquery和dsget,他们也和powershell一起工作。
你做一个dsquery,然后使用powershell将它直接导入dsget -memberof,如果需要使用foreach-object修剪{$ _ trimstart(“”)}
玩它并让我们知道你使用的是什么。
直流