Active Directory Info Script

PowerShell Jul 23, 2025

Use this script to view Active Directory info. Super useful when you want some details.

<#
    .SYNOPSIS
    Get-ADInfo.ps1

    .DESCRIPTION
    Get Active Directory information.

    .CHANGELOG
    V1.0 - 24/07/2025 - Release
#>

# 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 Green
Write-host ""
Write-Host "Computers  = $Computers"
Write-Host "Workstions = $Workstations"
Write-Host "Servers    = $Servers"
Write-Host "Users      = $Users"
Write-Host "Groups     = $Groups"
Write-host ""
Write-Host "Active Directory Forest Name = "$ADForest
Write-Host "Active Directory Forest Mode = "$ADForestMode
Write-Host "Active Directory Domain Mode = "$ADDomainMode
Write-Host "Active Directory Schema Version is $ADNum which corresponds to $srv"
Write-Host ""
Write-Host "FSMO Role Owners"

# 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
$NETBiosName = $Domain.NetBIOSName

# Display FSMO role owners
Write-Host "Schema Master         =  $SchemaMaster" 
Write-Host "Domain Naming Master  =  $DomainNamingMaster" 
Write-Host "RID Master            =  $RIDMaster" 
Write-Host "PDC Emulator          =  $PDCEmulator" 
Write-Host "Infrastructure Master =  $InfrastructureMaster" 
Write-Host "NETBIOS Domain Name   =  $NETBiosName"

Tags