我在这里的第一篇文章。
事情是这样的
最终目标是将新用户放置在特定OU中,以其可分辨名称作为路径。我可以通过选择一个后续OU来解决此问题,但如果有多个OU,我希望避免后续脚本编写,因为后续OU的数量可能会发生变化。
有人知道如何创建一个循环或任何其他解决方案,将继续要求我通过每一层的OU的,直到所需的OU被选中。
例如,在美国,用户将被雇用为“Safety”,在伊利诺伊州,在芝加哥市,我的OU配置将如下:US IL芝加哥安全用户
我想让脚本循环遍历每一层,直到我选择了Users,或者我喜欢的参数。注意,每个后续OU都有多个选择,我想在网格中对它们进行排序和选择。我已经知道了这一部分,但对我来说棘手的是创建循环。
不太熟悉Powershell上的While Do Until。
我会做我的研究,但会感谢任何建议。它不一定是一个循环,但我正在寻找一个解决方案与$,而不是一个明确的参数。
干杯,
if ($Location -eq $null )
{
[System.Windows.MessageBox]::Show("'You didn't enter the required parameter, script ending'","System Notification","Ok")
exit
}
if ($Location -ne $null )
{
while ($Location -ne $null) {
$DomainOU1=Get-ADOrganizationalUnit -Filter "Name -like '$Location'" -SearchBase $DistinguishedGroupName -SearchScope OneLevel | select Name -ExpandProperty Name
}
do {
$Location1=@($DomainOU1) | sort
$Location1=$Location1 | Out-GridView -Title "Choose Employee Location of Deployment"
$Location1=$Location
}
Until ($Location -eq "Users")
}
Write-output "You chose $Location"
2条答案
按热度按时间omhiaaxx1#
这不是一个完整的答案,但看起来有问题:
它基于
$location
变量进行循环,但循环中的任何内容都不会更改$location
变量,因此它将永远循环下去。acruukt92#
因此,在本例中,我决定将用户/计算机OU添加到所有目标OU,并按用户筛选$。
这使我能够通过显示DistinguishedName OU详细信息将用户放在所需位置。