0

WCF サービスにバッチ ファイルを実行するためのクラスがあります。共有ディレクトリでバッチ ファイルの実行をテストすると、問題なくバッチが実行されましたが、セキュリティで保護されたディレクトリからバッチ ファイルを実行しようとすると、エラー"ACCESS DENIED"が発生します。セキュリティで保護されたディレクトリにアクセスしてバッチ ファイルを実行できるように、ログイン プロパティを追加する方法を教えてください。

ここに私のコードがあります:

public string ExecuteBat()
{   
  string hasil = "";
  ProcessStartInfo processInfo = new ProcessStartInfo(@"D:\Secure\command.bat");
  processInfo.CreateNoWindow = true;
  processInfo.UseShellExecute = false;
  Process process = Process.Start(processInfo);
  process.WaitForExit();
  if (process.ExitCode == 0) 
  { 
    hasil = "BAT EXECUTED!"; 
  }
  else 
  { 
    hasil = "EXECUTE BAT FAILED"; 
  }
  return hasil;
}
4

1 に答える 1

1

ProcessStartInfoクラスにはのプロパティがありDomain、設定すると、次のような資格情報でプロセスを開始します。UserNamePassword

ProcessStartInfo processInfo = new ProcessStartInfo(@"D:\Rpts\SSIS_WeeklyFlash_AAF_1.bat");
processInfo.CreateNoWindow = true;
processInfo.UseShellExecute = false;
processInfo.Domain= "MyCompanyDomain";
processInfo.UserName = "username";
//Secure string is an odd beast, so you need something like this:
SecureString ss = new SecureString();
string password = "p@$$w0rd";
foreach (char c in password)
{
  ss.AppendChar(c);
}
processInfo.Password = ss;
...
于 2012-09-05T09:36:00.503 に答える