my working computer is win10, and I am using vs2015, now I’ve met a weird issue. I can get the NameSamCompatible name by the following source code:
const int UNLEN = 100;
TCHAR Username[UNLEN + 1];
DWORD nULen = UNLEN;
GetUserNameEx(NameSamCompatible, Username, &nULen);
the Username would be “PROD\wwu2”, but I would get failed if I run:
char trans_name[100];
ULONG ulSize = 100;
BYTE n = TranslateName(Username, NameSamCompatible, NameDnsDomain, trans_name, &ulSize);
then I get the error code by GetLastError(); it is 1317(user doesn’t exist). but the username is the one I got by GetUserNameEx, I didn’t change anything.
the whole source code is:
#include "stdafx.h"
#include <Windows.h>
#include <sspi.h>
#include <secext.h>
#include <ntdsapi.h>
int main()
{
const int UNLEN = 100;
TCHAR Username[UNLEN + 1];
DWORD nULen = UNLEN;
GetUserNameEx(NameSamCompatible, Username, &nULen);
char trans_name[100];
ULONG ulSize = 100;
BYTE n = TranslateName(Username, NameSamCompatible, NameDnsDomain, trans_name, &ulSize);
int c = GetLastError();
return 0;
}