1

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

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

注意事项:

  • MyAgent 模块c:\windows\system32\Windowspowershell\v1.0\modules在这两种情况下都存在
  • 在这两种情况下$PSModuleAutoloadingPreference都是 null
  • $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补丁安装本身会失败而没有任何明显的错误。我在这里想念什么?

请帮忙!

4

2 回答 2

0

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

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

于 2015-01-28T18:34:43.207 回答
0

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

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

一些事实:

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

解决方案:

在服务器上删除了相关用户的配置文件,并让系统创建一个新的。

于 2015-03-03T09:18:46.453 回答