Powershell удаление пользователя в ADSI из-за пределов домена LDAP

#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