Inappropriate references to ushort type in New-DkimSigningConfig and Rotate-DkimSigningConfig.
Prerequisites
- [X] Write a descriptive title.
- [X] Make sure you are able to repro it on the latest version
- [X] Search the existing issues.
Steps to reproduce
According to the documentation, for the ExchangeOnlineManagement module:
"All versions of the module are supported in Windows PowerShell 5.1."
Yet, since 3.5.0, two functions have declared parameters using the [ushort] type, which does not exist in the .NET Framework, causing both functions to fail under Windows PowerShell with the "unable to find type [ushort]" error. The issue still exists in 3.6.0.
This is not an issue under PowerShell (as distinct from Windows PowerShell) where an additional library declares the ushort type (system.private.corelib).
Example from New-DkimSigningConfig showing inappropriate ushort declaration for KeySize parameter:
`function script:New-DkimSigningConfig { [CmdletBinding(SupportsShouldProcess=$true, ConfirmImpact='Medium')] param(
[string]
${AdminDisplayName},
${BodyCanonicalization},
[Parameter(Mandatory=$true, Position=0)]
${DomainName},
[Parameter(Mandatory=$true, Position=1)]
[bool]
${Enabled},
${HeaderCanonicalization},
[ValidateSet('1024','2048')]
[ushort]
${KeySize}
)
`
Expected behavior
That the commands declare the "KeySize" parameter using either [uint16] (if for some reason it must be a 16-bit value) or - in line with the rest of the module's functions - [uint32] (which to my mind would be more consistent).
This would resolve the type exception while maintaining compatibility on Windows PowerShell.
Actual behavior
Under Windows PowerShell, calls to both New-DkimSigningConfig and Rotate-DkimSigningConfig fail immediately (before function entry) on account of the ushort type not existing, as shown in the screenshot.
Error details
Unable to find type [ushort].
At C:\Users\lain.robertson\AppData\Local\Temp\tmpEXO_faj3kift.kut\tmpEXO_faj3kift.kut.psm1:25026 char:5
+ [ushort]
+ ~~~~~~~~
+ CategoryInfo : InvalidOperation: (ushort:TypeName) [], RuntimeException
+ FullyQualifiedErrorId : TypeNotFound
Environment data
PS D:\Data> $PSVersionTable
Name Value
---- -----
PSVersion 5.1.19041.4894
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.19041.4894
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
Version
3.6.0
Visuals
Hi, I'm equally affected, and confirm that it doesn't seem to be only 3.6.0 but also 3.5.1, however it the could be that the command is remotely loaded from ExO backend servers so the version of the installed module might not even matter:
> $PSVersionTable
Name Value
---- -----
PSVersion 5.1.22621.3958
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.22621.3958
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
> Get-Command Rotate-DkimSigningConfig
CommandType Name Version Source
----------- ---- ------- ------
Function Rotate-DkimSigningConfig 1.0 tmpEXO_bwryafqj.uzx
However I don't think this bug report will get noticed, since Microsoft requires to report issues to release versions via support tickets as documented here.
I am also affected. Can't find a workaround either. Powershell 7 installed.
please reach out to the owners of the module via the contact owners https://www.powershellgallery.com/packages/exchangeonlinemanagement/3.6.0 , this repository is for the PowerShell Gallery itself -- we do not own the contents