我在尝试编写一个简单的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
}
答案 0 :(得分:0)
您没有在任何地方定义$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