2016-07-12 2 views
0

Windowsサービスとして自分のプログラムをインストールするために使用するバッチファイルを作成しました。バッチファイルの 内容:C#を使用してWindowsサービスをインストールする管理者としてバッチファイルを実行

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

は現在、それが成功のために「管理者として実行」バッチファイルとを右クリックし、ユーザを必要とします。 「管理者として実行」を避けるにはどうすればよいですか?私はバッチファイルでいくつかのコマンドを使用して、このバッチファイルを管理者として実行するようにWindowsに指示できますか?

答えて

1

この方法では、過去に私のために働いていた:私はここで直接あなたのバッチファイルでコマンドを実行しているんだけど、もちろんあなたも、バッチファイル自体を実行することができます

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) 
} 

注:

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

これを管理者モードでクライアントのマシンでどのように実行できますか? –

+0

@EnigmaticMind:私はあなたの質問を理解していない...コードはすでに管理モードでコマンドを実行します。あなたの問題は何ですか? –

+0

上記のコードをWebアプリケーションに入れました。バットファイルのパスに私はサーバIP(クライアントIP)を与えました。+ pathそれは動作していませんでした。つまり、コードがWebアプリケーションのために機能するかどうかということでした。 –

関連する問題