Skip to content

PowerShell Core cannot start a job using Windows PowerShell #7059

Description

When -PSVersion is specified, it should be respected. And all supported PSVersions (2.0 to 5.1) should be supported when the corresopnding version of Windows PowerShell is available.

Note that, when -PSEdition 2.0 is specified, Start-Job checks if PSv2 is installed using the method RemotingCommandUtil.CheckIfPowerShellVersionIsInstalled which will blindly throw exception in PSCore (see code below). If we want to support -PSEdition 2.0, then the #if CORECLR section of the method body should be removed.

        internal static void CheckIfPowerShellVersionIsInstalled(Version version)
        {
            // Check if PowerShell 2.0 is installed
            if (version != null && version.Major == 2)
            {
#if CORECLR
                // PowerShell 2.0 is not available for CoreCLR
                throw new ArgumentException(
                    PSRemotingErrorInvariants.FormatResourceString(
                        RemotingErrorIdStrings.PowerShellNotInstalled,
                        version, "PSVersion"));
#else
                // Because of app-compat issues, in Win8, we will have PS 2.0 installed by default but not .NET 2.0
                // In such a case, it is not enough if we check just PowerShell registry keys. We also need to check if .NET 2.0 is installed.
                ...

Steps to reproduce

PS:1> $job = Start-Job { $PSVersionTable.PSVersion } -PSVersion 5.1
PS:2> Receive-Job $job

Expected behavior

PS:2> Receive-Job $job

Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      17134  81

Actual behavior

PS:2> Receive-Job $job

Major  Minor  Patch  PreReleas BuildLabel
                     eLabel
-----  -----  -----  --------- ----------
6      0      1

Environment data

> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      6.0.1
PSEdition                      Core
GitCommitId                    v6.0.1
OS                             Microsoft Windows 10.0.17134
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Issue-BugIssue has been identified as a bug in the productWG-Enginecore PowerShell engine, interpreter, and runtime

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions