Merhabalar bu yazıda sizlere Domain sistemini kullanan ve çok sayıda kullanıcı ve bilgisayarlara sahip kuruluşlar için dominde bulunan kullanıcı ve bilgisayarların sayısının ou bazında bölüm bölüm incelenmesi ve analiz edilmesinde çok işinize yarayacak bir powershell script sunacağım.
Bu powershell script sayesinde biz IT çalışanlarından istenen istekleri ve raporları hızlı bir şekilde sunabiliriz.
Active Directory’ de kullanıcı ve bilgisayar sayılarını OU bazlı bulmak için kullanmamız gereken powershell komutları aşağıdaki gibidir.
Powershell Scriptte Bulunan Ortak Kısmımız;
Import-Module activeDirectory
$fqdn = Read-Host “Domain ismini giriniz”
$cred = Get-Credential
Write-Host “$fqdn domainine baglaniliyor…” -ForegroundColor Red
$domain = (get-addomain $fqdn -Credential $cred | select distinguishedName,pdcEmulator,DNSroot,DomainControllersContainer)
Write-Host “Tamamlandı. OU işlemleri yapılıyor…” -ForegroundColor Red
$OUlist = @(Get-ADOrganizationalUnit -filter * -Credential $cred -SearchBase $domain.distinguishedName -SearchScope Subtree -Server $domain.DNSroot)
Write-Host “Tamamlandı. Bilgisayar sayıları getiriliyor…” -ForegroundColor Red
for($i=1; $i -le $OUlist.Count; $i++)
{
write-progress -Activity “OUlar hesaplanıyor” -Status “$i OUsunun sayısı bulunuyor” -PercentComplete ($i/$OUlist.count*100)
}
$newlist = @{}
Domaindeki Bilgisayar Sayılarını Bulmak İçin ;
foreach($_objectItem in $OUlist)
{
$getcomputer = Get-ADComputer -Filter * -Credential $cred -SearchBase $_objectItem.DistinguishedName -SearchScope OneLevel -Server $domain.pdcEmulator | measure | select count
for ($i=1; $i -le $getcomputer.Count; $i++)
{
write-progress -Activity “Bilgisayar sayısı bulunuyor...” -Status “$i icerisinde $_objectItem adet bilgisayar bulundu” -PercentComplete ($i/$getcomputer.Count*100)
}
$newlist.Add($_objectItem.DistinguishedName, $getcomputer.Count)
}
$newlist | ft -AutoSize | Out-File D:OUComputerCount.txt
Write-Host “Tüm işlemler tamamlandı” -ForegroundColor Red
Domaindeki Kullanıcı Sayılarını Bulmak İçin ;
foreach($_objectItem in $OUlist)
{
$getuser = Get-ADUser -Filter * -Credential $cred -SearchBase $_objectItem.DistinguishedName -SearchScope OneLevel -Server $domain.pdcEmulator | measure | select count
for ($i=1; $i -le $getuser.Count; $i++)
{
write-progress -Activity “Kullanıcı sayısı bulunuyor...” -Status “$i icerisinde $_objectItem adet kullanıcı bulundu” -PercentComplete ($i/$getcomputer.Count*100)
}
$newlist.Add($_objectItem.DistinguishedName, $getuser.Count)
}
$newlist | ft -AutoSize | Out-File D:OUuserCount.txt
Write-Host “Tüm işlemler tamamlandı” -ForegroundColor Red
Umarım faydalı olmuştur. Daha farklı powershell scriptler için blogumda bulunan powershell kategorisini inceleyebilirsiniz. İyi çalışmalar dilerim.