[X] Make sure you are able to repro it on the latest version
[X] Search the existing issues.
Steps to reproduce
I have a cmdlet that is based on PowerShellStandard.Library v7.0.0-preview.1 that references System.Security.Cryptography.ProtectedData to use data protection API.
In PowerShell Core, calls to any data protection APIs work as expected, but when the cmdlet is loaded in Windows PowerShell 5.1, those calls throw a platform not supported exception.
Is my understanding of the use of this library wrong, and the scenario above is not possible?
Expected behavior
A call inside the cmdlet such as the following works on both versions.
var secret = ProtectedData.Protect(bytes, null, this.Scope);
Actual behavior
The same call in `Expected behavior` throws a `PlatformNotSupportedException` exception instead.
Error details
New-DataProtectionSecret : Windows Data Protection API (DPAPI) is not supported on this platform.
At C:\scm\dotnet\PSDataProtection\debug.ps1:5 char:5
+ New-DataProtectionSecret -Scope LocalMachine -SecureString (Conve ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [New-DataProtectionSecret], PlatformNotSupportedException
+ FullyQualifiedErrorId : System.PlatformNotSupportedException,PSDataProtection.NewDataProtectionSecret
Environment data
# Working
PS> $PSVersionTable
Name Value
---- -----
PSVersion 7.3.0-preview.6
PSEdition Core
GitCommitId 7.3.0-preview.6
OS Microsoft Windows 10.0.22000
Platform Win32NT
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
# Failing
PS> $PSVersionTable
Name Value
---- -----
PSVersion 5.1.22000.653
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.22000.653
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
Prerequisites
Steps to reproduce
I have a cmdlet that is based on
PowerShellStandard.Library v7.0.0-preview.1
that referencesSystem.Security.Cryptography.ProtectedData
to use data protection API.In PowerShell Core, calls to any data protection APIs work as expected, but when the cmdlet is loaded in Windows PowerShell 5.1, those calls throw a platform not supported exception.
Is my understanding of the use of this library wrong, and the scenario above is not possible?
Expected behavior
Actual behavior
Error details
Environment data
Version
7.0.0-preview.1
Visuals
No response