Active Directory nesneleri nasıl sayılır ve neden AD nesneleri sayımına ihtiyacımız var? Örneğimizde, Microsoft Entra Connect’i yüklemeden ve yapılandırmadan önce toplam sayıya sahip olmak istiyoruz. Bunun nedeni, minimum sunucu gereksinimleri için toplam AD nesnelerini bilmemiz gerektiğidir. Bu yazıda, PowerShell ile AD nesnelerinin nasıl sayılacağına bakacağız.
İçindekiler
- AD kullanıcılarını sayma
- AD gruplarını sayma
- AD bilgisayarlarını sayma
- AD toplam sayısını alma
- PowerShell betiği ile Active Directory bilgilerini alma
- Son
AD kullanıcılarını sayma
PowerShell ile AD kullanıcılarını sayın. Get-AdUser cmdlet’ini kullanın.
(Get-AdUser -Filter * | Measure-Object).Count
AD gruplarını sayma
PowerShell ile AD gruplarını sayın. Get-ADGroup cmdlet’ini kullanın.
(Get-ADGroup -Filter * | Measure-Object).Count
AD bilgisayarlarını sayma
PowerShell ile AD bilgisayarlarını sayın. Get-ADComputer cmdlet’ini kullanın.
AD toplam sayısını alma
PowerShell ile kullanıcı, grup ve bilgisayar sayılarını birlikte ekleyelim. Aşağıdaki betiği kullanın, kopyalayıp PowerShell’e yapıştırın. Ayrıca Get-ADCount.ps1 betiğini indirebilir ve PowerShell’den çalıştırabilirsiniz.
$ADUser = (Get-AdUser -Filter * | Measure-Object).Count $ADGroup = (Get-ADGroup -Filter * | Measure-Object).Count $ADComputer = (Get-ADComputer -Filter * | Measure-Object).Count $ADObjects = $ADUser + $ADGroup + $ADComputer $ADObjects
Komut dosyasını çalıştırdıktan sonra bu şekilde görünür. Toplam AD nesnesi sayısı 167’dir.
PS C:\> $ADUser = (Get-AdUser -Filter *).Count $ADGroup = (Get-ADGroup -Filter *).Count $ADComputer = (Get-ADComputer -Filter *).Count $ADObjects = $ADUser + $ADGroup + $ADComputer $ADObjects 167
PowerShell betiği ile Active Directory bilgilerini alma
Active Directory sayısını almanın mükemmel bir yolu, Get-ADInfo.ps1 PowerShell betiğini çalıştırmaktır. Bu, AD nesnelerinin sayısını ve Active Directory’niz hakkında daha fazla bilgiyi gösterecektir.
# Get counts of different types of objects in Active Directory $Computers = (Get-ADComputer -Filter * | Measure-Object).Count $Workstations = (Get-ADComputer -Filter { OperatingSystem -notlike "*Server*" } | Measure-Object).Count $Servers = (Get-ADComputer -Filter { OperatingSystem -like "*Server*" } | Measure-Object).Count $Users = (Get-ADUser -Filter * | Measure-Object).Count $Groups = (Get-ADGroup -Filter * | Measure-Object).Count # Get Active Directory Forest information $ADForest = (Get-ADDomain).Forest $ADForestMode = (Get-ADForest).ForestMode $ADDomainMode = (Get-ADDomain).DomainMode # Obtain Active Directory Schema version and translate it to the corresponding Windows Server version $ADVer = Get-ADObject (Get-ADRootDSE).schemaNamingContext -Property objectVersion | Select-Object objectVersion $ADNum = $ADVer -replace "@{objectVersion=", "" -replace "}", "" switch ($ADNum) { '91' { $srv = 'Windows Server 2025' } '88' { $srv = 'Windows Server 2019/Windows Server 2022' } '87' { $srv = 'Windows Server 2016' } '69' { $srv = 'Windows Server 2012 R2' } '56' { $srv = 'Windows Server 2012' } '47' { $srv = 'Windows Server 2008 R2' } '44' { $srv = 'Windows Server 2008' } '31' { $srv = 'Windows Server 2003 R2' } '30' { $srv = 'Windows Server 2003' } } # Display collected information Write-host "Active Directory Info" -ForegroundColor Yellow Write-host "" Write-Host "Computers = $Computers" -ForegroundColor Cyan Write-Host "Workstions = $Workstations" -ForegroundColor Cyan Write-Host "Servers = $Servers" -ForegroundColor Cyan Write-Host "Users = $Users" -ForegroundColor Cyan Write-Host "Groups = $Groups" -ForegroundColor Cyan Write-host "" Write-Host "Active Directory Forest Name = "$ADForest -ForegroundColor Cyan Write-Host "Active Directory Forest Mode = "$ADForestMode -ForegroundColor Cyan Write-Host "Active Directory Domain Mode = "$ADDomainMode -ForegroundColor Cyan Write-Host "Active Directory Schema Version is $ADNum which corresponds to $srv" -ForegroundColor Cyan Write-Host "" Write-Host "FSMO Role Owners" -ForegroundColor Cyan # Retrieve FSMO roles individually $Forest = Get-ADForest $SchemaMaster = $Forest.SchemaMaster $DomainNamingMaster = $Forest.DomainNamingMaster $Domain = Get-ADDomain $RIDMaster = $Domain.RIDMaster $PDCEmulator = $Domain.PDCEmulator $InfrastructureMaster = $Domain.InfrastructureMaster # Display FSMO role owners Write-Host "Schema Master = $SchemaMaster" -ForegroundColor Cyan Write-Host "Domain Naming Master = $DomainNamingMaster" -ForegroundColor Cyan Write-Host "RID Master = $RIDMaster" -ForegroundColor Cyan Write-Host "PDC Emulator = $PDCEmulator" -ForegroundColor Cyan Write-Host "Infrastructure Master = $InfrastructureMaster" -ForegroundColor Cyan