Heim >Backend-Entwicklung >C++ >Wie kann ich Prozesse programmgesteuert mit erhöhten Privilegien in C#ausführen?

Wie kann ich Prozesse programmgesteuert mit erhöhten Privilegien in C#ausführen?

Barbara Streisand
Barbara StreisandOriginal
2025-01-31 10:11:09295Durchsuche

How Can I Programmatically Run Processes with Elevated Privileges in C#?

programmgesteuert die Prozessberechtigungen in C#

Viele Anwendungen erfordern erhöhte Berechtigungen, um bestimmte Aufgaben auszuführen, z. B. die Installation von Diensten mit InstallUtil.exe. Die Standardmethode wird jedoch mit den Standardberechtigungen der Anwendung ausgeführt. Dieser Artikel zeigt, wie Prozesse mit erhöhten Berechtigungen in C#Process.Start ausgeführt werden können

Betrachten Sie den folgenden Code -Snippet:

<code class="language-csharp">ProcessStartInfo startInfo = new ProcessStartInfo(m_strInstallUtil, strExePath);
System.Diagnostics.Process.Start(startInfo);</code>
Dieser Code startet einen Prozess mit Standard -Benutzerberechtigungen. Um die Privilegien zu erhöhen, ändern Sie

: startInfo

<code class="language-csharp">startInfo.UseShellExecute = true;
startInfo.Verb = "runas";</code>
Einstellung

zu UseShellExecute und true zu Verb weist das System an, den Prozess mit erhöhten Berechtigungen zu starten, ähnlich wie mit der rechten Maustaste und Auswahl "als Administrator ausführen". Diese Methode löst die UAC -Eingabeaufforderung (Benutzerkontosteuerung) aus und erfordert die Bestätigung der Benutzer. "runas"

Für Szenarien, in denen UAC -Eingabeaufforderungen unerwünscht sind, wird empfohlen, ein Anwendungsmanifest einzubetten. Das Anfordern der Ausführungsstufe "HigheRestavable" im Manifest veranlasst UAC beim Antragsstart und gewährt allen nachfolgenden untergeordneten Prozessen ohne weitere Unterbrechungen erhöhte Berechtigungen. Dies bietet eine nahtlosere Benutzererfahrung.

Das obige ist der detaillierte Inhalt vonWie kann ich Prozesse programmgesteuert mit erhöhten Privilegien in C#ausführen?. 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