web-dev-qa-db-ja.com

ADアカウントがロックされているかどうかを確認するにはどうすればよいですか?

特定のADアカウントがロックされているかどうかを確認できるかどうかを知りたい。

コマンド - Get-ADUser はこのパラメーターを返しません。

 --------------------------例3 ---------------------- ---- 
 
コマンドプロンプト:C:\ PS> 
 Get-ADUser GlenJohn -Properties * 
 
 
-姓:ジョン
-名前:グレンジョン
-UserPrincipalName:jglen 
-GivenName:グレン
-有効:False 
-SamAccountName:GlenJohn 
-ObjectClass:
-ユーザー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 
 
説明:
 --- -------- 
 
 samAccountName 'GlenJohn'でユーザーのすべてのプロパティを取得します。
 
 ---------- ----------------終了例--------------------------

この情報を取得する他の方法はありますか?

17
Vinc 웃

LockedOutプロパティは、返されたすべてのプロパティの中から探しているものです。 TechNetには不完全な出力しか表示されません。情報はまだそこにあります。 Select-Objectを使用して、その1つのプロパティを分離できます

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

LockedOut
---------
False

参照したリンクには、明らかに誤解を招くような情報は含まれていません。自分のアカウントでコマンドをテストすると、さらに多くの情報が表示されます。

注:-Properties *を避けるようにしてください。単純なテストには適していますが、クエリ、特に複数のアカウントを持つクエリを不必要に遅くすることができます。したがって、この場合、必要なのはlockedoutだけなので:

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

ここに別のものがあります:

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
10
evilSnobu

次のプロパティフラグのリストも見つけました。 serAccountControlフラグの使用方法

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

プロパティuserAccountControl0x002のバイナリANDを作成する必要があります。すべてのロックされた(つまり無効になっている)アカウントを取得するには、これでフィルタリングできます。

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

演算子1.2.840.113556.1.4.803については、 LDAPマッチングルール を参照してください

2

コマンドラインで確認したい場合は、コマンド「Net User username/DOMAIN」を使用します

enter image description here

0
Aniket Warey

この ScriptingGuyゲストポスト Microsoft Powershellエキスパートによるスクリプトへのリンクはこの情報を見つけるのに役立ちますが、ロックされた理由とロックをトリガーしたマシンを完全に監査するには、おそらく追加のレベルをオンにする必要がありますGPOによる監査。

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

0
dragon788