C# ImportPSModule故障检测
我正在尝试使用C# ImportPSModule故障检测,c#,.net,powershell,pssnapin,runspace,C#,.net,Powershell,Pssnapin,Runspace,我正在尝试使用InitialSessionState.ImportPSModule导入Powershell模块 我很想知道模块导入是否由于任何原因(如未找到文件等)而失败。如果出现故障,将此类代码放入try块不会引发异常,并且函数似乎会无声地失败,如果无法导入模块,则会继续 如果导入失败,是否有方法在代码中发出警报 我正在尝试做如下的事情。在下面的代码中,模块“TestModule1234”不存在。catch块不捕获异常 注意:这只是原型测试代码,所以请忽略任何与生产代码相关的异常情况 try
InitialSessionState.ImportPSModule
导入Powershell模块
我很想知道模块导入是否由于任何原因(如未找到文件等)而失败。如果出现故障,将此类代码放入try块不会引发异常,并且函数似乎会无声地失败,如果无法导入模块,则会继续
如果导入失败,是否有方法在代码中发出警报
我正在尝试做如下的事情。在下面的代码中,模块“TestModule1234”不存在。catch块不捕获异常
注意:这只是原型测试代码,所以请忽略任何与生产代码相关的异常情况
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;
}
由于某些原因,丢失的模块不会被视为致命错误。但是他们是 仍然记录错误。要解决此问题,请执行以下操作:
Open()
打开运行空间。这样做仍然在try块中,以便捕获其他异常,它们是可能的,我在实践中遇到过这样的情况$error
),并在打开后分析其是否存在特定的“缺失模块”错误或其他错误错误
:
$psSessionInitialState = [System.Management.Automation.Runspaces.InitialSessionState]::CreateDefault();
"Importing Module TestModule1234"
$psSessionInitialState.ImportPSModule(@("TestModule1234"))
"Creating PowerShell Runspace"
$PoshRunspace = [System.Management.Automation.Runspaces.RunspaceFactory]::CreateRunspace($psSessionInitialState)
"Opening PowerShell Runspace"
$PoshRunspace.Open()
"Getting Runspace Error"
$PoshRunspace.SessionStateProxy.PSVariable.GetValue('Error')
输出
导入模块TestModule1234创建Powershell运行空间打开
Powershell运行空间获取运行空间错误导入模块:
指定的模块“TestModule1234”未加载,因为没有有效的
在任何模块目录中都找到了模块文件。
+CategoryInfo:ResourceUnavailable:(TestModule1234:String)[导入模块],FileNotFoundException
+FullyQualifiedErrorId:Modules\u ModuleNotFound,Microsoft.PowerShell.Commands.ImportModuleCommand
如果我运行
import module xyz
I获取import module:指定的模块“xyz”未加载,因为在任何模块目录中都找不到有效的模块文件。
。你能告诉我们你是如何尝试导入模块的吗?编辑原始问题来展示我正在尝试做的一个例子。