Для жизни меня я не могу понять, что я делаю неправильно здесь. Я уверен, что я не понимаю последнее утверждение elseif с помощью contains, но каждый пример, который я прочитал, говорит мне, что я делаю это правильно.Если и Elseif не работает правильно
Этот сценарий я написал первые проверки, чтобы посмотреть, содержит ли родительская группа дочернюю группу, если она не добавляет группу, а последняя делает окончательную проверку и выводит «Да» или «Нет» в зависимости от того, произошла ли вложенность группы или нет ,
Но по какой-либо причине выход всегда «Нет», даже если произошла группировка групп. Когда я смотрю на родительскую группу в AD, я вижу, что дочерняя группа добавлена, когда я смотрю на user3.txt. Я вижу дочернюю группу «ванная» внутри текстового файла. Что я делаю неправильно?
$group = "bathroom"
$validate = Get-ADGroupMember -identity BuildingGroups | format-table -HideTableHeaders "name" | out-file .\bathroom\user.txt -Append
$validate2 = get-content .\bathroom\user.txt
$Dest = ".\bathroom\user.txt"
$childgroup = Get-ADGroup $childgroupOU
$parentgroup = Get-ADGroup $parentgroupOU
If (Select-String -Path $Dest -Pattern $group) {
Write-Host "$group is already a member of BuildingGroups."
}
elseif ($validate2 -notcontains $group) {
try {
Add-ADGroupMember $parentgroup –Member $childgroup –Server "$prefix.$root.ca"
Get-ADGroupMember -identity BuildingGroups | format-table -HideTableHeaders "name" | out-file .\bathroom\user2.txt -Append
}
catch {
$_.Exception | out-file .\bathroom\addgroup_error.txt -Append
}
}
(gc .\bathroom\user2.txt) | ? {$_.trim() -ne "" } | set-content .\bathroom\user3.txt
$validate4 = Get-Content .\bathroom\user3.txt
If ($validate4 -contains $group) {
Write-Host "Yes"
}
elseif ($validate4 -notcontains $group) {
Write-Warning "No"
}
Вы можете разместить вывод '$ user3.txt' –
ванной туалет биде (обратите внимание, что каждая группа на своей собственной линии внутри файла user3.txt) – user3591436
ли вы проверили выход '$ validate4'? –