@Z-RoVeR

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

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

Но завести так и не получилось.
  • Вопрос задан
  • 398 просмотров
Пригласить эксперта
Ответы на вопрос 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 класса контакт, с указанным параметром, а в конце просто удаляете все полученные объекты.
Текст набросан примерно, проверить на данный момент возможности нет.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы