blog.icewolf.ch

Let's talk about IT!
posts - 2198, comments - 295, trackbacks - 0

My Links

Archives

Post Categories

icewolf

Azure Automation: PSGallery Version Check

Hi All,

I don't check daily if there are any new PowerShell modules in PSGallery.
So i wrote me a Script of my most used Modules to Inform me if there are any new Modules available.

With the following Code i check for the current Version of the Modules and put them into a PSCustomObject with the Attributes Release, Module, Version (for GA and Prerelease Versions).

###############################################################################
# Check PSGallery Modules
###############################################################################
#Create Empty Array
$MyArray = @()

$Modules = @("AZ","MSOnline", "AzureADPreview", "ExchangeOnlineManagement", "Icewolf.EXO.SpamAnalyze", "MicrosoftTeams", "Microsoft.Online.SharePoint.PowerShell","PnP.PowerShell" , "ORCA", "O365CentralizedAddInDeployment", "MSCommerce", "WhiteboardAdmin", "Microsoft.Graph", "MSAL.PS", "MSIdentityTools" )
foreach ($Module in $Modules)
{
    #Check GA Version
    $Result = Find-Module -Name $Module
    $Version = $Result.Version
    Write-Output "GA: $Module $Version"

    #Create Custom Object to Store Information
    $myObject = [PSCustomObject]@{
        Release     = 'GA'
        Module = $Module
        Version    = $Version
    }
    #Add to Array
    $MyArray += $myObject

    #Check PreRelease Version
    $Result = Find-Module -Name $Module -AllowPrerelease
    $Version = $Result.Version
    Write-Output "PreRelease: $Module $Version"

    #Create Custom Object to Store Information
    $myObject = [PSCustomObject]@{
        Release     = 'PreRelease'
        Module = $Module
        Version    = $Version
    }
    #Add to Array
    $MyArray += $myObject
}



I have saved this PSCustomObject into a CSV

$MyArray | Export-CSV -Path $DestinationFile -encoding UTF8 -NoTypeInformation


If i import the CSV i can compare the two Versions

$CSV = Import-CSV -Path $PathToCSV
$Compare = Compare-Object -ReferenceObject $MyArray -DifferenceObject $CSV -Property Release,Module,Version
$Compare



I did write me a Azure Automate PowerShell 7 Script to run daily and send me a Mail

And these are the Mails i receive



Regards
Andres Bohren


Print | posted on Monday, March 14, 2022 11:42 PM | Filed Under [ PowerShell Azure ]

Powered by:
Powered By Subtext Powered By ASP.NET