Functions/Update-InstalledModule.ps1
function Update-InstalledModule { [CmdletBinding(SupportsShouldProcess)] param ( [Parameter()] [string] $ModuleName ) $excludeList = "Az.|Microsoft.Graph.Beta.|Microsoft.Entra." $result = @() if ($ModuleName) { $installedModules = Get-InstalledModule -Name $ModuleName } else { $installedModules = Get-InstalledModule } $installedModules | Where-Object Name -NotMatch $excludeList | ForEach-Object { Write-Verbose $_.Name $foundModule = Find-Module -Name $_.Name $obj = [PSCustomObject]@{ Name = $_.Name OldVersion = $_.Version NewVersion = $foundModule.Version Compare = (Compare-Object $_.Version $foundModule.Version).SideIndicator | Out-String } $result += $obj if ($WhatIfPreference ) { } else { Update-Module $_.Name -AcceptLicense -Scope AllUsers -Force } } return $result } |