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:
Bilgisayarlar (İş İstasyonları + Sunucular)
İş istasyonları
Sunucular
-
Kullanıcılar
Gruplar
Active Directory orman adı
Active Directory orman modu
Active Directory etki alanı modu
Active Directory şema sürümü
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
$FSMOAD 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.ps1Kuruluş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.
