不活动 Active Directory(AD)用户帐户可能会给组织带来安全风险,例如:前员工在离开公司数月后仍保留处于活动状态的帐户,因为人力资源部门未能通知 IT;或者可能为特定目的创建了帐户,但在事件发生后从未删除。无论此类帐户存在的原因是什么,Active Directory 都可能迅速失去控制,从而使系统更难审计、也更不安全。
用于 PowerShell 的 Active Directory 模块
用于 Active Directory 的 PowerShell 模块允许系统管理员查询 Active Directory,并使用查询结果数据生成报告。PowerShell 的 AD 模块默认安装在 Windows Server 2012 域控制器上;或者你也可以下载 Remote Server Administration Tools (RSAT) for Windows 8.1 ,然后使用下面的命令安装该模块。
使用本地管理员身份登录,打开 PowerShell 提示符,输入以下代码并按 ENTER,即可安装 PowerShell 的 AD 模块:
Install-WindowsFeature RSAT-AD-PowerShell
在 Active Directory 中查找不活跃账户
Search-ADAccount cmdlet 提供了一种便捷的方式,用于查询 Active Directory 中不活跃的用户账户:
Search-ADAccount –UsersOnly –AccountInactive
上述命令会返回所有不活跃账户。若要将结果缩小到特定的时间范围,可以为 –TimeSpan 参数添加到 Search-ADAccount 中。在下面的示例中,变量用于定义 –TimeSpan 参数的值,并使用 New-Timespan cmdlet 来简化输入:
$timespan = New-Timespan –Days 90 Search-ADAccount –UsersOnly –AccountInactive –TimeSpan $timespan
此外,你也可以指定 –DateTime 参数,以返回自给定日期以来一直处于非活动状态的账户。在下面的命令中,自 2014 年 5 月 5 日之后一直未处于活动状态的账户会被返回:
Search-ADAccount –UsersOnly –AccountInactive -DateTime ‘5/20/2014’
要获取关于账户更易于理解的信息,请将结果管道传递给 Get-ADUser cmdlet,然后使用 Select 选择要在输出中显示的列:
Search-ADAccount –UsersOnly –AccountInactive | Get-ADuser -Properties Department,Title | Select Name,Department,Title,DistinguishedName
结果还可以按指定字段进行排序,例如在本例中按 LastLogOnDate 属性排序。该属性源自 LastLogonTimestamp ,并转换为可读的格式:
Search-ADAccount –UsersOnly –AccountInactive | Get-ADuser -Properties Department,Title | Sort LastLogOnDate | Select Name,Department,Title,DistinguishedName
需要注意的是,与 LastLogOn 属性不同,LastLogonTimestamp 在域控制器之间会进行同步,但可能会滞后 9 到 14 天。因此,在处理结果时应考虑到这一点。
另一种简化输出并统计非活动用户数量的方法,是将结果管道传递给 Measure cmdlet:
Search-ADAccount –UsersOnly –AccountInactive –TimeSpan $timespan | Measure
与任何其他 PowerShell cmdlet 一样,结果可以通过管道传输到 Out-GridView,或者写入逗号分隔文件,以便将结果导入到 Excel。
Search-ADAccount –UsersOnly –AccountInactive –TimeSpan $timespan | Out-GridView
禁用非活动帐户
一旦你获得了所需的结果集,接下来只需将其通过管道传输到以下 Disable-ADAccount cmdlet(如图所示)即可禁用这些帐户:
Search-ADAccount –UsersOnly –AccountInactive –TimeSpan $timespan | Disable-ADAccount
Netwrix Auditor 包含在所有受支持的 Windows 版本中检测并禁用非活动用户帐户的能力;同时,结果会集成到产品的数据库、报表和通知功能中,从而无需单独运行和维护额外脚本。 Netwrix Auditor 可以禁用非活动帐户、设置随机密码、将帐户移动到指定的组织单元(OU),或删除这些帐户。
现在轮到你在下面的投票中留下你的意见了。请记住,只有一个正确答案!
分享到
了解更多
关于作者
Russell Smith
IT 顾问
专注于管理与安全技术的 IT 顾问和作者。Russell 拥有超过 15 年的 IT 经验,撰写过一本关于 Windows 安全的书籍,并共同撰写了 Microsoft 官方学术课程(MOAC)系列的相关教材。