#powershell #ldap #adsi
#powershell #ldap #adsi
Вопрос:
Наше приложение позволяет клиенту проходить аутентификацию в своем собственном домене через Ldap, но мы сохраняем кэшированную копию этих логинов и учетных записей в ADSI «myserver». Из-за ограничений в другой части нашего приложения мне необходимо удалить несколько тысяч этих кэшированных учетных записей из myserver ADSI
Имейте в виду, что это НЕ ДЛЯ МОЕГО ДОМЕНА, а для домена клиента. И нет, я не пытаюсь удалить учетные записи в ИХ домене, только наши кэшированные копии в ADSI.
Следующая строка кода НЕ выдает ошибку, но также НЕ удаляет acct (и не передает его в «remove-aduser»
Get-ADObject -Server "myserver:3890" -SearchBase "CN=fqdn.customer.org,CN=Authentication Sources,O=Enterprise,CN=DifferentDirectory" -filter {name -eq "testuser"} | remove-adobject
Примечание: я могу запросить это дерево контекста именования по умолчанию просто отлично
Get-ADObject -Server "myserver:3890" -filter 'objectclass -like "*"' -SearchBase "CN=fqdn.customer.org,CN=Authentication Sources,O=Enterprise,CN=DifferentDirectory"
или я могу использовать переключатель -ldapfilter для получения соответствующей информации о конкретной учетной записи.
Это странная ситуация, поскольку я НЕ имею дело с учетными записями в моем собственном домене. Многие другие варианты этой темы выдают ошибки, ссылающиеся на мой собственный домен, разделы и т. Д. Я проработал все, что я думаю. На мой взгляд, приведенные выше примеры ДОЛЖНЫ работать.
Последнее замечание: я МОГУ удалить пользователя в графическом интерфейсе ADSIEDIT, но, как уже упоминалось, они предоставили мне список из тысяч учетных записей, которые необходимо удалить. Должен быть способ ?!
Комментарии:
1.
name -eq "testuser"
илиSamAccountName -eq "testuser"
?
Ответ №1:
Я понял это (я скармливаю ему список пользователей $)
Get-ADObject -Server “myserver:3890” -SearchBase “CN=fqdn.customer.org,CN=Authentication Sources,O=Enterprise,CN=DifferentdirectoryDirectory” -Filter * | Where-Object {$_.name -eq “$user”} | Remove-ADObject -confirm:$false