Я думал, что это будет выглядеть примерно так (менеджер) (SecurityLevel = 1).
Закрыть. Что касается запроса LDAP, он должен быть следующим:
(&(manager=*)(SecurityLevel=1))
Это означает: если атрибут manager
имеет значение, а атрибут SecurityLevel
равен 1
.
Чтобы использовать запрос LDAP с Get-ADUser
, необходимо использовать параметр -LDAPFilter
:
Get-ADUser -LDAPFilter "(&(manager=*)(SecurityLevel=1))" -SearchBase "OU=SecondaryAccounts,OU=USERS,DC=example,DC=com" -Properties Name, manager, SecurityLevel
Параметр -Filter
использует условия стиля PowerShell и позволяет использовать имена свойств, которые Get-ADUser
предоставляет вместо необработанных имен атрибутов AD (например, «фамилия» вместо «sn»). В этом формате те же условия выглядят так:
Get-ADUser -Filter "manager -like '*' -and SecurityLevel -eq 1" -SearchBase "OU=SecondaryAccounts,OU=USERS,DC=example,DC=com" -Properties Name, manager, SecurityLevel
Атрибут manager содержит distinguishedName
учетной записи менеджера. Таким образом, вы можете передать это в Get-ADUser
, чтобы прочитать учетную запись менеджера. Все это вместе будет выглядеть примерно так:
$SecondaryAccounts = Get-ADUser -LDAPFilter "(&(manager=*)(SecurityLevel=1))" -SearchBase "OU=SecondaryAccounts,OU=USERS,DC=example,DC=com" -Properties Name, manager, SecurityLevel
foreach ($account in $SecondaryAccounts)
{
$PrimaryAccount = Get-ADUser $account.Manager
Write-Host "Type 1 account: $($PrimaryAccount.Name)"
}