我正在尝试使用powershell在树视图中填充OU数据。我试图通过使用switch命令而不是If else来做这件事,但作为得到了一个错误
ERROR: + ... $_.Node.Nodes[$OU.Path].Nodes.Add($OU.Properties['name'], ...
ERROR: + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ERROR: + CategoryInfo : InvalidOperation: (:) [], RuntimeException
ERROR: + FullyQualifiedErrorId : NullArray
ERROR:
ERROR: Cannot index into a null array.
有人能建议我们在这种情况下如何使用Switch命令吗。?
下面是我正在使用的切换命令:
switch ($ou.Properties['name'])
{
"TestAdmin"
{
# OU Path
$OUPath = "OU=TestAdmin, OU=$OUIT, OU=$BaseOU, $OUBaseDomain"
# Gather users within the OU
$GatheredUsers = (Get-ADUser -Filter * -SearchBase "$OUPath" -SearchScope OneLevel -Properties Name -ErrorAction SilentlyContinue).Name
# Populate tree with Users Gathered
foreach ($User in $GatheredUsers)
{
#$_.Node.Nodes.Add($OU.Path, "$User", "$User").ImageIndex = 2
$_.Node.Nodes[$OU.Path].Nodes.Add($OU.Properties['name'], "$User", "$User").ImageIndex = 2
}
}
}
问题出现在foreach
循环中:
foreach ($User in $GatheredUsers)
{
$_.Node.Nodes[$OU.Path].Nodes.Add($OU.Properties['name'], "$User", "$User").ImageIndex = 2
}
$_
包含管道对象中的当前对象。由于没有管道,并且使用带有命名变量($User
(的foreach
,因此$_
变量为空,不引用任何内容,因此会出现错误消息。
即CCD_ 6在此时是如何构造的。
您必须将$_
替换为树视图控件对象。