私はドメインコントローラの検証スクリプトを作成中です。私は確認する必要がある4つのことがあるアカウントを持っています。私が働いているコードは、条件の1つが満たされず、それが今やっていることであれば、それが壊れないようにしたくありません。ですから、条件が満たされているかどうかにかかわらず、基本的に4つの基準すべてをチェックする必要があります。ここでPowershellで中断のない複数の条件を確認する
は私のコードです:
if(net user "user.dadm") {
Write-Host "[√] User.dadm was created successfully" -fore GREEN
if((((uACADA "user.dadm") -band 65536) -ne 0) -eq $true) {
Write-Host "[√] Password for user.dadm is set to never expire" -fore GREEN
if((Get-ADGroupMember -Identity "Domain Admins").Name -contains "user.dadm") {
Write-Host "[√] User.dadm was added to Domain Admins" -fore GREEN
if((((uACADA "user.dadm") -band 1048576) -ne 0) -eq $true) {
Write-Host "[√] Account Delegation Authority was removed" -fore GREEN
} else {
Write-Host "[X] Account Delegation was not removed" -fore RED
}
} else {
Write-Host "[X] User.dadm was not added to Domain Admins" -fore RED
}
} else {
Write-Host "[X] Password for user.dadm has been set to expire" -fore RED
}
} else {
Write-Host "[X] User.adam was not created" -fore RED
}
これは何のいずれかの条件が満たさが、私はそれがそれぞれの条件をチェックし続ける必要がされていない場合には、elseステートメントに壊れるです。
私はこれを分解して各条件を個別にチェックすることができますが、すでに1000行以上になるため、できるだけ圧縮しておくことをお勧めします。
私は4つの別々のIF/ELSEステートメントを作成せずにこれを行うことができるのかどうかは疑問だと思います。
構造化の問題(ネストされたIF)またはコマンドの問題(IFとELSEIFを使用する必要がある場合はIFとELSEを使用するかどうかはわかりません)。
誰かが正しい方向に向けるでしょうか?前もって感謝します。
私の質問があり、うまく以上のテストに拡張う
それを維持するのは自分自身です。 – Rincewind
あなたは永遠にそれを維持していますか?あなたが去った後でさえ?それと同時に、スクリプトを読んだ5年後の意味を正確に知ることができるでしょうか?もう一度、私の経験は、2年以上前から私自身のコードを読むことは、他人のコードを読むこととあまり変わらないということです。 –