Forum

Active Directory ku...
 
Bildirimler
Hepsini Temizle

Active Directory kullanıcı oturum açma tarihçesi

3 Yazılar
3 Üyeler
0 Likes
3,820 Görüntüleme
(@hasansahin)
Gönderiler: 22
Eminent Member
Konu başlatıcı
 

Windows Server 2012 R2 üzerindeki Active Directory Rolünde 1200 küsür aktif kullanıcı var.

Fakat 15 yıllık bir kurum ve 2-3 Sistem Admin değiştirmiş. Ayrılan kullanıcılar değişen pcler derken user ve computer sayısı bayağı artmış kullanılmayannları tespit edip silmek istiyoruz.

Login-logoff tarihlerini toplu olarak görebilirsem ilk önce pasif yapacağım 1-2 ay sorun yaşayan olmazsa sileceğim.

Araştırırken bu işin otomatik yaptırılableceği geldi aklıma  group policy benzeri yapı ile ama nasıl yapılır bilmiyorum.

 

İlk önce test ortamında deneyeceğim ama ortamda mevcut bir active directory var. Sanala private network şekilde server kursam bu seferde host makinem 2 active directory ile haberleşebilecek gerçi DNS olarak girmedim sürece haberleşmeyecek sanırım ama pratik birgiye sahip olmadığım için şu aşamada power shell kodlarını test edemiyorum.

 
Gönderildi : 17/08/2017 15:01

(@mutlubenmutlu)
Gönderiler: 297
Reputable Member
 

powershell ise ile asagidaki komut blogunu calistirirsaniz, c:\lastlogin.csv diye bir dosya yaratacaktir, tum kullanicilarin son giris tarihlerini belirtir. Buna gore uzun suredir girmeyen userlari disable edebilirsiniz

Import-Module ActiveDirectory
 
function Get-ADUsersLastLogon()
{
  $dcs = Get-ADDomainController -Filter {Name -like "*"}
  $users = Get-ADUser -Filter *
  $time = 0
  $exportFilePath = "c:\lastLogon.csv"
  $columns = "name,username,datetime"

  Out-File -filepath $exportFilePath -force -InputObject $columns

  foreach($user in $users)
  {
    foreach($dc in $dcs)
    { 
      $hostname = $dc.HostName
      $currentUser = Get-ADUser $user.SamAccountName | Get-ADObject -Server $hostname -Properties lastLogon

      if($currentUser.LastLogon -gt $time) 
      {
        $time = $currentUser.LastLogon
      }
    }

    $dt = [DateTime]::FromFileTime($time)
    $row = $user.Name+","+$user.SamAccountName+","+$dt

    Out-File -filepath $exportFilePath -append -noclobber -InputObject $row

    $time = 0
  }
}
 
Get-ADUsersLastLogon


kaynak: https://www.interworks.com/en-gb/blog/trhymer/2014/01/22/powershell-get-last-logon-all-users-across-all-domain-controllers
 
Gönderildi : 17/08/2017 18:54

(@turancoskun)
Gönderiler: 4100
Üye
 

merhaba,

alternatif olarak referans adreste yardımcı olacaktır.

https://www.netwrix.com/how_to_determine_last_logon_date.html

****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************

 
Gönderildi : 19/08/2017 06:12

Paylaş: