Сценарий PowerShell не работает должным образом при получении групп AD - PullRequest
0 голосов
/ 24 мая 2019

Я работаю над сценарием PowerShell с меню для выбора различных способов поиска информации в Active Directory. Команда с Get-ADUser работает правильно, но команда с Get-ADPrincipalGroupMembership имеет странное поведение. Когда я выбираю эту опцию (3) и ввожу имя пользователя и запускаю команду, на дисплей ничего не выводится, если я затем завершаю работу, используя (Q) в меню, отображаются группы.

function Show-Menu 
{ 
     param ( 
           [string]$Title = 'AD Search Tool' 
     ) 
     cls 
     Write-Host "================ $Title ================" 

     Write-Host "1: Search Users by Title" 
     Write-Host "2: Press '2' for this option." 
     Write-Host "3: List User's Groups" 
     Write-Host "Q: Press 'Q' to quit." 
} 

do 
{ 
     Show-Menu 
     $input = Read-Host "Please make a selection" 
     switch ($input) 
     { 
           '1' { 
                cls 
                $title = Read-Host -Prompt 'Enter Title'
                if ($title){
                    Get-ADUser -Properties SamAccountName, Enabled, Title, EmployeeID -Filter "(Title -eq '$title') -and (Enabled -eq 'True')" | select Enabled, EmployeeID, Name, SamAccountName, Title 
                }

           } '2' { 
                cls 
                'You chose option #2' 

           } '3' { 
                cls 
                $user = Read-Host -Prompt 'Enter User Name'
                if ($user){
                    Get-ADPrincipalGroupMembership $user | select name | sort name 
                }

           } 'q' { 
                cls
                return 
           } 
     } 
     pause 
} 
until ($input -eq 'q')

1 Ответ

1 голос
/ 24 мая 2019

Просто используйте Write-Host, чтобы немедленно написать результат.Чтобы сделать это через трубу, вы можете сначала использовать Out-String.

Таким образом,

 Get-ADPrincipalGroupMembership $user | select name | sort name  | Out-String | Write-Host -ForegroundColor Cyan

вместо

 Get-ADPrincipalGroupMembership $user | select name | sort name

сделает свое дело.* Цвет не является обязательным.Мне просто нравится циан.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...