Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich in Go unter Windows automatisch Administratorberechtigungen anfordern?

Wie kann ich in Go unter Windows automatisch Administratorberechtigungen anfordern?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-08 13:57:02614Durchsuche

How to Automatically Request Administrator Permissions in Go on Windows?

Umgang mit Elevation mit Go unter Windows: Eine Schritt-für-Schritt-Anleitung

Problembeschreibung

Viele Anwendungen erfordern Administratorrechte für bestimmte Vorgänge. Wenn Benutzer solche Anwendungen ohne erhöhte Rechte ausführen, treten Fehler auf, bei denen der Zugriff verweigert wurde. Die vorliegende Aufgabe besteht darin, eine Technik zum automatischen Anfordern von Administratorberechtigungen zu finden, ohne dass Benutzer explizit die Aktion „Als Administrator ausführen“ ausführen müssen.

Lösung

In diesem Blog untersuchen wir eine frühere Technik Stellen Sie fest, ob der aktuelle Prozess mit Administratorrechten ausgeführt wird, und starten Sie den Prozess andernfalls mit einer UAC-Eingabeaufforderung neu. Diese elegante Lösung kann in Befehlszeilentools eingesetzt werden, bei denen für die meisten Vorgänge keine erhöhten Rechte erforderlich sind. Nur Funktionen wie Installation und Deinstallation, die die Registrierung ändern oder Dateien in geschützten Verzeichnissen installieren, lösen die Erhöhungsanforderung aus.

Der bereitgestellte Go-Code verwendet den folgenden Ansatz:

  1. Wenn die aktuelle Dem Prozess fehlen Administratorrechte, das Programm startet sich mithilfe der ShellExecute-Funktion mit dem runas-Verb neu.
  2. Die amAdmin-Funktion erkennt, ob der Prozess als Administrator ausgeführt wird, indem sie versucht, die Gerätedatei \.PHYSICALDRIVE0 zu öffnen. Wenn der Öffnungsvorgang erfolgreich ist, geht das Programm davon aus, dass es über erhöhte Berechtigungen verfügt.

Implementierung

Der in der Antwort bereitgestellte Code stellt die Implementierungsdetails dar. Die runMeElevated-Funktion führt den Neustart mit UAC-Erhöhung durch, während die amAdmin-Funktion den Administratorstatus überprüft.

Weiterführende Literatur

Eine ausführlichere Erklärung der Technik finden Sie in der folgenden Ressource:

  • https://gist.github.com/jerblack/d0eb182cc5a1c1d92d92a4c4fcc416c6

Das obige ist der detaillierte Inhalt vonWie kann ich in Go unter Windows automatisch Administratorberechtigungen anfordern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn