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)"