当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 如何查看谁在 AD 中创建了用户帐户?

作者:精品下载站 日期:2024-12-14 23:03:56 浏览:16 分类:玩电脑

如何查看谁在 AD 中创建了用户帐户?


在本文中,我们将了解如何查找 Active Directory 中用户的创建日期;如何使用 PowerShell 从域控制器的事件日志中获取有关用户帐户创建者以及用户上次登录域的时间的信息。这些任务通常在审核 Active Directory 中的用户帐户、查找和删除不活动的 AD 对象或收集统计信息时发生。

AD 用户帐户创建日期

您可以通过 ADUC 获取任何 Active Directory 对象(用户、计算机或组)的创建日期(

dsa.msc

)图形管理单元(请确保启用“视图”菜单中的“高级功能”选项)。

  1. 手动或使用AD搜索功能在ADUC树中查找所需的用户;

  2. 打开用户属性并选择对象选项卡;

  3. 在 Active Directory 中创建对象的日期在创建字段中指定。

    [玩转系统] 如何查看谁在 AD 中创建了用户帐户?

使用内置的 AD 属性编辑器可以获得相同的值(

whenCreated

属性)。

[玩转系统] 如何查看谁在 AD 中创建了用户帐户?

此外,您还可以使用 AD PowerShell 模块中的 Get-ADUser cmdlet 来获取用户帐户的创建日期:

Get-ADUser a.brion -properties name,whencreated|select name,whencreated

[玩转系统] 如何查看谁在 AD 中创建了用户帐户?

您可以使用 lastLogonlastLogonTimpestamp 属性获取用户上次登录域的时间。如果您想通过域控制器安全日志获取用户登录历史记录,请使用以下指南。

使用 PowerShell 查找最近创建的 Active Directory 帐户

使用简单的 PowerShell 脚本,您可以列出最近在 Active Directory 中创建的用户帐户。为此,请使用 Get-ADUser cmdlet 选择所有用户并按 whencreated 用户属性的值对其进行筛选。例如,以下 PowerShell 脚本将列出过去 24 小时内在 Active Directory 中创建的用户:

$lastday = ((Get-Date).AddDays(-1))
$filename = Get-Date -Format yyyy.MM.dd
$exportcsv=”c:\ps\new_ad_users_” + $filename + “.csv”
Get-ADUser -filter {(whencreated -ge $lastday)} -properties whencreated | Select-Object Name, UserPrincipalName, SamAccountName, whencreated | Export-csv -path $exportcsv

在此示例中,AD 帐户列表被保存到一个文件中,并以当前日期作为其名称。您可以通过 Windows 任务计划程序使该脚本每天运行。因此,包含新帐户创建日期信息的文件将保存在您指定的目录中。您可以将 Active Directory 用户的任何其他属性添加到报告中(请参阅有关使用 Get-ADUser cmdlet 的文章)。

[玩转系统] 如何查看谁在 AD 中创建了用户帐户?

如何找出谁在 Active Directory 中创建了用户帐户?

如果您的 Active Directory 域中有多个管理员,或者您已将创建和编辑用户帐户的权限委派给其他非管理员用户(例如 HR 员工),您可能对有关在 Active Directory 中创建特定帐户的用户名称的信息感兴趣。此信息可以在 Active Directory 域控制器的安全日志中找到。

当您在域中创建新用户时,来自用户帐户管理源的 EventID 4720 的事件将出现在域控制器的安全日志中(仅在已创建帐户的 DC 上)。必须在默认域控制器 GPO 中启用审核用户帐户管理策略。

该事件的描述包含以下字符串:

A user account was created

主题字段包含创建新 AD 用户帐户的帐户(在下面的屏幕截图中突出显示)。新用户名在“新帐户”字段中指定。

[玩转系统] 如何查看谁在 AD 中创建了用户帐户?

您需要从所有域控制器收集 4720 事件。您可以使用 Get-ADDomainController cmdlet 获取 DC 列表。然后剩下的就是检查事件

4720

并创建一份结果报告。用于从域控制器日志中获取过去 24 小时内所有帐户创建事件的脚本如下所示:

$Report = @()
$time = (get-date) - (new-timespan -hour 24)
$AllDCs = Get-ADDomainController -Filter *
ForEach($DC in $AllDCs)
{
Get-WinEvent -ComputerName $dc.Name -FilterHashtable @{LogName="Security";ID=4720;StartTime=$Time}| Foreach {
$event = [xml]$_.ToXml()
if($event)
{
$Time = Get-Date $_.TimeCreated -UFormat "%Y-%m-%d %H:%M:%S"
$CreatorUser = $event.Event.EventData.Data[4]."#text"
$NewUser = $event.Event.EventData.Data[0]."#text"
$objReport = [PSCustomObject]@{
User = $NewUser
Creator = $CreatorUser
DC = $event.Event.System.computer
CreationDate = $Time
}
}
$Report += $objReport
}
}
$Report

[玩转系统] 如何查看谁在 AD 中创建了用户帐户?

结果,你有一个

$Report

对象包含有关谁创建 AD 用户、何时以及在哪个域控制器上创建的信息。

您可以将报告导出到 CSV 文件:

$filename = Get-Date -Format yyyy.MM.dd
$exportcsv=”c:\ps\ad_users_creators” + $filename + “.csv”
$Report | Export-Csv $exportcsv -append -NoTypeInformation -Delimiter ","

您可以将有关找到的事件的信息保存到外部数据库,而不是保存到 DC 上的纯文本文件。例如,您可以通过 PowerShell 的 MySQL .NET 连接器将数据写入 MySQL 或 Microsoft SQL Server。 “如何审核 Windows 上的文件/文件夹删除”一文中描述了一个示例。

此外,您还可以通过 PowerShell 获取 Microsoft 365/Azure AD 用户的创建日期。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯