我正在编写一个 PS 脚本来将 AD 中的计算机从一个 OU 移动到另一个。我原来的代码是这样的;
$pc = Get-ADComputer -Filter *
foreach($item in $pc)
{
if($item.operatingsystem -Like "Windows XP*")
{
if($item.name -Like "*-B-*")
{
move-ADObject -Identity $item -TargetPath 'ou=myou,DC=mydomain,dc=com'
}
else if($item.name -Like "*-K-*")
{
move-ADObject -Identity $item -TargetPath 'ou=myou,DC=mydomain,dc=com'
}
}
else if($item.operatingsystem -Like "Windows 7*")
{
if($item.name -Like "*-B-*")
{
move-ADObject -Identity $item -TargetPath 'ou=myou,DC=mydomain,dc=com'
}
else if($item.name -Like "*-K-*")
{
move-ADObject -Identity $item -TargetPath 'ou=myou,DC=mydomain,dc=com'
}
}
}
代码运行但实际上并没有做任何事情。我对此进行了编辑,它完成了我想要做的事情;
$pcw7 = Get-ADComputer -Filter {operatingsystem -Like "Windows 7*"}
$pcwinxp = Get-ADComputer -Filter {operatingsystem -Like "Windows XP*"}
foreach($item in $pcw7)
{
if($item.Name -Like "*-B-*")
{
move-ADObject -Identity $item -TargetPath 'ou=myou,DC=mydomain,dc=com'
}
elseif($item.Name -Like "*-K-*")
{
move-ADObject -Identity $item -TargetPath 'ou=myou,DC=mydomain,dc=com'
}
}
foreach($item in $pcwinxp)
{
if($item.Name -Like "*-B-*")
{
move-ADObject -Identity $item -TargetPath 'ou=myou,DC=mydomain,dc=com'
}
elseif($item.Name -Like "*-K-*")
{
move-ADObject -Identity $item -TargetPath 'ou=myou,DC=mydomain,dc=com'
}
}
有人可以帮我解释为什么吗?