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. İlk, orta ve lise öğrenimimi Alanya'da tamamladım. Liseden mezun olduktan sonra Akdeniz Üniversitesi Bilgisayar Teknolojisi Ön Lisans programına yerleştim ve bu programdan mezun oldum. Ön Lisans programından mezun olduktan bir süre sonra Dikey Geçiş Sınavı (DGS) ile İstanbul Teknik Üniversitesi (İTÜ) Bilgisayar Mühendisliği Lisans programına yerleştim.
2003 yılından beri Bilgi Teknolojileri sektöründe Sistem ve Network alanlarında çalışıyorum. Bir çok firma bünyesinde onlarca farklı projelerde yer alarak bu alanda yıllar içinde ciddi bir bilgi birikimi ve deneyimler kazandım. Bilgi Teknolojileri sektöründeki profesyonel çalışma hayatımın uzunca bir dönemini entegratör firma bazında, ağılıklı olarak Microsoft ürünleri üzerine danışman olarak sürdürüyor ve yüksek seviyeli projeler geliştiriyorum. Uzunca bir süredir de Türkiye'nin önde gelen entegratör firmalarından olan Data Market bünyesinde Senior Cloud Engineer olarak çalışıyorum.
Ek olarak, 2015 yılında Network Akademi bünyesinde Microsoft Certified Trainer (MCT) ünvanı ile Sistem ve Network Uzmanlık eğitimleri vermeye başladım. Sistem ve Network Uzmanlığı alanındaki eğitmenlik serüvenime Network Akademi bünyesinde devam etmekteyim.