我在使用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?
答案 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