【问题标题】:PowerShell on SCOM fails to import moduleSCOM 上的 PowerShell 无法导入模块
【发布时间】:2011-05-20 12:41:20
【问题描述】:

我有一个没有帮助就无法解决的问题) 我在第一台电脑上有 SCOM,在第二台电脑上有 SCOM 代理。当我的班级在代理 PC 中发现时,它必须运行 PowerShell 脚本。此脚本包含命令:

导入模块故障转移集群

但此命令失败并出现异常:

加载扩展类型数据文件时出现以下错误: Microsoft.PowerShell, C:\Windows\system32\WindowsPowerShell\v1.0\Modules\FailoverClusters\FailoverClusters.Types.ps1xml :文件已被跳过,因为它已经来自“Microsoft.PowerShell”。

我不知道该怎么办。

【问题讨论】:

    标签: powershell module


    【解决方案1】:

    正如this blog post 指出的那样,您可以在加载模块时忽略扩展类型数据错误。它告诉您该类型已加载,无法再次加载。

    【讨论】:

    • 当我在 try-catch 块中时如何忽略它? 也许我可以用 Get-Modules 或其他东西围绕它进行编码,但是 -Force 已经防止了这种错误?
    • 你试过了吗:“-ErrorAction:SilentlyContinue”?
    【解决方案2】:

    解决方法:

    我发现使用 SCOM 2007 R2(尚未在 SCOM 2012 上测试过),powershell 无法导入 FailoverClusters 模块。我尝试了跳过错误的建议。跳过在代理第一次执行脚本时起作用。之后,脚本的后续执行无法使 Get-Cluster cmdlet 可用。每当您重新启动代理时,它都会跳过错误并且 cmdlet 可用,但后续执行再次无法加载 cmdlet。 提升的权限和不受限制的脚本执行对问题没有帮助。

    定期重启代理就是这么一把大锤。我没有取悦它。

    但是我确实发现,如果我使用轻量级脚本生成一个新的 powershell 实例并执行我的主要代码(文件保存在磁盘上或在磁盘上动态生成脚本),新的 powershell 实例会加载模块每次都成功,并且 cmdlet 始终可用。

    我知道有人担心从另一个实例生成一个实例(如 vbscript 生成 powershell)存在性能问题。但在我的情况下,我能够让代理调用我的 powershell 包装器,即时生成 500 行脚本(使用 streamwriter 进行性能),然后在包装器的新 powershell 中生成它。这一切都在大约 6 秒内执行,其中包括查询 Get-ClusterResources。

    我猜这是 SCOM 代理中的错误...

    【讨论】:

      【解决方案3】:

      Powershell Script (GPO_Discovery.ps1) 调用 WriteErrorLine 方法输出以下数据:

       Import-Module : The following error occurred while loading the extended type data file: 
      

      Microsoft.PowerShell, C:\Windows\system32\WindowsPowerShell\v1.0\Modules\ActiveDirectory\ActiveDirectory.Types.ps1xml :文件已被跳过,因为它已经来自“Microsoft.PowerShell”。

      可以看出,我在尝试运行时遇到了同样的问题:

      Import-Module ActiveDirectory
      Import-Module GroupPolicy
      

      所以我尝试了:

      Import-Module -Name ActiveDirectory -OutVariable $outAD -ErrorAction SilentlyContinue
      Import-Module -Name GroupPolicy -OutVariable $outGP -ErrorAction SilentlyContinue
      

      这些都没有帮助。我即将尝试完全删除 Import CMD-Let 并重试。如果这对我有用,我会发布。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-21
        • 2020-12-26
        • 1970-01-01
        • 1970-01-01
        • 2011-08-03
        • 1970-01-01
        相关资源
        最近更新 更多