我正在尝试通过批处理作业运行 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操作的情况下使用它,但是如何使用它以防万一脚本执行?谁能解释我如何(如果可能)在我的使用情况下管理这些类?
欢迎任何其他解决我的问题的想法。