1

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

  • 我在版本上运行的.NET服务说1.0.8802
  • 从Powershell的(V 4.0),我看到模块MyAgent被加载,它的命令行开关都可以访问
  • 即使在我重新启动计算机后,当我打开Powershell时(无需明确执行任何加载/获取模块命令),加载MyAgent
  • 现在我使用WUA(Windows Update Agent)为我的.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\

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

请帮忙!

+0

你是什么意思未加载?模块在使用后会自动导入。防爆。在模块中运行“Get-CimInstance”或其他cmdlet之前,“CimCmdlets”模块未加载。您是否说过,在手动导入它之前,'MyAgent'中的cmdlet的tabcompletion不起作用? –

+0

Frode,我的意思是tab完成不起作用,而且,如果我尝试使用在该模块中定义的任何commandlet,它会说“不会识别为commandlet”错误消息。如果我明确运行“导入模块”,那么它工作正常。 – Ramya

回答

0

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

我还没有遇到过将模块放入c:\windows\system32\Windowspowershell\v1.0\modules的问题,但是据我所知,可能存在与更新相关的问题。截至PS3(我相信)自定义模块应在c:\program files\WindowsPowershell\Modules加载。

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 

解决方案:

删除了服务器上的问题的用户的个人资料以及系统中创建一个新的。