PowerShell kullanarak Active Directory kullanıcılarının son oturum açma tarihlerini görmek, Network'ünüzün güvenliğini ve verimliliğini artırmak için önemli bir adımdır. Active Directory'de kullanıcıların son oturum açma zamanlarını takip etmek, hangi hesapların aktif olarak kullanıldığını ve hangilerinin kullanılmadığını belirlemenizi sağlar. Bu bilgi, eski veya kullanılmayan hesapları temizlemek, güvenlik politikalarını uygulamak ve Network performansını optimize etmek için kritik öneme sahiptir.
PowerShell, Active Directory ile etkileşim kurmak ve gerekli bilgileri çekmek için güçlü bir araçtır. Kullanıcıların son oturum açma zamanlarını öğrenmek için PowerShell'de LastLogon ve LastLogonTimestamp Attribute değerlerini kullanabilirsiniz. LastLogon, her Domain Controller'da ayrı ayrı güncellenirken LastLogonTimestamp özelliği, replikasyon sürecinde tüm Domain Controller'larda güncellenir ve daha kolay erişilebilir.
Bu komutları kullanarak, belirli bir kullanıcı veya kullanıcı grubunun son oturum açma zamanlarını hızlıca görüntüleyebilirsiniz. Örneğin, LastLogonTimestamp özelliğini kullanarak, tüm kullanıcıların son oturum açma zamanlarını çekmek için bir PowerShell Script'i yazabilirsiniz. Bu Script, belirli bir tarihten önce oturum açmamış kullanıcıları belirlemek ve bu hesapları devre dışı bırakmak için de kullanılabilir.
PowerShell ile bu tür verileri toplamak, Network'ünüzün güvenlik duruşunu değerlendirmek ve gerekli önlemleri almak için önemli bir araçtır. Eski veya kullanılmayan hesapları temizlemek, potansiyel güvenlik açıklarını kapatır ve sistemin genel performansını artırır. Bu süreç, aynı zamanda kullanıcı hesaplarının yönetimini de kolaylaştırır ve gereksiz hesapların yarattığı karmaşayı önler.
LastLogon ve LastLogonTimestamp bilgilerini kullanarak, Network üzerindeki kullanıcı etkinliğini izleyebilir ve analiz edebilirsiniz. Bu analizler, kullanıcı davranışları hakkında bilgi sağlar ve Network kaynaklarının verimli kullanılmasını sağlar. Ayrıca, bu verileri kullanarak kullanıcı eğitim ihtiyaçlarını belirleyebilir ve gerekli eğitim programlarını planlayabilirsiniz.
Get-ADComputer -Filter * -Properties * | FT Name, OperatingSystem, LastLogonDate -Autosize |
Bu çıktıda Active Directory ortamında kayıtlı olan tüm bilgisayar nesnelerinin isimleri, kurulu olan işletim sistemi bilgileri ve LastLogonDate alanındaki son oturum açma tarihleri yer alıyor. Listeleme, hem sunucu sistemlerini hem de Client PC'leri kapsıyor ve Domain'de tanımlı cihazların genel durumunu özetliyor. Özellikle adlandırılmış sunucuların üzerinde Windows Server 2012 R2 Standard sürümünün çalıştığı, Client makinelerde ise ağırlıklı olarak Windows 10 Pro tercih edildiği açıkça görülüyor.
Bazı cihazlarda LastLogonDate alanı dolu iken, bazı nesnelerde bu alanın tamamen boş olması dikkat çekici. Bu durum, ya ilgili cihazların uzun süredir logon işlemi yapmadığını ya da veri kaynağının Domain controller'lar arası replikasyon gibi henüz güncel bilgiyle senkronize olmadığını gösteriyor. Özellikle bu alandaki boşluklar, sistemde kullanılmayan ya da Network dışında kalmış makinelerin tespiti için değerli bir işarettir.
Veriler, tablo formatında ve otomatik hizalama ile sunulduğu için okunabilirlik açısından oldukça temiz. Bu yapı sayesinde sistemdeki tüm makineler, işletim sistemi sürümleriyle birlikte kolayca karşılaştırılabiliyor ve logon aktivitesi düşük olan cihazlar hızla ayırt edilebiliyor. Özellikle envanter kontrolü, cihaz temizliği, lisans optimizasyonu ya da güvenlik denetimi gibi işlemler öncesinde bu tür bir özet tablo, hızlı analiz için doğrudan kullanılabilecek netlikte bilgiler sunuyor.

Bu makalede, PowerShell ile Active Directory üzerindeki makinelerden HostName, işletim sistemi bilgisi ve Last Logon zamanlarının nasıl alınabileceği adım adım aktarıldı. Özellikle Get-ADComputer ile makine listesinin çekilmesi ve her bir makine için Get-WmiObject üzerinden sorguların nasıl döngüyle çalıştırılacağı pratik bir örnekle anlatıldı.
Sorguların filtrelenmesi, çıktıların Format-Table ya da Export-Csv ile işlenebilir hale getirilmesi ve gereksiz sütunların ayıklanması gibi detaylara da odaklanıldı. Script yapısının sade, okunabilir ve tekrarlanabilir olması için gerekli ipuçları verildi.
Bu yapı, makine envanteri hazırlamak, kullanıcı etkinliklerini zaman bazlı incelemek ya da sistem bilgilerini uzaktan çekmek isteyenler için oldukça kullanışlı bir çözüm sunuyor. Script içine entegre edilebilecek ek kontroller ve koşullu ifadelerle, daha dinamik sorgular oluşturmak da mümkün hale geliyor.
İlerleyen aşamalarda bu komut yapıları, belirli bir kullanıcıya atanmış cihazların listelenmesi ya da belirli bir OS versiyonuna sahip makinelerin tespiti gibi farklı ihtiyaçlara göre şekillendirilebilir. PowerShell ile merkezi veri toplamak, hem zamandan kazandırır hem de analiz süreçlerini daha sağlıklı yürütmeyi kolaylaştırır.
Faydalı olması dileğiyle...
1985 yılında Alanya’da doğdum. İlkokul, ortaokul ve lise eğitimimi de burada tamamladım. Ardından Akdeniz Üniversitesi Bilgisayar Teknolojisi Önlisans Programı’ndan mezun oldum. Bunu takiben Dikey Geçiş Sınavı (DGS) ile İstanbul Teknik Üniversitesine (İTÜ) geçiş yaparak Bilgisayar Mühendisliği lisans eğitimimi tamamladım.
Bilgi Teknolojileri sektöründe yıllar içinde System Support Specialist, System Engineer, Senior System Engineer ve Senior System Architect gibi pozisyonlarda görev aldım. Sahadaki uygulamalı deneyimimi sürekli olarak gerçek projelere taşıyarak birikimimi pratiğe dönüştürdüm.
Kariyerimin önemli bir bölümü, entegratör şirketlerde başta Microsoft teknolojilerine odaklanan Kıdemli Teknik Danışman olarak şekillendi. Büyük ölçekli projelerde aktif rol alarak müşterilerin dijital dönüşüm süreçlerine katkıda bulundum. Bu deneyimler, bugün Microsoft bünyesinde Senior Consultant olarak sürdürdüğüm rolün önünü açtı.
Benimle ilgili daha detaylı bilgilere Hakkımda sayfasından ulaşabilirsiniz.