Tag: pssnapin

从PowerShell管理单元引用外部程序集

我正在开发一个自定义PowerShell管理单元,它引用了解决方案中的另一个项目。 当我尝试调试管理单元时(遵循[这些说明] [1]),程序集无法加载,我的cmdlet失败并显示消息“无法加载文件或程序集……” 如何指示PowerShell如何定位程序集,或者如何指定管理单元所需的程序集位置? 我宁愿避免在GAC中注册程序集,至少在开发期间是这样。

ImportPSModule故障检测

我试图使用InitialSessionState.ImportPSModule来导入Powershell模块。 我有兴趣知道模块的导入是否由于任何原因(例如找不到文件等)而失败。 将这些代码放在try块中不会在出现故障时引发exception,并且该函数似乎无声地失败并且如果无法导入模块则继续。 如果导入失败,有没有办法在代码中发出警报? 我正在尝试做类似以下的事情。 在下面的代码中,模块“TestModule1234”不存在。 catch块没有捕获exception。 注意:这只是原型测试代码,因此请忽略任何与生产代码相关的违规行为。 try { //Initializing the PowerShell runspace InitialSessionState psSessionInitialState = InitialSessionState.CreateDefault(); LogFile.Log(“Importing Module TestModule1234”); psSessionInitialState.ImportPSModule(new[] { “TestModule1234” }); LogFile.Log(“Creating Powershell Runspace”); m_PoshRunspace = RunspaceFactory.CreateRunspace(psSessionInitialState); } catch (System.Exception ex) { LogFile.Log(“Failed to create a Powershell Runspace”); LogFile.Log(ex.ToString()); throw; }