天天看點

PowerShell 查詢域使用者和本地使用者加入組的時間和最後登入資訊

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

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

對于域使用者,最後登入時間很容易,get-aduser就能擷取了。注意一下時間格式轉換

1

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

結果如下

<a href="http://s2.51cto.com/wyfs02/M02/7B/12/wKiom1bGfwuA6TeOAAAXlpoohQk774.png" target="_blank"></a>

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

2

3

<code>$pdc</code><code>=</code><code>Get-ADDomainController</code> <code>-Discover -Service PrimaryDC</code>

<code>$dn</code><code>=(</code><code>get-adgroup</code> <code>"domain admins"</code><code>).distinguishedname</code>

<code>Get-ADReplicationAttributeMetadata</code> <code>$dn</code> <code>-Server </code><code>$pdc</code> <code>-ShowAllLinkedValues | </code><code>Where-Object</code> <code>{</code><code>$_</code><code>.attributename </code><code>-eq</code> <code>'member'</code><code>} | select FirstOriginatingcreatetime, attributevalue</code>

<a href="http://s1.51cto.com/wyfs02/M02/7B/12/wKioL1bGf4eibR_ZAAGGBYDJv94828.png" target="_blank"></a>

本地使用者的登入時間需要用 adsi來查詢。在AD 子產品開發之前,管理者隻能用ADSI來操縱AD和本地對象。現在操作AD可以直接用子產品了,但是本地的貌似還得用ADSI才行。

比如查詢本機的所有本地使用者的上一次登入時間

<code>$adsi</code> <code>= </code><code>[ADSI]</code><code>"WinNT://$env:COMPUTERNAME"</code>

<code>$adsi</code><code>.Children | where {</code><code>$_</code><code>.SchemaClassName </code><code>-eq</code> <code>'user'</code><code>}  | select name,Lastlogin</code>

<a href="http://s4.51cto.com/wyfs02/M00/7B/12/wKiom1bGf2WiztBWAAAjA3AN-uE269.png" target="_blank"></a>

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

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

<a href="http://s3.51cto.com/wyfs02/M01/7B/12/wKioL1bGfgygRCq7AACB8Juqlxg701.png" target="_blank"></a>

重新開機電腦之後就可以了。本地的組添加使用者會生成4732的日志,删除會生成4733的日志。我隻需要查詢對應的日志,并解析XML檔案就行了。

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

<code>#查詢本機日志</code>

<code>$eventcritea</code> <code>= @{logname=</code><code>'security'</code><code>;id=4732}</code>

<code>$Events</code> <code>=</code><code>get-winevent</code> <code>-ComputerName </code><code>$env:COMPUTERNAME</code> <code>-FilterHashtable </code><code>$eventcritea</code> 

<code>#$Events = Get-WinEvent -ComputerName syddc01 -Filterxml $xmlfilter        </code>

<code>$result</code><code>=@()</code>

<code>            </code> 

<code># 解析日志        </code>

<code>ForEach</code> <code>(</code><code>$Event</code> <code>in</code> <code>$Events</code><code>) {    </code>

<code>      </code> 

<code>    </code><code># Convert the event to XML            </code>

<code>    </code><code>$eventXML</code> <code>= </code><code>[xml]</code><code>$Event</code><code>.ToXml()    </code>

<code>    </code><code>$groupname</code><code>=</code><code>$eventXML</code><code>.Event.EventData.Data[2].</code><code>'#text'</code><code>.ToString()</code>

<code>    </code><code>$sid</code><code>= </code><code>$eventXML</code><code>.Event.EventData.Data[1].</code><code>'#text'</code><code>.ToString()</code>

<code>    </code> 

<code>#轉換SID到使用者名</code>

<code>    </code><code>$objSID</code> <code>= </code><code>New-Object</code> <code>System.Security.Principal.SecurityIdentifier(</code><code>$sid</code><code>)</code>

<code>    </code><code>$objUser</code> <code>= </code><code>$objSID</code><code>.Translate( </code><code>[System.Security.Principal.NTAccount]</code><code>)</code>

<code>#儲存結果到自定義的一個對象      </code>

<code>    </code><code>$temp</code><code>=</code><code>[pscustomobject]</code><code>@{Time=</code><code>$Event</code><code>.TimeCreated;Username=</code><code>$objUser</code><code>.Value;GroupName=</code><code>$groupname</code><code>}</code>

<code>   </code><code>$result</code><code>+=</code><code>$temp</code>

<code>}            </code>

<code>  </code> 

<code>  </code><code>$result</code>

<a href="http://s2.51cto.com/wyfs02/M02/7B/12/wKiom1bGfmaQmNSmAAAMC81CjgM937.png" target="_blank"></a>

本文轉自 beanxyz 51CTO部落格,原文連結:http://blog.51cto.com/beanxyz/1743238,如需轉載請自行聯系原作者