如何验证AD帐户是否已锁定?

时间:2014-11-20 15:13:54

标签: powershell active-directory

我想知道是否可以验证特定的AD帐户是否已被锁定。

命令Get-ADUser不会返回此参数:

 -------------------------- EXAMPLE 3 --------------------------

 Command Prompt: C:\PS>
 Get-ADUser GlenJohn -Properties * 


  - Surname : John 
  - Name : Glen John
  - UserPrincipalName : jglen
  - GivenName : Glen
  - Enabled : False
  - SamAccountName : GlenJohn
  - ObjectClass :
  - user SID :S-1-5-21-2889043008-4136710315-2444824263-3544
  - ObjectGUID :e1418d64-096c-4cb0-b903-ebb66562d99d
  - DistinguishedName : CN=Glen John,OU=NorthAmerica,OU=Sales,OU=UserAccounts,DC=FABRIKAM,DC=COM

 Description :
 -----------

 Get all properties of the user with samAccountName 'GlenJohn'.

 --------------------------END EXAMPLE --------------------------

还有其他方法可以获取此信息吗?

5 个答案:

答案 0 :(得分:29)

LockedOut属性是您在返回的所有属性中寻找的属性。您只看到TechNet中的输出不完整。信息仍在那里。您可以使用Select-Object

隔离该属性
Get-ADUser matt -Properties * | Select-Object LockedOut

LockedOut
---------
False

您引用的链接不包含此信息,这显然具有误导性。使用您自己的帐户测试命令,您将看到更多信息。

注意:尽量避免使用-Properties *。虽然它非常适合简单测试,但它可以使查询,特别是具有多个帐户的查询不必要地慢。因此,在这种情况下,因为您只需要lockedout

Get-ADUser matt -Properties LockedOut | Select-Object LockedOut

答案 1 :(得分:8)

这是另一个:

PS> Search-ADAccount -Locked | Select Name, LockedOut, LastLogonDate

Name                                       LockedOut LastLogonDate
----                                       --------- -------------
Yxxxxxxx                                        True 14/11/2014 10:19:20
Bxxxxxxx                                        True 18/11/2014 08:38:34
Administrator                                   True 03/11/2014 20:32:05

值得一提的其他参数:

Search-ADAccount -AccountExpired
Search-ADAccount -AccountDisabled
Search-ADAccount -AccountInactive

Get-Help Search-ADAccount -ShowWindow

答案 2 :(得分:2)

我还找到了这个属性标记列表:How to use the UserAccountControl flags

SCRIPT  0x0001  1
ACCOUNTDISABLE  0x0002  2
HOMEDIR_REQUIRED    0x0008  8
LOCKOUT 0x0010  16
PASSWD_NOTREQD  0x0020  32
PASSWD_CANT_CHANGE 0x0040   64
ENCRYPTED_TEXT_PWD_ALLOWED  0x0080  128
TEMP_DUPLICATE_ACCOUNT  0x0100  256
NORMAL_ACCOUNT  0x0200  512
INTERDOMAIN_TRUST_ACCOUNT   0x0800  2048
WORKSTATION_TRUST_ACCOUNT   0x1000  4096
SERVER_TRUST_ACCOUNT    0x2000  8192
DONT_EXPIRE_PASSWORD    0x10000 65536
MNS_LOGON_ACCOUNT   0x20000 131072
SMARTCARD_REQUIRED  0x40000 262144
TRUSTED_FOR_DELEGATION  0x80000 524288
NOT_DELEGATED   0x100000    1048576
USE_DES_KEY_ONLY    0x200000    2097152
DONT_REQ_PREAUTH    0x400000    4194304
PASSWORD_EXPIRED    0x800000    8388608
TRUSTED_TO_AUTH_FOR_DELEGATION  0x1000000   16777216
PARTIAL_SECRETS_ACCOUNT 0x04000000      67108864

您必须使用userAccountControl创建属性0x002的二进制AND。为了获得所有锁定(即禁用)帐户,您可以对此进行过滤:

(&(objectClass=user)(userAccountControl:1.2.840.113556.1.4.803:=2))

对于运营商1.2.840.113556.1.4.803,请参阅LDAP Matching Rules

答案 3 :(得分:0)

ScriptingGuy guest post到Microsoft Powershell Expert脚本的链接可以帮助您找到此信息,但是要完全审核为什么它被锁定以及哪台计算机触发了锁定,您可能需要通过以下方式打开其他级别的审核: GPO。

https://gallery.technet.microsoft.com/scriptcenter/Get-LockedOutLocation-b2fd0cab#content

答案 4 :(得分:0)

如果要通过命令行检查,请使用命令“ net user username / DOMAIN”

enter image description here