1

バッチ ジョブを介して powershell スクリプトを実行しようとしています。ジョブで正常に動作する次のコードを使用しました。

System.Diagnostics.Process  process;
System.Diagnostics.ProcessStartInfo startInfo;
;
process = new System.Diagnostics.Process();
startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.set_FileName("powershell.exe");
startInfo.set_Arguments("D:\\Documents\\OP3_FTP_Upload.ps1");

startInfo.set_UseShellExecute(false);
startInfo.set_RedirectStandardError(true);
process.set_StartInfo(startInfo);
process.Start();

このコードを runbasebatch クラスで使用すると、次のエラーが発生します。

Failed to request the permission of type 'InteropPermission'.
Unable to create object 'CLRObject'

だから私は私の許可の問題を解決するために以下を使用しようとします:

Set               permissionSet;
InteropPermission interopPermission;
;
interopPermission = new InteropPermission(InteropKind::ClrInterop);
permissionSet =  new Set(Types::Class);
permissionSet.add(interopPermission);
CodeAccessPermission::assertMultiple(permissionSet);

...my first code example

CodeAccessPermission::revertAssert();

バッチ ジョブを実行すると、エラー メッセージは表示されませんが、何も起こりません。パスは正しく、スクリプトも (parms は AOS に基づいて修正されます) 問題は、permissionSet および interopPermission クラスを実装する方法にあると思います。ファイルに対する CRUD 操作の場合の使用方法は知っていますが、その場合の使用方法スクリプト実行の?私の使用例でこれらのクラスを管理する方法 (可能であれば) を誰かに説明してもらえますか?

私の問題を解決するための他のアイデアは大歓迎です。

4

1 に答える 1

1

これで十分なはずです (CLR 呼び出しを行うメソッド内)。

new InteropPermission(InteropKind::ClrInterop).assert();

それ以外の場合は、デバッグを試みます。

于 2013-05-16T20:18:16.827 に答える