Get-InstalledModule远程执行失败问题求助
解决PowerShell远程会话执行
Get-InstalledModule -Name Az的DateTime转换错误 这个问题在社区里有不少用户遇到过,根源是PowerShell 5.1的远程会话环境中,psmodule.psm1(属于PowerShellGet模块)里的代码在读取模块安装时间时返回了null,直接强制转换为System.DateTime就触发了错误。
临时修复步骤
- 远程连接目标服务器后,定位PowerShellGet模块的
psmodule.psm1文件,默认路径为:$PSHome\Modules\PowerShellGet\psmodule.psm1 - 找到包含
[DateTime]$module.InstallDate的代码段,修改为带null判断的逻辑:
(也可以用$installDate = if ($null -ne $module.InstallDate) { [DateTime]$module.InstallDate } else { [DateTime]::UtcNow }[DateTime]::MinValue替代当前时间,根据需求选择) - 保存文件后,退出并重新建立远程会话,再执行
Get-InstalledModule -Name Az即可正常运行。
长期解决方案
- 更新PowerShellGet模块到最新版本,在远程会话中执行:
新版本已经修复了远程会话下的这个兼容性问题。Update-Module -Name PowerShellGet -Force - 同时更新Az模块到最新版,避免其他潜在兼容性问题:
Update-Module -Name Az -Force
内容的提问来源于stack exchange,提问作者Ajay Pawar
相关产品推荐
相关产品推荐

