![如何使用 powershell v2.0 或 CMD / VBS 检查 AD 中特定的用户帐户列表是否被禁用](https://linux22.com/image/689418/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20powershell%20v2.0%20%E6%88%96%20CMD%20%2F%20VBS%20%E6%A3%80%E6%9F%A5%20AD%20%E4%B8%AD%E7%89%B9%E5%AE%9A%E7%9A%84%E7%94%A8%E6%88%B7%E5%B8%90%E6%88%B7%E5%88%97%E8%A1%A8%E6%98%AF%E5%90%A6%E8%A2%AB%E7%A6%81%E7%94%A8.png)
1)我有一个包含 sAMAaccountNames 的 txt 列表
2)我需要查询每个帐户名并验证它是否被禁用
3)如果帐户已被禁用,请从 AD 中删除它
如果没有其他办法,我只会手动删除它们,但首先我需要检查列表中的所有帐户,看它们是否被禁用。
我已在此服务器上安装了 powershell v2.0,DC 是 windows server 2003。管理服务器是 windows server 2008。
我没有 Active Directory 模块,也无法安装它。
如何使用 CMD/VBScript 或 powershell v2.0 执行此操作?
我试过跑
dsquery -Filter "(userAccountControl:1.2.840.113556.1.4.803:=2)"
但我收到以下错误dsquery failed:The parameter is incorrect.:Incorrect object type specified. type dsquery /? for help.
答案1
电源外壳
Get-ADUser -Identity SamAccountName
返回 SamAccountName 的用户对象。
要获取已启用的属性,请使用:
Get-ADUser -Identity SamAccountName | Select-Property Enabled
。
或者
(Get-ADUser -Identity SamAccountName).Enabled
。
编辑:或者,缺少 PowerShell AD 模块或 PS 3.0+,使用 ADUC 实现 LDAP 查询,调整显示列以包含您想要的内容,然后将结果导出到文件。就是这样(TechNet)。
答案2
好像我漏了一个*
。正确的代码是:
dsquery * -Filter "(userAccountControl:1.2.840.113556.1.4.803:=2)"