gpt4 book ai didi

powershell - 如果触发了if语句,然后在触发If -And语句之前退出if语句

转载 作者:行者123 更新时间:2023-12-03 01:01:04 25 4
gpt4 key购买 nike

因此,目前正在研究新的职员脚本,而对于If语句一旦返回true为何退出的原因,我有点困惑

我希望它继续使用If语句,直到最后看它是否与其他任何语句都更好地匹配。有人可以解释为什么这种方式起作用(我在猜测性能)

我已经通过重新安排If语句的顺序解决了我的问题,但是我想知道是否有更好或更优雅的方法可以解决此问题?

因此,下面是一个示例:
在我将最后一个ElseIf放在底部之前,来自XX学校的任何职员都被放入职员OU中,即使他们的部门是If -AND语句中列出的部门之一

    ElseIf ($school -eq 'KCC' -And $Department -eq 'IT Staff'){
[STRING]$MiddleOU = 'OU=IT Services,OU=Business Managment,OU=Staff,OU=Users,OU='
[STRING]$HomeDirectory = ('\\ad.esw.org.uk\KCC\StaffUsers\'+ $SamAccountName)
}
ElseIf ($school -eq 'KCC' -And $Department -eq 'ILS Staff'){
[STRING]$MiddleOU = 'OU=Resources,OU=Business Managment,OU=Staff,OU=Users,OU='
[STRING]$HomeDirectory = ('\\ad.esw.org.uk\KCC\StaffUsers\'+ $SamAccountName)
}
ElseIf ($school -eq 'KCC' -And $Department -eq 'DATA Staff'){
[STRING]$MiddleOU = 'OU=Data,OU=Business Managment,OU=Staff,OU=Users,OU='
[STRING]$HomeDirectory = ('\\ad.esw.org.uk\KCC\StaffUsers\'+ $SamAccountName)
}
ElseIf ($school -eq 'KCC' -And $Department -eq 'Facilities Staff'){
[STRING]$MiddleOU = 'OU=Estates & Facilities,OU=Business Managment,OU=Staff,OU=Users,OU='
[STRING]$HomeDirectory = ('\\ad.esw.org.uk\KCC\StaffUsers\'+ $SamAccountName)
}
ElseIf ($school -eq 'KCC' -And $Department -eq 'Catering Staff'){
[STRING]$MiddleOU = 'OU=Events & Catering,OU=Business Managment,OU=Staff,OU=Users,OU='
[STRING]$HomeDirectory = ('\\ad.esw.org.uk\KCC\StaffUsers\'+ $SamAccountName)
}
ElseIf ($school -eq 'KCC'){
[STRING]$MiddleOU = 'OU=Staff,OU=Users,OU='
[STRING]$HomeDirectory = ('\\ad.esw.org.uk\KCC\StaffUsers\'+ $SamAccountName)
}

最佳答案

仅出于完整性的目的,并且作为实现这种构造的更优选方式的引用。

$dom="\\ad.esw.org.uk"
$deptdata=@(
@{dept='IT Staff'; ou='OU=IT Services,OU=Business Managment,OU=Staff,OU=Users,OU='; homedir="$dom\KCC\StaffUsers\$SamAccountName"},
@{dept='ILS Staff'; ou='OU=Resources,OU=Business Managment,OU=Staff,OU=Users,OU='; homedir="$dom\KCC\StaffUsers\$SamAccountName"},
@{dept='DATA Staff'; ou='OU=Data,OU=Business Managment,OU=Staff,OU=Users,OU='; homedir="$dom\KCC\StaffUsers\$SamAccountName"},
@{dept='Facilities Staff'; ou='OU=Estates & Facilities,OU=Business Managment,OU=Staff,OU=Users,OU='; homedir="$dom\KCC\StaffUsers\$SamAccountName"},
@{dept='Catering Staff'; ou='OU=Events & Catering,OU=Business Managment,OU=Staff,OU=Users,OU='; homedir="$dom\KCC\StaffUsers\$SamAccountName"}
)

If ($school -eq 'KCC'){

$MiddleOU = 'OU=Staff,OU=Users,OU='
$HomeDirectory = ("$dom\KCC\StaffUsers\$SamAccountName")

$deptdata | where {$_.dept -eq $Department} | foreach {
$MiddleOU = $_.ou
$HomeDirectory = $_.homedir
}
}

作为进一步的改进,数据可以存储在外部JSON / XML文件中。

关于powershell - 如果触发了if语句,然后在触发If -And语句之前退出if语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56255200/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com