我想在 PowerCLI 中将 depot 导出到 iso。添加仓库、添加包、更改接受级别、导出到离线包都已完成。但是导出到 ISO 不起作用。
我做了“export-esximageprofile -imageprofile Community -exporttoiso -filepath 'ESXi-6.5-Custom_r8168_al.iso' -nosignaturecheck -Force”。但是我收到这样的错误:
export-esximageprofile:为 VIB 检索文件时出错 'VMW_bootbank_shim-vmklinux-9-2-3-0_6.5.0-0.0.4564106': ('vib20/shim-vmklinux-9-2-3-0/VMW_bootbank_shim-vmklinux- 9-2-3-0_6.5.0-0.0.4564106.vib', "无法在流模式下打开 VIB 存档:'_SharedFile' 对象 没有属性“写作””)。 在行:1 字符:1
怎么了?我该如何解决这个问题?
根据产品互操作性矩阵 PowerCLI 与 ESXi - 互操作性结果 从 PowerCLI 版本 13.x 开始,VMware 已放弃对 ESXi/vSphere 6.5 和 6.7 的支持。 ESXi 版本 6.5 和 6.7 仅受 PowerCLI 版本 12.7 或更早版本支持。
您是否尝试过降级 ImageBuilder 和 DeployAutomation 模块? 在 VMware 论坛上,此问题被标记为已回答。 为 VIB 检索文件时出错 ...“_SharedFile”对象没有属性“写入”
建议先降级ImageBuilder模块:
Get-Module -ListAvailable VMware.ImageBuilder | Uninstall-Module -Force
Install-Module -Name VMware.ImageBuilder -RequiredVersion 7.0.3.19599828
另请注意,仅降级 VMware.ImageBuilder 模块是不够的。 有一个名为 VMware.DeployAutomation 的依赖模块。 如果您尝试在不降级所有依赖模块的情况下使用 ImageBuilder,您会收到 PowerCLI 的错误消息,通知您有关依赖项问题。
要降级所有依赖模块(从 8.x 到 7.x,使用备用编号,不要弄乱 PowerCLI 版本编号)使用以下命令:
Get-Module -ListAvailable VMware* | where { ($_.RequiredModules.Name -contains 'VMware.ImageBuilder') -and ($_.RequiredModules.Version -like '8.*') } | foreach { Uninstall-Module $_.Name -Force; Install-Module $_.Name -MaximumVersion "7.9.9" }
如果出现错误,只需降级 VMware.DeployAutomation 模块:
"VMware.DeployAutomation" | foreach { Get-Module -ListAvailable $_ | where { $_.Version -Like "8.*" } | Uninstall-Module -Force ; Install-Module $_ -MaximumVersion "7.9.9" }
降级后,请随意验证生成的模块版本(应为 7.0.3.19599828):
Get-Module -ListAvailable VMware.ImageBuilder | ft Name,Version -AutoSize
Get-Module -ListAvailable VMware.DeployAutomation | ft Name,Version -AutoSize
此外,大多数人都报告说这个“_SharedFile”错误是由 Python 相关的问题引起的。
要解决此问题,只需将 Python 从 3.7.0 升级到 3.7.9,升级 PIP 并重新安装“六个 psutil lxml pyopenssl”包。
详情请见以下链接:
注意 - 无法使用带有 PowerCLI 13.0 的 Export-EsxImageProfile 以流模式打开 VIB 存档
VMWare.Imagebuilder 在 Python 3.7 和运行 Add-EsxSoftwareDepot 时存在问题