2

C# から vbscript を実行しようとしています。このスクリプトを実行する権限がないにもかかわらず、vbscript は常に正常に実行されます。

コード:

        //nswp is the User's password
        foreach (char c in uspw)
        {
            password.AppendChar(c);
        }
        Process scriptProc = new Process();
        scriptProc.StartInfo.RedirectStandardOutput = true;
        scriptProc.StartInfo.RedirectStandardError = true;
        scriptProc.StartInfo.Domain = "moia.gov.il";
        scriptProc.StartInfo.ErrorDialog = true;
        scriptProc.StartInfo.UserName = Globals.CURRENT_USER.user_name;
        scriptProc.StartInfo.Password = password;
        scriptProc.StartInfo.UseShellExecute = false;
        scriptProc.StartInfo.FileName = @"cscript";
        scriptProc.StartInfo.Arguments = "//B //Nologo " + pathSave;
        scriptProc.Start();
        scriptProc.WaitForExit();
        scriptProc.Close();

この vbscript を手動で (ファイル アイコンをダブルクリックして) 実行すると、必要に応じてアクセス許可エラーが発生します。

C#でこのエラーをキャッチして例外をスローするにはどうすればよいですか。

4

1 に答える 1

0

ここで行っているように、別のプロセスを使用する場合、多くのオプションはありません。これはそれについてです:

    scriptProc.WaitForExit();
    if (scriptProc.ExitCode != 0) throw new Exception("Script failed");

COM スクリプティング ホストを使用してインプロセスでスクリプトを実行すると、詳細なエラー情報を取得できます。それは言い過ぎかもしれません。

于 2012-03-21T10:33:03.210 に答える