LsaLookupNames2 함수(ntsecapi.h)
LsaLookupNames2 함수는 지정된 계정 이름에 대한 SID(보안 식별자)를 검색합니다. LsaLookupNames2 는 Windows 포리스트의 모든 도메인에 있는 모든 계정에 대한 SID를 조회할 수 있습니다.
LsaLookupNames 함수는 LsaLookupNames2 함수로 대체됩니다. 애플리케이션은 향후 호환성을 보장하기 위해 LsaLookupNames2 함수를 사용해야 합니다.
이 함수는 LsaLookupNames2가 각 SID를 단일 요소로 반환하는 반면 LsaLookupNames는 각 SID를 RID/도메인 쌍으로 나눕니다.
구문
NTSTATUS LsaLookupNames2(
[in] LSA_HANDLE PolicyHandle,
[in] ULONG Flags,
[in] ULONG Count,
[in] PLSA_UNICODE_STRING Names,
[out] PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains,
[out] PLSA_TRANSLATED_SID2 *Sids
);
매개 변수
[in] PolicyHandle
Policy 개체에 대한 핸들입니다. 핸들에 POLICY_LOOKUP_NAMES 액세스 권한이 있어야 합니다. 자세한 내용은 정책 개체 핸들 열기를 참조하세요.
[in] Flags
이 함수의 동작을 제어하는 값입니다. 현재 다음 값이 정의되어 있습니다.
값 | 의미 |
---|---|
|
함수는 도메인을 지정하지 않는 이름을 로컬 시스템에서만 검색합니다. 함수는 원격 시스템에서 도메인을 지정하는 이름을 검색합니다. |
[in] Count
Names 배열의 이름 수를 지정합니다. Sids 배열에서 반환되는 항목의 수이기도 합니다 .
[in] Names
조회할 이름을 포함하는 LSA_UNICODE_STRING 구조체의 배열에 대한 포인터입니다. 이러한 문자열은 사용자, 그룹 또는 로컬 그룹 계정의 이름 또는 도메인 이름일 수 있습니다. 도메인 이름은 DNS 도메인 이름 또는 NetBIOS 도메인 이름일 수 있습니다.
이름 문자열의 형식에 대한 자세한 내용은 비고를 참조하세요.
[out] ReferencedDomains
LSA_REFERENCED_DOMAIN_LIST 구조체에 대한 포인터를 받습니다. 이 구조 체의 Domains 멤버는 이름이 발견된 각 도메인에 대한 항목을 포함하는 배열입니다. Sids 배열에 있는 각 항목의 DomainIndex 멤버는 이름이 발견된 도메인에 대한 Domains 배열 항목의 인덱스입니다.
반환된 포인터 사용을 마쳤으면 를 호출하여 해제합니다.
LsaFreeMemory 함수입니다 . STATUS_NONE_MAPPED 또는 STATUS_SOME_NOT_MAPPED 오류 코드 중 하나로 인해 함수가 실패하는 경우에도 이 메모리를 해제해야 합니다 .
[out] Sids
LSA_TRANSLATED_SID2 구조체 배열에 대한 포인터를 받습니다. Sids 배열의 각 항목에는 이름 배열의 해당 항목에 대한 SID 정보가 포함됩니다.
반환된 포인터 사용을 마쳤으면 를 호출하여 해제합니다.
LsaFreeMemory 함수입니다 . STATUS_NONE_MAPPED 또는 STATUS_SOME_NOT_MAPPED 오류 코드 중 하나로 인해 함수가 실패하는 경우에도 이 메모리를 해제해야 합니다 .
반환 값
함수가 성공하면 함수는 다음 NTSTATUS 값 중 하나를 반환합니다.
값 | Description |
---|---|
|
일부 이름은 번역할 수 없습니다. 정보 수준 반환 값입니다. |
|
모든 이름이 발견되어 성공적으로 번역되었습니다. |
함수가 실패하면 반환 값은 다음 NTSTATUS 값 또는 LSA 정책 함수 반환 값 중 하나입니다.
값 | Description |
---|---|
|
어떤 이름도 번역되지 않았습니다. |
LsaNtStatusToWinError 함수를 사용하여 NTSTATUS 코드를 Windows 오류 코드로 변환합니다.
설명
격리된 이름(예: UserName\) 대신 정규화된 계정 이름(예: DomainName UserName)을 사용합니다. 정규화된 이름은 모호하지 않으며 조회가 수행될 때 더 나은 성능을 제공합니다. 이 함수는 정규화된 DNS 이름(예: 예제)도 지원합니다.예.com\UserName) 및 UPN( 사용자 계정 이름 )(예: Someone@Example.com).
격리된 이름을 변환하면 여러 도메인에서 동일한 이름을 사용할 수 있으므로 이름 충돌이 발생할 수 있습니다. LsaLookupNames2 함수는 다음 알고리즘을 사용하여 격리된 이름을 변환합니다.
격리된 이름을 번역하려면
- 이름이 로컬 또는 대화형과 같이 잘 알려진 이름인 경우 함수는 해당 잘 알려진 SID( 보안 식별자)를 반환합니다.
- 이름이 기본 제공 도메인의 이름인 경우 함수는 해당 도메인의 SID를 반환합니다.
- 이름이 계정 도메인의 이름인 경우 함수는 해당 도메인의 SID를 반환합니다.
- 이름이 주 도메인의 이름인 경우 함수는 해당 도메인의 SID를 반환합니다.
- 이름이 신뢰할 수 있는 도메인의 이름 중 하나인 경우 함수는 해당 도메인의 SID를 반환합니다.
- 이름이 기본 제공 도메인의 사용자, 그룹 또는 로컬 그룹 계정인 경우 함수는 해당 계정의 SID를 반환합니다.
- 이름이 로컬 시스템의 계정 도메인에 있는 사용자, 그룹 또는 로컬 그룹 계정인 경우 함수는 해당 계정의 SID를 반환합니다.
- 이름이 주 도메인의 사용자, 그룹 또는 로컬 그룹인 경우 함수는 해당 계정의 SID를 반환합니다.
- 기본 도메인을 살펴보면 함수는 각 주 도메인의 신뢰할 수 있는 도메인을 확인합니다.
- 그렇지 않으면 이름이 번역되지 않습니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | ntsecapi.h |
라이브러리 | Advapi32.lib |
DLL | Advapi32.dll |