2017-09-19 3 views
0
$groups = 'group1', 'group2'.... 

ユーザが特定のADグループに属しているかどうかをチェックし、そうでない場合はグループ名をエコーする必要があります。私はパイプラインでそれを行うことができますか?ユーザがADグループのリストのメンバーであることを確認してください。

私はたくさんのグーグルで行きましたが、何も見つかりませんでした。多分私は英語のGoogle検索であまりにも悪いです。

$groups | 
    Get-QADGroupMember | 
    Get-QADUser -SamAccountName 'lalala' | ForEach-Object { 
     if ($_.SamAccountName -ne $null) { 
      Write-Host "ok" 
     } else { 
      Write-Host 'not ok' 
     } 
    } 

どのように表示することができます。not ok. user is not ingroup_name

+0

あなたはグループのリストを持っています。ユーザーのうち、どちらがメンバーになっているのですか?どれか?すべて?特定のもの?なし?また、私は反対側から始めることをお勧めします:ユーザーがメンバーであるグループを取得し、リストに関連グループが含まれているかどうかを確認します。 –

答えて

0

なぜ、結果をループするだけで簡単にパイプラインを使用したいのですか?

ユーザーがグループのリストのメンバーであるかどうかを確認するには、次の

$user = "TestUsername" 
$groups = 'Domain Users', 'Domain Admins' 

foreach ($group in $groups) { 
    $members = Get-ADGroupMember -Identity $group -Recursive | Select -ExpandProperty SamAccountName 

    If ($members -contains $user) { 
     Write-Host "$user is a member of $group" 
    } Else { 
     Write-Host "$user is not a member of $group" 
    } 
} 

し、複数のユーザーのため:

$users = "TestUsername1", "TestUsername2", "TestUsername3" 
$groups = 'Domain Users', 'Domain Admins' 

foreach ($user in $users) { 
    foreach ($group in $groups) { 
     $members = Get-ADGroupMember -Identity $group -Recursive | Select -ExpandProperty SamAccountName 

     If ($members -contains $user) { 
      Write-Host "$user is a member of $group" 
     } Else { 
      Write-Host "$user is not a member of $group" 
     } 
    } 
} 
関連する問題