2016-08-10 8 views
1

グループポリシーのセキュリティフィルタに使用される2つのセキュリティグループがあります。これらは毎月窓を更新するために使用されます。この問題は、新しいサーバーがオンラインになるのを待つことができないという問題がありました。だから私はグループAまたはグループBにはないサーバのリストを私にメールするpowershellスクリプトを自動化したいと思っています。私はいくつかのコードを持っていますが、私の頭を包み込むことはできません。グループAまたはグループB以外のコンピュータアカウントを検索

#Grab the computer names from the first security group 
    $group1 = Get-ADGroup -Identity 'Every Day WSUS 3am Install' 
    $members1 = Get-ADGroupMember -Identity $group1 | select -Expand Name 

    #Grab the computer names from the second security group 
    $group2 = Get-ADGroup -Identity 'Every Day WSUS 6am Install' 
    $members2 = Get-ADGroupMember -Identity $group2 | select -Expand Name 

    #grab all computer obejects that are servers from AD and list the names not found in either security group 
    (Get-ADComputer -LDAPFilter "(&(objectcategory=computer)(OperatingSystem=*server*))").Name | ? { $members1 -notcontains $_.Name -and $members2 -notcontains $_.Name } 

答えて

3

あなたはそのためには、name属性ある文字列の束を返します().NameであなたのGet-ADComputerコマンドを包みました。名前の文字列をコンピュータオブジェクトと比較すると、それはうまく比較されません。この方法をお試しください:

#Grab the computer names from the first security group 
$group1 = Get-ADGroup -Identity 'Every Day WSUS 3am Install' 
$group2 = Get-ADGroup -Identity 'Every Day WSUS 6am Install' 

#grab all computer obejects that are servers from AD and list the names not found in either security group 
Get-ADComputer ` 
    -LDAPFilter "(&(objectcategory=computer)(OperatingSystem=*server*))" ` 
    -Properties MemberOf | 
Where-Object { 
    ($_.MemberOf -notcontains $Group1.DistinguishedName) -and 
    ($_.MemberOf -notcontains $Group2.DistinguishedName) 
} | 
Select-Object -ExpandProperty Name 
+0

ありがとうございました。 – Tram

+0

私は解決策を私にマークすることができますので、私はいくつかの点を得ることができますか? :) –

+0

レピュテーションポイントが15未満では記録されているが表示されないことを示しています。私は15歳の時に戻って、もう一度やり直します。迅速な対応に感謝します。 – Tram

関連する問題