我有一个小应用程序,它试图获取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程序中使用两个反斜杠。 –