У меня была такая же проблема с получением локализованных имен для встроенных учетных записей Windows, таких как «NT AUTHORITY \ NETWORK SERVICE» или «NT AUTHORITY \ SYSTEM».
Разница лишь в том, что я использую C # в этом случае. Однако я думаю, что это не должно быть проблемой для перехода на C ++ (с использованием неуправляемого или управляемого C ++?)
Вот как я получаю локализованную NT NTHORITY \ NETWORK SERVICE на локальном компьютере:
SecurityIdentifier userIdentifer = new SecurityIdentifier(WellKnownSidType.NetworkServiceSid, null);
string accountName = userIdentifer.Translate(typeof(NTAccount)).Value;
А если мне нужно NT NTHORITY \ SYSTEM, тогда я просто использую другой Sid:
SecurityIdentifier userIdentifer = new SecurityIdentifier(WellKnownSidType.LocalSystemSid, null);