我正在使用进度条检查在将计算机移动到特定OU“LAPTOPS”之前“COMPUTERS”容器中存在多少台计算机。请记住,当“COMPUTERS”容器中只有一台计算机时,我收到以下错误消息。然后计算机成功移动。但是,当COMPUTER容器中存在两台或更多计算机时,它不会在从容器移动到OU时投影错误。我一直在寻找答案,但没有运气。我需要一些帮助。
注意:我使用的是Powershell版本5.1.14409.1012
error: Does not contain method name 'op_Division'
方法调用失败,因为 [Microsoft.ActiveDirectory.Management.ADPropertyValueCollection]不包含 名为'op_Division'的方法。 在行:13 char:5 + $ percent =($ counter / $ pcName.count)* 100 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:InvalidOperation:(op_Division:String)[],RuntimeExcepti 上 + FullyQualifiedErrorId:MethodNotFound
$computerCN = 'CN=COMPUTERS,DC=MYTEST,DC=LOCAL'
$pcName = Get-ADComputer -Filter * -SearchBase $computerCN -SearchScope OneLevel
$computerOU = 'OU=LAPTOP,OU=MYHOME,DC=MYTEST,DC=LOCAL'
$counter = 0
Foreach ( $computer in $pcName )
{
$prefix = $computer.name
$percent = ($counter / $pcName.count) * 100
$counter++
Write-Progress -Activity 'Processing computers' -Status "Scanning... $counter out of $($pcName.count)" -CurrentOperation $prefix -PercentComplete $percent
Start-Sleep -Milliseconds 500
Switch -Wildcard ( $prefix )
{
'LAP*' { 'Moved'; Get-ADComputer $computer | Move-ADObject -TargetPath $computerOU }
Default { 'Skip' }
}
}
答案 0 :(得分:0)
您确定GetADComputer返回的是多个对象吗?在期望集合时,应始终使用数组子表达式运算符强制命令的结果到集合。
$pcname = @(Get-ADComputer -Filter * -SearchBase $computerCN -SearchScope OneLevel)