2

以下のコードを使用して、ターゲット マシンが含まれる 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 agroups のリストです。たとえば、次のようにします。

Silverlight_Microsoft_4.0.60.0_LCL
Adobe Acrobat XP Professional

4

3 に答える 3

2

正規表現を使用して、グループ名を抽出できます。

(Get-ADComputer -Identity $hostname -Property MemberOf).MemberOf -replace '^CN=([^,]+),OU=.+$','$1'
于 2012-04-23T21:18:48.873 に答える
1

これを試して:

Get-AdComputer -Identity $hostname -property "MemberOf" | select -expand memberOf

コメント後に編集:

これを試してみてください。今はテストできません

Get-AdComputer -Identity $hostname -property "MemberOf" | select -expand memberOf | % { ($_.split(','))[0].replace('CN=','')}
于 2012-04-23T16:34:01.240 に答える
1

オリン、

友人の dsquery と dsget を忘れないでください。これらは、powershell でもうまく機能します。

dsquery を実行し、powershell を使用して dsget -memberof に直接パイプライン処理し、必要に応じて foreach-object{$_trimstart(" ")} でトリムします

それで遊んで、あなたが何を使っているか教えてください。

直流

于 2012-04-23T17:33:55.140 に答える