2016-04-04 14 views
0

ユーザー名、IDリファレンス、アクセス制御タイプの取得方法を教えてください。

Username   IdentityRefrerance  AccessControlType 
fred    BuiltIn\Account Operator Allow

以下のPSスクリプトを作成しましたが、渡されたユーザー名は取得できません。

Import-Module ActiveDirectory 
Set-Location AD: 
$Users = Get-ADUser -Filter * | % {$_.SamAccountName} 

foreach ($User in $Users) { 
    (Get-Acl (Get-ADUser -Identity $User).DistinguishedName).Access | 
    Where-Object {$_.IdentityReference -eq "BUILTIN\Account Operators"} return true | 
    select IdentityReference, AccessControlType 
} 
+0

%は 'foreach'のショートカットです。 '$ Users = Get-ADUser -Filter * |を使ってください。 '$ Users = Get-ADUser -Filter * | 'の代わりにDistinguishedName、SamAccountName}を選択してください。 %{$ _。SamAccountName} 'を入力してください。 ACLを照会するには参照オブジェクトが必要です。すべてのアクセス権を単に*(すべて)にすることはできません。また、get-childitemなどのコマンドレットで作業していない場合は、 'set-Location AD:'を設定する必要はありません。 – Martin

+0

@Martin彼はADオブジェクトのACLをチェックしたいので、最も正確には場所を 'AD:'ドライブに変更する必要があります。 –

+0

ドライブで '-path'を指定すると、このファイルがなくても動作します:' get-acl -path "AD:\ $($ user.DistinguishedName)" | -ExpandProperty access | ft' – Martin

答えて

1

またはGet-ADUser複数回呼び出します。ただ、最初のGet-ADUserによって返されたオブジェクトに対してGet-Aclを実行し、calculated propertyでユーザー名を追加します。

Get-ADUser -Filter * | ForEach-Object { 
    $username = $_.SamAccountName 
    (Get-Acl $_.DistinguishedName).Access | 
    Where-Object {$_.IdentityReference -eq "BUILTIN\Account Operators"} | 
    Select-Object @{n='Username';e={$username}}, IdentityReference, 
        AccessControlType 
} 
+0

ありがとうございましたAnsgarそれは、それが試合に等しい場合、真実を返すの治療は働いていた。 – delboy82

+0

@ delboy82それは異なります。 「真実」を返す目的は何ですか?どこに戻りますか?それぞれの試合ごとに、または試合が1回ある場合は1回ですか? –

0

これは一見わかりにくいです。しかし、答えは実際にはかなり簡単です!

既に持っているSamAccountNameのプロパティをGet-ADUserコマンドから実行したいとします。 ForEach($user in $users)を使用して各結果を進めているので、いつでも$user.SamAccountNameを使用してそのプロパティを参照できます。

私は、これはあなたが何をしようとして捉えると思うん:二回ループする必要

foreach ($User in $Users) { 
    (Get-ACL (Get-ADUser -Identity $User).distinguishedname).access | 
    where-Object {$_.IdentityReference -eq "BUILTIN\Account Operators"} return true | 
    select $user.SamAccountName, identityreference, accesscontroltype 
} 
関連する問題