根据Get-ADuser Office属性移动活动目录用户

时间:2016-06-09 11:59:37

标签: powershell active-directory

我在使用PowerShell移动用户帐户时遇到了问题。我想根据具有Office属性的内容将特定用户帐户从OU移动到OU。

脚本是:

$prague = Get-ADUser -Filter * -Properties * | Select-Object -Property Office,SamAccountName | where -Property Office -eq "prague"

Move-ADObject -Identity $prague -TargetPath "OU=LAB,DC=test,DC=cz"

Powershell返回:

Move-ADObject : Cannot convert 'System.Object[]' to the type 'Microsoft.ActiveDirectory.Management.ADObject' required by parameter 'Identity'. Specified method is not supported. 
   At line:6 char:25 
   + Move-ADObject -Identity $prague -TargetPath "OU=LAB,DC=test... 
   + ~~~~~~~ 
   + CategoryInfo : InvalidArgument: (:) [Move-ADObject], ParameterBindingException 
   + FullyQualifiedErrorId : CannotConvertArgument,Microsoft.ActiveDirectory.Management.Commands.MoveADObject

是否可以基于具有大量参数的Move-ADObject运行Get-ADUser cmdlet?

1 个答案:

答案 0 :(得分:0)

Move-Object期待移动一个对象。你是通过数组$prague填入其中的几个。您需要使用管道或循环来解决此问题。

Get-ADUser -Filter {Office -eq "prague"} -Properties Office | 
    Move-ADObject  -TargetPath "OU=LAB,DC=test,DC=cz"

如果您只需要-Properies *,请不要使用-Properies Office。此外,通过将所有属性(包括非缓存属性)添加到会话中,您可能会产生潜在的性能问题。我们通过仅查询相应办公室的用户而不是使用Where

进行后期处理来进一步简化此操作