【问题标题】:Powershell module does not load after installing patch安装补丁后Powershell模块不加载
【发布时间】:2015-01-05 08:21:58
【问题描述】:

我遇到了一个与安装补丁后自动加载模块相关的问题。顺序如下:

  • 我有一个运行在版本 1.0.8802 中的 .NET 服务
  • 从 Powershell (V 4.0) 我看到模块 MyAgent 已加载并且它的命令行开关可以访问
  • 即使在我重新启动计算机后,当我打开 Powershell 时也会加载 MyAgent(无需显式执行任何加载/获取模块命令)
  • 现在我使用 WUA(Windows 更新代理)为我的 .NET 服务安装补丁。补丁安装成功并自动重启电脑
  • 现在我打开 PowerShell,MyAgent 未加载。它出现在Get-Module -ListAvailable。一旦我运行Import-Module MyAgent,一切都会像以前一样开始工作。

注意事项:

  • MyAgent 模块在这两种情况下都存在于c:\windows\system32\Windowspowershell\v1.0\modules
  • 在这两种情况下,$PSModuleAutoloadingPreference 都为空
  • 我的$env:PSModulePath 指向c:\windows\system32\Windowspowershell\v1.0\modules\ 也是正确的

我感到困惑的原因是,为什么在补丁安装后模块没有自动加载(尽管模块存在于正确的模块文件夹中)?当我在C:\Users\<<user>>\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 中创建内容为Import-Module MyAgent 的配置文件时,此问题得到解决。具有讽刺意味的是,如果我将配置文件保存在C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1 中,补丁安装本身就会失败,没有任何明显的错误。我在这里错过了什么?

请帮忙!

【问题讨论】:

  • 未加载是什么意思?模块在您使用后会自动导入。前任。在我运行 Get-CimInstance 或模块中的另一个 cmdlet 之前,未加载“CimCmdlets”模块。您是说 MyAgent 中的 cmdlet 的 tabcompletion 在您手动导入之前不起作用?
  • Frode,我的意思是制表符完成不起作用,而且,如果我尝试使用该模块中定义的任何命令行开关,它会显示“不被识别为命令行开关”错误消息。如果我明确运行“Import-Module”,那么它工作正常。

标签: powershell autoload powershell-4.0 import-module powershell-module


【解决方案1】:

有一个类似的问题,模块没有为特定用户自动加载。对于其他人来说这很好......

我所有的模块都位于C:\Program Files\WindowsPowerShell\Modules,但使用智能感知自动完成或在需要时自动加载它们不再起作用。

一些事实:

$PSModuleAutoLoadingPreference 
# empty
$env:PSModulePath 
C:\Program Files\WindowsPowerShell\Modules # and others
Get-Module -ListAvailable
# Shows my custom made modules

解决方案:

已删除服务器上相关用户的个人资料,并让系统创建一个新个人资料。

【讨论】:

    【解决方案2】:

    看起来这已经开放了几个星期...如果您还没有解决问题,您应该尝试将您的模块放入c:\Program Files\WindowsPowershell\Modules

    我没有遇到将模块放入 c:\windows\system32\Windowspowershell\v1.0\modules 的问题,但据我了解,可能存在与更新相关的问题。从 PS3 开始(我相信)自定义模块应该加载到 c:\program files\WindowsPowershell\Modules

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-29
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 2017-01-06
      相关资源
      最近更新 更多