Powershell: No se puede conectar a Office 365 / Exchange Online con PowerShell

Creado en 28 nov. 2017  ·  70Comentarios  ·  Fuente: PowerShell/PowerShell

No puedo conectarme a Office 365 / Exchange Online con PowerShell.
Aparentemente, otros pueden hacerlo con la última versión de push, pero no me funciona en macOS 10.12 o 10.13 con pwsh 6.0.0-rc

Recibo un error al crear la New-PSSession. Dependiendo de la sintaxis exacta del comando que estoy usando, dice New-PSSession: este conjunto de parámetros requiere WSMan, y no se encontró una biblioteca de cliente WSMan compatible, o PowerShell se cierra con una excepción no controlada y aborta la trampa 6.

pasos para reproducir

Instale PowerShell 6.0.0-rc en macOS 10.12 o 10.13.
Use Get-Credential para obtener una credencial de administrador de Office 365 y luego use New-PSSession para crear una nueva sesión.

[kai<strong i="11">@blackmac</strong> ~]$ pwsh
PowerShell v6.0.0-rc
Copyright (c) Microsoft Corporation. All rights reserved.

https://aka.ms/pscore6-docs
Type 'help' to get help.

PS /Users/kai> $PSVersionTable                                        

Name                           Value                                           
----                           -----                                           
PSVersion                      6.0.0-rc                                        
PSEdition                      Core                                            
GitCommitId                    v6.0.0-rc                                       
OS                             Darwin 16.7.0 Darwin Kernel Version 16.7.0: T...
Platform                       Unix                                            
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}                         
PSRemotingProtocolVersion      2.3                                             
SerializationVersion           1.1.0.1                                         
WSManStackVersion              3.0                                             


PS /Users/kai> $UserCredential = Get-Credential                       

PowerShell credential request
Enter your credentials.
User: [email protected]
Password for user [email protected]: ***********

PS /usr/local/microsoft> $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection                     
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:12
+ $Session = New-PSSession -ConfigurationName Microsoft.Exchange -Conne ...
+            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : ResourceUnavailable: (:) [New-PSSession], PSRemotingTransportException
+ FullyQualifiedErrorId : System.Management.Automation.Remoting.PSRemotingDataStructureException,Microsoft.PowerShell.Commands.NewPSSessionCommand

PS /Users/kai> $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid -Credential $UserCredential -Authentication Basic -AllowRedirection                      

An error has occurred that was not properly handled. Additional information is shown below. The PowerShell process will exit.

Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object.
   at System.Management.Automation.Remoting.PrioritySendDataCollection.Clear()
   at System.Management.Automation.Remoting.Client.BaseClientTransportManager.CloseAsync()
   at System.Management.Automation.Remoting.Client.WSManClientSessionTransportManager.CloseAsync()
   at System.Management.Automation.Remoting.Client.BaseClientTransportManager.Finalize()
Abort trap: 6
[kai<strong i="12">@blackmac</strong> ~]$ 

Observará en el indicador de la última línea de arriba que me devolvió al shell bash.

Comportamiento esperado

Se espera que New-PSSession funcione en macOS

Comportamiento real

Dependiendo de la sintaxis precisa del comando, New-PSSession devuelve un mensaje de error:
New-PSSession: este conjunto de parámetros requiere WSMan y no se encontró ninguna biblioteca cliente WSMan compatible
O, New-PSSession tiene una excepción no controlada y PowerShell se cierra con la trampa de aborto 6.

Las diferencias en la sintaxis son con ConnectionUri: si hay o no una barra diagonal en el uri parece marcar la diferencia. Con una barra al final, aparece el error de falta de WSMan. Sin la barra inclinada final, la sesión de PowerShell se cancela.

Con barra al final:

PS /Users/kai> $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection                     
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:12
+ $Session = New-PSSession -ConfigurationName Microsoft.Exchange -Conne ...
+            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : ResourceUnavailable: (:) [New-PSSession], PSRemotingTransportException
+ FullyQualifiedErrorId : System.Management.Automation.Remoting.PSRemotingDataStructureException,Microsoft.PowerShell.Commands.NewPSSessionCommand

Sin barra inclinada final:

PS /Users/kai> $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid -Credential $UserCredential -Authentication Basic -AllowRedirection                      

An error has occurred that was not properly handled. Additional information is shown below. The PowerShell process will exit.

Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object.
   at System.Management.Automation.Remoting.PrioritySendDataCollection.Clear()
   at System.Management.Automation.Remoting.Client.BaseClientTransportManager.CloseAsync()
   at System.Management.Automation.Remoting.Client.WSManClientSessionTransportManager.CloseAsync()
   at System.Management.Automation.Remoting.Client.BaseClientTransportManager.Finalize()
Abort trap: 6

Datos ambientales

PS /Users/kai> $PSVersionTable                                                                                                                                                                                Name                           Value                                                                   
----                           -----                                                                  
PSVersion                      6.0.0-rc                                                               
PSEdition                      Core                                                                   
GitCommitId                    v6.0.0-rc                                                              
OS                             Darwin 16.7.0 Darwin Kernel Version 16.7.0: Thu Jun 15 17:36:27 PDT ...
Platform                       Unix                                                                   
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}                                                
PSRemotingProtocolVersion      2.3                                                                    
SerializationVersion           1.1.0.1                                                                
WSManStackVersion              3.0                                                                    
Issue-Discussion OS-macOS Resolution-Fixed WG-Remoting

Comentario más útil

Hola chicos,

con respecto a la versión openssl, forcé a brew a usar la versión 1.02 y esto solucionó mis problemas de pwsh O365. Los comandos que ejecuté son ...

brew desinstalar openssl;
brew desinstalar openssl; (para asegurarse de que no quede nada por ahí)
brew instalar https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

Crédito: @kensoh

Gracias.

Todos 70 comentarios

Esto me funciona en 10.13.1. ¿Puedes confirmar que en $ PSHome tienes libpsrpclient.dylib ?

PowerShell v6.0.0-rc
Copyright (c) Microsoft Corporation. All rights reserved.

https://aka.ms/pscore6-docs
Type 'help' to get help.

PS /Users/kai> cd $PSHome                                                       
PS /usr/local/microsoft/powershell/6.0.0-rc> ls -al *.dylib                     
-rw-r--r--  1 root  wheel    70224 31 Oct 17:27 System.Globalization.Native.dylib
-rw-r--r--  1 root  wheel    13484 31 Oct 17:27 System.IO.Compression.Native.dylib
-rw-r--r--  1 root  wheel    61460 31 Oct 17:27 System.Native.dylib
-rw-r--r--  1 root  wheel    16932 31 Oct 17:27 System.Net.Http.Native.dylib
-rw-r--r--  1 root  wheel    15132 31 Oct 17:27 System.Net.Security.Native.dylib
-rw-r--r--  1 root  wheel    46016 31 Oct 17:27 System.Security.Cryptography.Native.Apple.dylib
-rw-r--r--  1 root  wheel    75708 31 Oct 17:27 System.Security.Cryptography.Native.OpenSsl.dylib
-rw-r--r--  1 root  wheel  2571480 31 Oct 17:27 libclrjit.dylib
-rw-r--r--  1 root  wheel  6894904 31 Oct 17:27 libcoreclr.dylib
-rw-r--r--  1 root  wheel   883740 31 Oct 17:27 libdbgshim.dylib
-rw-r--r--  1 root  wheel   869664 31 Oct 17:27 libhostfxr.dylib
-rw-r--r--  1 root  wheel  1006336 31 Oct 17:27 libhostpolicy.dylib
-rw-r--r--  1 root  wheel   843792 14 Nov 11:37 libmi.dylib
-rw-r--r--  1 root  wheel  3081760 31 Oct 17:27 libmscordaccore.dylib
-rw-r--r--  1 root  wheel  2021168 31 Oct 17:27 libmscordbi.dylib
-rw-r--r--  1 root  wheel    20568  4 Nov 09:08 libpsl-native.dylib
-rw-r--r--  1 root  wheel   224784 15 Nov 07:39 libpsrpclient.dylib
-rw-r--r--  1 root  wheel   553360 31 Oct 17:27 libsos.dylib
PS /usr/local/microsoft/powershell/6.0.0-rc> 

@ kai-h tiene la biblioteca adecuada con el tamaño de archivo y los permisos adecuados. ¿Está definido DYLD_LIBRARY_PATH? ¿Cuál es la salida de $env:DYLD_LIBRARY_PATH ?

No está definido.
`` powershell
PowerShell v6.0.0-rc
Copyright (c) Microsoft Corporation. Todos los derechos reservados.

https://aka.ms/pscore6-docs
Escriba 'ayuda' para obtener ayuda.

PS / Users / kai> $ env: DYLD_LIBRARY_PATH
PS / Usuarios / kai>
`` ``

¿Qué devuelve [System.Environment]::Is64BitProcess ?

PS /Users/kai> [System.Environment]::Is64BitProcess                             
True

@ kai-h try (en la terminal antes de iniciar pwsh):

export DYLD_LIBRARY_PATH=/usr/local/microsoft/powershell/6.0.0-rc:${DYLD_LIBRARY_PATH}
pwsh
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection

Gracias por su persistencia con esto. Sin embargo, sigo recibiendo el mismo error.

[kai<strong i="6">@hobbes</strong> ~]$ export DYLD_LIBRARY_PATH=/usr/local/microsoft/powershell/6.0.0-rc:${DYLD_LIBRARY_PATH}
[kai<strong i="7">@hobbes</strong> ~]$ pwsh
PowerShell v6.0.0-rc
Copyright (c) Microsoft Corporation. All rights reserved.

https://aka.ms/pscore6-docs
Type 'help' to get help.

PS /Users/kai> $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection                 

PowerShell credential request
Enter your credentials.
User: [email protected]
Password for user [email protected]: ********


An error has occurred that was not properly handled. Additional information is shown below. The PowerShell process will exit.

Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object.
   at System.Management.Automation.Remoting.PrioritySendDataCollection.Clear()
   at System.Management.Automation.Remoting.Client.BaseClientTransportManager.CloseAsync()
   at System.Management.Automation.Remoting.Client.WSManClientSessionTransportManager.CloseAsync()
   at System.Management.Automation.Remoting.Client.BaseClientTransportManager.Finalize()
Abort trap: 6
[kai<strong i="8">@hobbes</strong> ~]$ 

Me gustaría confirmar que puedo conectarme con éxito a Office 365 desde PowerShell alojado en una máquina virtual de Azure Ubuntu, usando exactamente los mismos detalles que estoy probando en la Mac.

PowerShell v6.0.0-rc
Copyright (c) Microsoft Corporation. All rights reserved.

https://aka.ms/pscore6-docs
Type 'help' to get help.

PS /home/kai>  $PSVersionTable                                                                                                                               

Name                           Value                                                                                                                        
----                           -----                                                                                                                        
PSVersion                      6.0.0-rc                                                                                                                     
PSEdition                      Core                                                                                                                         
GitCommitId                    v6.0.0-rc                                                                                                                    
OS                             Linux 4.4.0-22-generic #40-Ubuntu SMP Thu May 12 22:03:46 UTC 2016                                                           
Platform                       Unix                                                                                                                         
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}                                                                                                      
PSRemotingProtocolVersion      2.3                                                                                                                          
SerializationVersion           1.1.0.1                                                                                                                      
WSManStackVersion              3.0                                                                                                                          


PS /home/kai> $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection                                                                                                          

PowerShell credential request
Enter your credentials.
User: [email protected]
Password for user [email protected]: ********

PS /home/kai> Import-PSSession $Session
(at this point PowerShell starts loading remote modules etc and preparing the session)

Lo que voy a hacer para eliminar cualquier posible problema de haber ajustado algo en mi Mac que está en conflicto con esto es configurar una instalación limpia de macOS 10.12 y luego una nueva instalación de PowerShell 6.0.0-rc y probar si funciona esta noche.

Es dup # 3606

El problema # 3606 es una especie de dup, pero también vieron el error que no he visto en mis pruebas.

New-PSSession : Unable to load DLL 'libpsrpclient':...

He podido reproducir esto en una instalación limpia de macOS 10.12.6 y una instalación limpia de PowerShell 6.0.0-rc. Todo está con la configuración predeterminada, una nueva cuenta de administrador creada en el primer arranque y ninguna configuración modificada para la aplicación Terminal.

Last login: Thu Nov 30 08:11:57 on ttys000
Administrators-Mac-mini:~ admin$ pwsh
PowerShell v6.0.0-rc
Copyright (c) Microsoft Corporation. All rights reserved.

https://aka.ms/pscore6-docs
Type 'help' to get help.

PS /Users/admin> $PSVersionTable                                                

Name                           Value                                           
----                           -----                                           
PSVersion                      6.0.0-rc                                        
PSEdition                      Core                                            
GitCommitId                    v6.0.0-rc                                       
OS                             Darwin 16.7.0 Darwin Kernel Version 16.7.0: T...
Platform                       Unix                                            
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}                         
PSRemotingProtocolVersion      2.3                                             
SerializationVersion           1.1.0.1                                         
WSManStackVersion              3.0                                             


PS /Users/admin> $env:DYLD_LIBRARY_PATH                                         
PS /Users/admin> [System.Environment]::Is64BitProcess                           
True
PS /Users/admin> $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection                             

PowerShell credential request
Enter your credentials.
User: [email protected]
Password for user [email protected]: *********


An error has occurred that was not properly handled. Additional information is shown below. The PowerShell process will exit.

Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object.
   at System.Management.Automation.Remoting.PrioritySendDataCollection.Clear()
   at System.Management.Automation.Remoting.Client.BaseClientTransportManager.CloseAsync()
   at System.Management.Automation.Remoting.Client.WSManClientSessionTransportManager.CloseAsync()
   at System.Management.Automation.Remoting.Client.BaseClientTransportManager.Finalize()
Abort trap: 6
Administrators-Mac-mini:~ admin$ 

Aquí están los resultados de una instalación limpia de 10.12.6

Last login: Thu Nov 30 08:48:11 on ttys000
Administrators-Mac-mini:~ admin$ pwsh
PowerShell v6.0.0-rc
Copyright (c) Microsoft Corporation. All rights reserved.

https://aka.ms/pscore6-docs
Type 'help' to get help.

PS /Users/admin> $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection                                                               

PowerShell credential request
Enter your credentials.
User: [email protected]
Password for user [email protected]: ********


An error has occurred that was not properly handled. Additional information is shown below. The PowerShell process will exit.

Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object.
   at System.Management.Automation.Remoting.PrioritySendDataCollection.Clear() in /PowerShell/src/System.Management.Automation/engine/remoting/fanin/PriorityCollection.cs:line 158
   at System.Management.Automation.Remoting.Client.BaseClientTransportManager.CloseAsync() in /PowerShell/src/System.Management.Automation/engine/remoting/fanin/BaseTransportManager.cs:line 949
   at System.Management.Automation.Remoting.Client.WSManClientSessionTransportManager.CloseAsync() in /PowerShell/src/System.Management.Automation/engine/remoting/fanin/WSManTransportManager.cs:line 1219
   at System.Management.Automation.Remoting.Client.BaseClientTransportManager.Finalize() in /PowerShell/src/System.Management.Automation/engine/remoting/fanin/BaseTransportManager.cs:line 998
Abort trap: 6
Administrators-Mac-mini:~ admin$ 

Esto podría estar relacionado con los problemas que estaba viendo que están documentados en # 4029
Tal como está, PowerShell 6.0.0-rc requiere el uso de bibliotecas OpenSSL instaladas por Homebrew

Por ayuda.

Tuve el mismo problema en un contenedor Docker de Debian 9. Después de leer los comentarios anteriores, vi que había algunas bibliotecas de enlaces rotos y fue porque las bibliotecas del sistema son más nuevas de lo esperado. Luego, hice algunos enlaces simbólicos y todo salió bien.

root @ db70f6f67c51 : / usr / lib / x86_64-linux-gnu # ldd /opt/microsoft/powershell/6.0.1/libmi.so

    _linux-vdso.so.1 (0x00007ffd4b7fd000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f86cb670000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f86cb46c000)
    libpam.so.0 => /lib/x86_64-linux-gnu/libpam.so.0 (0x00007f86cb25e000)
    **libssl.so.1.0.0 =>  not found
    libcrypto.so.1.0.0 => not found**
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f86cac56000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f86cb88d000)
    libaudit.so.1 => /lib/x86_64-linux-gnu/libaudit.so.1 (0x00007f86caa2e000)
    libcrypto.so.1.0.2 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.2 (0x00007f86ca5ca000)
    libcap-ng.so.0 => /lib/x86_64-linux-gnu/libcap-ng.so.0 (0x00007f86ca3c4000)_

root @ db70f6f67c51 : /opt/microsoft/powershell/6.0.1# cd / usr / lib / x86_64-linux-gnu /
root @ db70f6f67c51 : / usr / lib / x86_64-linux-gnu # ln -s libssl.so.1.0.2 libssl.so.1.0.0
root @ db70f6f67c51 : / usr / lib / x86_64-linux-gnu # ls -l libssl *

_-rw-r - r-- 1 raíz raíz 738444 2 de noviembre 11:29 libssl.a
lrwxrwxrwx 1 raíz raíz 13 2 de noviembre 11:29 libssl.so -> libssl.so.1.1
lrwxrwxrwx 1 raíz raíz 15 21 de febrero 17:27 libssl.so.1.0.0 -> libssl.so.1.0.2
-rw-r - r-- 1 raíz raíz 431232 13 de diciembre 22:09 libssl.so.1.0.2
-rw-r - r-- 1 raíz raíz 442920 2 de noviembre 11:29 libssl.so.1.1_

root @ db70f6f67c51 : / usr / lib / x86_64-linux-gnu # ln -s libcrypto.so.1.0.2 libcrypto.so.1.0.0
root @ db70f6f67c51 : / usr / lib / x86_64-linux-gnu # ldd /opt/microsoft/powershell/6.0.1/libmi.so

    _linux-vdso.so.1 (0x00007ffdde3b4000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f4e51539000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f4e51335000)
    libpam.so.0 => /lib/x86_64-linux-gnu/libpam.so.0 (0x00007f4e51127000)
    libssl.so.1.0.0 => /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007f4e50ebe000)
    libcrypto.so.1.0.0 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007f4e50a5a000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f4e506bb000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f4e51756000)
    libaudit.so.1 => /lib/x86_64-linux-gnu/libaudit.so.1 (0x00007f4e50493000)
    libcap-ng.so.0 => /lib/x86_64-linux-gnu/libcap-ng.so.0 (0x00007f4e5028d000)_

Estaba teniendo un problema similar, pero para mí el problema era con el parámetro -AllowRedirection.

Si lo intenté en linux.

$Session = $O365Session = New-PSSession –ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell -Credential $O365Cred -Authentication Basic -AllowRedirection

New-PSSession : [ps.outlook.com] Connecting to remote server ps.outlook.com failed with the following error message : Basic Authorization failed for user [email protected] For more information, see the about_Remote_Troubleshooting Help topic.
At line:1 char:12
+ $Session = New-PSSession -ConfigurationName Microsoft.Exchange -Conne ...
+            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [New-PSSession], PSRemotingTransportException
+ FullyQualifiedErrorId : 2,PSSessionOpenFailed

Mi versión de Powershell

PS /> $PSVersionTable                                                                                                                                               

Name                           Value                                                                                                                               
----                           -----                                                                                                                               
PSVersion                      6.0.2                                                                                                                               
PSEdition                      Core                                                                                                                                
GitCommitId                    v6.0.2                                                                                                                              
OS                             Linux 4.13.0-37-generic #42-Ubuntu SMP Wed Mar 7 14:13:23 UTC 2018                                                                  
Platform                       Unix                                                                                                                                
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}                                                                                                             
PSRemotingProtocolVersion      2.3                                                                                                                                 
SerializationVersion           1.1.0.1                                                                                                                             
WSManStackVersion              3.0       

Lo mismo en Powershell en Windows 10

PS C:\Users\user> $O365Session = New-PSSession –ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell -Credential $O365Cred -Authentication Basic -AllowRedirection

WARNING: Your connection has been redirected to the following URI: "https://ps.outlook.com/PowerShell-LiveID?PSVersion=5.1.16299.251 "

Recibo una advertencia de una redirección pero obtengo la conexión con éxito.

Mi PSversion en Windows 10

PS C:\Users\user> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      5.1.16299.251
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.16299.251
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1

Ahora ejecutando el mismo comando en Linux pero usando el URI redirigido que obtuvimos en Windows.

PS /> $O365Session = New-PSSession –ConfigurationName Microsoft.Exchange -ConnectionUri "https://ps.outlook.com/PowerShell-LiveID?PSVersion=5.1.16299.251" -Credential $O365Cred -Authentication Basic -AllowRedirection                                                                                                                
PS /> $O365Session                                                                                                                                                  

 Id Name            ComputerName    ComputerType    State         ConfigurationName     Availability
 -- ----            ------------    ------------    -----         -----------------     ------------
  6 WinRM6          ps.outlook.com  RemoteMachine   Opened        Microsoft.Exchange       Available

Me parece que el problema es que el parámetro allowredirection no funciona correctamente.

Después de instalar la última versión de PowerShell (v6.0.2), esto ya no me funciona:

[kai<strong i="6">@blackmac</strong> ~]$ pwsh
PowerShell v6.0.2
Copyright (c) Microsoft Corporation. All rights reserved.

https://aka.ms/pscore6-docs
Type 'help' to get help.

PS /Users/kai> $PSVersionTable                                                                                                             

Name                           Value                                                                                                      
----                           -----                                                                                                      
PSVersion                      6.0.2                                                                                                      
PSEdition                      Core                                                                                                       
GitCommitId                    v6.0.2                                                                                                     
OS                             Darwin 17.5.0 Darwin Kernel Version 17.5.0: Mon Mar  5 22:24:32 PST 2018; root:xnu-4570.51.1~1/RELEASE_X...
Platform                       Unix                                                                                                       
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}                                                                                    
PSRemotingProtocolVersion      2.3                                                                                                        
SerializationVersion           1.1.0.1                                                                                                    
WSManStackVersion              3.0                                                                                                        


PS /Users/kai> $UserCredential = Get-Credential                                                                                            

PowerShell credential request
Enter your credentials.
User: [email protected]
Password for user [email protected]: ***********

PS /Users/kai> $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection                                                                     
New-PSSession : [outlook.office365.com] Connecting to remote server outlook.office365.com failed with the following error message : Client did not get proper response from server. For more information, see the about_Remote_Troubleshooting Help topic.
At line:1 char:12
+ $Session = New-PSSession -ConfigurationName Microsoft.Exchange -Conne ...
+            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [New-PSSession], PSRemotingTransportException
+ FullyQualifiedErrorId : 1,PSSessionOpenFailed
PS /Users/kai> 

@ SteveL-MSFT ¿Deberíamos considerar esto como inestable, como mala UX o como mal documentado?

¿Es esto algo que ha cambiado en las últimas versiones para que la autenticación básica no funcione, o es más que eso? Estoy feliz de hacer más pruebas si es necesario.

Las actualizaciones de servicio a 6.0.0 no han tenido cambios que afecten esto. No estoy seguro si ha habido cambios en el lado del servidor. cc @dantraMSFT

En MacOS, veo una regresión en 6.0.1 con un error ERROR_WSMAN_INVALID_SELECTORS consistente. No veo ningún problema en 6.0.0 y 6.0.2 y libpsrpclient no ha cambiado en estas versiones. La máquina aún no se ha actualizado a High Sierra, por lo que eso podría estar contribuyendo.

Mi prueba fue en una Mac que se actualizó recientemente de macOS 10.12 Sierra a 10.13 High Sierra. También actualicé PowerShell desde cualquier versión que tenía anteriormente (probablemente 6.0.0 o 6.0.1) a la última versión 6.0.2. También actualicé mi instalación de MacPorts a la última versión y actualicé todos mis puertos. Tengo un enlace simbólico para PowerShell desde donde espera encontrar las bibliotecas OpenSSL instaladas por Homebrew hasta donde las instala MacPorts y todo esto funcionaba antes de las actualizaciones para conectarse a Office 365

Tengo PowerShell 6.0.2 instalado. Instalé MacPorts y creé el paquete OpenSSL y lo instalé. Cuando intento crear $ Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionURI https://outlook.office365.com/powershell-liveid/ -Credential $ O365Cred -Authenticatin Basic -Allowredirection, y obtengo el mismo error de New -PSSession: este conjunto de parámetros requiere WSMan y no se encontró ninguna biblioteca cliente WSMan compatible.
$ Psversiontable

Valor de nombre
---- -----
PSVersion 6.0.2
PSEdition Core
GitCommitId v6.0.2
OS Darwin 17.5.0 Darwin Kernel Versión 17.5.0: viernes 13 de abril 19:32:32 PDT 2018; raíz: x ...
Plataforma Unix
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0 ...}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0

¿Qué debo hacer para solucionar el problema de WSMan?

Soy nuevo en O365 y PS en Mac. Estoy frente al mismo mensaje de error aquí. Agradecería cualquier ayuda que pueda conseguir.

Valor de nombre
---- -----
PSVersion 6.0.2
PSEdition Core
GitCommitId v6.0.2
OS Darwin 17.6.0 Darwin Kernel Versión 17.6.0: martes 8 de mayo a las 15:22:16 PDT de 2018; raíz: xnu-4570.61.1 ~ ...
Plataforma Unix
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0 ...}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0

PS / Users / AdityaBhasin> $ Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.protection.outlook.com/powershell-liveid/ -Credential $ UserCredential -Authentication Basic -AllowRedirection
New-PSSession: este conjunto de parámetros requiere WSMan y no se encontró ninguna biblioteca cliente WSMan compatible. WSMan no está instalado o no está disponible para este sistema.
En línea: 1 carácter: 12

  • $ Session = New-PSSession -ConfigurationName Microsoft.Exchange -Conne ...
  • ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~~~
  • CategoryInfo: ResourceUnavailable: (:) [New-PSSession], PSRemotingTransportException
  • FullyQualifiedErrorId: System.Management.Automation.Remoting.PSRemotingDataStructureException, Microsoft.PowerShell.Commands.NewPSSessionCommand

PS / Usuarios / AdityaBhasin>

Versión del sistema: macOS 10.13.5 (17F77)

¿Tiene OpenSSL instalado con Homebrew? O, si está utilizando MacPorts (que recomiendo), ¿ha vinculado el directorio de la biblioteca OpenSSL a donde PowerShell cree que debería estar?

sudo ln -s /opt/local/lib /usr/local/opt/openssl/lib

¡GUAUU! Muchas gracias @ kai-h. Seguí adelante para ejecutar el comando para actualizar el SSL abierto con Homebrew y ahora parece funcionar para mí. Actualizaré aquí si me enfrento a algún desafío nuevo. ¡Gracias de nuevo!

La instalación de PowerShell v6.0.4 en OSX 10.13.3 solucionó el problema.

Enlace de instalación:
https://github.com/PowerShell/PowerShell/releases/download/v6.0.4/powershell-6.0.4-osx.10.12-x64.pkg

@ kai-h ¿Puedes confirmar?

Reabriendo este problema: la versión 6.1.0 en Mojave está provocando el mismo problema al intentar conectarse a Office 365.

Esto también me está reprochando con Mojave

Esto me funciona con 6.0.4 en Mojave con bibliotecas OpenSSL instaladas a través de MacPorts, NO Homebrew.

`` `` PowerShell
[ kai @ blackmac ~] $ pwsh
PowerShell v6.0.4
Copyright (c) Microsoft Corporation. Todos los derechos reservados.

https://aka.ms/pscore6-docs
Escriba 'ayuda' para obtener ayuda.

PS / Users / kai> $ PSVersionTable

Valor de nombre
---- -----
PSVersion 6.0.4
PSEdition Core
GitCommitId v6.0.4
OS Darwin 18.0.0 Darwin Kernel Versión 18.0.0: miércoles 22 de agosto 20:13:40 PDT 2018; raíz: xnu-4903.201.2 ~ 1 / RELEASE_X86_64
Plataforma Unix
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0 ...}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0

PS / Users / kai> office365.ps1

Solicitud de credenciales de PowerShell
Ingrese sus credenciales.
Usuario: [email protected]
Contraseña para el usuario [email protected] : * *

ADVERTENCIA: Los nombres de algunos comandos importados del módulo 'tmp_nlc54neg.nu0' incluyen verbos no aprobados que pueden hacerlos menos visibles. Para encontrar los comandos con verbos no aprobados, vuelva a ejecutar el comando Import-Module con el parámetro Verbose. Para obtener una lista de verbos aprobados, escriba Get-Verb. ModuleType Versión Nombre ExportedCommands ---------- ------- ---- ---------------- Script 1.0 tmp_nlc54neg.nu0 {Add-AvailabilityAddressSpace , Add-DistributionGroupMember, Add-MailboxFolderPermission, Add-MailboxLocation ...}

PS / Usuarios / kai>
`` ``

Esto también me funciona cuando actualicé a 6.1.0 en Mojave.
Para reiterar, estoy usando bibliotecas OpenSSH de MacPorts y las he vinculado a la ubicación que PowerShell espera verlas.
sudo ln -s /opt/local/lib /usr/local/opt/openssl/lib
Entonces, cuando ejecuto pwsh
`` `` PowerShell
[ kai @ blackmac ~] $ pwsh
PowerShell 6.1.0
Copyright (c) Microsoft Corporation. Todos los derechos reservados.

https://aka.ms/pscore6-docs
Escriba 'ayuda' para obtener ayuda.

PS / Users / kai> $ PSVersionTable

Valor de nombre
---- -----
PSVersion 6.1.0
PSEdition Core
GitCommitId 6.1.0
OS Darwin 18.0.0 Darwin Kernel Versión 18.0.0: miércoles 22 de agosto 20:13:40 PDT 2018; raíz: xnu-4903.201.2 ~ 1 / RELEASE_X86_64
Plataforma Unix
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0 ...}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0

PS / Users / kai> office365.ps1

Solicitud de credenciales de PowerShell
Ingrese sus credenciales.
Usuario: [email protected]
Contraseña para el usuario [email protected] : * *

ADVERTENCIA: Los nombres de algunos comandos importados del módulo 'tmp_kllnlbam.5cg' incluyen verbos no aprobados que pueden hacerlos menos visibles. Para encontrar los comandos con verbos no aprobados, vuelva a ejecutar el comando Import-Module con el parámetro Verbose. Para obtener una lista de verbos aprobados, escriba Get-Verb. ModuleType Versión Nombre ExportedCommands ---------- ------- ---- ---------------- Script 1.0 tmp_kllnlbam.5cg {Add-AvailabilityAddressSpace , Add-DistributionGroupMember, Add-MailboxFolderPermission, Add -...

PS / Usuarios / kai>

`` ``

Usar la versión MacPorts de OpenSSL funcionó para mí.

Estoy reproduciendo esto en Mojave con Macports OpenSSL:
Mac OS Mojave 10.14.5
Powershell 6.2.3

Las herramientas xcode están instaladas. Instalé powershell con homebrew.

Name                           Value
----                           -----
PSVersion                      6.2.3
PSEdition                      Core
GitCommitId                    6.2.3
OS                             Darwin 18.6.0 Darwin Kernel Version 18.6.0: Thu…
Platform                       Unix
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

Instalé openssl usando las instrucciones de MS doc a través de MacPorts:

ws2784:~ travis.brackett$ port installed
The following ports are currently installed:
  openssl @1.1.1d_0 (active)
  zlib @1.2.11_0 (active)

Creé el enlace simbólico:

sudo mkdir -p /usr/local/opt/openssl
sudo ln -s /opt/local/lib /usr/local/opt/openssl/lib

wsnnnn:~ travbrack$ ls -lha /usr/local/opt/openssl/lib/
total 14496
drwxr-xr-x  16 root  wheel   512B Nov 22 14:39 .
drwxr-xr-x  11 root  wheel   352B Nov 22 13:58 ..
-rw-r--r--   1 root  wheel     0B Oct 20 13:21 .turd_MacPorts
drwxr-xr-x   4 root  admin   128B Nov 22 14:39 engines-1.1
lrwxr-xr-x   1 root  wheel    14B Nov 22 14:28 lib -> /opt/local/lib
-rwxr-xr-x   1 root  admin   2.1M Sep 15 05:22 libcrypto.1.1.dylib
-rw-r--r--   1 root  admin   3.7M Sep 15 05:22 libcrypto.a
lrwxr-xr-x   1 root  admin    19B Sep 15 05:22 libcrypto.dylib -> libcrypto.1.1.dylib
-rwxr-xr-x   1 root  admin   479K Sep 15 05:22 libssl.1.1.dylib
-rw-r--r--   1 root  admin   704K Sep 15 05:22 libssl.a
lrwxr-xr-x   1 root  admin    16B Sep 15 05:22 libssl.dylib -> libssl.1.1.dylib
-rwxr-xr-x   1 root  admin    79K Oct  1  2018 libz.1.2.11.dylib
lrwxr-xr-x   1 root  admin    17B Oct  1  2018 libz.1.dylib -> libz.1.2.11.dylib
-rw-r--r--   1 root  admin    95K Oct  1  2018 libz.a
lrwxr-xr-x   1 root  admin    17B Oct  1  2018 libz.dylib -> libz.1.2.11.dylib
drwxr-xr-x   6 root  admin   192B Nov 22 14:39 pkgconfig
wsnnnn:~ travbrack$ ls -lha /usr/local/opt/openssl/lib
lrwxr-xr-x  1 root  admin    14B Nov 22 14:02 /usr/local/opt/openssl/lib -> /opt/local/lib

Reinicié mi terminal e intenté enter-pssession:

''
PS / Users / travbrack> enter-pssession nombre de computadora
enter-pssession: este conjunto de parámetros requiere WSMan y no se encontró ninguna biblioteca cliente WSMan compatible. WSMan no está instalado o no está disponible para este sistema.
En línea: 1 carácter: 1

  • enter-pssession nombre de computadora
  • ~ ~ ~ ~ ~ ~~~
  • CategoryInfo: InvalidArgument: (computername: String) [Enter-PSSession], PSRemotingTransportException
  • FullyQualifiedErrorId: CreateRemoteRunspaceFailed
    ''

Cualquier ayuda será muy apreciada.

Comentario de # 10600

Tuve el mismo problema, logré resolverlo vinculando una versión de openssl anterior de brew con brew switch openssl 1.0.2s

Para mí, cambiar a openssl 1.0.2r también funcionó. Tenía el openssl 1.1 instalado a través de brew por defecto pero no funcionaron

Hola chicos,

con respecto a la versión openssl, forcé a brew a usar la versión 1.02 y esto solucionó mis problemas de pwsh O365. Los comandos que ejecuté son ...

brew desinstalar openssl;
brew desinstalar openssl; (para asegurarse de que no quede nada por ahí)
brew instalar https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

Crédito: @kensoh

Gracias.

@leeharrison que funcionó para mí ejecutando mojave con pwsh 6.0.4. Probé todas las sugerencias anteriores y nada más funcionó para mí.

gracias @leeharrison También tuve este problema en High Sierra con pwsh 6.0.4 y tu sugerencia también me ha solucionado.

¿Podemos asegurarnos de que PowerShell en macOS no dependa de una versión más antigua e insegura de las bibliotecas OpenSSL? También es una mala práctica exigir explícitamente que Homebrew instale la biblioteca con una ruta codificada.

Hola chicos,

con respecto a la versión openssl, forcé a brew a usar la versión 1.02 y esto solucionó mis problemas de pwsh O365. Los comandos que ejecuté son ...

brew desinstalar openssl;
brew desinstalar openssl; (para asegurarse de que no quede nada por ahí)
brew instalar https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

Crédito: @kensoh

Gracias.

¡Esto definitivamente está funcionando bien! Gracias.

Hola chicos,

con respecto a la versión openssl, forcé a brew a usar la versión 1.02 y esto solucionó mis problemas de pwsh O365. Los comandos que ejecuté son ...

brew desinstalar openssl;
brew desinstalar openssl; (para asegurarse de que no quede nada por ahí)
brew instalar https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

Crédito: @kensoh

Gracias.

Esto funciona con Catalina 10.15.4

Hola chicos,
con respecto a la versión openssl, forcé a brew a usar la versión 1.02 y esto solucionó mis problemas de pwsh O365. Los comandos que ejecuté son ...
brew desinstalar openssl;
brew desinstalar openssl; (para asegurarse de que no quede nada por ahí)
brew instalar https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb
Crédito: @kensoh
Gracias.

Esto funciona con Catalina 10.15.4

¿Cómo logras que esto funcione sin romper otras herramientas instaladas?
Parece que solo puedo tener uno o cuando lo probé.
O deshaga la versión openssl, pwsh funciona pero iperf3 se rompe, por ejemplo.

Valor de nombre
---- -----
PSVersion 7.0.1
PSEdition Core
GitCommitId 7.0.1
OS Darwin 19.4.0 Darwin Kernel Versión 19.4.0: Mié 4 de marzo 22:28:40 PST 2020; raíz: xnu-6153.101.6 ~ 15 / RELEASE_X8…
Plataforma Unix
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0

¿Puedo decir que la degradación a una versión anterior, obsoleta y, por lo tanto, insegura de OpenSSL no es una solución real?

Apple ya tiene un montón de diferentes versiones de las bibliotecas OpenSSL instaladas en macOS.

¿Por qué PowerShell en macOS tiene rutas codificadas a las bibliotecas, en lugar de buscar la ruta de la biblioteca del sistema?

En la carpeta / usr / lib tenemos media docena de versiones diferentes que están esperando para ser utilizadas.
/usr/lib/libssl.0.9.8.dylib
/usr/lib/libssl.dylib
/usr/lib/libssl.35.dylib
/usr/lib/libssl.0.9.7.dylib
/usr/lib/libssl.43.dylib
/usr/lib/libssl.46.dylib
/usr/lib/libssl.44.dylib

¿Puedo decir que la degradación a una versión anterior, obsoleta y, por lo tanto, insegura de OpenSSL no es una solución real?

Apple ya tiene un montón de diferentes versiones de las bibliotecas OpenSSL instaladas en macOS.

¿Por qué PowerShell en macOS tiene rutas codificadas a las bibliotecas, en lugar de buscar la ruta de la biblioteca del sistema?

En la carpeta / usr / lib tenemos media docena de versiones diferentes que están esperando para ser utilizadas.
/usr/lib/libssl.0.9.8.dylib
/usr/lib/libssl.dylib
/usr/lib/libssl.35.dylib
/usr/lib/libssl.0.9.7.dylib
/usr/lib/libssl.43.dylib
/usr/lib/libssl.46.dylib
/usr/lib/libssl.44.dylib

Espero que comprenda que esas son versiones anteriores de OpenSSL. La nueva versión es v1.1.0 lanzada el 25 de agosto de 2016 - La versión 0.9.8 fue lanzada el 5 de julio de 2005. Terminé cambiándome a Linux de todos modos ya que no puedo lidiar con la implementación de OpenSSH en tantos servidores de Windows y mantenerlos. pero aún esperamos saber cómo kerberos será compatible con PSCore en futuras versiones y si hay alguna atención para ello en macOS.

@mikeyjoel Cree un nuevo problema y describa los escenarios remotos en los que desea trabajar.

@mikeyjoel Cree un nuevo problema y describa los escenarios remotos en los que desea trabajar.

No es necesario que cree un problema nuevo ya que ya se creó un problema: # 3708

En RHEL / Centos o Debian / Ubuntu Distribution, necesitará los siguientes paquetes:
estación de trabajo krb5
krb5-devel
gssntlmssp (requiere que epel-release esté instalado de antemano)
potencia Shell

Que están disponibles por defecto para cada distribución de Linux. Menciono esto porque es muy común que no solo administre Office365 sino también los servidores de Windows en su entorno.

¿Puedo decir que la degradación a una versión anterior, obsoleta y, por lo tanto, insegura de OpenSSL no es una solución real?
Apple ya tiene un montón de diferentes versiones de las bibliotecas OpenSSL instaladas en macOS.
¿Por qué PowerShell en macOS tiene rutas codificadas a las bibliotecas, en lugar de buscar la ruta de la biblioteca del sistema?
En la carpeta / usr / lib tenemos media docena de versiones diferentes que están esperando para ser utilizadas.
/usr/lib/libssl.0.9.8.dylib
/usr/lib/libssl.dylib
/usr/lib/libssl.35.dylib
/usr/lib/libssl.0.9.7.dylib
/usr/lib/libssl.43.dylib
/usr/lib/libssl.46.dylib
/usr/lib/libssl.44.dylib

Espero que comprenda que esas son versiones anteriores de OpenSSL. La nueva versión es v1.1.0 lanzada el 25 de agosto de 2016 - La versión 0.9.8 fue lanzada el 5 de julio de 2005. Terminé cambiándome a Linux de todos modos ya que no puedo lidiar con la implementación de OpenSSH en tantos servidores de Windows y mantenerlos. pero aún esperamos saber cómo kerberos será compatible con PSCore en futuras versiones y si hay alguna atención para ello en macOS.

Soy consciente de que estas son bibliotecas OpenSSL más antiguas; sin embargo, como pwsh actualmente solo funciona con bibliotecas más antiguas, ya están instaladas en macOS.

Así que no estoy seguro de dónde compartir esto, pero recientemente he estado jugando con OMI para intentar que funcione con una versión más nueva de OpenSSL (1.1.0), así como con la autenticación de Kerberos (y con suerte NTLM también) en una Mac. Hay algunos errores que he corregido en una compilación local, pero definitivamente es posible que funcione y estoy planeando crear una publicación / guía de blog para ayudar a las personas a hacer lo mismo para obtener PSRemoting a través de WinRM en sus dispositivos que no son de Windows. Hospedadores.

Me preguntaba qué tan interesado está el equipo de PowerShell en tratar de incorporar esos cambios en su compilación compilada de OMI que incluyen en su lanzamiento. Estoy pensando en intentar fusionarlos en el repositorio de OMI, pero no soy optimista de que realmente lo harán. La corrección de OpenSSL también debería permitirles eliminar el requisito de OpenSSL 1.0.0 que han documentado en sus pasos de instalación. ya que parece que solo las cosas del cliente PSRP requerían esas bibliotecas.

Este parecía ser el hilo más largo que pude encontrar sobre este problema, así que pensé que era mejor publicarlo aquí. Feliz de crear un nuevo problema para compilar los diversos problemas y soluciones / arreglos que he encontrado para que podamos documentarlo correctamente para que otros quieran probarlo.

Hola chicos,

con respecto a la versión openssl, forcé a brew a usar la versión 1.02 y esto solucionó mis problemas de pwsh O365. Los comandos que ejecuté son ...

brew desinstalar openssl;
brew desinstalar openssl; (para asegurarse de que no quede nada por ahí)
brew instalar https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

Crédito: @kensoh

Gracias.

Encontré una solución temporal y fácil. Gracias a @kensoh y @leeharrison por indicarme la dirección correcta:

1.) Verifique si una versión anterior aún no está instalada
ls -al /usr/local/Cellar/openssl*

2.) Instale la versión anterior (1.0.2t ahora mismo)
brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

3.) Cambiar a la versión anterior
brew switch openssl 1.0.2t

4.) Haz travesuras de Powershell

5.) Regrese a la nueva versión de OpenSSL (1.1.1g en mi caso, verifique el Paso 1. para encontrar su versión y la Carpeta de Bodega)
brew switch [email protected] 1.1.1g

Disfruta 😉

Por qué está cerrado, sigue siendo un problema. Estaba tratando de ejecutar: Enter-AzWebAppContainerPSSession pero obtuve el error WSMan y parece que este es un problema con PowerShell en Mac que requiere OpenSSL 1.0.0 mientras tengo 1.1.1g instalado.

ACTUALIZACIÓN: parece que WSMan está obsoleto y lo está dejando atrás, pero desafortunadamente no hay una línea de tiempo disponible:
https://github.com/PowerShell/PowerShell/issues/10600#issuecomment -610565488

Así que no estoy seguro de dónde compartir esto, pero recientemente he estado jugando con OMI para intentar que funcione con una versión más nueva de OpenSSL (1.1.0), así como con la autenticación de Kerberos (y con suerte NTLM también) en una Mac. Hay algunos errores que he corregido en una compilación local, pero definitivamente es posible que funcione y estoy planeando crear una publicación / guía de blog para ayudar a las personas a hacer lo mismo para obtener PSRemoting a través de WinRM en sus dispositivos que no son de Windows. Hospedadores.

Me preguntaba qué tan interesado está el equipo de PowerShell en tratar de incorporar esos cambios en su compilación compilada de OMI que incluyen en su lanzamiento. Estoy pensando en intentar fusionarlos en el repositorio de OMI, pero no soy optimista de que realmente lo harán. La corrección de OpenSSL también debería permitirles eliminar el requisito de OpenSSL 1.0.0 que han documentado en sus pasos de instalación. ya que parece que solo las cosas del cliente PSRP requerían esas bibliotecas.

Este parecía ser el hilo más largo que pude encontrar sobre este problema, así que pensé que era mejor publicarlo aquí. Feliz de crear un nuevo problema para compilar los diversos problemas y soluciones / arreglos que he encontrado para que podamos documentarlo correctamente para que otros quieran probarlo.

Hola @ jborean93, ¿

@alaurie, si no estás en macOS, estás de suerte. El repositorio omi realidad proporciona un paquete universal OpenSSL 1.0.0 y OpenSSL 1.1.0 en su página de lanzamientos . Para que quede claro, esto no es de ninguna manera una guía oficial y simplemente algo que yo mismo dirijo. Siga estas instrucciones bajo su propio riesgo y asegúrese de realizar una copia de seguridad de los archivos que reemplace.

Simplemente descargue el paquete ssl_110.ulinux.x64.rpm e instale o extraiga el RPM. A continuación, debe copiar o vincular simbólicamente /opt/omi/lib/libmi.so a /opt/microsoft/powershell/7/libmi.so . Desde allí, puede verificar que la biblioteca está vinculada con ldd

# Before (what's included with PowerShell)
jborean:~/dev/$ ldd /opt/microsoft/powershell/7/libmi.so
ldd: warning: you do not have execution permission for `/opt/microsoft/powershell/7/libmi.so'
        linux-vdso.so.1 (0x00007ffff6fa8000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fc517d50000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007fc517d49000)
        libpam.so.0 => /lib64/libpam.so.0 (0x00007fc517d37000)
        libssl.so.1.0.0 => /opt/microsoft/powershell/7/libssl.so.1.0.0 (0x00007fc517cc5000)
        libcrypto.so.1.0.0 => /opt/microsoft/powershell/7/libcrypto.so.1.0.0 (0x00007fc517a5a000)
        libc.so.6 => /lib64/libc.so.6 (0x00007fc517890000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fc517f6b000)
        libaudit.so.1 => /lib64/libaudit.so.1 (0x00007fc517862000)
        libz.so.1 => /lib64/libz.so.1 (0x00007fc517848000)
        libcap-ng.so.0 => /lib64/libcap-ng.so.0 (0x00007fc517840000)

# After (once you symlink libmi.so)
jborean:~/dev/$ ldd /opt/microsoft/powershell/7/libmi.so
        linux-vdso.so.1 (0x00007fffcffec000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fee443ed000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007fee443e6000)
        libpam.so.0 => /lib64/libpam.so.0 (0x00007fee443d4000)
        libssl.so.1.1 => /lib64/libssl.so.1.1 (0x00007fee4433d000)
        libcrypto.so.1.1 => /lib64/libcrypto.so.1.1 (0x00007fee44050000)
        libc.so.6 => /lib64/libc.so.6 (0x00007fee43e86000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fee44707000)
        libaudit.so.1 => /lib64/libaudit.so.1 (0x00007fee43e58000)
        libz.so.1 => /lib64/libz.so.1 (0x00007fee43e3e000)
        libcap-ng.so.0 => /lib64/libcap-ng.so.0 (0x00007fee43e36000)

Puede ver que ahora está vinculado a /lib64/libssl.so.1.1 y /lib64/libcrypto.so.1.1 . No tengo ni idea de por qué el paquete PowerShell todavía usa el paquete universal OpenSSL 1.0.0 cuando 1.1.0 está "oficialmente" disponible. Tal vez hubo algún problema en el pasado, pero una prueba básica funciona bien para mí. Al decir todo esto, probablemente todavía se encontrará con algunos problemas con libmi como

  • Negociar (Kerberos / NTLM) debería funcionar, pero he descubierto que solo lo hace en configuraciones muy específicas

    • De hecho, cambié el código en mi propia compilación de macOS para solucionar algunos de los problemas con la autenticación GSSAPI en el código OMI

    • Si bien teóricamente podría construir OMI usted mismo con esos cambios, eso es mucho más complicado

    • Afortunadamente, O365 / Exchange Online no usa la autenticación de negociación, sino solo la autenticación básica, por lo que no es un problema importante

  • OMI no ofrece ninguna validación de certificado sobre HTTPS

    • Debe asegurarse de agregar -SessionOption (New-PSSessionOption -SkipCACheck -SkipCNCheck) cuando cree su PSSession si está dispuesto a correr ese riesgo

Para las distribuciones basadas en Debian, el proceso será similar, solo necesita ser libmi de .deb y no .rpm . También tenga en cuenta que los caminos pueden ser diferentes. Para aquellos de ustedes en macOS, he descubierto que siempre necesitan compilar omi usted mismo, ya que no hay un paquete oficial disponible. Mi propia bifurcación omi contiene cambios en el código que le permitirán compilarlo en una versión más reciente de macOS. Incluso tengo una pequeña guía sobre cómo hacer todo eso para macOS aquí .

@ jborean93 Podría abrir un nuevo problema en el repositorio de PowerShell-Docs; tal vez el equipo de MSFT acepte agregar sus investigaciones como comentarios no oficiales / no admitidos en los documentos de PowerShell.

@iSazonov podrían ir un paso más allá y agrupar el libmi de la versión 1.1.0 de OMI para que todo este proceso sea innecesario para las distribuciones de Linux.

Soy reacio a intentar seguir adelante con esto oficialmente porque el consenso común es que WSMan en no Windows es EOL. Al intentar introducir cambios en OMI oficialmente para solucionar algunos problemas relacionados con la construcción en macOS o problemas generales de autenticación GSSAPI, me dijeron que no, gracias. Si alguien del equipo de PowerShell está dispuesto a investigar esto más a fondo, me complace compartir el trabajo que he realizado para macOS y buscar la actualización de la versión libmi que se incluye con PowerShell.

@ jborean93 Veo que se movieron a OMI 1.6 https://github.com/PowerShell/MMI/blob/master/build.sh#L4 y espero que MMI 2.0 sea compatible con OpenSSL 1.1.0.
El paquete PSRP todavía está en OMI 1.5 pero la versión 1.4 del paquete nuget https://github.com/PowerShell/psl-omi-provider/blob/master/omi.version : parece que el paquete OMI admite 1.1.0 pero aún está vinculado a OpenSSL 1.0.0 - ¿sí? y deberíamos pedirle a MSFT que actualice a más paquetes nuget nuevos vinculados a OpenSSL 1.1.0, ¿sí?

(El primer OMI con soporte para OpenSSL 1.1.0 es 1.4.0-6 https://github.com/microsoft/omi/releases/tag/v1.4.0-6)

GitHub
Contribuya al desarrollo de PowerShell / MMI creando una cuenta en GitHub.
GitHub
Biblioteca de soporte de PSRP Linux. Contribuya al desarrollo de PowerShell / psl-omi-provider creando una cuenta en GitHub.
GitHub
Open Management Infrastructure v1.4.0-6 Notas de la versión Problemas resueltos en esta versión Se limpiaron las pérdidas de memoria. Nuevas funciones Ejecutando la mayor parte de OMI como usuario no root. Por razones de seguridad signifi ...

Se está haciendo tarde para mí, así que lo veré de nuevo mañana. Sin embargo, solo algunas preguntas:

¿MMI se utiliza realmente para el cliente WSMan nativo? AFAIK, la dll nativa de WSMan real se llama a través de libmi través de OMI, parece que ese repositorio se usa para crear Microsoft.Management.Infrastructure.dll que es usado por los diversos componentes de CIM. Tal vez todavía estén vinculados de alguna manera, pero parece que para Enter-PSSession llama a un método en libpsrpclient que luego llama a varios métodos en libmi . Parece que para asegurarnos de obtener el binario más nuevo para libmi, necesitamos mirar el proceso de compilación y ver cómo se recopila realmente libmi durante el proceso de compilación.

El psl-omi-provider AFAIK es el complemento del servidor y no está relacionado con ninguna actividad basada en el cliente. Estoy seguro de que conseguir que funcione sería bueno, pero honestamente creo que el lado del cliente es la parte más importante de esta historia.

tenemos que mirar el proceso de construcción y ver cómo se recopila realmente libmi durante el proceso de construcción.

@PaulHigin ¿Podría explicar cómo obtenemos libmi en la distribución de PowerShell? Si proviene del paquete PSPR, ¿es posible actualizar el paquete a una versión más nueva de OMI (a 1.5 o 1.6)?

Ya no admitimos WinRM / OMI. Creo que parte de la razón es que la propia OMI ya no apoya. @ TravisEz13 puede proporcionar más información.

Mi pregunta proviene del hecho de que ya hay inconsistencias - MMI se movió a una nueva versión hace algunos meses pero PSPR no - y ambos hacen referencia a libmi. Espero que MSFT realice la actualización _minor_ del paquete PSPR y cierre muchas preguntas sobre el problema.

@PaulHigin ¿Podría explicar cómo obtenemos libmi en la distribución de PowerShell? Si viene del paquete PSPR, ¿es posible actualizar el paquete a una versión más reciente de OMI (a 1.5 o 1.6)?

Tendría que preguntarle al equipo de OMI por esto, y han dicho que no harán cambios ni lanzamientos para PowerShell.

@ TravisEz13 Mi pregunta sobre la actualización de la versión de OMI en https://github.com/PowerShell/psl-omi-provider/blob/master/omi.version

GitHub
Biblioteca de soporte de PSRP Linux. Contribuya al desarrollo de PowerShell / psl-omi-provider creando una cuenta en GitHub.

@ TravisEz13 es posible que el equipo de OMI no cree más versiones para usted, pero ¿qué le impide usar una de las versiones existentes? Parece que actualmente hace esto para MMI, entonces, ¿por qué el cliente WSMan es diferente? Claramente, puede usar una de las versiones más recientes que sea compatible con OpenSSL 1.1.xy eliminar el requisito de OpenSSL 1.0.x, que está desactualizado y probablemente no sea seguro.

Toda esta configuración puede estar en desuso, pero para mí está claro que todavía hay un caso de uso para usar WSMan. ¿Por qué no intentar que PowerShell sea más útil en plataformas que no son de Windows?

Claramente, puede usar una de las versiones más recientes que sea compatible con OpenSSL 1.1.xy eliminar el requisito de OpenSSL 1.0.x, que está desactualizado y probablemente no sea seguro.

@ jborean93 Esto es lo opuesto a claro. OMI está fundamentalmente roto. Si nos movemos a 1.1, romperemos (segfault pwsh) distribuciones que usan 1.0. No es un comienzo. OMI se niega a solucionar el problema fundamental de que no cargan las bibliotecas correctamente, lo que provoca segfaults.

Si nos movemos a 1.1, romperemos (segfault pwsh) distribuciones que usan 1.0

Entonces, ¿solo usa libmi que está compilado con OpenSSL 1.1 para las distribuciones que realmente vienen con OpenSSL 1.1? O mejor aún, tenga la compilación OpenSSL 1.1 como predeterminada y solo use OpenSSL 1.0 existente para los que no tienen 1.1. ¿Por qué deberíamos obstaculizar las compilaciones de distribuciones más nuevas que pueden aprovechar las bibliotecas más nuevas? Demonios, incluso algunas de las distribuciones más antiguas que son compatibles con PowerShell ofrecen ambas versiones de OpenSSL de alguna forma.

OMI se niega a solucionar el problema fundamental de que no cargan las bibliotecas correctamente, lo que provoca segfaults.

Si bien entiendo totalmente que no quiero asumir más trabajo técnicamente, no hay nada que le impida hacer las correcciones usted mismo y compilarlo específicamente para PowerShell.

¿También las fallas seg se relacionan con un problema conocido que no está relacionado con OpenSSL o simplemente un comentario de que intentar cargarlo sin las bibliotecas requeridas fallará? Si se trata de que las bibliotecas no están disponibles, entonces ya tiene ese problema en las distribuciones más nuevas que no vienen con OpenSSL 1.0.x. ¿Por qué deberían obstaculizarse las distribuciones más nuevas de la misma manera que afirma que las más antiguas se ven obstaculizadas si se actualiza el paquete?

Para un consumidor de PowerShell, todo esto es muy frustrante al ver que los componentes cruciales del lenguaje no están disponibles fuera de los hosts de Windows. No poder usar WSMan como cliente me impide no solo administrar los hosts de Windows existentes desde un host que no es Linux, sino que, como dice el título de este problema, me impide usar PowerShell para administrar servicios en línea como O365 o Exchange Online. Verse obligado a ejecutar Windows solo para administrar esos servicios realmente se opone al soporte multiplataforma que normalmente ofrece PowerShell. Sé que todo está obsoleto, pero sin una alternativa, la gente seguirá intentando que funcione y se frustre porque no funciona. Lo que realmente me molesta es que realmente puede funcionar, pero hay poco o ningún deseo por parte del equipo de PowerShell de que eso suceda. Parece que el equipo se contenta con mantener las cosas en el estado actual roto y ofrece lugares comunes para usar un transporte más nuevo como ssh que no funcionará para estas situaciones.

Lamento ser franco, realmente aprecio el tiempo y el esfuerzo que usted y el equipo dedican a este idioma. Este será mi último intento para intentar hacer que la configuración inmediata sea más útil para los usuarios finales. Si el consenso sigue siendo no, seguiré teniendo mis propias soluciones que otros pueden seguir si lo desean.

@ jborean93 Sus preguntas fueron hechas y respondidas previamente en este hilo.

Presenté https://github.com/MicrosoftDocs/PowerShell-Docs/issues/6491 para documentar que OMI ( libmi ) no es compatible con PowerShell.

Solo un FYI para cualquiera que todavía esté interesado en que OMI funcione en Linux / macOS. Acabo de abrir mi bifurcación del repositorio de OMI, que incluye una amplia gama de correcciones para que todo funcione correctamente en PowerShell. Eres más que bienvenido a echarle un vistazo y jugar con él si lo deseas. También escribí una publicación de blog llamada Wacky WSMan en Linux para cubrir mi viaje en la creación de la bifurcación y los diversos problemas que encontré.

Tenga en cuenta que esto no está afiliado a Microsoft ni al equipo de PowerShell / OMI de ninguna manera. Los cambios son míos y no vienen sin garantía de garantía de soporte. Haré todo lo posible para ayudar con cualquier problema que surja allí si todavía tiene problemas con la bifurcación.

Hoy fue la primera vez que usé PowerShell y ya estoy decepcionado.
Tres años y sin solución ...

PowerShell 7.0.3

Warning: [email protected] 1.1.1g is already installed and up-to-date
To reinstall 1.1.1g, run `brew reinstall [email protected]`
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection

New-PSSession: este conjunto de parámetros requiere WSMan y no se encontró ninguna biblioteca cliente WSMan compatible. WSMan no está instalado o no está disponible para este sistema.

Si dice que una dependencia de PowerShell está en desuso, pero esta dependencia es necesaria para configurar DKIM en Exchange 365, está diciendo que Exchange 365 está en desuso, incluidos todos estos documentos que utilizan el software roto:

https://docs.microsoft.com/en-us/microsoft-365/security/office-365-security/use-dkim-to-validate-outbound-email?view=o365-worldwide#SetUpDKIMO365

¿Necesito comprar una computadora con Windows solo para obtener algunas claves DKIM en Exchange?

Tres años siguen siendo un error, y en lugar de que Microsoft brinde una solución y actualice sus dependencias, las personas que no pertenecen a Microsoft deben proporcionar bifurcaciones y soluciones.

Evidencia de incapacidad.

¿Fue útil esta página
0 / 5 - 0 calificaciones