Update-InstalledModules.ps1
<#PSScriptInfo .VERSION 1.0.0 .GUID d3e21a39-3bef-406e-8ebe-512a3a69c145 .AUTHOR arnab-roy-chowdhury .COMPANYNAME .COPYRIGHT .TAGS modules, utility .LICENSEURI https://github.com/Arnab-Developer/UpdateInstalledModules/blob/main/LICENSE.txt .PROJECTURI https://github.com/Arnab-Developer/UpdateInstalledModules .ICONURI .EXTERNALMODULEDEPENDENCIES .REQUIREDSCRIPTS .EXTERNALSCRIPTDEPENDENCIES .RELEASENOTES .PRIVATEDATA #> <# .DESCRIPTION Update installed modules #> Param() class PowerShellModuleUtility { hidden [string] $ModuleName PowerShellModuleUtility([string] $ModuleName) { $this.ModuleName = $ModuleName } [bool] IsModuleUpdated() { $repositoryModule = Find-Module -Name $this.ModuleName $installedModule = Get-InstalledModule -Name $this.ModuleName return $installedModule.Version -eq $repositoryModule.Version } [void] UpdateModule() { Update-Module -Name $this.ModuleName } } $installedModules = Get-InstalledModule foreach($installedModule in $installedModules) { $utility = [PowerShellModuleUtility]::new($installedModule.Name) if($utility.IsModuleUpdated() -eq $true) { Write-Host "Already updated:" $installedModule.Name } else { $utility.UpdateModule() Write-Host "Updated:" $installedModule.Name } } |