2017-11-08 33 views
0

サービスを開始および停止し、ファイルをコピーし、ファイルをコピーする必要があるため、昇格された権限を必要とする複数の(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")を引数として、およびいくつかの方法が、それは動作しません。

提案がありますか?

ありがとうございました!

+0

あなたのAsp.net Appにはどのような特権がありますか?通常は十分ではありません。 – Noren

+0

私が使用しているユーザーは、SQLサービスを開始するのに十分な権限がありません。 @unniksの応答からPsExecを使用すると、ユーザーを変更できますが、どのユーザーもSQLサービスを開始できます。 – Duefectu

+0

アプリケーションプールに移動し、アプリケーションのプールから詳細設定を開きます。 「特権」をより高い特権を持つユーザーに変更します。 – Noren

答えて

1

異なる資格情報を使用する必要があります。そのためにRunAsまたはPSExecを使用する

https://docs.microsoft.com/en-us/sysinternals/downloads/psexec 

https://techtorials.me/windows/using-runas-with-a-password/ 

E.g. 
PsExec64.exe \\<local machine Name> -u Domain\Administrator -p <Password> "<Script Name>" 
+0

PsExeを使用すると、別のユーザーとスクリプトを実行できます。それは動作しますが、SQL Serverサービスを開始する必要があり、同じ「アクセス拒否」エラーが発生します。 – Duefectu

+0

PsExec \\ <ローカルマシン> -u管理者-p "C:\ Windows \ System32 \ Net.exe" START MSSQLSERVER – unniks

+0

コマンド** psexec \\ myComputer -u myDomain \ administrador -p adminPass "C:\ windows \ system32 \ net.exe "START MSSQL $ SQLEXPRESS **は** C:\ windows \ system32 \ net.exeで終了し、エラーコード2で終了します。私はドメイン管理者アカウントを使用します。 – Duefectu

関連する問題