Этот оператор if по какой-то причине не соответствует ничему, даже несмотря на то, что выходные данные в 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 должны быть истинными.