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

[玩转系统] 在 AD 中查找禁用和不活动的帐户

作者:精品下载站 日期:2024-12-14 06:13:58 浏览:14 分类:玩电脑

在 AD 中查找禁用和不活动的帐户


PowerShell 越来越成为 Windows 管理员的首选工具。 Active Directory PowerShell 模块包括超过 450 个 cmdlet,您可以使用它们来收集有关 Active Directory 中每个对象的信息、检查域控制器的运行状况、收集 GPO 信息等。

本文详细介绍了如何使用 PowerShell 查找 Active Directory 域中已禁用和不活动的用户和计算机帐户。

先决条件

要使用此处提供的脚本,您需要:

  • 在将执行脚本的计算机上安装 Active Directory PowerShell 模块。该计算机必须运行 Windows Server 2012 或更高版本。
  • 以提升模式打开 PowerShell 窗口。
  • 使用有权访问您正在收集数据的所有 Active Directory 域的凭据运行脚本。

检查单个域

如果需要检查特定用户或计算机帐户是否已禁用或不活动,可以使用 Active Directory 用户和计算机(或 ADUC)管理单元手动执行此操作。但是,如果您需要识别域中禁用和不活动的帐户,最好使用 PowerShell 自动执行该任务。

例如,要收集已禁用的计算机帐户,您可以使用 Get-ADComputer cmdlet 来查找 Enabled 属性设置为 $False 的计算机帐户,表示该账户已被禁用:

Get-ADComputer -Filter {(Enabled -eq $False)} -ResultPageSize 2000 -ResultSetSize $null -Server <AnyDomainController> -Properties Name, OperatingSystem

以下是相关任务的脚本:

  • 检查单个用户帐号是否被禁用
  • 获取禁用用户列表
  • 查找不活动的计算机帐户
  • 查找不活动的用户帐户

跨多个域检查

如果要从多个 Active Directory 域收集信息,则需要一个 PowerShell 脚本,该脚本可以循环遍历 Active Directory 林中的每个域,并将为每个域收集的数据存储在单独的 CSV 文件中,供负责该域的 IT 团队使用。

在运行下面提供的脚本之前,请确保:

  • 在本地计算机上创建一个名为“C:Temp”的目录来存储 CSV 文件。
  • $CurForestName 变量中的“enterprise.com”替换为您的林的名称。

示例脚本

$DomList = "C:TempDomList.TXT"
remove-item $DomList -ErrorAction SilentlyContinue
$CurForestName="enterprise.com"
$GetForest=Get-ADForest $CurForestName
$Items = $R.Domains
ForEach ($Domains in $Items)
{
  Add-Content $DomList $Domain.Name
}
Write-Host "Starting Script..."
ForEach ($DomInFile in $DomList)
{ $DisabledCompsCSV = "C:TempDisabledAccounts_Computers_"+$DomInFile+".CSV"
  Remove-item $DisabledCompsCSV -ErrorAction SilentlyContinue
  $DisabledUsersCSV = "C:TempDisabledAccounts_Users_"+$DomInFile+".CSV"
  Remove-item $DisabledUsersCSV -ErrorAction SilentlyContinue
  $InActiveUsersReport = "C:TempInactiveUsers_"+$DomInFile+".CSV"
  Remove-item $InActiveUsersReport -ErrorAction SilentlyContinue
  Get-ADComputer -Server $DomInFile –Filter {(Enabled –eq $False)} –ResultPageSize 2000 –ResultSetSize $null -Properties Name, OperatingSystem | Export-CSV $DisabledCompsCSV -NoTypeInformation
  Search-ADAccount -Server $DomInFile –AccountDisabled –UsersOnly –ResultPageSize 2000 –ResultSetSize $null | Select-Object SamAccountName, DistinguishedName | Export-CSV $DisabledUsersCSV –NoTypeInformation
  Search-ADAccount -Server $DomInFile –AccountInActive –TimeSpan 90:00:00:00 –ResultPageSize 2000 –ResultSetSize $null | ?{$_.Enabled –eq $True} | Select-Object Name, SamAccountName, DistinguishedName | Export-CSV $InActiveUsersReport –NoTypeInformation}
Write-Host "Script Finished collecting required information. Please check report files under C:Temp folder"

分享报告

生成 CSV 报告后,您可以通过电子邮件将相应的文件发送给每个 IT 团队。或者,您可以在脚本中嵌入 Send-MailMessage cmdlet,以便脚本自动发送这些电子邮件。我们将在本系列即将发表的文章中讨论此 cmdlet。

Netwrix 如何提供帮助

尽管使用 PowerShell 比手动检查禁用和非活动帐户要快得多,但创建、维护和执行脚本仍然需要大量工作。如果您是一个忙碌的人,请考虑寻找能够自动化工作并节省时间的工具。例如,借助免费的非活动用户跟踪器,您将能够快速清除或锁定所有过时的用户帐户。 Netwrix Auditor for Active Directory 等强大的解决方案使您只需单击几下即可报告帐户状态,并自动进行审核、发现安全弱点并简化事件调查。

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

取消回复欢迎 发表评论:

关灯