Powershell: WSMAN client Not Found - OpenSSL issues

Created on 29 Nov 2019  Â·  6Comments  Â·  Source: PowerShell/PowerShell

Steps to reproduce

brew cask install powershell
brew install openssl

New-PSSession -Computer server01 -Authentication kerberos -Credential [email protected]

## or

$user = Get-Credential

New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionURI https://outlook.office365.com/powershell-liveid/ -Authentication basic -Credential $user

Expected behavior

 Id Name            Transport ComputerName    ComputerType    State         ConfigurationName     Availability
 -- ----            --------- ------------    ------------    -----         -----------------     ------------
  2 Runspace2       WSMan     hv1.silberhorn… RemoteMachine   Opened        Microsoft.PowerShell     Available

Actual behavior


Environment data

$psversiontable

Name                           Value
----                           -----
PSVersion                      6.2.3
PSEdition                      Core
GitCommitId                    6.2.3
OS                             Darwin 19.0.0 Darwin Kernel Version 19.0.0: Thu Oct 17 16:17:15 PDT 2019; root:xnu-6153.41.3~…
Platform                       Unix
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

new-pssession : This parameter set requires WSMan, and no supported WSMan client library was found. WSMan is either not installed or unavailable for this system.
At line:1 char:1
+ new-pssession -ComputerName pw-dssap01 -Authentication basic -UseSSL  ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : ResourceUnavailable: (:) [New-PSSession], PSRemotingTransportException
+ FullyQualifiedErrorId : System.Management.Automation.Remoting.PSRemotingDataStructureException,Microsoft.PowerShell.Commands.NewPSSessionCommand

I have tried this on different versions of OSX my focus has been mojave and catalina though. I was able to get to work on mojave in a controlled environment but can't reproduce on other machines.

It appears as though Powershell is looking for /usr/local/lib/libcryto.1.0.0.dylib and /usr/local/lib/libssl.1.0.0.dylib but brew will only install OpenSSL 1.1 currently.

I was able to change the error by linking the 1.1 library to 1.0.0 path:

ln -s /usr/local/opt/openssl/lib/libcrypto.1.1.dylib /usr/local/lib/libcrypto.1.0.0.dylib
ln -s /usr/local/opt/openssl/lib/libssl.1.1.dylib /usr/local/lib/libssl.1.0.0.dylib

I've use remoting with O365 and implicit kerberos to windows machines from OSX in the past but cannot seem to get it to work with Catalina or Mojave at the moment. It appears as though there is a constant fight against OpenSSL Versions and between OpenSSL and LibreSSL on OSX.

Any help would be greatly appreciated.

Issue-Question Resolution-Duplicate

Most helpful comment

This is a hack workaround to bring in openssl 1.0.2u with Homebrew. You can leave [email protected] installed, and this restores the ability to connect to O365 with PowerShell Core 7.0 on macOS:

brew install https://github.com/luckman212/openssl10/releases/download/1.0.2u/[email protected]
rm /usr/local/opt/openssl
ln -s /usr/local/Cellar/[email protected]/1.0.2u /usr/local/opt/openssl

All 6 comments

/cc @SteveL-MSFT This is a popular question for several years. It would be nice if we could to find a reliable solution.
Dup #10600 and there are others...

So i was able to determine that I could consistently get Remoting working on Mojave:

brew install openssl
brew cask install powershell
echo 'export PATH="/usr/local/opt/[email protected]/bin:$PATH"' >> ~/.bash_profile
ln -s /usr/local/opt/openssl/lib/libcrypto.1.1.dylib /usr/local/lib/libcrypto.1.0.0.dylib
ln -s /usr/local/opt/openssl/lib/libssl.1.1.dylib /usr/local/lib/libssl.1.0.0.dylib

if I do the same on Catalina though, i simply get an error MI_RESULT_ACCESS_DENIED

This would seem to imply that there is something with the openssl dependencies on Catalina not working together.

Any update on this problem? It was working for me as well (Catalina) up until a few days ago, around 3/31/2020 it broke. Have tried uninstalling/reinstalling and the usual mucking around with symlinks, $PATH editing etc.

  • macOS 10.15.4
  • pwsh Core 7.0.0
  • openssl 1.1.1f (brew)

See https://github.com/dotnet/runtime/issues/29855#issuecomment-501040651
CLR_OPENSSL_VERSION_OVERRIDE

(For reference #12202)

This is a hack workaround to bring in openssl 1.0.2u with Homebrew. You can leave [email protected] installed, and this restores the ability to connect to O365 with PowerShell Core 7.0 on macOS:

brew install https://github.com/luckman212/openssl10/releases/download/1.0.2u/[email protected]
rm /usr/local/opt/openssl
ln -s /usr/local/Cellar/[email protected]/1.0.2u /usr/local/opt/openssl

the CLR_OPENSSL_VERSION_OVERRIDE workaround does not work for me for any number/dot combination.

also the hack from @luckman212 rubs me wrong - just reinstalled my mac and dislike manually changing package-managed directories (but still thank you!! this would have been my next try if my current solution would not have worked out)

what worked for me was this:

brew uninstall openssl --ignore-dependencies
brew uninstall openssl --ignore-dependencies
brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

source here. I like it because everything keeps being homebrew-managed.

and I wholeheartedly agree with kai-h here.

Was this page helpful?
0 / 5 - 0 ratings