Merhaba, bu blog yazısında PowerShell ile PC’ye logon olmuş hesapları nasıl listeleyebileceğimizi göstereceğim. Bu işlemi yapmak için Win32_NetworkLoginProfile sınıfını kullanacağız. Bu sınıf, ağ üzerinden veya yerel olarak PC’ye logon olmuş kullanıcıların bilgilerini içerir. Örneğin, son logon tarihi, son logoff tarihi, hesabın kilidi, şifre değiştirme tarihi gibi.
PowerShell ile bu sınıfı Get-WmiObject cmdleti ile çağırabiliriz. Örneğin, aşağıdaki komut PC’ye logon olmuş tüm hesapları listeler.
Get-WmiObject -Class Win32_NetworkLoginProfile
Bu komutun çıktısı çok fazla bilgi içerdiği için, istediğimiz özellikleri seçmek için Select-Object cmdletini kullanabiliriz. Örneğin, aşağıdaki komut sadece hesap adı, son logon tarihi ve son logoff tarihi özelliklerini gösterir.
Get-WmiObject -Class Win32_NetworkLoginProfile | Select-Object Name, LastLogon, LastLogoff
Bu komutun çıktısı ise şöyle olacaktır:
Name LastLogon LastLogoff
SYSTEM 9/22/2023 1:45:38 AM
Administrator 9/21/2023 10:15:23 PM 9/21/2023 10:16:12 PM
Guest
User1 9/21/2023 11:30:45 PM 9/22/2023 12:05:34 AM
Görüldüğü gibi, bazı hesapların son logon veya son logoff tarihleri boş olabilir. Bu durumda, bu hesapların hiç logon olmadığı veya henüz logoff olmadığı anlamına gelir.
Bu komutu daha da geliştirmek için, örneğin son 24 saat içinde logon olmuş hesapları filtrelemek isteyebiliriz. Bunun için Where-Object cmdletini kullanabiliriz. Örneğin, aşağıdaki komut son 24 saat içinde logon olmuş hesapları listeler.
Get-WmiObject -Class Win32_NetworkLoginProfile | Where-Object {$_.LastLogon -gt (Get-Date).AddHours(-24)} | Select-Object Name, LastLogon
Bu komutun çıktısı ise şöyle olacaktır:
Name LastLogon
SYSTEM 9/22/2023 1:45:38 AM
Administrator 9/21/2023 10:15:23 PM
User1 9/21/2023 11:30:45 PM
Bu şekilde PowerShell ile PC’ye logon olmuş hesapları listeleyebilir ve istediğimiz şekilde filtreleyebiliriz. Umarım bu blog yazısı faydalı olmuştur. Bir sonraki yazıda görüşmek üzere.