RID Master

FSMO Role’lerden olan RID Master rolüne sahip olan Domain Controller’da sorun olması durumunda yada Rid Available Pool’un maximum limitlere gelmesi durumunda yaşanacak sorunlar ve çözümleri aşağıdaki gibidir.

EventAçıklama
16650RID pool request başarısız
16654RID allocation block edildi
16653RID pool genişletildi

Aşağıdaki komut ile kontrol ettiğimde,

dcdiag /test:ridmanager /v

Rid pool tamamen biterse eğer aşağıdaki hata ile karşılaşılır.

The maximum domain account identifier value has been reached. No further account-identifier pools can be allocated to domain controllers in this domain.

Bu, Active Directory’de RID global havuzunun üst sınırına ulaşıldığını gösterir. Bu durumda:

Yeni user

Yeni group

Yeni computer

oluşturulamaz çünkü yeni RID block dağıtılamaz.

Unlocked Global RID space

LDP

Connection – connect – Dcname

Browse – modify

DC’I boş bırak

Edit entry Attribute değerini  SidCompatibilityVersion yap

Value 1

Manuel olarak global RID space değiştirildiğinde

Bu metnin kısa ve net özeti aşağıdadır:

RID Ceiling Enforcement (RID Üst Sınır Mekanizması)

Windows Server 2012 ile birlikte Active Directory’de RID tükenmesini önlemek için bir güvenlik mekanizması eklendi.

Global RID alanının %90’ı kullanıldığında (yani %10 kaldığında) sistem otomatik olarak RID dağıtımını durdurur.

Bu durum oluştuğunda:

RID Master, yeni RID blokları dağıtmayı durdurur.

Event ID 16657 (Directory-Services-SAM) System log’a yazılır.

Domain Controller’lar sadece daha önce aldıkları RID bloklarını kullanmaya devam eder.

Runaway RID allocation (kontrolsüz RID tüketimi) durumlarını tespit etmek

RID alanının tamamen bitmesini önlemek

RID sınır değerleri

RID SpaceTetikleme noktası
Default (30-bit)966,367,640 RID (%90 kullanılmış)
Unlock edilmiş (31-bit)1,932,735,282 RID

RID Master şu attribute’u FALSE yapar:

msDS-RIDPoolAllocationEnabled

Object:

CN=RID Manager$,CN=System,DC=<domain>

Bu durumda hiçbir DC yeni RID pool alamaz.

Blok kaldırmak için

Attribute tekrar TRUE yapılır:

msDS-RIDPoolAllocationEnabled = TRUE

Sonraki RID allocation sonrası attribute tekrar NOT SET olur.

Monitor etmek içinaşağıdaki eventler izlenmelidir.

Event ID16653
SourceDirectory-Services-SAM
SeverityWarning
MessageA pool size for account-identifiers (RIDs) that was configured by an Administrator is greater than the supported maximum. The maximum value of %1 will be used when the domain controller is the RID master. For more information, see RID Block Size Limit.
Notes and resolutionThe maximum value for the RID Block Size is now 15000 decimal (3A98 hexadecimal). A domain controller can’t request more than 15,000 RIDs. This event logs at every boot until the value is set to a value at or below this maximum.
Event ID16654
SourceDirectory-Services-SAM
SeverityInformational
MessageA pool of account-identifiers (RIDs) has been invalidated. This may occur in the following expected cases: 1. A domain controller is restored from backup. 2. A domain controller running on a virtual machine is restored from snapshot. 3. An administrator has manually invalidated the pool. See  https://go.microsoft.com/fwlink/?LinkId=226247 for more information.
Notes and resolutionIf this event is unexpected, contact all domain administrators and determine which of them performed the action. The Directory Services event log also contains further information on when one of these steps was performed.
Event ID16655
SourceDirectory-Services-SAM
SeverityInformational
MessageThe global maximum for account-identifiers (RIDs) has been increased to %1.
Notes and resolutionIf this event is unexpected, contact all domain administrators and determine which of them performed the action. This event notes the increase of the overall RID pool size beyond the default of 230and won’t happen automatically; only by administrative action.
Event ID16655
SourceDirectory-Services-SAM
SeverityInformational
MessageThe global maximum for account-identifiers (RIDs) has been increased to %1.
Notes and resolutionIf this event is unexpected, contact all domain administrators and determine which of them performed the action. This event notes the increase of the overall RID pool size beyond the default of 230and won’t happen automatically; only by administrative action.
Event ID16657
SourceDirectory-Services-SAM
SeverityError
MessageAction required! This domain has consumed a considerable portion of the total available account-identifiers (RIDs). A protection mechanism has been activated because the total available account-identifiers remaining is less than: X% [artificial ceiling argument]. The protection mechanism prevents account creation until you manually re-enable account-identifier allocation on the RID master domain controller. It’s extremely important that certain diagnostics are performed prior to re-enabling account creation to ensure this domain isn’t consuming account-identifiers at an abnormally high rate. Any issues identified should be resolved prior to re-enabling account creation. Failure to diagnose and fix any underlying issue causing an abnormally high rate of account-identifier consumption can lead to account-identifier exhaustion in the domain after which account creation will be permanently disabled in this domain. See  https://go.microsoft.com/fwlink/?LinkId=228610 for more information.
Notes and resolutionContact all domain administrators and inform them that no further security principals can be created in this domain until this protection is overridden. For more information about how to override the protection and possibly increase the overall RID pool, see Global RID Space Size Unlock.
Event ID16658
SourceDirectory-Services-SAM
SeverityWarning
MessageThis event is a periodic update on the remaining total quantity of available account-identifiers (RIDs). The number of remaining account-identifiers is approximately: %1. Account-identifiers are used as accounts are created, when they’re exhausted no new accounts may be created in the domain. See  https://go.microsoft.com/fwlink/?LinkId=228745 for more information.
Notes and resolutionContact all domain administrators and inform them that RID consumption has crossed a major milestone; determine if this is expected behavior or not by reviewing security trustee creation patterns. To ever see this event would be highly unusual, as it means that at least ~100 million RIDS have been allocated.

Powershell ile kalan RID sayısını hesaplama:

Import-Module ActiveDirectory

$domainDN = (Get-ADDomain).DistinguishedName

$ridManager = Get-ADObject `

    -Identity “CN=RID Manager$,CN=System,$domainDN” `

    -Properties rIDAvailablePool,msDS-RIDPoolAllocationEnabled

$ridManager

Import-Module ActiveDirectory

$domain = Get-ADDomain

$domainDN = $domain.DistinguishedName

$ridManager = Get-ADObject `

    -Identity “CN=RID Manager$,CN=System,$domainDN” `

    -Properties rIDAvailablePool,msDS-RIDPoolAllocationEnabled

$pool = [Int64]$ridManager.rIDAvailablePool

$lowPart  = $pool -band 0xFFFFFFFF

$highPart = $pool -shr 32

$totalRemaining = $highPart – $lowPart + 1

[PSCustomObject]@{

    Domain                         = $domain.DNSRoot

    RIDMaster                      = $domain.RIDMaster

    LowPart                        = $lowPart

    HighPart                       = $highPart

    RemainingRIDs                  = $totalRemaining

    RIDPoolAllocationEnabled       = $ridManager.’msDS-RIDPoolAllocationEnabled’

}

Yüzde olarak görmek için:

Import-Module ActiveDirectory

$domain = Get-ADDomain

$domainDN = $domain.DistinguishedName

$ridManager = Get-ADObject `

    -Identity “CN=RID Manager$,CN=System,$domainDN” `

    -Properties rIDAvailablePool,msDS-RIDPoolAllocationEnabled

$pool = [Int64]$ridManager.rIDAvailablePool

$lowPart  = $pool -band 0xFFFFFFFF

$highPart = $pool -shr 32

$remaining = $highPart – $lowPart + 1

# Varsayılan 30-bit global RID space

$defaultMax = 1073741823

$used = $defaultMax – $remaining

$usedPct = [math]::Round(($used / $defaultMax) * 100, 2)

$remainingPct = [math]::Round(($remaining / $defaultMax) * 100, 2)

[PSCustomObject]@{

    Domain              = $domain.DNSRoot

    RIDMaster           = $domain.RIDMaster

    RemainingRIDs       = $remaining

    UsedRIDs            = $used

    UsedPercent         = “$usedPct %”

    RemainingPercent    = “$remainingPct %”

    CeilingBlocked      = $ridManager.’msDS-RIDPoolAllocationEnabled’

}

Kaynak: https://learn.microsoft.com/en-us/windows-server/identity/ad-ds/manage/managing-rid-issuance