PowerShell active-directoryraporlama 90 gündür giriş yapmayan etkin hesaplar
Pasif kullanıcı hesaplarını bulup CSV'ye döker; yeni açılmış hesapları listeye almaz.
$sinir = (Get-Date).AddDays(-90)
Search-ADAccount -AccountInactive -TimeSpan 90.00:00:00 -UsersOnly |
Get-ADUser -Properties LastLogonDate, whenCreated, Enabled |
Where-Object { $_.Enabled -and $_.whenCreated -lt $sinir } |
Export-Csv '.\pasif-hesaplar.csv' -NoTypeInformation -Encoding UTF8
LastLogonDate 9–14 gün gecikmeyle eşitlenir; sınırı 30 günün altına indirmeyin.
Ayrıntılı rehberi oku →
PowerShell active-directoryolay-gunlugu Hesabı kim kilitliyor?
PDC emulator üzerindeki son kilitlenme olaylarını hesap ve kaynak bilgisayarla listeler.
Get-WinEvent -ComputerName (netdom query fsmo) -FilterHashtable @{
LogName = 'Security'; Id = 4740
} -MaxEvents 10 |
Select-Object TimeCreated,
@{ n = 'Hesap'; e = { $_.Properties[0].Value } },
@{ n = 'Kaynak'; e = { $_.Properties[1].Value } }
Yalnızca PDC emulator rolündeki DC'de güvenilir sonuç verir.
Ayrıntılı rehberi oku →
Güvenlik & Entra ID entra-idmfa MFA'ya kaydolmamış kullanıcılar
Koşullu erişimi zorlamadan önce kimlerin henüz yöntem kaydetmediğini gösterir.
Connect-MgGraph -Scopes 'UserAuthenticationMethod.Read.All'
Get-MgReportAuthenticationMethodUserRegistrationDetail -All |
Where-Object { -not $_.IsMfaRegistered } |
Select-Object UserPrincipalName, UserDisplayName |
Sort-Object UserPrincipalName
Yayımdan önce bu listeyi sıfırlayın; kayıtsız kullanıcı politika açıldığında dışarıda kalır.
Ayrıntılı rehberi oku →
Ağ tanilama Port açık mı?
telnet istemcisi kurmadan TCP bağlantısını, DNS çözümlemesini ve yönlendirmeyi tek komutta gösterir.
Test-NetConnection sunucu01 -Port 443 -InformationLevel Detailed
PingSucceeded False olsa bile TcpTestSucceeded True ise port açıktır — çoğu güvenlik duvarı ICMP'yi kapatır.
Windows Server robocopydosya-sunucusu Silmeden önce robocopy /MIR provası
Aynalamanın ne sileceğini gerçekten silmeden gösterir. /MIR'i her zaman önce böyle çalıştırın.
robocopy "D:\Kaynak" "\\yedek01\Hedef" /MIR /L /NJH /NJS /NDL /XD "System Volume Information"
/L parametresi 'yalnızca listele' demektir. Çıktıyı okumadan /L'i kaldırmayın — /MIR hedefteki fazlalıkları siler.
Windows Server izlemedepolama Sunuculardaki disk doluluğunu tek tabloda gör
Birden çok sunucunun boş alanını yüzdeyle listeler; %15'in altındakileri işaretler.
'sunucu01','sunucu02','sunucu03' | ForEach-Object {
Get-CimInstance Win32_LogicalDisk -ComputerName $_ -Filter "DriveType=3" |
Select-Object @{ n='Sunucu'; e={ $_.SystemName } }, DeviceID,
@{ n='BosGB'; e={ [math]::Round($_.FreeSpace/1GB,1) } },
@{ n='Bos%'; e={ [math]::Round($_.FreeSpace/$_.Size*100,1) } }
} | Sort-Object 'Bos%' | Format-Table -AutoSize
Uzak sunucularda WinRM açık olmalı; kapalıysa Get-CimInstance -Protocol Dcom deneyin.
Windows Server gpoyedekleme Tüm GPO'ları tarihli klasöre yedekle
Görev Zamanlayıcı ile haftalık çalıştırmak için tasarlanmış, sürümlenmiş GPO yedeği.
$hedef = "\\yedek01\gpo\$(Get-Date -Format 'yyyy-MM-dd')"
New-Item -ItemType Directory -Path $hedef -Force | Out-Null
Backup-GPO -All -Path $hedef -Comment "Haftalık otomatik yedek"
Görevi kendi hesabınızla değil hizmet hesabıyla kurun; parolanız değişince görev sessizce durur.
Ayrıntılı rehberi oku →
Sanallaştırma hyper-vdepolama Unutulmuş checkpoint'leri bul
Tüm sanal makinelerdeki checkpoint'leri oluşturma tarihine göre sıralar — en eskisi en tehlikelisidir.
Get-VM | Get-VMSnapshot |
Select-Object VMName, Name, CreationTime, ParentSnapshotName |
Sort-Object CreationTime
Silmeye en eski checkpoint'ten başlayın; ters sırada silmek zinciri yeniden yazdırır.
Ayrıntılı rehberi oku →
Bu süzgeçle eşleşen komut yok.