Check for Module Updates

It seems to me that the topic of finding or detecting module updates on the PowerShell Gallery has gotten a lot of interest over the last few days. So I thought I’d contribute my bit of code to check currently installed modules against their online versions in the PowerShell Gallery.

I have a PowerShell script I called Check-ModuleUpdate, which you can find as a gist on Github.

The script gets all currently installed scripts and filters out those that do not have a value for the RepositorySourceLocation.  On my computer I’ve only installed from the PSGallery so the links are all the same. If you will have multiple locations you’ll need to modify the code, especially with Find-Module to accommodate the differences.

The script then uses a ForEach loop to get the online version so that it can compare it with the installed version. The script writes a custom object to the pipeline. I’ve also included code to indicate if you have multiple versions of a module installed.

image

Another use is to pipe to Out-Gridview and use that as an object picker to update selected modules.

I’ll admit this isn’t a perfect script. You might even prefer to have it as a function. So I’ll leave enhancements and updates to you.

6 Replies to “Check for Module Updates”

  1. hello, really nice ! i added this :
    Path = $module.ModuleBase
    At end of the pscustomobject.
    Like this if i have more than one version of a module, i can see where they are ..

  2. I’m already using your function compare-module which is great.
    Doesn’t this have the same functionality as Check-ModuleUpdate or am I missing something..?

  3. That is indeed helpful. Not sure why I missed that command. Unless it is something the product team slipped into 5.1 release. I don’t recall it in v5.

Leave a Reply

Your email address will not be published. Required fields are marked *