Files
Backup/_NDGOV_WindowsTeam/ITD.Infra-Servers-PowerShellUniversal.Test/Infra-Servers-PowerShellUniversal/Update-ITDModule.ps1
T
Zack Meier 1d304511b8 update
2026-04-15 15:45:50 -05:00

42 lines
1.9 KiB
PowerShell

#######
Write-Verbose -Message "Determine if ITD_PwshGallery is registered" -Verbose
If(Get-PSRepository -Name ITD_PwshGallery -ErrorAction SilentlyContinue){
Write-Verbose -Message "ITD_PwshGallery found." -Verbose
} Else {
$RegisterPSRepositoryParams = @{
Name = 'ITD_PwshGallery';
InstallationPolicy = 'Trusted';
SourceLocation = 'https://powershell.nd.gov/ITD_PwshGallery/nuget/';
PublishLocation = 'https://powershell.nd.gov/ITD_PwshGallery/nuget/';
ScriptSourceLocation = 'https://powershell.nd.gov/ITD_PwshGallery/nuget/';
ScriptPublishLocation = 'https://powershell.nd.gov/ITD_PwshGallery/nuget/';
}
Register-PSRepository @RegisterPSRepositoryParams
}
Write-Verbose -Message "Retrieve list of all available modules and versions"
$ITDModules = Find-Module -Name "ITD.*" -Repository ITD_PwshGallery
Write-Verbose -Message "Compare local module versions to repository versions, and update if needed"
ForEach($ITDModule in $ITDModules){
$VersionsAvailable = $null
$MostRecentVersion = $null
$RepoVersion = $null
$VersionsAvailable = Get-Module -Name $ITDModule.name -ListAvailable
$MostRecentVersion = $VersionsAvailable | Sort-Object Version -Descending | Select -First 1
$RepoVersion = $ITDModule.Version
If($null -eq $MostRecentVersion) {
Write-Verbose -Message ($ITDModule.Name + " was not found locally, installing module now.") -Verbose
Install-Module -Name $ITDModule.Name -Scope AllUsers -Repository ITD_PwshGallery
} Else {
Write-Verbose -Message ($ITDModule.Name + " was found locally, comparing versions and updating if needed..") -Verbose
Write-Host -Message ($ITDModule.Name)
Write-Host -Message ("Local version is " + $MostRecentVersion.Version)
Write-Host -Message ("The Repo version is " + $RepoVersion)
Write-Host -Message ("")
Update-Module -Name $ITDModule.Name -Scope AllUsers -Verbose
}
}