# Go through all Az.* versions
# Use -ListAvailable to show all versions
Get-Module -Name Az.* -ListAvailable | ForEach-Object {
$moduleName = $_.Name
$currentVersion = [Version]$_.Version
Write-Host "Current version $moduleName [$currentVersion]"
# Get latest version from gallery
$latestVersion = [Version](Find-Module -Name $moduleName).Version
# Only proceed if latest version in gallery is greater than your current version
if ($latestVersion -gt $currentVersion) {
Write-Host "Found latest version $modulename [$latestVersion] from $($latestVersionModule.Repository)"
# Check if latest version is already installed before updating
$latestVersionModule = Get-InstalledModule -Name $moduleName -RequiredVersion $latestVersion -ErrorAction SilentlyContinue
if ($null -eq $latestVersionModule) {
Write-Host "Updating $moduleName Module from [$currentVersion] to [$latestVersion]"
Update-Module -Name $moduleName -RequiredVersion $latestVersion -Force
}
else {
Write-Host "No update needed, $modulename [$latestVersion] already exists"
}
# Uninstall outdated version
Write-Host "Uninstalling $moduleName [$currentVersion]"
Uninstall-Module -Name $moduleName -RequiredVersion $currentVersion -Force
}
# Otherwise we already have most up to date version
else {
Write-Host "$moduleName already up to date"
}
}
Az PowerShell模块的更新有正式的文档记录,请参阅此处。虽然现有的答案是准确和有用的,但有一些细微差别可能会有所帮助。 要更新任何PowerShell模块,应使用与安装模块相同的方法。例如,如果最初使用的是Install-Module,则应使用Update-Module获取最新版本。如果最初使用的是MSI程序包,则应下载并安装新的MSI程序包。 PowerShellGet cmdlet无法更新从MSI程序包安装的模块。MSI程序包不更新使用PowerShellGet安装的模块。如果使用PowerShellGet进行更新时遇到任何问题,则应重新安装而不是更新。重新安装的方法与安装相同。请确保在重新安装时对Install-Module使用Force参数。
5条答案
按热度按时间5hcedyr01#
试试这个
您可以在
Update-Module
之后添加-Force
,这样就不会在每个模块上都提示诸如不受信任的存储库之类的内容。zsbz8rwp2#
所有单独的模块都是Az模块的依赖项,所以这应该可以解决问题。
如果要跟踪进度,请添加-Verbose。
acruukt93#
你可以试试这个脚本,它是我不久前写的,它遍历每个
Az.*
模块并更新到最新版本,包括删除仍然安装的以前的版本。y4ekin9u4#
本文提供了有关Azure Az PowerShell模块的完整详细信息和步骤:https://learn.microsoft.com/en-us/powershell/azure/new-azureps-module-az?view=azps-5.7.0如果要查找特定的服务模块,请查看参考部分
jucafojl5#
Az PowerShell模块的更新有正式的文档记录,请参阅此处。虽然现有的答案是准确和有用的,但有一些细微差别可能会有所帮助。
要更新任何PowerShell模块,应使用与安装模块相同的方法。例如,如果最初使用的是Install-Module,则应使用Update-Module获取最新版本。如果最初使用的是MSI程序包,则应下载并安装新的MSI程序包。
PowerShellGet cmdlet无法更新从MSI程序包安装的模块。MSI程序包不更新使用PowerShellGet安装的模块。如果使用PowerShellGet进行更新时遇到任何问题,则应重新安装而不是更新。重新安装的方法与安装相同。请确保在重新安装时对Install-Module使用Force参数。