0

PowerShellでは、DirectoryEntryとDirectorySearcherを使用して特定のOUのユーザーのリストを取得する方法をすでに知っています。このメソッドの結果は、ほとんどがADで探しているものですが、WMIクエリWin32_UserAccountを使用して同じ情報を取得する方が簡単なようです。私はこのクラスのプロパティの方が好きで、SIDはすでに正しい文字列形式になっています(最初の方法では、16進バイト配列から文字列に変換する必要があります)。

Win32_UserAccountの使用に関する問題は、OUでフィルタリングする方法が見つからないことです。ドメインと名前で正常にフィルタリングでき、WQLでいくつかの推測を試みましたが、OUフィルターの構文が見つからないようです。私の試みのほとんどは「無効なクエリ」になります。以下は、機能するクエリの例です。

$user = gwmi Win32_UserAccount -filter "name='somebody' AND domain='mydomain'"

これをOUでフィルタリングする方法がない場合は、DirectoryEntry/DirectorySearcherの使用に戻ります。

4

2 に答える 2

1

Win32_AccountクラスにLDAP関連のプロパティがないことを考えると、残念ながら運が悪いと思います。

もちろん、これを使用して、LDAP関連データを取得するためのディレクトリ検索に加えて、必要な形式のSIDを取得することもできます。

于 2012-03-20T01:19:33.097 に答える
1

Questの無料のADコマンドレットに精通していますか?

http://www.quest.com/powershell/activeroles-server.aspx

OUに基づいてユーザーをフィルタリングし、さまざまな形式でSIDを取得できます。

PS> Get-QADUser SizeLimit 0 -SearchRoot <OU_DistinguishedName>' | fl *sid*

objectSid : 0105000000000005150000006753F33372134F3FF673476FF4023001
Sid       : S-1-5-21-54781788-1045369324-1866953526-501
(...)
于 2012-03-20T08:22:06.677 に答える