PowerShell betiğiyle Active Directory bilgilerini alın


Active Directory bilgisi tek çıktıda nasıl alınır? Örneğin Active Directory'yi yeni bir sunucuya taşımak istiyorsunuz ve AD bilgilerini almak istiyorsunuz. Veya AD'de kaç tane iş istasyonu, sunucu veya grup bulunduğunu bilmek mi istiyorsunuz? Bu yazımızda PowerShell scripti ile Active Directory bilgilerinin nasıl alınacağını öğreneceksiniz.

AD bilgisi alın PowerShell betiği

Get-ADInfo.ps1 PowerShell betiği aşağıdaki AD bilgilerini alacaktır:

  1. Bilgisayarlar (İş İstasyonları + Sunucular)

  2. İş istasyonları

  3. Sunucular

  4. Kullanıcılar

  5. Gruplar

  6. Active Directory orman adı

  7. Active Directory orman modu

  8. Active Directory etki alanı modu

  9. Active Directory şema sürümü

  10. FSMO rol sahipleri

AD bilgisi al PowerShell betiğini indirin

Get-ADInfo.ps1 PowerShell betiğini indirin ve C:\scripts klasörüne yerleştirin. Komut dosyaları klasörünüz yoksa bir tane oluşturun.

Komut dosyasını çalıştırırken herhangi bir hata oluşmasını önlemek için dosyanın engellemesinin kaldırıldığından emin olun. PowerShell betiğini çalıştırırken dijital olarak imzalanmamış hata makalesinde daha fazlasını okuyun.

Diğer bir seçenek de aşağıdaki kodu kopyalayıp Not Defteri'ne yapıştırmaktır. Ona Get-ADInfo.ps1 adını verin ve C:\scripts klasörüne yerleştirin.

<#
    Author:       ALI TAJRAN
    Website:      www.alitajran.com
    LinkedIn:     linkedin.com/in/alitajran
    Date:         01/07/2023
    Description:  Get Active Directory information
#>

# Get AD info
$Computers = (Get-ADComputer -Filter *).count
$Workstations = (Get-ADComputer -LDAPFilter "(&(objectClass=Computer)(!operatingSystem=*server*))" -Searchbase (Get-ADDomain).distinguishedName).count
$Servers = (Get-ADComputer -LDAPFilter "(&(objectClass=Computer)(operatingSystem=*server*))" -Searchbase (Get-ADDomain).distinguishedName).count
$Users = (Get-ADUser -Filter *).count 
$Groups = (Get-ADGroup -Filter *).Count
$ADForest = (Get-ADDomain).Forest
$FSMO = netdom query FSMO
$ADForestMode = (Get-ADForest).ForestMode
$ADDomainMode = (Get-ADDomain).DomainMode
$ADVer = Get-ADObject (Get-ADRootDSE).schemaNamingContext -property objectVersion | Select objectVersion
$ADNUM = $ADVer -replace "@{objectVersion=", "" -replace "}", ""

If ($ADNum -eq '88') { $srv = 'Windows Server 2019/Windows Server 2022' }
ElseIf ($ADNum -eq '87') { $srv = 'Windows Server 2016' }
ElseIf ($ADNum -eq '69') { $srv = 'Windows Server 2012 R2' }
ElseIf ($ADNum -eq '56') { $srv = 'Windows Server 2012' }
ElseIf ($ADNum -eq '47') { $srv = 'Windows Server 2008 R2' }
ElseIf ($ADNum -eq '44') { $srv = 'Windows Server 2008' }
ElseIf ($ADNum -eq '31') { $srv = 'Windows Server 2003 R2' }
ElseIf ($ADNum -eq '30') { $srv = 'Windows Server 2003' }

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
$FSMO

AD bilgilerini al PowerShell betiğini çalıştırın

PowerShell'i yönetici olarak çalıştırın. Komut dosyaları klasörünün yolunu değiştirin. Ardından Active Directory bilgilerini toplamak için PowerShell betiğini çalıştırın.

PS C:\> cd c:\scripts
PS C:\scripts> .\Get-ADInfo.ps1

Kuruluşumuzda çıktı bu şekilde görünüyor.

Active Directory Info

Computers =     8
Workstions =    3
Servers =       5
Users =         5143
Groups =        88

Active Directory Forest Name =   exoip.local
Active Directory Forest Mode =   Windows2016Forest
Active Directory Domain Mode =   Windows2016Domain
Active Directory Schema Version is 88 which corresponds to Windows Server 2019/Windows Server 2022

FSMO Role Owners
Schema master               DC01-2019.exoip.local
Domain naming master        DC01-2019.exoip.local
PDC                         DC01-2019.exoip.local
RID pool manager            DC01-2019.exoip.local
Infrastructure master       DC01-2019.exoip.local
The command completed successfully.

İşte neye benzediğine dair bir ekran görüntüsü.

Bu kadar!

Devamını oku: PowerShell ile tüm Etki Alanı Denetleyicilerini edinin »

Çözüm

PowerShell betiği ile Active Directory bilgilerini nasıl alacağınızı öğrendiniz. Active Directory'de çok fazla bilgi vardır ve bu bilgilerin PowerShell'de veya GUI'de tek tek aranması çok zaman alır. Bir PS betiğini çalıştırmak ve hepsini tek bir çıktıda bulundurmak zamandan tasarruf sağlar ve bakılması daha kolaydır.

Bu makaleyi beğendiniz mi? Ayrıca AD kullanıcılarını PowerShell ile CSV'ye aktarma seçeneğini de beğenebilirsiniz. Bizi takip etmeyi ve bu yazımızı paylaşmayı unutmayın.

İlgili makaleler