Windows 7 64 비트에서 주어진 사용자에 대해 SID를 가져 오는 작은 응용 프로그램이 있습니다. 응용 프로그램은 64 비트로 컴파일됩니다.LookupAccountName이 Windows 7에서 1332로 실패 함 64 비트
PSID Sid;
DWORD cbReferencedDomainName, cbSid;
LPTSTR ReferencedDomainName;
SID_NAME_USE eUse;
DWORD dwRc = 0;
printf("Lookup %s\n",lpszAccountName);
cbReferencedDomainName = cbSid = 0;
if (LookupAccountName(NULL, lpszAccountName, 0, &cbSid,
0, &cbReferencedDomainName, &eUse)) {
printf("LookupAccountName passed\n");
return 0;
}
dwRc = GetLastError();
printf("LookupAccountName RC (%d)\n",dwRc);
나는 UID의 @ 호스트 이름 형식으로 사용자 이름을 전달하고있다. GetLastError가 1332 - "계정 이름과 보안 ID 간의 매핑이 수행되지 않았습니다."와 함께 컴퓨터에있는 모든 사용자가 API를 실패합니다. 도와주세요.
잘못된 형식입니다. 이메일 주소가 아닙니다. 대신'domain \ username'을 사용하십시오. –
감사합니다. 컴퓨터가 도메인에 없습니다. machinename \ user 시도했지만 또한 실패합니다. – Shashi
'. \ username'을 사용하면 컴퓨터 이름을 잘못 쓰는 것을 피할 수 있습니다. C 프로그램에서 두 개의 백 슬래시를 사용하는 것을 잊지 마십시오. –