我正面临与补丁安装后自动加载模块相关的问题。顺序如下:安装补丁后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 MyAgent
的C:\Users\<<user>>\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
中创建配置文件时,此问题将得到解决。具有讽刺意味的是,如果我将配置文件保存在C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1
中,则修补程序安装本身会失败,并且没有任何明显错误。我在这里错过了什么?
请帮忙!
你是什么意思未加载?模块在使用后会自动导入。防爆。在模块中运行“Get-CimInstance”或其他cmdlet之前,“CimCmdlets”模块未加载。您是否说过,在手动导入它之前,'MyAgent'中的cmdlet的tabcompletion不起作用? –
Frode,我的意思是tab完成不起作用,而且,如果我尝试使用在该模块中定义的任何commandlet,它会说“不会识别为commandlet”错误消息。如果我明确运行“导入模块”,那么它工作正常。 – Ramya