2016-07-12 105 views
0

Ich habe eine Batch-Datei erstellen, die mein Programm als Windows-Dienste zu installieren. Inhalt der Batchdatei:wie C# run Batch-Datei als Administrator verwenden, um Windows-Dienste zu installieren

> C:\Project\Test\InstallUtil.exe 
> "C:\Project\Test\ROServerService\Server\bin\Debug\myservices.exe" 

Derzeit braucht es den Benutzer auf der rechten Maustaste die Batch-Datei und ‚Als Administrator ausführen‘, um zum Erfolg. Wie vermeiden wir "Als Administrator ausführen"? Ich meine, können wir einen Befehl in der Batch-Datei verwenden, um Windows mitzuteilen, dass diese Batch-Datei als Administrator ausgeführt werden soll?

Antwort

1

Auf diese Weise arbeitete für mich in der Vergangenheit:

string exe = @"C:\Project\Test\InstallUtil.exe"; 
string args = @"C:\Project\Test\ROServerService\Server\bin\Debug\myservices.exe" 
var psi = new ProcessStartInfo(); 
psi.CreateNoWindow = true; //This hides the dos-style black window that the command prompt usually shows 
psi.FileName = @"cmd.exe"; 
psi.Verb = "runas"; //this is what actually runs the command as administrator 
psi.Arguments = "/C " + exe + " " + args; 
try { 
    var process = new Process(); 
    process.StartInfo = psi; 
    process.Start(); 
    process.WaitForExit(); 
} 
catch (Exception){ 
    //If you are here the user clicked declined to grant admin privileges (or he's not administrator) 
} 

Bitte beachte, dass ich die Befehle in Batch-Datei ausführen, können Sie direkt hier, aber natürlich renne auch die Batch-Datei selbst:

string bat = @"C:\path\to\your\batch\file.bat"; 
var psi = new ProcessStartInfo(); 
psi.CreateNoWindow = true; //This hides the dos-style black window that the command prompt usually shows 
psi.FileName = @"cmd.exe"; 
psi.Verb = "runas"; //this is what actually runs the command as administrator 
psi.Arguments = "/C " + bat; 
+0

Wie können wir dies auf dem Client-Rechner im Admin-Modus ausführen? –

+0

@EnigmaticMind: Ich verstehe Ihre Frage nicht ... der Code führt bereits die Befehle im Admin-Modus. Was ist dein Problem genau? –

+0

Ich habe obigen Code in Web-Anwendung. und im Pfad der bat-Datei gab ich Server-IP (Clients IP). + Pfad Es funktionierte nicht. Die Frage war also, ob der Code für die Webanwendung funktioniert oder nicht. –