Я пытаюсь извлечь из AD некоторые читаемые переменные, работает следующее.
$user = get-aduser "username" -Properties memberof, emailAddress, extensionattribute2, manager, physicalDeliveryOfficeName, url
$groups = ForEach ($group in $user.memberof){(Get-ADGroup $group).Name}
$groupStr = $groups -join "; " #Change "; " to "`r`n" for line break seperator
$user | Select-Object `
@{N="firstName";E={$_.GivenName}}, `
@{N="lastName";E={$_.Surname}}, `
@{N="email";E={$_.EmailAddress}}, `
@{N="businessArea";E={$_.extensionattribute2}}, `
@{N="accountName";E={$_.SamAccountName}}, `
@{N="manager";E={$_.Manager -replace '^CN=|,.*$'}}, `
@{N="office";E={$_.physicalDeliveryOfficeName}}, `
@{N="standardProfile";E={$_.url}}, `
@{n='Groups'; e={$groupStr}} | Export-CSV -NoTypeInformation "c:\out.csv"
Однако, когда я поменяю Get-aduser "username"
на: Get-aduser -Filter {Enabled -eq $true} -SearchBase “ou=redacted,ou=UserAccounts,dc=redacted,dc=com”
Он работает довольно долго и заполняет последние 40 ГБ на диске и выдает ошибки по мере исчерпания пространства.
Я знаю, что в прошлом у меня были подстановочные знаки - свойства и я сталкивался с подобными проблемами (теперь я понимаю, что это понятно), но я не уверен, что является причиной проблемы на этот раз.
{Enabled -eq $true}
& -SearchBase
ограничивают его примерно 4 тысячами пользователей, и я не думаю, что это займет так много времени, и я понятия не имею, что занимает дисковое пространство.
Заранее спасибо!