Так что в настоящее время работаем над новым сценарием персонала, и я немного запутался, почему оператор If завершается, когда возвращается true
Я бы ожидал, что оно продолжится с оператором If до конца, чтобы увидеть, подходит ли оно другим. Может кто-нибудь объяснить, почему так работает (думаю, для производительности)
Я решил свою проблему, изменив порядок выражения If, но мне было интересно, есть ли лучший или более элегантный способ сделать это?
Итак, пример ниже:
до того, как я поставил последний ElseIf внизу, любой сотрудник из школы XX был помещен в подразделение персонала, даже если его Департамент был одним из тех, которые перечислены в заявлениях 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)
}