我在PowerShell中编写了一个脚本,该脚本遵循ADd中的更改,由cmdlet Get-ADObject
编写:
$Date = Get-Date
$FixedDate.AddHours(13)
Get-ADObject -Filter "whenchanged -gt $Date.Date" -Properties sAMAccountName, whenCreated, whenChanged |
select |
Format-Table -Property sAMAccountName,whenCreated,whenChanged -AutoSize
上面的脚本只能跟踪AD中的更改,但我希望脚本也可以告诉我哪个用户进行了更改。
我们怎么做?
答案 0 :(得分:1)
除非您为Active Directory对象的更改启用审核,否则无法完成您要执行的操作。您可以在GPO内部以及SACL内部执行此操作。启用后,您需要将其应用于AD。
就脚本而言:我们首先得到我们想要检查AD的任何对象的日期。我喜欢做Get-ADObject -Filter ‘whenChanged -gt $Date’ | Group-Object objectclass
。这将告诉我从帐户,组,政策等改变了什么。
现在我们可以使用select statment缩小结果范围。如果是已删除的帐户,我们可以使用您提供的示例。
$Date = [datetime]”3/19/2017"
#Get-ADObject -Filter ‘whenChanged -gt $Date’ | Group-Object objectclass
Get-ADObject -Filter 'whenChanged -gt $Date' -Properties *|
select Name, sAMAccountName, whenChanged, whenCreated | Format-Table -AutoSize
我们还可以添加开关-IncludeDeletedObjects
=检索已删除的对象
Get-ADObject -Filter 'whenChanged -gt $Date' -Properties * -IncludeDeletedObjects |
select Name, sAMAccountName, whenChanged, whenCreated | Format-Table -AutoSize
如果未启用审核功能,则无法获取执行此操作的人员。
如果正确启用审核,则应在事件查看器中显示并查找ID 4726
。
我们可以使用以下PowerShell脚本:
Get-Eventlog -Log Security -After $Date -Newest 10| Where {$_.EventID -eq 4726}
事件ID可以有很多选项,但是如果我们不知道该用户或对象会发生什么。我们可以运行:
Get-Eventlog -Log Security -After $Date -Newest 10 -Message "*A user account*"
AD审核的一些有用的事件ID:
Event ID 4720 - A user account was created.
Event ID 4722 - A user account was enabled.
Event ID 4726 - A user account was deleted.
Event ID 4738 - A user account was changed.
Event ID 5141 – A directory service object was deleted.
Event ID 5136 – A directory service object was modified.
Event ID 5139 – A directory service object was moved.
Event ID 5141 – A directory service object was deleted.