Get-ADUser -LDAPFilter "(&(objectCategory=Person)(objectClass=User)(lockoutTime>=1))" -Properties LockedOut
신뢰할 수있는 결과를 반환하지 않기 때문에 반드시 신뢰할 필요 는 없지만 현재로서는 내 PDCe에 직접 연결할 수 없습니다. 최상의 결과를 얻으려면 도메인 전체의 계정 잠금에 대한 최신 정보가 항상 있으므로 PDC 에뮬레이터를 직접 대상으로하고자합니다.
이것이 여러분이 여기서 목격하고있는 것입니다. 복제가 지연됩니다.
... 계정 잠금이 PDC (Primary Domain Controller) 에뮬레이터 역할 소유자에게 긴급하게 복제 된 후 다음으로 긴급하게 복제됩니다.
• PDC 에뮬레이터와 동일한 사이트에있는 동일한 도메인의 도메인 컨트롤러.
• 계정 잠금을 처리 한 도메인 컨트롤러와 동일한 사이트에있는 동일한 도메인의 도메인 컨트롤러.
• PDC 에뮬레이터가 포함 된 사이트 또는 계정 잠금이 처리 된 사이트와 사이트간에 변경 알림을 허용하도록 구성된 사이트 (및 긴급 복제)에있는 동일한 도메인의 도메인 컨트롤러. 이러한 사이트에는 PDC 에뮬레이터가 포함 된 사이트와 동일한 사이트 링크 또는 계정 잠금을 처리 한 도메인 컨트롤러가있는 사이트와 동일한 사이트 링크에 포함 된 모든 사이트가 포함됩니다.
또한 PDC 에뮬레이터 이외의 도메인 컨트롤러에서 인증이 실패하면 PDC 에뮬레이터에서 인증이 다시 시도됩니다. 이러한 이유로 PDC 에뮬레이터는 잘못된 암호 시도 임계 값에 도달하면 실패한 암호 시도를 처리 한 도메인 컨트롤러 전에 계정을 잠급니다. PDC 에뮬레이터 역할 소유자가 암호 변경 및 계정 잠금을 관리하는 방법에 대한 자세한 내용은이 설명서의 "유연한 단일 마스터 작업 관리"를 참조하십시오.
따라서 Search-ADAccount -LockedOut -Server DC-PDCE
결과가 더 나은지 확인하십시오.
또한 lockoutTime 속성 주위에 쿼리를 작성할 때 고려해야 할 사항이 있습니다.
이 속성 값은 계정이 성공적으로 로그온 한 경우에만 재설정됩니다. 즉,이 값은 0이 아닐 수 있지만 계정은 잠기지 않습니다. 계정이 잠겨 있는지 정확하게 확인하려면이 시간에 잠금 기간을 추가하고 결과를 현재 시간과 비교하여 현지 시간대와 일광 절약 시간을 고려해야합니다.
편집 : 리버스 엔지니어링 을 통해 신뢰할 수있는 결과를 생성하는 것처럼 보이는 다음 코드를 실행 Microsoft.ActiveDirectory.Management.dll
한다고 말할 수 Search-ADAccount -LockedOut
있습니다.
else if ((bool) this._paramSet.LockedOut)
{
list.Add(ADAccountFactory<ADAccount>.AttributeTable[cmdletSessionInfo.ConnectedADServerType]["AccountLockoutTime"].InvokeToSearcherConverter(ADOPathUtil.CreateFilterClause(ADOperator.Ge, "AccountLockoutTime", (object) 1), cmdletSessionInfo));
this.OutputFilterFunction = new ADGetCmdletBase<SearchADAccountParameterSet, ADAccountFactory<ADAccount>, ADAccount>.OutputFilterDelegate(this.FilterIsLockedOut);
}
if (list.Count > 0)
this.OutputSearchResults(list.Count != 1 ? ADOPathUtil.CreateAndClause(list.ToArray()) : list[0]);
else
this.OutputSearchResults((IADOPathNode) null);
그래서 Search-ADAccount -LockedOut
AccountLockoutTime 속성도보고있는 것처럼 보입니다 !
위대한 정의를 위해 좀 더 편집하십시오 : Richard Mueller, Dir. 서비스 MVP는 다음과 같이 말합니다.
userAccountControl 속성을 사용하여 잠긴 사용자를 식별 할 수 없습니다. 이에 대해 문서화 된 약간의 userAccountControl이 있지만 사용되지는 않습니다.
따라서 이것을 확인할 수 있습니다.
PS C:\Users\ryan> $(Search-ADAccount -LockedOut).Count
11
PS C:\Users\ryan> $(Get-ADUser -LDAPFilter "(&(objectCategory=User)(userAccountControl:1.2.840.113556.1.4.803:=16))").Count
0
마지막으로 주제에 대한 이 블로그 게시물 을 끝내고 싶습니다. 왜 이것이 lockoutTime>=1
최고의 솔루션에 접근하고 있는지 설명 하지만, 이는 이야기의 일부일뿐입니다. lockoutTime이 과거 $ (도메인 잠금 기간)보다 큰 사용자 만 포함하도록 목록을 추가로 필터링해야합니다.