我有一個小應用程序,它試圖獲取Windows 7 64位上給定用戶的SID。該應用程序被編譯爲64位。LookupAccountName失敗,Windows 7 64位上的1332
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 @ hostname格式傳遞用戶名。對於GetLastError計算機上存在的每個用戶,API都會返回1332 - 「帳戶名稱和安全ID之間沒有映射已完成」。請幫忙。
格式錯誤,它不是電子郵件地址。請改用'domain \ username'。 –
謝謝。機器不在域中。我試過機器名\用戶但也失敗了。 – Shashi
使用'。\ username'來避免機器名稱錯誤。不要忘記在C程序中使用兩個反斜槓。 –