このコマンドレットを取得したので、結果を1つのOUのみに制限します。
Get-ADUser -Filter {(Enabled -eq $false)} | ? { ($_.distinguishedname -notlike '*Disabled Users*') }
今私は使用しようとしました
-searchbase "ou=FirstOU,dc=domain,dc=com"
しかし、-SearchBase
このエラーが発生しました:
Where-Object : A parameter cannot be found that matches parameter name 'searchb
ase'.
At line:1 char:114
+ Get-ADUser -Filter {(Enabled -eq $false)} | ? { ($_.distinguishedname -notli
ke '*Disabled Users*') } -searchbase <<<< "ou=FirstOU,dc=domain,dc=com"
+ CategoryInfo : InvalidArgument: (:) [Where-Object], ParameterBi
ndingException
+ FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Comm
ands.WhereObjectCommand
実行しようとしているのは、特定のOUからすべての無効なユーザーを取得することですが、FirstOUの中に、除外したいOUである「無効なユーザー」OUがあります。
ご想像のとおり、特定のOU内で、そのOU内の "Disabled Users" OUにない無効なユーザーを見つけたいと思います。
私の構造:
Forest
FirstOU
Users,groups,etc...
Disabled Users OU
-SearchBase
パラメータは、Where-ObjectではなくGet-ADUserで使用する必要があります(?でエイリアス)。これはうまくいくはずです:
Get-ADUser -Filter {(Enabled -eq $false)} -SearchBase "ou=FirstOU,dc=domain,dc=com" | ? { ($_.distinguishedname -notlike '*Disabled Users*') }
検索を1つのOU
に制限する最も簡単な方法は、SearchScopeを使用することです。
Get-ADUser -Filter {(Enabled -eq $false)} -SearchScope OneLevel -SearchBase "ou=FirstOU,dc=domain,dc=com"
最も簡単な方法は、-SearchBase
を-Filter
の前に置くことです。
Get-ADUser -searchbase "ou=FirstOU,dc=domain,dc=com" -Filter {(Enabled -eq $false)} | ? { ($_.distinguishedname -notlike '*Disabled Users*') }
-SearchBase
ではなくGet-ADUser
ではなくWhere-Object
を使用する必要があるという問題を回避するには、?
を実行します(Where-Object
はPowerShellでWhere-Object
にエイリアスされます)。 ] _ -SearchBase
をGet-ADUser
にすでに渡した後。