Von einer nicht privilegierten Anwendung möchte ich eine privilegierte Anwendung ausführen. Aber ich möchte überprüfen, ob der Benutzer ein Administrator ist, bevor Sie die Anwendung starten.Wie ermittelt man, ob ein Benutzer ein Administrator aus einer nicht privilegierten Anwendung mit Win32 ist?
Win32 stellt IsUserAnAdmin()
und IsUserAdmin()
zur Verfügung, aber beide geben 0
zurück, wenn sie von einem unprivilegierten Prozess aufgerufen werden. Dies liegt daran, dass in Wirklichkeit gefragt wird, ob der Prozess über Administratorzugriff verfügt, wenn der Benutzer Mitglied der Gruppe \ Administratoren ist.
Ist es möglich festzustellen, ob der Benutzer Teil der Gruppe Administratoren aus einem nicht privilegierten Prozess ist?
Es gibt ein paar ähnliche Fragen bereits, aber das ist kein Duplikat. Insbesondere möchte ich wissen, ob der USER Teil der Gruppe ist und nicht, ob der PROCESS administrative Berechtigungen geerbt hat; und wenn es mit Win32 (nicht .NET) gemacht werden kann.
'NetUserGetLocalGroups()' vielleicht. –