我正在尝试实现一个远程运行空间,它需要connectionInfo与Exchange通信,导入模块需要与活动目录通信。这是问题代码:
runspace = System.Management.Automation.Runspaces.RunspaceFactory.
CreateRunspace(psConnectionInfo);
runspace.InitialSessionState.ImportPSModule(new[] { "ActiveDirectory" });
runspace.Open();
我得到的运行时错误是:
无法执行操作,因为操作“文件中的偏移32处的NewNotImplementedException:line:column:0:0”未实现
如果我省略了runspaceInitialSessionState
行,我没有收到错误,但是ViewEntireForest的PowerShell命令SetADServerSettings
无法运行,因为它无法识别。
堆栈跟踪:
无法执行操作,因为未实现操作“文件中的偏移32处的NewNotImplementedException:line:column:0:0”。 在System.Management.Automation.RemoteRunspace.get_InitialSessionState() 在ManageUserForwardsWS.ManageUserForwards.SetExchangeCredentials(String userName,String PwString)中的c:\ Users \ rtanner.CATNET \ Documents \ Visual Studio 2013 \ Projects \ ManageUserForwardsWS \ ManageUserForwardsWS \ ManageUserForwards.asmx.cs:第122行
我也可以使用此代码生成相同的错误:
Pipeline pipeline = runspace.CreatePipeline();
PowerShell powershell = PowerShell.Create();
powershell.Runspace = pipeline.Runspace;
powershell.Runspace.InitialSessionState.ImportPSModule(new[] { "ActiveDirectory" });
这是StackTrace:
无法执行操作,因为未实现操作“文件中的偏移32处的NewNotImplementedException:line:column:0:0”。 在System.Management.Automation.RemoteRunspace.get_InitialSessionState() 在ManageUserForwardsWS.ManageUserForwards.SetForward(String sAMAccountName,String fowardAddress)c:\ Users \ rtanner.CATNET \ Documents \ Visual Studio 2013 \ Projects \ ManageUserForwardsWS \ ManageUserForwardsWS \ ManageUserForwards.asmx.cs:line 151
此添加的信息有帮助吗?关于如何解决这个问题的任何想法?
答案 0 :(得分:1)
据我所知,Microsoft documention Set-AdServerSettings
不是ActiveDirectory
模块的一部分,而是Exchange CmdLet。
Using Exchange Management Shell Commands With Managed Code文章显示了您必须编写的代码,以便在C#中使用Set-AdServerSettings
CmdLet。
答案 1 :(得分:0)
远程运行空间构造函数不会初始化并使用InitialSessionState对象。 它仅适用于本地运行空间。