LsaLookupSids2 함수(ntsecapi.h)

LsaLookupSids2 함수는 SID(보안 식별자) 배열에 해당하는 이름을 조회하고 인터넷 공급자 ID를 지원합니다. LsaLookupSids2에서 SID에 해당하는 이름을 찾을 수 없는 경우 함수는 문자 형식으로 SID를 반환합니다. LsaLookupSids 함수 대신 이 함수를 사용해야 합니다.

구문

NTSTATUS LsaLookupSids2(
  [in]  LSA_HANDLE                  PolicyHandle,
  [in]  ULONG                       LookupOptions,
  [in]  ULONG                       Count,
  [in]  PSID                        *Sids,
  [out] PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains,
  [out] PLSA_TRANSLATED_NAME        *Names
);

매개 변수

[in] PolicyHandle

Policy 개체에 대한 핸들입니다. 이 핸들에는 POLICY_LOOKUP_NAMES 액세스 권한이 있어야 합니다. 자세한 내용은 정책 개체 핸들 열기를 참조하세요.

[in] LookupOptions

조회 동작을 수정하는 플래그입니다.

의미
LSA_LOOKUP_DISALLOW_CONNECTED_ACCOUNT_INTERNET_SID
연결된 계정에 대한 ID 공급자의 인터넷 SID는 허용되지 않습니다. 연결된 계정은 온라인 ID 공급자에 연결된 로컬 SAM 데이터베이스에 해당 섀도 계정이 있는 계정입니다. 예를 들어 MicrosoftAccount는 연결된 계정입니다.
LSA_LOOKUP_PREFER_INTERNET_NAMES
인터넷 이름을 반환합니다. 그렇지 않으면 NT4 스타일 이름(domain\username)이 반환됩니다. 예외는 Microsoft 계정 인터넷 SID가 지정된 경우이며, 이 경우 LSA_LOOKUP_DISALLOW_NON_WINDOWS_INTERNET_SID 지정하지 않으면 인터넷 이름이 반환됩니다.
LSA_LOOKUP_RETURN_LOCAL_NAMES
인터넷 공급자 ID에 대해서도 항상 로컬 SAM 계정 이름을 반환합니다.

[in] Count

Sids 배열의 SID 수를 지정합니다. 이는 Names 배열에 반환된 항목의 수이기도 합니다 . 이 값은 20480보다 작거나 같아야 합니다.

[in] Sids

조회할 SID 포인터 배열에 대한 포인터입니다. SID는 잘 알려진 SID, 사용자, 그룹 또는 로컬 그룹 계정 SID 또는 도메인 SID일 수 있습니다.

[out] ReferencedDomains

LSA_REFERENCED_DOMAIN_LIST 구조체에 대한 포인터에 대한 포인터를 받습니다. 이 구조 체의 Domains 멤버는 SID가 발견된 각 도메인에 대한 항목을 포함하는 배열입니다. 각 도메인에 대한 항목에는 도메인의 SID 및 플랫 이름이 포함됩니다. Windows 도메인의 경우 플랫 이름은 NetBIOS 이름입니다. Windows가 아닌 도메인이 있는 링크의 경우 플랫 이름은 해당 도메인의 식별 이름이거나 NULL입니다.

더 이상 정보가 필요하지 않은 경우 반환된 포인터를 LsaFreeMemory에 전달합니다. STATUS_NONE_MAPPED 또는STATUS_SOME_NOT_MAPPED 오류 코드 중 하나로 인해 함수가 실패하는 경우에도 이 메모리를 해제해야 합니다.

[out] Names

LSA_TRANSLATED_NAME 구조체 배열에 대한 포인터를 받습니다. Names 배열의 각 항목에는 Sids 배열의 해당 항목에 대한 이름 정보가 포함됩니다. 계정 SID의 경우 각 구조체의 이름 멤버에는 계정의 격리된 이름이 포함됩니다. 도메인 SID의 경우 이름 멤버가 잘못되었습니다.

Names 배열에 있는 각 항목의 DomainIndex 멤버는 ReferencedDomains 매개 변수에 반환된 Domains 배열에 있는 항목의 인덱스입니다. 인덱스는 SID가 발견된 도메인의 도메인 배열을 식별 합니다 .

더 이상 정보가 필요하지 않은 경우 반환된 포인터를 LsaFreeMemory에 전달합니다. STATUS_NONE_MAPPED 또는STATUS_SOME_NOT_MAPPED 오류 코드 중 하나로 인해 함수가 실패하는 경우에도 이 메모리를 해제해야 합니다.

반환 값

함수가 성공하면 반환 값은 다음 NTSTATUS 값 중 하나입니다.

반환 코드 설명
STATUS_SOME_NOT_MAPPED
일부 SID는 번역할 수 없습니다. 정보 수준 반환 값입니다.
STATUS_SUCCESS
모든 SID가 발견되어 성공적으로 번역되었습니다.
 

함수가 실패하면 반환 값은 다음 값 중 하나 또는 LSA 정책 함수 반환 값 중 하나일 수 있는 NTSTATUS 코드입니다.

반환 코드 설명
STATUS_NONE_MAPPED
SID 중 어느 것도 번역되지 않았습니다. 오류 수준 반환 값입니다.
STATUS_TOO_MANY_SIDS
Sids 배열 매개 변수가 너무 큽니다.
 

LsaNtStatusToWinError 함수를 사용하여 NTSTATUS 코드를 Windows 오류 코드로 변환할 수 있습니다.

설명

플래그 LSA_LOOKUP_PREFER_INTERNET_NAMES MicrosoftAccount 및 Azure Active Directory 계정과 같은 인터넷 계정에 사용해야 합니다. 이 플래그를 지정하면 SID-Name 조회는 계정의 UPN을 MicrosoftAccount\foo@outlook.com 또는 AzureAD\foo@contoso.com형식으로 반환합니다. Microsoft 계정의 경우 로컬 SAM SID와 인터넷 SID 모두 이 플래그가 지정된 경우 UPN이 반환됩니다. LSA_LOOKUP_PREFER_INTERNET_NAMES 지정하지 않으면 AAD 계정에 대해 AzureAD\foo 형식의 NT4 스타일 이름이 반환됩니다. NT4 스타일 이름은 컴퓨터별로 지정되며 사용량을 신중하게 평가해야 하며 가능한 경우 피해야 합니다. MicrosoftAccounts의 경우 LSA_LOOKUP_PREFER_INTERNET_NAMES 지정되지 않은 경우 계정의 로컬 SID는 로컬 SAM 이름으로 변환되고 인터넷 SID는 UPN 이름으로 변환됩니다.

계정 SID의 경우 Name 멤버에 반환된 문자열은 계정의 격리된 이름(예: user_name)입니다. 계정의 복합 이름(예: Acctg\user_name)이 필요한 경우 ReferencedDomains 버퍼에서 도메인 이름을 가져와 백슬래시 및 격리된 이름을 추가합니다.

LsaLookupSids2 함수가 SID를 변환할 수 없는 경우 함수는 다음 알고리즘을 사용합니다.

  1. SID의 도메인이 알려진 경우 ReferencedDomains 버퍼에는 도메인에 대한 항목이 포함되고 Names 매개 변수에 반환된 문자열은 SID에서 계정의 RID(상대 식별자)의 유니코드 표현입니다.
  2. SID의 도메인을 알 수 없는 경우 Names 매개 변수에 반환된 문자열은 전체 SID의 유니코드 표현이며 ReferencedDomains 버퍼에는 이 SID에 대한 도메인 레코드가 없습니다.
로컬 계정, 로컬 도메인 계정 및 명시적으로 신뢰할 수 있는 도메인 계정에 대한 SID를 조회하는 것 외에도 LsaLookupSids2 는 포리스트에 있는 계정의 SIDhistory 필드에만 표시되는 SID를 포함하여 Windows 포리스트의 모든 도메인에 있는 모든 계정에 대한 SID를 조회할 수 있습니다. SIDhistory 필드는 다른 도메인에서 이동된 계정의 이전 SID를 저장합니다. 이러한 검색을 수행하기 위해 함수는 포리스트의 글로벌 카탈로그를 쿼리합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2012 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 ntsecapi.h
라이브러리 Advapi32.lib
DLL Advapi32.dll

추가 정보

LSA_REFERENCED_DOMAIN_LIST

LSA_TRANSLATED_NAME

LsaOpenPolicy