PowerShell icon indicating copy to clipboard operation
PowerShell copied to clipboard

Unable to open to PowerShell.7 session configuration without Admin

Open ibebbs opened this issue 2 years ago • 8 comments

Prerequisites

Steps to reproduce

  1. In a fresh Windows 10 Hyper-V VM create a user and add to the Administrators group
  2. While logged into the VM as this user:
    1. Install Powershell 7.3.0 (e.g. winget install --id Microsoft.Powershell --source winget)
    2. Start an elevated Powershell 7 session and run Enable-PSRemoting to create PSSession Configurations (i.e. "PowerShell.7")
  3. From the Hyper-V host (Windows 11 in this instance) confirm you're able to execute commands using the 'PowerShell.7' configuration: Invoke-Command -VMName $vmName -Credential $creds -ConfigurationName PowerShell.7 -ScriptBlock { $PSVersionTable }
    • Expected Behavior
  4. In the VM, remove the user from the Administrators group and add them to the Remote Management Users group.
  5. From the Hyper-V, confirm you're still able to execute commands using the 'PowerShell.7' configuration: Invoke-Command -VMName $vmName -Credential $creds -ConfigurationName PowerShell.7 -ScriptBlock { $PSVersionTable }
    • Actual Behavior
  6. In the VM, add the user and/or Users group to the PowerShell.7 Session Configuration by invoking: Set-PSSessionConfiguration -Name PowerShell.7 -ShowSecurityDescriptorUI
  7. From the Hyper-V, confirm you're still able to execute commands using the 'PowerShell.7' configuration: Invoke-Command -VMName $vmName -Credential $creds -ConfigurationName PowerShell.7 -ScriptBlock { $PSVersionTable }
    • Actual Behavior

Expected behavior

PS> Invoke-Command -VMName $vmName -Credential $creds -ConfigurationName PowerShell.7 -ScriptBlock { $PSVersionTable }

Name                           Value
----                           -----
WSManStackVersion              3.0
OS                             Microsoft Windows 10.0.19044
PSVersion                      7.3.0
SerializationVersion           1.1.0.1
PSRemotingProtocolVersion
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
GitCommitId                    7.3.0
Platform                       Win32NT
PSEdition                      Core

Actual behavior

PS> Invoke-Command -VMName $vmName -Credential $creds -ConfigurationName PowerShell.7 -ScriptBlock { $PSVersionTable }
OpenError: Cannot create or open the configuration session PowerShell.7.

Error details

PS> Get-Error
Exception             :
    Type                      : System.Management.Automation.RemoteException
    SerializedRemoteException : System.Management.Automation.PSInvalidOperationException: Cannot create or open the
configuration session PowerShell.7. ---> System.Management.Automation.Remoting.PSRemotingTransportException: Connecting to
remote server localhost failed with the following error message : <f:WSManFault
xmlns:f="http://schemas.microsoft.com/wbem/wsman/1/wsmanfault" Code="2689860592"
Machine="localhost"><f:Message><f:ProviderFault provider="PowerShell.7"
path="C:\Windows\system32\PowerShell\7.3.0\pwrshplugin.dll"></f:ProviderFault></f:Message></f:WSManFault> For more information,
see the about_Remote_Troubleshooting Help topic.
                                at System.Management.Automation.Runspaces.AsyncResult.EndInvoke()
                                at System.Management.Automation.Runspaces.Internal.RunspacePoolInternal.EndOpen(IAsyncResult
asyncResult)
                                at System.Management.Automation.RemoteRunspace.Open()
                                at System.Management.Automation.HostUtilities.CreateConfiguredRunspace(String
configurationName, PSHost host)
                                --- End of inner exception stack trace ---
                                at System.Management.Automation.HostUtilities.CreateConfiguredRunspace(String
configurationName, PSHost host)
                                at
System.Management.Automation.ServerRunspacePoolDriver.HandleRunspaceCreatedForTypeTable(Object sender, RunspaceCreatedEventArgs
args)
                                at System.Management.Automation.ServerRunspacePoolDriver.HandleRunspaceCreated(Object sender,
RunspaceCreatedEventArgs args)
                                at System.Management.Automation.ExtensionMethods.SafeInvoke[T](EventHandler`1 eventHandler,
Object sender, T eventArgs)
                                at System.Management.Automation.ExtensionMethods.SafeInvoke[T](EventHandler`1 eventHandler,
Object sender, T eventArgs)
                                at System.Management.Automation.Runspaces.Internal.RunspacePoolInternal.CreateRunspace()
                                at System.Management.Automation.Runspaces.Internal.RunspacePoolInternal.OpenHelper()
    ErrorRecord               :
        Exception             :
            Type                      : System.Management.Automation.RemoteException
            SerializedRemoteException : System.Management.Automation.PSInvalidOperationException: Cannot create or open the
configuration session PowerShell.7. ---> System.Management.Automation.Remoting.PSRemotingTransportException: Connecting to
remote server localhost failed with the following error message : <f:WSManFault
xmlns:f="http://schemas.microsoft.com/wbem/wsman/1/wsmanfault" Code="2689860592"
Machine="localhost"><f:Message><f:ProviderFault provider="PowerShell.7"
path="C:\Windows\system32\PowerShell\7.3.0\pwrshplugin.dll"></f:ProviderFault></f:Message></f:WSManFault> For more information,
see the about_Remote_Troubleshooting Help topic.
                                        at System.Management.Automation.Runspaces.AsyncResult.EndInvoke()
                                        at
System.Management.Automation.Runspaces.Internal.RunspacePoolInternal.EndOpen(IAsyncResult asyncResult)
                                        at System.Management.Automation.RemoteRunspace.Open()
                                        at System.Management.Automation.HostUtilities.CreateConfiguredRunspace(String
configurationName, PSHost host)
                                        --- End of inner exception stack trace ---
                                        at System.Management.Automation.HostUtilities.CreateConfiguredRunspace(String
configurationName, PSHost host)
                                        at
System.Management.Automation.ServerRunspacePoolDriver.HandleRunspaceCreatedForTypeTable(Object sender, RunspaceCreatedEventArgs
args)
                                        at System.Management.Automation.ServerRunspacePoolDriver.HandleRunspaceCreated(Object
sender, RunspaceCreatedEventArgs args)
                                        at System.Management.Automation.ExtensionMethods.SafeInvoke[T](EventHandler`1
eventHandler, Object sender, T eventArgs)
                                        at System.Management.Automation.ExtensionMethods.SafeInvoke[T](EventHandler`1
eventHandler, Object sender, T eventArgs)
                                        at System.Management.Automation.Runspaces.Internal.RunspacePoolInternal.CreateRunspace()
                                        at System.Management.Automation.Runspaces.Internal.RunspacePoolInternal.OpenHelper()
            ErrorRecord               :
                Exception             :
                    Type                      : System.Management.Automation.RemoteException
                    SerializedRemoteException : System.Management.Automation.PSInvalidOperationException: Cannot create or open
the configuration session PowerShell.7. ---> System.Management.Automation.Remoting.PSRemotingTransportException: Connecting to
remote server localhost failed with the following error message : <f:WSManFault
xmlns:f="http://schemas.microsoft.com/wbem/wsman/1/wsmanfault" Code="2689860592"
Machine="localhost"><f:Message><f:ProviderFault provider="PowerShell.7"
path="C:\Windows\system32\PowerShell\7.3.0\pwrshplugin.dll"></f:ProviderFault></f:Message></f:WSManFault> For more information,
see the about_Remote_Troubleshooting Help topic.
                                                at System.Management.Automation.Runspaces.AsyncResult.EndInvoke()
                                                at
System.Management.Automation.Runspaces.Internal.RunspacePoolInternal.EndOpen(IAsyncResult asyncResult)
                                                at System.Management.Automation.RemoteRunspace.Open()
                                                at System.Management.Automation.HostUtilities.CreateConfiguredRunspace(String
configurationName, PSHost host)
                                                --- End of inner exception stack trace ---
                                                at System.Management.Automation.HostUtilities.CreateConfiguredRunspace(String
configurationName, PSHost host)
                                                at
System.Management.Automation.ServerRunspacePoolDriver.HandleRunspaceCreatedForTypeTable(Object sender, RunspaceCreatedEventArgs
args)
                                                at
System.Management.Automation.ServerRunspacePoolDriver.HandleRunspaceCreated(Object sender, RunspaceCreatedEventArgs args)
                                                at System.Management.Automation.ExtensionMethods.SafeInvoke[T](EventHandler`1
eventHandler, Object sender, T eventArgs)
                                                at System.Management.Automation.ExtensionMethods.SafeInvoke[T](EventHandler`1
eventHandler, Object sender, T eventArgs)
                                                at
System.Management.Automation.Runspaces.Internal.RunspacePoolInternal.CreateRunspace()
                                                at
System.Management.Automation.Runspaces.Internal.RunspacePoolInternal.OpenHelper()
                    ErrorRecord               :
                        Exception             :
                            Type                      : System.Management.Automation.RemoteException
                            SerializedRemoteException : System.Management.Automation.PSInvalidOperationException: Cannot create
or open the configuration session PowerShell.7. ---> System.Management.Automation.Remoting.PSRemotingTransportException:
Connecting to remote server localhost failed with the following error message : <f:WSManFault
xmlns:f="http://schemas.microsoft.com/wbem/wsman/1/wsmanfault" Code="2689860592"
Machine="localhost"><f:Message><f:ProviderFault provider="PowerShell.7"
path="C:\Windows\system32\PowerShell\7.3.0\pwrshplugin.dll"></f:ProviderFault></f:Message></f:WSManFault> For more information,
see the about_Remote_Troubleshooting Help topic.
                                                        at System.Management.Automation.Runspaces.AsyncResult.EndInvoke()
                                                        at
System.Management.Automation.Runspaces.Internal.RunspacePoolInternal.EndOpen(IAsyncResult asyncResult)
                                                        at System.Management.Automation.RemoteRunspace.Open()
                                                        at
System.Management.Automation.HostUtilities.CreateConfiguredRunspace(String configurationName, PSHost host)
                                                        --- End of inner exception stack trace ---
                                                        at
System.Management.Automation.HostUtilities.CreateConfiguredRunspace(String configurationName, PSHost host)
                                                        at
System.Management.Automation.ServerRunspacePoolDriver.HandleRunspaceCreatedForTypeTable(Object sender, RunspaceCreatedEventArgs
args)
                                                        at
System.Management.Automation.ServerRunspacePoolDriver.HandleRunspaceCreated(Object sender, RunspaceCreatedEventArgs args)
                                                        at
System.Management.Automation.ExtensionMethods.SafeInvoke[T](EventHandler`1 eventHandler, Object sender, T eventArgs)
                                                        at
System.Management.Automation.ExtensionMethods.SafeInvoke[T](EventHandler`1 eventHandler, Object sender, T eventArgs)
                                                        at
System.Management.Automation.Runspaces.Internal.RunspacePoolInternal.CreateRunspace()
                                                        at
System.Management.Automation.Runspaces.Internal.RunspacePoolInternal.OpenHelper()
                            ErrorRecord               :
                                Exception             :
                                    Type                      : System.Management.Automation.RemoteException
                                    SerializedRemoteException : System.Management.Automation.PSInvalidOperationException:
Cannot create or open the configuration session PowerShell.7. --->
System.Management.Automation.Remoting.PSRemotingTransportException: Connecting to remote server localhost failed with the
following error message : <f:WSManFault xmlns:f="http://schemas.microsoft.com/wbem/wsman/1/wsmanfault" Code="2689860592"
Machine="localhost"><f:Message><f:ProviderFault provider="PowerShell.7"
path="C:\Windows\system32\PowerShell\7.3.0\pwrshplugin.dll"></f:ProviderFault></f:Message></f:WSManFault> For more information,
see the about_Remote_Troubleshooting Help topic.
                                                                at
System.Management.Automation.Runspaces.AsyncResult.EndInvoke()
                                                                at
System.Management.Automation.Runspaces.Internal.RunspacePoolInternal.EndOpen(IAsyncResult asyncResult)
                                                                at System.Management.Automation.RemoteRunspace.Open()
                                                                at
System.Management.Automation.HostUtilities.CreateConfiguredRunspace(String configurationName, PSHost host)
                                                                --- End of inner exception stack trace ---
                                                                at
System.Management.Automation.HostUtilities.CreateConfiguredRunspace(String configurationName, PSHost host)
                                                                at
System.Management.Automation.ServerRunspacePoolDriver.HandleRunspaceCreatedForTypeTable(Object sender, RunspaceCreatedEventArgs
args)
                                                                at
System.Management.Automation.ServerRunspacePoolDriver.HandleRunspaceCreated(Object sender, RunspaceCreatedEventArgs args)
                                                                at
System.Management.Automation.ExtensionMethods.SafeInvoke[T](EventHandler`1 eventHandler, Object sender, T eventArgs)
                                                                at
System.Management.Automation.ExtensionMethods.SafeInvoke[T](EventHandler`1 eventHandler, Object sender, T eventArgs)
                                                                at
System.Management.Automation.Runspaces.Internal.RunspacePoolInternal.CreateRunspace()
                                                                at
System.Management.Automation.Runspaces.Internal.RunspacePoolInternal.OpenHelper()
                                    ErrorRecord               : …
                                    Message                   : Cannot create or open the configuration session PowerShell.7.
                                    HResult                   : -2146233087
                                CategoryInfo          : InvalidOperation: (:) [], PSInvalidOperationException
                                FullyQualifiedErrorId : InvalidOperation
                            Message                   : Cannot create or open the configuration session PowerShell.7.
                            HResult                   : -2146233087
                        CategoryInfo          : InvalidOperation: (:) [], PSInvalidOperationException
                        FullyQualifiedErrorId : InvalidOperation
                    Message                   : Cannot create or open the configuration session PowerShell.7.
                    HResult                   : -2146233087
                CategoryInfo          : InvalidOperation: (:) [], PSInvalidOperationException
                FullyQualifiedErrorId : InvalidOperation
            Message                   : Cannot create or open the configuration session PowerShell.7.
            HResult                   : -2146233087
        CategoryInfo          : InvalidOperation: (:) [], PSInvalidOperationException
        FullyQualifiedErrorId : InvalidOperation
    Message                   : Cannot create or open the configuration session PowerShell.7.
    HResult                   : -2146233087
TargetObject          : Win10Test
CategoryInfo          : OpenError: (Win10Test:String) [], RemoteException
FullyQualifiedErrorId : PSSessionStateBroken

Environment data

PS> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      7.3.0
PSEdition                      Core
GitCommitId                    7.3.0
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

Visuals

No response

ibebbs avatar Dec 07 '22 12:12 ibebbs

FWIW, I have posted a question on StackOverflow about this (and recently added a bounty).

ibebbs avatar Dec 09 '22 14:12 ibebbs

I have a similar issue where some commands run fine but some cmdlets won't work, like Get-ADUser, which throws the following error: Could not load file or assembly 'Microsoft.Bcl.AsyncInterfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. The system cannot find the file specified. (The RSAT AD features are installed and the same cmdlet works fine in a normal console. Also the creds I'm using are in the local Administrators and Remote Management Users groups)

Running PowerShell 7.3.0 configuration. Is @SteveL-MSFT aware of this?

OneScripter avatar Dec 15 '22 07:12 OneScripter

Turns out I needed to add write permissions to C:\Windows\system32\PowerShell\7.3.0 on the guest OS and this is actually a duplicate of this issue.

Would be great to give the "Remote Management Group" write permissions on this folder as part of Enable-PSRemoting.

ibebbs avatar Dec 15 '22 15:12 ibebbs

I gave Modify permissions to the "Remote Management Users" group on that folder and still get my error. In my case the user the session is running as is also a member of the Administrators group.

OneScripter avatar Dec 15 '22 15:12 OneScripter

Re-opening. Adding Remote Management Users group may make sense, but that group shouldn't have write permission. Need to understand exactly what the issue is. Expectation is that admins or memebers of Remote Management Users group should be able to use the PowerShell.7 session.

SteveL-MSFT avatar Dec 16 '22 23:12 SteveL-MSFT

I have a similar issue where some commands run fine but some cmdlets won't work, like Get-ADUser, which throws the following error: Could not load file or assembly 'Microsoft.Bcl.AsyncInterfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. The system cannot find the file specified. (The RSAT AD features are installed and the same cmdlet works fine in a normal console. Also the creds I'm using are in the local Administrators and Remote Management Users groups)

Running PowerShell 7.3.0 configuration. Is @SteveL-MSFT aware of this?

Did you manage to resolve this issue @OneScripter? Experiencing the same exact problem.

Dangerboi avatar Jan 16 '23 20:01 Dangerboi

I ended up downgrading everything to 7.2.8 for now. Hoping this gets fixed soon though.

OneScripter avatar Jan 16 '23 21:01 OneScripter

Turns out that reverting to 7.2.8 fixed the cmdlet launch issues, but I was still getting OpenError: [localhost] Connecting to remote server localhost failed with the following error message... errors when try to execute scripts with an account that was not a local Administrator. It seemed to work, but that was only when not specifying a configuration because it defaults PowerShell 5.1, which doesn't have this problem.

Adding Modify permissions per @ibebbs comment resolved it and now I can launch any PowerShell 7 version. Any idea why it would need Modify versus just Read on that folder?

All that said, I eagerly await a fix from @SteveL-MSFT and team as this is a huge issue for some of us.

OneScripter avatar Jan 19 '23 21:01 OneScripter

In our company, we rely on the workaround suggested, i.e. to use a version <=7.2.8. But we'd like to remove that constraint soon. Can you please reopen this ticket as it is still not fixed if I understand correctly? If it is fixed, please can you comment about version number that did fix the issue. Thanks.

sim590 avatar Dec 04 '23 22:12 sim590