Active Directory Domain yapısı içerisindeki objelerin her birinin benzersiz birer kimlik numarası vardır. Bu benzersiz kimlik numaraları, bir Active Directory nesnesi oluşturulduğunda otomatik olarak atanır ve bu değişken, benzersiz numaralara Relative Identifier (RID) adı verilmektedir. Relative Identifier (RID) numaraları atanırken, Active Directory nesnesinin oluşutuğu Domain altında ilgili Domain'in kimlik numarasıyla beraber atanır ki buna da Security Identifier (SID) denir.
Her Domain'in kendine ait sabit değerde bir Security Identifier (SID) numarası vardır ve atanan her Relative Identifier (RID) numarası, bu Security Identifier (SID) numarası altında atanır. İşte bu noktada, Active Directory ortamında oluşturulan nesnelere RID numarası ataması işlemini bu rol gerçekleştirir.
RID Master FSMO rolü, varsayılan olarak Domain yapısının ilk kurulduğu Primary Domain Controller üzerindedir. RID Master FSMO rolünü tutan Domain Controller, kendi üzerindeki RID havuzunda 1,073,741,823 (1 milyar 73 milyon 741 bin 823) adet RID numarası barındırır ki bu rakam, 2,147,483,647 (2 milyar 147 milyon 483 bin 647) üst sırınına kadar artırılabilmektedir.
Domain ya da Forest ortamındaki RID Master FSMO rolünü tutmayan diğer Domain Controller'lar üzerlerinde 500 adet RID numarası bulunurlar (Windows Server 2016 ile birlikte bu sayı 500'e çıkartılmıştı) ve bu RID Master FSMO rolünü tutmayan Domain Controller'lar, bu sayının %50'si tükendiğinde RID master FSMO rolünü üzerinde tutan Domain Controller ile iletişime geçerek, tekrar bir 500'lük RID talebinde bulunurlar. Tüm bu işlemleri yerine getiren RID Master FSMO rolüdür. Bu rol, Domain bazlı olup, Forest ortamındaki tüm Domain'lerde bulunur.
RID Matser'ı barındıran Domain Controller'ın işlevsiz kalması ve yapınızdaki herhangi bir diğer Domain Controller'ın da barındırdığı bu sınırlı RID numarasının tükenmesi durumunda, RID numarasının tükendiği Domain Controller üzerinde yeni Active Directory nesneleri oluşturulamayacaktır ve the directory service has exhausted the pool of relative identifiers hatası oluşacaktır.
Relative Identifier (RID) ve Security Identifier (SID) Numaraları Nasıl Bulunur?
Active Directory içindeki nesnelerinin SID numaralarını görebilmek için CMD üzerinde aşağıdaki komutu yazmanız yeterlidir. Active Directory üzerindeki tüm nesnelerinin SID numaralarını listeleyecektir.
dsquery * -attr objectsid -filter objectcategory=user |
Bu komut, Active Directory (AD) içinde tüm kullanıcı hesaplarının Security Identifier (SID) değerlerini sorgulamak için kullanılır. dsquery * ile AD içindeki tüm nesneleri tarar, ancak -filter objectcategory=user parametresi sayesinde yalnızca kullanıcı nesnelerini listeleyecek şekilde filtre uygular. -attr objectsid parametresi de, bu kullanıcı nesnelerinin SID değerlerini çekerek çıktı olarak sunar.
Prefix |
Domain SID (Security Identifier) |
RID (Relative Identifier) |
S-1-5-21 |
3310300546-3177019570-1523761220 |
1103 |
S-1-5-21 |
3310300546-3177019570-1523761220 |
1104 |
S-1-5-21 |
3310300546-3177019570-1523761220 |
1105 |
S-1-5-21 |
3310300546-3177019570-1523761220 |
1106 |
S-1-5-21 |
3310300546-3177019570-1523761220 |
1107 |
S-1-5-21 |
3310300546-3177019570-1523761220 |
1108 |
S-1-5-21 |
3310300546-3177019570-1523761220 |
1109 |
S-1-5-21 |
3310300546-3177019570-1523761220 |
1110 |
S-1-5-21 |
3310300546-3177019570-1523761220 |
1111 |
S-1-5-21 |
3310300546-3177019570-1523761220 |
1112 |
S-1-5-21 |
3310300546-3177019570-1523761220 |
1113 |
S-1-5-21 |
3310300546-3177019570-1523761220 |
1114 |
S-1-5-21 |
3310300546-3177019570-1523761220 |
1115 |
S-1-5-21 |
3310300546-3177019570-1523761220 |
1116 |
S-1-5-21 |
3310300546-3177019570-1523761220 |
1117 |
S-1-5-21 |
3310300546-3177019570-1523761220 |
1118 |
S-1-5-21 |
3310300546-3177019570-1523761220 |
1119 |
S-1-5-21 |
3310300546-3177019570-1523761220 |
1120 |

Yukarıdaki Security Identifier (SID) numaralarından bir tanesini örnek baz alacak olursak;
Prefix |
Domain SID (Security Identifier) |
RID (Relative Identifier) |
S-1-5-21 |
3310300546-3177019570-1523761220 |
1105 |
1- S-1-5-21: standart bir ön ektir.
» 1: versiyon numarasıdır ve Windows NT 3.1 versiyondan bu yana hiç değişmeyen bir bildiri.
» 5: SID'nin NT tarafından atandığını gösteren tanımlamadır.
» 21: yine aynı şekilde NT tarafından atanan bir ön ektir.
2- 3310300546-3177019570-1523761220: Domain'e özgü 32 Bit'lik bir kimlik numarasıdır ve Domain'i temsil eder. Domain ortamı kurulduğunda otomatik olarak oluşur ve her ve Domain'deki tüm nesneler için aynı numara geçerlidir.
3- 1105: Domain içindeki her nesnenin değişken kimlik numarasıdır. İşte RID-Relative Identifier de budur. Buradaki 1105 RID numarası ise örnektir ve RID-Relative Identifier numaraları hiçbir zaman aynı olmaz ve kullanılan bir RID numarası, bir daha asla kullanılmaz.
Aşağıdaki komut, hem yerel hem de Active Directory kullanıcı hesaplarının Security Identifier (SID) değerlerini almak için kullanılır. Komut çalıştırıldığında, sistemde tanımlı olan tüm kullanıcı hesaplarının adlarını (Name) ve bunlara karşılık gelen SID değerlerini listeleyerek, hem yerel sistemdeki hem de domain ortamındaki kullanıcıların SID bilgilerini sorgulamak için kullanılabilir.
Teknik olarak, yukarıdaki komutla benzer bir işlevi yerine getirse de, temel farkları şunlardır:
✅ dsquery komutu, yalnızca Active Directory içindeki kullanıcı hesaplarını listeler. Bu yüzden Domain ortamında çalışır ve Domain Controller üzerinden AD veri tabanını sorgular.
✅ wmic useraccount komutu ise, yerel hesapları ve Active Directory’den gelen Domain kullanıcılarını listeler. AD ortamındaki kullanıcıları da SID ile birlikte gösterebilir.
wmic useraccount get name,sid |

Aşağıdaki yordamde ise direlt olarak SID bilgisini sorguya iliştirerek ilgili kullanıcının kullanıcı adını öğrenebilirsiniz.
wmic useraccount where sid="S-1-5-21-3310300546-3177019570-1523761220-1105" get name |

Görüldüğü üzere ilgili SID numarasının User3 kullanıcısına ait olduğunu görebiliyoruz. Active Directory üzerinden, kullanıcısının özelliklerinden Attribute Editor sekmesi üzerinde objectSid bilgisini görüntülediğimde de aynı sonucu görebilmekteyim.

RID, Relative Identifier değerinin, Security Identifier içinde nasıl konumlandığını ve ne işe yaradığını anlamak, özellikle Active Directory içindeki nesnelerin yönetimi açısından büyük bir öneme sahip. Domain içindeki her nesneye atanan benzersiz Security Identifier, RID değerinin yardımıyla oluşturulduğu için, bu sürecin doğru anlaşılması sistem güvenliği ve yönetimi açısından oldukça kritik. RID Pool mekanizmasının nasıl çalıştığı ve bu değerlerin nasıl tahsis edildiği bilinmeden, özellikle çok sayıda Domain Controller içeren ortamlarda beklenmeyen sorunlarla karşılaşmak kaçınılmaz olur.
Security Identifier değerinin yapı taşlarından biri olan RID, bir nesnenin eşsizliğini sağlarken, sistemin iç dinamikleri açısından da belirleyici bir faktör. Active Directory içindeki nesnelerin zaman içinde nasıl değiştiğini ve SID değişikliklerinin ne gibi etkiler doğurabileceğini anlamak, özellikle Domain Migration veya geri dönüş senaryolarında kritik farklar yaratabilir. RID Master rolünün dağıtımı ve replikasyon sürecindeki etkisi ise, özellikle büyük ölçekli yapılar için göz ardı edilmemesi gereken konular arasında yer alıyor.
Bu konulara hakim olmak, yalnızca RID değerlerini sorgulamakla sınırlı kalmayıp, olası hataları öngörmek ve müdahale süreçlerini hızlandırmak açısından büyük avantaj sağlar. Özellikle RID Pool tükenmesi gibi durumların önüne geçebilmek için, sistemin çalışma mantığını kavramak ve gerekli önlemleri almak, ilerleyen süreçlerde ciddi problemlerin önüne geçebilir.
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.