PowerShell 查詢域用戶和本地用戶加入組的時間和最後登錄信息

看見論壇裏有人問如何查詢域用戶,本地用戶在對應組的加入時間,以及他們最後登錄的時間。

豆子寫了個小腳本來實現。


對於域用戶,最後登錄時間很容易,get-aduser就能獲取了。注意一下時間格式轉換

PS C:\WINDOWS\system32> get-aduser yli -Properties lastlogon | select name, @{n="Lastlogon";e={[datetime]::FromFileTime($_.lastlogon)}}

結果如下

wKiom1bGfwuA6TeOAAAXlpoohQk774.png

域用戶加入組的時間需要在對應的DC上查詢metadata。比如查詢域管理員都是什麼時候加入這個組的


$pdc=Get-ADDomainController -Discover -Service PrimaryDC
$dn=(get-adgroup "domain admins").distinguishedname
Get-ADReplicationAttributeMetadata $dn -Server $pdc -ShowAllLinkedValues | Where-Object {$_.attributename -eq 'member'} | select FirstOriginatingcreatetime, attributevalue


結果如下

wKioL1bGf4eibR_ZAAGGBYDJv94828.png

本地用戶的登錄時間需要用 adsi來查詢。在AD 模塊開發之前,管理員只能用ADSI來操縱AD和本地對象。現在操作AD可以直接用模塊了,但是本地的貌似還得用ADSI才行。


比如查詢本機的所有本地用戶的上一次登錄時間

$adsi = [ADSI]"WinNT://$env:COMPUTERNAME"
$adsi.Children | where {$_.SchemaClassName -eq 'user'}  | select name,Lastlogin

wKiom1bGf2WiztBWAAAjA3AN-uE269.png


最後,如果需要查詢本地用戶加入或者退出組的時間,我沒有找到現成的命令,只能通過日誌來查詢了。


首先需要gpo裏面打開審計功能。


wKioL1bGfgygRCq7AACB8Juqlxg701.png



重啓電腦之後就可以了。本地的組添加用戶會生成4732的日誌,刪除會生成4733的日誌。我只需要查詢對應的日誌,並解析XML文件就行了。


#查詢本機日誌
$eventcritea = @{logname='security';id=4732}
$Events =get-winevent -ComputerName $env:COMPUTERNAME -FilterHashtable $eventcritea 
#$Events = Get-WinEvent -ComputerName syddc01 -Filterxml $xmlfilter        

$result=@()
            
# 解析日誌        
ForEach ($Event in $Events) {    
      
    # Convert the event to XML            
    $eventXML = [xml]$Event.ToXml()    
    $groupname=$eventXML.Event.EventData.Data[2].'#text'.ToString()
    $sid= $eventXML.Event.EventData.Data[1].'#text'.ToString()
    
#轉換SID到用戶名
    
    $objSID = New-Object System.Security.Principal.SecurityIdentifier($sid)
    $objUser = $objSID.Translate( [System.Security.Principal.NTAccount])

#保存結果到自定義的一個對象      
    $temp=[pscustomobject]@{Time=$Event.TimeCreated;Username=$objUser.Value;GroupName=$groupname}
   $result+=$temp
}            
  
  $result


結果如下

wKiom1bGfmaQmNSmAAAMC81CjgM937.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章