Active Directory kullanıcı hesaplarını, bilgisayar hesaplarını ve diğer grup hesaplarını bir arada toplayarak yönetimlerini kolaylaştırmak için kullanılan Active Directory nesnelerine GRUP adı verilmektedir. Grup nesneleri kullanımı; Active Directory kullanıcı, bilgisayar ve diğer grup hesapları için yapılacak toplu işlemlerde çok geniş bir kullanım alanına sahiptir. Bunun en sık kullanılan örneği olarak Active Directory'deki kullanıcıların, Network üzerindeki paylaştırılmış kaynaklara erişimlerini ve bu kaynaklar üzerindeki izinlerini merkezi ve toplu bir şekilde kontrol edebilmenize olanak sağlanması olarak gösterebiliriz. Bu bağlamda, bir Network üzerinde paylaşıma açılmış olan bir kaynağa birden fazla kullanıcının erişmesi söz konusu ise, bu kullanıcılara tek tek izin ataması yapmak yerine bir grup oluşturup, kullanıcıları da ilgili grubun üyesi yaparak kullanıcıların üye olduğu ilgili gruba da NTFS zin ataması yapmak suretiyle izin yönetim işlemlerini kolaylaştırmanız daha pratik hale gelmektedir. Aynı şekilde gruplara başka grupları da üye yaparak, o grupların üyelerini de tek bir grup üzerinden izin atamaları kapsamında yönetmek de pratik bir yöntemdir.
Biz sistem yöneticilerinin Active Directory yönetiminde Active Directory grup hesapları ve yönetimi noktasında kullanıcılarımızın üye olduğu grupları karşılaştırarak, ortak grup üyelikleri bilgisini edinmemiz gerekebiliyor. Bu makalemde sizlere iki farklı Active Directory Group nesnenesinin üyelerini nasıl karşılaştıracağınızı, hangi kullanıcının hangi grupta üye olduğu, hangisinin olmadığı gibi bilgileri karşılaştırmalı olarak nasıl edinebileceğinizden bahsediyor olacağım.
Active Directory Gruplarını Listeleme
Active Directory Group nesnenesinin üyelerini karşılaştırmadan önce, üyelerini karşılaştıracağımız Active Directory Group nesnelerini listeleyelim. Active Directory ortamınızda yüzlerce grup nesenesi olabilir. Karşılaştırma yapacağınız AD gruplarınızın dizin bilgisine sahipseniz, direkt olarak ilgili Organization Unit üzerinden grup isimlerini öğrenebilirsiniz.

Değilseniz, hangi Organization Unit altındaki grup nesneleri ile çalışacaksanız, iligli Organization Unit'in Distinguished Name (DM) bilgisi ile filtreleme yapmanızı tavsiye ederim.
1- Aşağıdaki komut yardımıyla ilgili Organization Unit içinde üyesi olsun ya da olmasın tüm Security Grup nesenelerini listeliyorum.
Get-adobject -Filter 'ObjectClass -eq "Group"' -SearchBase "OU=IT,OU=Ist-All-Departments,OU=Istanbul,OU=Turkey,OU=Europe,DC=firatboyan,DC=local" | Select Name | Sort-Object Name |

2- Bir önceki komuttaki çıktı listesi oldukça uzun olabilir, bu nesnele sorgu filtremi daraltırıp, sonuçların kısalmasını sağlamak amacıyla aşağıdaki komutu kullarak sadece üyesi olan grupların listelenmesini sağlayacağım.
Get-ADGroup -Filter * -Properties Members -searchbase “OU=IT,OU=Ist-All-Departments,OU=Istanbul,OU=Turkey,OU=Europe,DC=firatboyan,DC=local” | where {$_.members} | select Name |

Buraya kadar olan süreçte öncelikli olarak karşılaştırma yapacağım grupların belirlenmesini sağlayarak, ilgili grupların isimlerini öğrendim. Şimdi sıra, grupların karşılaştırılarak hangi kullanıcının hangi grupta üye olduğu ya da olmadığı bilgisini öğrenmek olacak.
Active Directory Gruplarını Karşılaştırma
3- Karşılaştırma yapmak istediğim Active Directory gruplarının isimleri GRP-IST-IT-USERS-01 ve GRP-IST-IT-USERS-02'dir. PowerShell'de Compare-Object komutu ile bu iki grubun ismini Get-ADGroupMember komutu içinde aşağıdaki şekilde kullanıyorum. Buradaki -Property bilgisinde Name kullanarak kullanıcılarun OU içinde görünen isim bilgilerine göre listeliyorum.
Compare-Object (Get-ADGroupMember "GRP-IST-IT-USERS-01") (Get-ADGroupMember "GRP-IST-IT-USERS-02") -Property "Name" -IncludeEqual | Sort-Object Name |

Kommut çıktısındaki SideIndicator değerlerinin anlamları şöyledir.
== |
<= |
=> |
Her iki grupta da üye |
Sadece 1. grupta üye |
Sadece 2. grupta üye |
4- Aşağıdaki komutla, bir önceki önceki komuttan farklı olarak, -Property bilgisinde SamAccountName kullanarak kullanıcı adı bilgisine göre listeliyorum.
Compare-Object (Get-ADGroupMember "GRP-IST-IT-USERS-01") (Get-ADGroupMember "GRP-IST-IT-USERS-02") -Property "SamAccountName" -IncludeEqual | Sort-Object Name |


Bu yöntemle kolay bir şekilde Active Directory grup nesnelerimizi karşılaştırabilir, hangi AD nesnesinin hangi grupta olup olmadığı bilgisini kolaylıkla edilebiliriz.
Faydalı olması dileğiyle...
Her türlü görüş ve önerilerinizi aşağıdaki yorum panelinden bırakabilir, kafanıza takılanları veya merak ettiklerinizi sorabilirsiniz.