สิ่งนี้หากคำสั่งไม่ตรงกับสิ่งใดเลยด้วยเหตุผลบางประการ แม้ว่าเอาต์พุตใน CSV จะมีข้อมูล $MemberName อยู่ในเซลล์ก็ตาม
if($MemberName -notlike "Administrator" -or $MemberName -notlike "Domain Admins" -or $MemberName -notlike "Workstation Admin"){
Add-Content -Path $OutPutFile -Value "$Computer, $LocalGroupName, SUCCESS, $MemberType, $MemberDomain, $MemberName"
}
มีวิธีเขียนคำสั่ง if ที่มีประสิทธิภาพมากกว่านี้หรือไม่ ฉันต้องการเพิ่มแถวหาก $MemberDomain และ $MemberName ไม่ตรงกับชุดเกณฑ์ต่อไปนี้:
$MemberDomain $MemberName
LocalUser AND Administrator
DomainGroup AND Workstation Admin
DomainGroup AND Domain Admins
บางอย่างเช่น:
if(($MemberName -notlike "Administrator" -and $MemberDomain -notlike "LocalUser") -or ($MemberName -notlike "Domain Admins" -and $MemberDomain -notlike "DomainGroup") -or ($MemberName -notlike "Workstation Admin" -and $MemberDomain -notlike "DomainGroup")) { do something }
นี่คือสิ่งที่ได้ผล แต่ฉันคิดว่ามีวิธีการทดสอบทั้งสองค่าร่วมกันที่มีประสิทธิภาพมากกว่า
$ExcludedNames = ("Administrator","Workstation Admin","Domain Admins")
$ExcludedMemberTypes = ("LocalUser","DomainGroup")
if(($ExcludedNames -contains $MemberName) -and ($ExcludedMemberTypes -contains $MemberType) ){
} else {
Add-Content -Path $OutPutFile -Value "$Computer, $LocalGroupName, SUCCESS, $MemberType, $MemberDomain, $MemberName"
}
ประเด็นที่ผมอยากจับคู่ให้เป็นจริงด้วยกัน ตัวอย่างเช่น การรวมกันของ "DomainGroup และ Administrator" จะเป็นจริงกับโค้ดด้านบน และควรเป็นเท็จเมื่อเฉพาะ LocalUser และ Administrator เท่านั้นที่ควรเป็นจริง