安装AzSDK时遇转换错误:无法将System.Object[]转为PSModuleInfo
解决AzSDK安装时的
InstalledModuleInfo参数转换错误 这个参数转换错误在PowerShell 5.1环境里挺常见的,大概率是你的PowerShellGet或PackageManagement模块版本过旧导致的——毕竟PS5.1自带的这类工具版本往往跟不上PSGallery的新模块要求。试试下面这些分步解决方案:
第一步:更新PowerShellGet和PackageManagement核心组件
PS5.1默认的PowerShellGet是1.x版本,对新模块的兼容性很差。先执行以下命令更新:# 先卸载旧版本(忽略卸载失败的情况) Uninstall-Module -Name PowerShellGet -Force -ErrorAction SilentlyContinue Uninstall-Module -Name PackageManagement -Force -ErrorAction SilentlyContinue # 安装NuGet提供器和最新版PowerShellGet Install-PackageProvider -Name NuGet -Force -Scope CurrentUser Install-Module -Name PowerShellGet -Force -Scope CurrentUser -AllowClobber执行完成后必须关闭当前PowerShell窗口,重新打开新会话,再尝试安装AzSDK。
第二步:清理模块缓存
缓存的旧模块元数据也可能引发这类转换错误,清理一下:# 删除PowerShellGet的模块缓存文件 Remove-Item "$env:LOCALAPPDATA\Microsoft\Windows\PowerShell\PowerShellGet\PSModuleCache.xml" -Force -ErrorAction SilentlyContinue # 清空NuGet本地缓存 nuget locals all -clear第三步:手动下载安装AzSDK
如果前面的方法都无效,试试绕过PowerShellGet直接安装:- 找到PSGallery上的AzSDK模块页面,下载模块的ZIP压缩包
- 解压ZIP包到当前用户的模块目录:
$env:USERPROFILE\Documents\WindowsPowerShell\Modules - 确保解压后的文件夹名称严格为
AzSDK(和模块名一致) - 打开PowerShell执行
Import-Module AzSDK验证是否能正常加载
第四步:检查冲突模块
系统中已安装的其他模块可能和AzSDK的依赖组件冲突,执行以下命令查看相关模块版本:Get-Module -ListAvailable PowerShellGet, PackageManagement如果存在多个版本,优先保留最新版本,卸载旧版本避免冲突。
内容的提问来源于stack exchange,提问作者Lech Migdal
相关产品推荐
相关产品推荐

