Powershell: Как перенести в определенную OU компьютеры из списка

Есть список имен компьютеров в xls файле. Нужно перенести их в отдельный контейнер (OU) домена Active Directory. Как я понимаю, проще всего это сделать с помощью PowerShell. Нашел командлет для переноса объектов в AD — Move-ADObject , но как ему скормить Excel файл – не пойму. Как я понял можно как-то подать на вход команды Move-ADObject конвейер из имен компьютеров в csv файле. Подскажите, пожалуйста.

Ответ

Создайте простой текстовый файл со списком компьютеров (в столбец), которые нужно перенести (просто скопируйте столбец из Excel).

список компьютеров

Импортируйте модуль PoSh для работы с Active Directory :

Import-Module ActiveDirectory

Получим содержимое текстового файла и присвоим его переменной.

$PCs = gc "C:psbuh-pc.txt"

Зададим целевую OU, в которую нужно переместить учетные записи компьютеров.

$TargetOU = "OU=Buhgalteriya,OU=Computers,DC=corp,DC=remontka,DC=ru"

Затем в цикле для каждой строки из текстового файла найдем объект компьютера в AD с помощью командлета Get-ADComputer и конвейером переместим его в целевую OU с помощью командлета Move-ADObject.

foreach ($PC in $PCs) {
Get-ADComputer -Identity $PC | Move-ADObject -TargetPath $TargetOU
}

Move-ADObject перенос компьютеров по списку в OU

Чтобы посмотреть, что получится, но не переносить объекты в AD, у комадлета Move-ADObject можно добавить параметр –WhatIf .

EnglishRussianUkrainian