如何使用 PowerShell 锁定、解锁、启用和禁用 AD 帐户

Active Directory GUI 管理工具,如Active Directory 用户和计算机 (ADUC),非常适合对单个帐户执行操作。但是当您需要处理多个AD帐户时,PowerShell是一个更灵活的工具。在这篇文章中,我将向您展示如何使用 PowerShell 使用逗号分隔的文件单独和批量锁定、解锁、启用和禁用 AD 用户和计算机帐户。

在运行 Active Directory PowerShell cmdlet 之前,必须在计算机上安装 PowerShell 的 Active Directory 模块。如果您使用的是Windows 10,请从Microsoft的网站下载Windows 10的远程服务器管理工具(RSAT),然后安装它。然后,通过使用本地管理员权限打开 PowerShell 提示并运行Enable-WindowsOptionalFeaturecmdlet 来启用 AD PowerShell 模块功能,如下所示:

Enable-WindowsOptionalFeature -Online -FeatureName RSATClient-Roles-AD-Powershell

(可选)还可以使用更新帮助cmdlet 更新帮助文件:

Update-Help -Module ActiveDirectory -Verbose -Force

请务必关闭 PowerShell 提示符,因为其他任何操作都不需要提升的权限。以下说明可以在有权在 Active Directory 中执行用户帐户操作的任何用户的安全上下文中运行,例如解锁用户帐户以及启用和禁用用户、计算机和服务帐户。

如何查找锁定的活动目录帐户

您不能使用 PowerShell 或 GUI 锁定活动目录帐户;事实上,你没有理由想要这样做。但是,您可以在搜索 ADAccountcmdlet 的帮助下搜索锁定的用户帐户。在这里,我将搜索 ADAccountcmdlet 的结果通过管道传输到选择对象cmdlet,以仅显示每个锁定帐户的NameSamAccountName属性:

Search-ADAccount -LockedOut -UsersOnly | Select-Object Name, SamAccountName

精心挑选的相关内容:

如何解锁活动目录帐户

可以使用解锁 ADAccountcmdlet 轻松解锁用户帐户。使用 -Identity参数指定要解锁的帐户;可以提供其可分辨名称、安全标识符 (SID)、全局唯一标识符 (GUID) 或安全帐户管理器 (SAM) 帐户名称。在这里,我正在解锁帐户RussellS:

Unlock-ADAccount -Identity RussellS

如何启用活动目录帐户

如果帐户对象由于某种原因已被禁用,则可以使用启用 ADAccountcmdlet 启用它:

Enable-ADAccount -Identity RussellS

如何禁用活动目录帐户

同样,禁用 ADAccountcmdlet 用于禁用 AD 帐户:

Disable-ADAccount -Identity RussellS
  • 从 CSV 文件禁用用户

您还可以禁用逗号 (.csv) 文本文件中列出的所有 Active Directory 用户帐户。该文件必须包含一个标头,然后包含一个用户名列表,每行一个。我的CSV文件只有一列(标题为“名称”),所以我的逗号分隔文件没有逗号!如果 CSV 文件包含多个列,则脚本将忽略这些额外的列。

我首先将 CSV 文件的内容作为对象 ($users) 导入,然后使用ForEach循环禁用文本文件每一行上的用户。下面是 PowerShell 脚本:

$users=Import-CSV c:\temp\users.csv
ForEach ($user in $users)
{
     Disable-ADAccount -Identity $($user.name)
}

若要检查结果,请使用搜索 ADAccountcmdlet:

Search-ADAccount -AccountDisabled -UsersOnly | Select-Object Name, SamAccountName
  • 从 CSV 文件禁用计算机帐户

用于禁用 CSV 文件中列出的计算机帐户的 PowerShell 脚本几乎相同。主要区别在于,我必须在 the-Identity参数值的末尾添加一个美元符号 ($),以指定我要禁用计算机对象而不是用户帐户对象。我还将变量和文件名更改为更适合计算机帐户。

CSV 文件如下所示:

这是脚本:

$computers=Import-CSV c:\temp\computers.csv
ForEach ($computer in $computers)
{
     Disable-ADAccount -Identity "$($computer.name)$"
}

若要检查结果,请使用搜索 ADAccountcmdlet:

Search-ADAccount –AccountDisabled –ComputersOnly | Select-Object Name, SamAccountName
  • 禁用非活动用户

Search-ADAccount 和 Disable-ADAccountcmdlet 可以一起使用,以禁用非活动用户帐户。我举两个例子。首先,我将创建一个新的 timespan 对象 ($timespan) 并将其设置为 90 天,然后将其用作 TimeSpan参数的值,以禁用过去三个月未处于活动状态的帐户。The-AccountInactive参数要求域功能级别为 Windows Server 2003 或更高版本。

$timespan = New-Timespan -Days 90
Search-ADAccount -UsersOnly -AccountInactive -TimeSpan $timespan | Disable-ADAccount

另一种选择是使用 -DateTime参数返回自给定日期以来一直处于非活动状态的帐户。此脚本禁用自 2018 年 6 月 3 日以来未处于活动状态的所有帐户:

Search-ADAccount -UsersOnly -AccountInactive -DateTime ‘6/3/2018’ | Disable-ADAccount

值得注意的是,由于 Active Directory 同步LastLogOnDate属性的方式,在使用Search-ADAccountcmdlet 指定 AccountInactive参数时返回的结果可能不准确多达 9-14 天。

如您所见,使用PowerShell管理Active Directory帐户的状态非常简单。由于 PowerShell 是面向对象的,因此可以轻松创建包含要处理的数据的对象,然后将其传递给执行所需操作的其他 cmdlet。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值