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
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