@Z-RoVeR

Как удалить контакты из определенной OU по списку из CSV?

Есть файл csv со списком устаревших контактов.
Удалять пытаюсь по столбцу Alias.
Всё что смог сам наковырять:
Import-Module ActiveDirectory
Import-csv 'c:\tmp\del.csv' -Header 'Alias' | Foreach-Object { Remove-ADObject $_.Alias -WhatIf }

Но завести так и не получилось.
  • Вопрос задан
  • 722 просмотра
Пригласить эксперта
Ответы на вопрос 2
@azarij
В меру опытный никто
если вам не нужно менять названия колонок при импорте цсв, то -header не нужен.
в какой форме указан Alias в цсв (ФИО, distinguished name, object-guid, etc)?
К remove-adobject нужно -identity ключь добавить и в него пихать $_.alias.

а так выдает объекты из АД?

Import-csv 'c:\tmp\del.csv' | Foreach-Object { Get-ADObject $_.Alias }
Ответ написан
@LiS-31
У вас не корректно построен конвейер:
Import-csv 'c:\tmp\del.csv' -Header 'Alias' | Foreach-Object { Remove-ADObject $_.Alias -WhatIf }

Если вы прочитаете get-help команды remove-ADObject, то увидите что командлет remove-ADObject по конвейеру получает параметр Identity, причем по-значению (byValue). т.е. перед передачей в foreach-object вам нужно имена пользователей превратить в объекты.
Должно сработать что-то вроде:
Import-csv 'c:\tmp\del.csv' | Get-ADObject -Filter { (objectClass -eq "contact") -and (DisplayName -eq "$_.DisplayName")} | Remove-ADObject

В первой части вы получаете данные из файла, затем получаете объекты AD класса контакт, с указанным параметром, а в конце просто удаляете все полученные объекты.
Текст набросан примерно, проверить на данный момент возможности нет.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы