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



我一直在使用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:
无法将"System.Object[]"转换为参数"Identity"所需的类型"Microsoft.ActiveDirectory.Management.ADObject"。不支持指定方法。   行:6 字符:25   + Move-ADObject -Identity $prague -TargetPath "OU=LAB,DC=test...   + ~~~~~~~   + 类别信息 : 无效参数: (:)[Move-ADObject], ParameterBindingException   + FullQualifiedErrorId : CannotConvertArgument,Microsoft.ActiveDirectory.Management.Command.MoveADObject

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

Move-Object期望移动一个对象。您正在通过数组$prague将几个塞入其中。需要使用管道或循环来解决此问题。

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

当您只需要-Properies Office时,也不要使用-Properies *。否则,您将通过将所有属性(包括非缓存属性)拉入会话来创建潜在的性能问题。我们通过仅查询相应办公室的用户而不是使用Where进行后处理来进一步简化此操作

最新更新