我已经制作了这个脚本来设置/更改特定OU中计算机的位置属性。
我的变量没问题,但是当我执行时,它不是逐行的。 我该怎么解决这个问题呢。
Import-module ActiveDirectory
$computers= Get-ADcomputer -Filter * -searchbase "OU=XX,OU=XXX,OU=WXXX,DC=TGE,DC=XX,DC=XX" | ForEach-Object {$_.Name}
Set-ADcomputer -identity "$computers" -Location "buildingA"
答案 0 :(得分:0)
你的$Computers
是一个[Array]对象,这意味着它有一组对象
Set-ADComputer
命令无法一次处理所有数组,要处理其中的每个数组,您需要使用' Foreach'方法例如:
Foreach ($Computer in $Computers)
{
Set-ADcomputer -identity $computer -Location "buildingA"
}
另一种方法是在管道之后添加foreach,如下所示:
Get-ADcomputer -Filter * -searchbase "OU=XX,OU=XXX,OU=WXXX,DC=TGE,DC=XX,DC=XX" | ForEach-Object {Set-ADComputer -identity $_ -Location "buildingA"}
答案 1 :(得分:0)
尝试将Get-ADcomputer
的输出汇总到Set-ADcomputer
:
Get-ADcomputer -Filter * -searchbase "OU=XX,OU=XXX,OU=WXXX,DC=TGE" | Set-ADcomputer -Location "buildingA"