Мне нужно позвонить CreateProcessWithLogonW
, для чего мне нужно передать имя встроенной учетной записи (скажем, Администратор). Проблема в том, что встроенные учетные записи локализованы. Например, на французском языке это «Administrat eur », и когда я передаю «Administrator» в функцию, он возвращает ERROR_LOGON_FAILURE
.
Чтобы получить имя встроенной учетной записи, я могу передать его SID до LookupAccountBySid
. Очень легко. Проблема в том, что, согласно этому , SID, который мне нужно передать, следующий:
S-1-5-21domain-500
Как мне получить доменную часть?
Я нашел этот код , но для того, чтобы получить SID текущего пользователя (откуда я мог получить доменную часть), он вызывает цепочку функций включая OpenProcessToken, GetTokenInformation, HeapAlloc, GetSidIdentifierAuthority, GetSidSubAuthorityCount, GetSidSubAuthority
...
Это было бы довольно безумно для получения простой строки домена. Есть ли более короткий способ сделать это?