サービスを開始および停止し、ファイルをコピーし、ファイルをコピーする必要があるため、昇格された権限を必要とする複数の(BAT)昇格された権限を持つASP.Netからスクリプト(.bat)を実行する
私はさまざまなアプローチを適用しようとしましたが、動作するものは見つかりませんでした。
これは、ASP.NetのC#のコードからである:これはServiceTest.batある
var securePass= new SecureString();
string password = "AdminPassword";
for (int x = 0; x < password.Length; x++)
{
pass.AppendChar(password[x]);
}
Process p = new Process();
p.StartInfo.FileName = Path.Combine(appPath, "Scripts", "ServiceTest.bat");
p.StartInfo.Arguments = "";
p.StartInfo.UseShellExecute = false;
p.StartInfo.CreateNoWindow = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.UserName = adminUserName;
p.StartInfo.Domain = adminDomain;
p.StartInfo.Password = securePass;
p.StartInfo.Verb = "runas";
p.Start();
p.WaitForExit();
:
NET START MSSQL$SQLEXPRESS
それが動作しませ:私は "p.StartInfo.CreateNoWindow" を削除した場合と"p.StartInfo.RedirectStandardOutput"の行に、コンソールウィンドウに "NET START MSSQL $ SQLEXPRESS"を実行している "アクセス拒否"エラーが表示されます。私はファイル名に " cmd.exeの" 試してみました
、および"/ C" + Path.Combine(APPPATH、 "スクリプト"、 "ServiceTest.bat")を引数として、およびいくつかの方法が、それは動作しません。
提案がありますか?
ありがとうございました!
あなたのAsp.net Appにはどのような特権がありますか?通常は十分ではありません。 – Noren
私が使用しているユーザーは、SQLサービスを開始するのに十分な権限がありません。 @unniksの応答からPsExecを使用すると、ユーザーを変更できますが、どのユーザーもSQLサービスを開始できます。 – Duefectu
アプリケーションプールに移動し、アプリケーションのプールから詳細設定を開きます。 「特権」をより高い特権を持つユーザーに変更します。 – Noren