Fix Install-Module : A Parameter Cannot be Found that Matches Parameter Name AllowPrerelease

Table of Contents

Windows PowerShell 5.1

When you try to install prerelease of PowerShell modules, you need to specify the AllowPrerelease parameter. This helps PowerShell make sure that you’re genuinely interested in a prerelease and that you understand the risk.

But, in some cases, the -AllowPrerelease will render the following error message:

PS C:> Install-Module -Name ExchangeOnlineManagement -AllowPrerelease
Install-Module : A parameter cannot be found that matches parameter name ‘AllowPrerelease’.
At line:1 char:47
+ Install-Module -Name ExchangeOnlineManagement -AllowPrerelease
+ ~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Install-Module], ParameterBindingException
+ FullyQualifiedErrorId : NamedParameterNotFound,Install-Module

The root of the problem is Windows PowerShell 5.1 comes with PowerShellGet version 1.0.0.1, which doesn’t include the NuGet provider. The provider is required by PowerShellGet when working with the PowerShell Gallery.

PS C:\> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      5.1.19041.1682
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.19041.1682
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1

How to Solve PowerShell Parameter Issue

You can easily find out what module your PowerShell command comes from. In this case, the Install-Module command was causing the problem, so I ran the following:

PS C:\> Get-Command Install-Module

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Function        Install-Module                                     1.0.0.1    PowerShellGet

As you see, the source of the Install-Module command is an ancient version of the PowerShellGet module. You need update the module to the latest version. I will update to the latest version using the following command:

Install-Module PowerShellGet -Force

Note

You must close then reopen the PowerShell window to take the changes go into effect.

Verify the module has been updated to the newest version.

PS C:\> Get-Command Install-Module

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Function        Install-Module                                     2.2.5      PowerShellGet

Now, i’m finally able to update my ExchangeOnlineManagement (or whatever) modules to the latest prerelease.

PS C:\> Install-Module -Name ExchangeOnlineManagement -AllowPrerelease

PS C:\> Get-InstalledModule -Name ExchangeOnlineManagement

Version              Name                                Repository           
-------              ----                                ----------           
2.0.6-Preview6       ExchangeOnlineManagement            PSGallery 

Leave a Comment

Required fields are marked *