Tuesday 26 November 2019

Powershell Cmdlet from which module?

Powershell is pretty much the scripting language that is in every system administrators bag. One of the problems that I have is that I have installed lots of different Powershell modules on my servers, workstations, VM you name it. Over time you kinda of lose track and end up with differs of different versions of modules on different boxes. As the team I am working in is quite young to scripting we have not really followed a process to write within our scripts to check which version of module people should have installed before executing the script so that the cmdlet will run.

In the meantime you can run this handy command to quickly check what module and the version of  module you need to be able to use that particular cmdlet. Remember the same cmdlet may of been updated in a newer version too to have more features.

So on the machine where your script/cmdlet has run successfully run the following command in Powershell;

Get-Command -type cmdlet get-vm | select ModuleName, version


As you can see from the results you can see that the "get-vm" cmdlet on my machine is from the module "VMware.VimAutomation.Core" and is version "11.0.0.10336080".

On this second example;

Get-Command -type cmdlet start-sleep | select ModuleName, version


The result for cmdlet "start-sleep" is from the module "Microsoft.PowerShell.Utility" and version "3.1.0.0".

As you can see from the examples you will be able to identify if you have the correct module and version installed on your machine to run a particular cmdlet.  

1 comment:

  1. Really helpful,
    Something i've used in the past is :

    if (Get-Module -ListAvailable -Name ActiveDirectory) {
    Write-Host "Have required Modules" -ForegroundColor Green
    }
    else {
    Write-Host "Modules does not exist, Proceeding to install..." -ForegroundColor Yellow
    Import-Module -Name "$servername\ScriptRepo\Modules\ActiveDirectory\ActiveDirectory.psd1" -Verbose
    }

    ReplyDelete

New Azure KMS IP and domain Addresses for activation

For Windows virtual machines deployed into Azure using marketplace images you may have created rules in your NSG or firewalls to allow the s...