Active Directory ku...
 
Bildirimler
Hepsini Temizle

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

  RSS
HasanŞAHİN
(@hasansahin)
Üye

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.

Alıntı
Gönderildi : 17/08/2017 15:01
Mutlu Benmutlu
(@mutlubenmutlu)
Üye

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
CevapAlıntı
Gönderildi : 17/08/2017 18:54
Turan COŞKUN
(@turancoskun)
Tecrübeli Üye Forum Yöneticisi

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.
*****************************************************************

CevapAlıntı
Gönderildi : 19/08/2017 06:12
Paylaş: