Какой самый короткий способ получить локализованное имя встроенной Windows учетной записи пользователя? - PullRequest
2 голосов
/ 03 апреля 2020

Мне нужно позвонить CreateProcessWithLogonW, для чего мне нужно передать имя встроенной учетной записи (скажем, Администратор). Проблема в том, что встроенные учетные записи локализованы. Например, на французском языке это «Administrat eur », и когда я передаю «Administrator» в функцию, он возвращает ERROR_LOGON_FAILURE.

Чтобы получить имя встроенной учетной записи, я могу передать его SID до LookupAccountBySid. Очень легко. Проблема в том, что, согласно этому , SID, который мне нужно передать, следующий:

S-1-5-21domain-500

Как мне получить доменную часть?

Я нашел этот код , но для того, чтобы получить SID текущего пользователя (откуда я мог получить доменную часть), он вызывает цепочку функций включая OpenProcessToken, GetTokenInformation, HeapAlloc, GetSidIdentifierAuthority, GetSidSubAuthorityCount, GetSidSubAuthority ...

Это было бы довольно безумно для получения простой строки домена. Есть ли более короткий способ сделать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...