.someproperty%20%E3%81%AE%E7%B5%90%E6%9E%9C%E3%81%8C%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%81%AA%E3%81%84.png)
ADユーザーの個々のプロパティを検索しようとしています。
(Get-ADUser $userName).$targetProperty
走っても何も得られない
Get-ADUser $userName | select $targetProperty
プロパティとその下の空白が表示されます。ただし、実行すると。
Get-ADUser $user -Properties *
完全なリストを取得し、$targetProperty を確認すると、すでに値が存在します。私の環境は 1 つの DC で、ローカルであり、管理者モードになっています。
答え1
取得しようとしているターゲット プロパティによって異なります。デフォルト セット ( を実行したときに取得されるプロパティGet-ADUser testuser
) のいずれでもない場合は、結果セットに含まれないため、コマンドの他の場所では取得できません。
デフォルトのプロパティは次のとおりです。
DistinguishedName : CN=Test User,CN=Users,DC=domain,DC=local
Enabled : True
GivenName : Test
Name : Test User
ObjectClass : user
ObjectGUID : 94916bd1-008e-409f-a1b3-eaXXXXXX266e
SamAccountName : TestUser
SID : S-1-5-21-23XXXXXX88-41XXXXX83-1941XXXX34-32584
Surname : User
UserPrincipalName : [email protected]
必要なプロパティが だとしますTitle
。最初のコマンドは次のようになります。
(Get-ADUser testuser).Title
Title
デフォルトのプロパティ セットに含まれていないため、括弧内の部分にはプロパティが含まれずTitle
、結合されたコマンドの結果は何も得られません。
2回目の試み:
Get-ADUser testuser | select Title
これにより、列のヘッダーとして「タイトル」という単語が表示されますが、コマンドの最初の部分にはまだTitle
結果にプロパティが含まれていないため、その値はまだありません。
3回目の試み:
Get-ADUser testuser -Properties *
なるほど! 近づいてきました。Title
プロパティだけでなく、今は気にしていない他の多くのものも含まれています。
4回目の試み:
(Get-ADUser testuser -Properties *).title
これで完了です。この組み合わせにより、ユーザーのすべてのプロパティ ( を含むTitle
) が取得され、プロパティのみが表示されますTitle
。
オプション:次のようにすると、 が提供する100 を超えるプロパティを問い合わせる手間を省き-Properties *
、デフォルトのプロパティと のみを取得できるので、処理が少し速くなります。Title
(Get-ADUser testuser -Properties Title).Title
答え2
次のようにすれば情報を取得できることがわかりましたが、他のコマンドでは機能しないのはなぜでしょうか?
(Get-ADUser $user -Properties *).$targetProperty