Функция TranslateName () не работает на win10 - PullRequest
1 голос
/ 12 марта 2019

мой рабочий компьютер - win10, и я использую vs2015, теперь я столкнулся со странной проблемой.Я могу получить имя NameSamCompatible по следующему исходному коду:

const int UNLEN = 100;
TCHAR Username[UNLEN + 1];
DWORD nULen = UNLEN;
GetUserNameEx(NameSamCompatible, Username, &nULen);

Имя пользователя будет "PROD \ wwu2", но я получу ошибку, если я выполню:

char trans_name[100];
ULONG ulSize = 100;
BYTE n = TranslateName(Username, NameSamCompatible, NameDnsDomain, trans_name, &ulSize);

затемЯ получаю код ошибки с помощью GetLastError ();это 1317 (пользователь не существует).но имя пользователя - это то, что я получил от GetUserNameEx, я ничего не менял.

весь исходный код:

#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;
}
...