2016-10-04 4 views
0

Для жизни меня я не могу понять, что я делаю неправильно здесь. Я уверен, что я не понимаю последнее утверждение 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" 
} 
+0

Вы можете разместить вывод '$ user3.txt' –

+0

ванной туалет биде (обратите внимание, что каждая группа на своей собственной линии внутри файла user3.txt) – user3591436

+0

ли вы проверили выход '$ validate4'? –

ответ

0
$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 
     } 

    } 

    $containsWord = Get-Content .\bathroom\user2.txt | %{$_ -match $group} 

    If ($containsWord -contains $true) { 
     Write-Host "Yes" 
    } 
    elseif ($validate4 -notcontains $group) { 
     Write-Warning "No" 
    } 
+0

Заключительное, если заявление кажется немного неуклюжим там? –

Смежные вопросы