Переместить всех пользователей AD из одного подразделения в другое - PullRequest
0 голосов
/ 26 февраля 2019

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

Например, я хотел бы переместить все учетные записи с test1 на test2:

$ou1 = 'OU=test1,OU=users,DC=contoso,DC=local'
$ou2 = 'OU=test 2,OU=users,DC=contoso,DC=local'

$adUserGroup = Get-ADUser -Filter {Enabled -eq "True"} -SearchBase ($ou1) -Properties $properties | Select-object $properties | Sort-Object samAccountName

foreach($user in $adUserGroup)
    {
    "Moving Active Directory user $($user.Name)"
    move-adobject -Identity "$user" -targetpath $ou2
    }

1 Ответ

0 голосов
/ 26 февраля 2019

Вы нигде не определяете $properties, поэтому Select-Object на самом деле ничего не делает.Его можно удалить, так как он на самом деле не нужен для этой задачи, так как свойства по умолчанию хороши.

Sort-Object также не требуется, если вы действительно не заботитесь о том, чтобы пользователи перемещались в алфавитном порядке их имени пользователя.

Я бы также изменил Filter, так как для него не нужен скрипт-блок { } - его можно просто заключить в кавычки ' '

$ou1 = 'OU=test1,OU=users,DC=contoso,DC=local'
$ou2 = 'OU=test 2,OU=users,DC=contoso,DC=local'

$AdUsers = Get-ADUser -Filter 'Enabled -eq "True"' -SearchBase $ou1

foreach($user in $AdUsers) {
    Write-Output "Moving Active Directory user: $($user.Name)"
    Move-ADObject -Identity $user -TargetPath $ou2
}

Вы можете использовать конвейер для созданияобработать единственную команду, используя -Verbose для вывода о том, какого пользователя он перемещает:

$ou1 = 'OU=test1,OU=users,DC=contoso,DC=local'
$ou2 = 'OU=test 2,OU=users,DC=contoso,DC=local'

Get-ADUser -Filter 'Enabled -eq "True"' -SearchBase $ou1 | Move-ADObject -TargetPath $ou2 -Verbose
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...