Ich kann mit diesem Code den Namen der lokalen Administratorgruppe herauslesen:
using System.Security.Principal;
String sGroupAdministrators = new SecurityIdentifier(WellKnownSidType.BuiltinAdministratorsSid, null).Translate(typeof(NTAccount)).Value;
sGroupAdministrators = sGroupAdministrators.Substring(sGroupAdministrators.IndexOf('\\') + 1);
Console.WriteLine("Local Administrator Group=" + sGroupAdministrators);
Nun möchte ich den Namen des lokalen Administrators herauslesen. Mit folgendem Code funktioniert das als Applikation, nicht aber, wenn ich ihn als Dienst ausführe:
using System.Security.Principal;
String sLocalAdministratorUser = new SecurityIdentifier(WellKnownSidType.AccountAdministratorSid, WindowsIdentity.GetCurrent().User.AccountDomainSid).Translate(typeof(NTAccount)).Value;
sLocalAdministratorUser = sLocalAdministratorUser.Substring(sLocalAdministratorUser.IndexOf('\\') + 1);
Console.WriteLine("Local Administrator User=" + sLocalAdministratorUser);
Das Problem für mich ist, wie bekomme ich benötigte domainSID für "SecurityIdentifier" heraus, wenn ich den Code als Dienst laufen lasse?
Hat jemand eine Idee?