Table of Contents
Problem
You trying to install a PowerShell module with Install-Module command and got this error message:
Install-Module : The term ‘Install-Module’ is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
PS C:\> Install-Module MSOnline
Install-Module : The term 'Install-Module' is not recognized as the name of a cmdlet, function, script file, or
operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try
again.
At line:1 char:1
+ Install-Module MSOnline
+ ~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Install-Module:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Root cause:
The Install-Module cmdlet is used to get and install the new module from PowerShell Gallery. And this cmdlet is part of PowerShell 5 or later. You can check the installed version of the PowerShell with: $PSVersionTable.
PS C:\> $PSVersionTable
Name Value
---- -----
PSVersion 4.0
WSManStackVersion 3.0
SerializationVersion 1.1.0.1
CLRVersion 4.0.30319.34014
BuildVersion 6.3.9600.17400
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0}
PSRemotingProtocolVersion 2.2
The PSVersion value in the output denotes the current PowerShell version. In earlier operating systems like Windows 7, Windows 8, Windows Server 2008, Windows 2012, etc., we’ve PowerShell 4 installed by default unless it’s updated.
Solution for install-module is not recognized Error:
It turns out I was running in Windows Server 2012 with PowerShell version 4.0, which doesn’t support the “Install-Module” cmdlet. So, to resolve this error, we have to update the PowerShell through Windows Management Framework 5.1.
Windows Management Framework 5.1: https://www.microsoft.com/en-us/download/details.aspx?id=54616
Select the relevant package for your operating system, download, and install. The installation prompted me to reboot. After the restart, it worked and the error “Install-Module: The term ‘Install-Module’ is not recognized as the name of a cmdlet” is no more.
And the Windows PowerShell version is upgraded to PowerShell 5.
PS C:\Users\Administrator> $PSVersionTable
Name Value
---- -----
PSVersion 5.1.14409.1005
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.14409.1005
CLRVersion 4.0.30319.34014
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
PS C:\Users\Administrator> Get-Command install-module
CommandType Name Version Source
----------- ---- ------- ------
Function Install-Module 1.0.0.1 PowerShellGet