Powershell: Tidak dapat tersambung ke Office 365 / Exchange Online dengan PowerShell

Dibuat pada 28 Nov 2017  ·  70Komentar  ·  Sumber: PowerShell/PowerShell

Saya tidak dapat tersambung ke Office 365 / Exchange Online dengan PowerShell.
Rupanya orang lain bisa dengan versi push terbaru, tetapi tidak berfungsi untuk saya di macOS 10.12 atau 10.13 dengan pwsh 6.0.0-rc

Saya mendapatkan kesalahan saat membuat New-PSSession. Bergantung pada sintaks yang tepat dari perintah yang saya gunakan, itu mengatakan New-PSSession: Set parameter ini memerlukan WSMan, dan tidak ada dukungan pustaka klien WSMan ditemukan, atau PowerShell berhenti dengan pengecualian yang tidak tertangani dan batalkan jebakan 6.

Langkah-langkah untuk mereproduksi

Instal PowerShell 6.0.0-rc di macOS 10.12 atau 10.13.
Gunakan Get-Credential untuk mendapatkan kredensial administrator Office 365, lalu gunakan New-PSSession untuk membuat sesi baru.

[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> ~]$ 

Anda akan mencatat dari prompt di baris terakhir di atas bahwa itu menjatuhkan saya kembali ke shell bash.

Perilaku yang diharapkan

Diharapkan New-PSSession akan berfungsi di macOS

Perilaku sebenarnya

Bergantung pada sintaks perintah yang tepat, New-PSSession mengembalikan pesan kesalahan:
New-PSSession: Parameter ini memerlukan WSMan, dan tidak ada library klien WSMan yang didukung
Atau, New-PSSession memiliki pengecualian yang tidak tertangani dan PowerShell berhenti dengan membatalkan jebakan 6.

Perbedaan dalam sintaks adalah dengan ConnectionUri - apakah ada garis miring pada uri atau tidak tampaknya membuat perbedaan. Dengan garis miring, saya mendapatkan kesalahan tentang WSM yang hilang. Tanpa garis miring, sesi PowerShell dibatalkan.

Dengan garis miring:

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

Tanpa garis miring:

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

Data lingkungan

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

Komentar yang paling membantu

Hai kawan,

mengenai versi openssl, saya memaksa brew untuk menggunakan ver 1.02 dan ini memperbaiki masalah pwsh O365 saya. Perintah yang saya jalankan adalah ...

brew uninstall openssl;
brew uninstall openssl; (untuk memastikan tidak ada yang tertinggal)
instal minuman https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

Kredit: @kensoh

Terima kasih.

Semua 70 komentar

Ini berfungsi untuk saya pada 10.13.1. Dapatkah Anda mengonfirmasi bahwa di $ PSHome Anda memiliki 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 Anda memiliki pustaka yang tepat dengan izin dan ukuran file yang tepat. Apakah DYLD_LIBRARY_PATH ditentukan? Berapakah hasil dari $env:DYLD_LIBRARY_PATH ?

Ini tidak ditentukan.
`` PowerShell
PowerShell v6.0.0-rc
Hak Cipta (c) Microsoft Corporation. Seluruh hak cipta.

https://aka.ms/pscore6-docs
Ketik 'bantuan' untuk mendapatkan bantuan.

PS / Pengguna / kai> $ env: DYLD_LIBRARY_PATH
PS / Pengguna / kai>
`` ''

Apa yang dikembalikan [System.Environment]::Is64BitProcess ?

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

@ kai-h coba (di terminal sebelum memulai 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

Terima kasih atas kegigihan Anda dengan ini. Saya masih mendapatkan kesalahan yang sama.

[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> ~]$ 

Saya ingin mengonfirmasi bahwa saya berhasil tersambung ke Office 365 dari PowerShell yang dihosting di mesin virtual Azure Ubuntu, menggunakan detail yang sama persis seperti yang saya coba di 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)

Apa yang akan saya lakukan untuk menghapus masalah yang mungkin terjadi dengan saya yang telah mengubah sesuatu di Mac saya yang bertentangan dengan ini adalah mengatur penginstalan bersih macOS 10.12 dan kemudian penginstalan baru PowerShell 6.0.0-rc dan uji jika berhasil malam ini.

Ini dup # 3606

Masalah # 3606 adalah jenis dup, tetapi mereka juga melihat kesalahan yang belum saya lihat terjadi dalam pengujian saya.

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

Saya telah dapat mereproduksi ini pada instalasi bersih macOS 10.12.6 dan instalasi bersih PowerShell 6.0.0-rc. Semuanya dengan pengaturan default, akun admin baru dibuat saat boot pertama dan tidak ada pengaturan yang diubah untuk aplikasi 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$ 

Berikut adalah hasil dari instalasi 10.12.6 yang bersih

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$ 

Ini mungkin terkait dengan masalah yang saya lihat yang didokumentasikan di # 4029
Seperti berdiri, PowerShell 6.0.0-rc memerlukan penggunaan pustaka OpenSSL yang diinstal oleh Homebrew

Untuk bantuan.

Saya memiliki masalah yang sama dalam kontainer buruh pelabuhan Debian 9. Setelah membaca komentar di atas saya melihat ada beberapa perpustakaan tautan rusak dan itu karena perpustakaan sistem lebih baru dari yang diharapkan. Kemudian, saya membuat beberapa tautan simbolik dan semuanya berjalan dengan baik.

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 root root 738444 2 Nov 11:29 libssl.a
lrwxrwxrwx 1 root root 13 Nov 2 11:29 libssl.so -> libssl.so.1.1
lrwxrwxrwx 1 root root 15 Feb 21 17:27 libssl.so.1.0.0 -> libssl.so.1.0.2
-rw-r - r-- 1 root root 431232 13 Des 22:09 libssl.so.1.0.2
-rw-r - r-- 1 root root 442920 2 Nov 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)_

Saya mengalami masalah serupa tetapi bagi saya masalahnya ada pada Parameter -AllowRedirection.

Jika saya mencoba di 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

Versi Powershell saya

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       

Hal yang sama di Powershell di 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 "

Saya mendapatkan peringatan tentang pengalihan tetapi saya berhasil mendapatkan koneksi.

PSversion saya di 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

Sekarang menjalankan perintah yang sama di linux tetapi menggunakan URI yang diarahkan ulang yang kami dapatkan di 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

Bagi saya ini masalahnya adalah bahwa paratemer allowredirection tidak berfungsi dengan benar.

Setelah menginstal PowerShell terbaru (v6.0.2) ini tidak lagi berfungsi untuk saya:

[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 Haruskah kita menganggap ini sebagai tidak stabil, sebagai UX buruk atau sebagai terdokumentasi buruk?

Apakah ini sesuatu yang diubah di versi terbaru sehingga otentikasi Dasar tidak berfungsi, atau lebih dari itu? Saya senang melakukan pengujian lagi jika diperlukan.

Pembaruan layanan ke 6.0.0 tidak memiliki perubahan apa pun yang mempengaruhi hal ini. Tidak yakin apakah ada perubahan di sisi server. cc @dantraMSFT

Di MacOS, saya melihat regresi di 6.0.1 dengan kesalahan ERROR_WSMAN_INVALID_SELECTORS yang konsisten. Saya tidak melihat masalah apa pun di 6.0.0 dan 6.0.2 dan libpsrpclient tidak berubah di rilis ini. Mesin tersebut belum diupgrade ke High Sierra jadi itu mungkin berkontribusi.

Pengujian saya dilakukan pada Mac yang baru saja ditingkatkan dari macOS 10.12 Sierra ke 10.13 High Sierra. Saya juga mengupgrade PowerShell dari versi apa pun yang saya miliki sebelumnya (kemungkinan 6.0.0 atau 6.0.1) ke versi terbaru 6.0.2. Saya juga memperbarui instalasi MacPorts saya ke versi terbaru dan memperbarui semua port saya. Saya memiliki symlink untuk PowerShell dari mana ia mengharapkan untuk menemukan pustaka OpenSSL seperti yang diinstal oleh Homebrew ke tempat mereka diinstal oleh MacPorts dan ini semua berfungsi sebelum pemutakhiran untuk menyambungkan ke Office 365

Saya telah menginstal PowerShell 6.0.2. Saya telah menginstal MacPorts dan membuat OpenSSL pkg dan menginstalnya. Ketika saya mencoba membuat $ Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionURI https://outlook.office365.com/powershell-liveid/ -Credential $ O365Cred -Authenticatin Basic -Allowredirection, dan saya mendapatkan kesalahan yang sama dengan New -PSSession: Set parameter ini memerlukan WSMan, dan tidak ditemukan library klien WSMan yang didukung.
$ Psversiontable

Nilai Nama
---- -----
PSVersion 6.0.2
PSEdition Core
GitCommitId v6.0.2
OS Darwin 17.5.0 Versi Kernel Darwin 17.5.0: Jum 13 Apr 19:32:32 PDT 2018; root: x ...
Platform Unix
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0 ...}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0

Apa yang harus saya lakukan untuk memperbaiki masalah WSMan?

Saya baru mengenal O365 dan PS di Mac. Saya menghadapi pesan kesalahan yang sama di sini. Akan sangat menghargai bantuan yang bisa saya dapatkan.

Nilai Nama
---- -----
PSVersion 6.0.2
PSEdition Core
GitCommitId v6.0.2
OS Darwin 17.6.0 Versi Kernel Darwin 17.6.0: Sel 8 Mei 15:22:16 PDT 2018; root: xnu-4570.61.1 ~ ...
Platform 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: Parameter ini memerlukan WSMan, dan tidak ada library klien WSMan yang didukung. WSMan tidak diinstal atau tidak tersedia untuk sistem ini.
Pada baris: 1 karakter: 12

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

PS / Pengguna / AdityaBhasin>

Versi Sistem: macOS 10.13.5 (17F77)

Apakah Anda sudah menginstal OpenSSL dengan Homebrew? Atau, jika Anda menggunakan MacPorts (yang saya sarankan), sudahkah Anda menautkan direktori pustaka OpenSSL ke tempat yang menurut PowerShell seharusnya?

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

WOW! Terima kasih banyak @ kai-h Saya melanjutkan untuk menjalankan perintah untuk memperbarui SSL terbuka dengan Homebrew dan sekarang tampaknya berfungsi untuk saya. Saya akan memperbarui di sini jika saya menghadapi tantangan baru. Terima kasih lagi!

Menginstal PowerShell v6.0.4 di OSX 10.13.3 memperbaiki masalah saya.

Pasang Tautan:
https://github.com/PowerShell/PowerShell/releases/download/v6.0.4/powershell-6.0.4-osx.10.12-x64.pkg

@ kai-h Bisakah Anda mengonfirmasi?

Membuka kembali masalah ini: versi 6.1.0 di Mojave menghasilkan masalah yang sama saat mencoba menyambungkan ke Office 365.

Ini juga menegur saya dengan Mojave

Ini berfungsi untuk saya dengan 6.0.4 di Mojave dengan pustaka OpenSSL yang diinstal melalui MacPorts, BUKAN Homebrew.

`` `` PowerShell
[ kai @ blackmac ~] $ pwsh
PowerShell v6.0.4
Hak Cipta (c) Microsoft Corporation. Seluruh hak cipta.

https://aka.ms/pscore6-docs
Ketik 'bantuan' untuk mendapatkan bantuan.

PS / Pengguna / kai> $ PSVersionTable

Nilai Nama
---- -----
PSVersion 6.0.4
PSEdition Core
GitCommitId v6.0.4
OS Darwin 18.0.0 Versi Kernel Darwin 18.0.0: Rabu 22 Agustus 20:13:40 PDT 2018; root: xnu-4903.201.2 ~ 1 / RELEASE_X86_64
Platform Unix
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0 ...}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0

PS / Pengguna / kai> office365.ps1

Permintaan kredensial PowerShell
Masukkan kredensial Anda.
Pengguna: [email protected]
Kata sandi untuk pengguna [email protected] : * *

PERINGATAN: Nama beberapa perintah yang diimpor dari modul 'tmp_nlc54neg.nu0' menyertakan kata kerja yang tidak disetujui yang mungkin membuatnya kurang dapat ditemukan. Untuk menemukan perintah dengan kata kerja yang tidak disetujui, jalankan kembali perintah Import-Module dengan parameter Verbose. Untuk daftar kata kerja yang disetujui, ketik Get-Verb. ModuleType Nama Versi ExportedCommands ---------- ------- ---- ---------------- Script 1.0 tmp_nlc54neg.nu0 {Add-AvailabilityAddressSpace , Add-DistributionGroupMember, Add-MailboxFolderPermission, Add-MailboxLocation ...}

PS / Pengguna / kai>
`` ''

Ini juga berfungsi untuk saya ketika saya meningkatkan ke 6.1.0 di Mojave.
Untuk mengulangi, saya menggunakan pustaka OpenSSH dari MacPorts dan telah menautkannya ke lokasi yang diharapkan PowerShell untuk melihatnya.
sudo ln -s /opt/local/lib /usr/local/opt/openssl/lib
Lalu, saat saya menjalankan pwsh
`` `` PowerShell
[ kai @ blackmac ~] $ pwsh
PowerShell 6.1.0
Hak Cipta (c) Microsoft Corporation. Seluruh hak cipta.

https://aka.ms/pscore6-docs
Ketik 'bantuan' untuk mendapatkan bantuan.

PS / Pengguna / kai> $ PSVersionTable

Nilai Nama
---- -----
PSVersion 6.1.0
PSEdition Core
GitCommitId 6.1.0
OS Darwin 18.0.0 Versi Kernel Darwin 18.0.0: Rabu 22 Agustus 20:13:40 PDT 2018; root: xnu-4903.201.2 ~ 1 / RELEASE_X86_64
Platform Unix
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0 ...}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0

PS / Pengguna / kai> office365.ps1

Permintaan kredensial PowerShell
Masukkan kredensial Anda.
Pengguna: [email protected]
Kata sandi untuk pengguna [email protected] : * *

PERINGATAN: Nama beberapa perintah yang diimpor dari modul 'tmp_kllnlbam.5cg' menyertakan kata kerja yang tidak disetujui yang mungkin membuatnya kurang dapat ditemukan. Untuk menemukan perintah dengan kata kerja yang tidak disetujui, jalankan kembali perintah Import-Module dengan parameter Verbose. Untuk daftar kata kerja yang disetujui, ketik Get-Verb. ModuleType Nama Versi ExportedCommands ---------- ------- ---- ---------------- Script 1.0 tmp_kllnlbam.5cg {Add-AvailabilityAddressSpace , Tambah-DistributionGroupMember, Tambah-MailboxFolderPermission, Tambah -...

PS / Pengguna / kai>

`` ''

Saya berhasil menggunakan OpenSSL versi MacPorts.

Saya mereproduksi ini di Mojave dengan Macports OpenSSL:
Mac OS Mojave 10.14.5
Powershell 6.2.3

alat xcode diinstal. Saya menginstal PowerShell dengan 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

Saya menginstal openssl menggunakan instruksi MS doc melalui MacPorts:

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

Saya membuat symlink:

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

Saya me-restart terminal saya, dan mencoba enter-pssession:

``
PS / Users / travbrack> enter-pssession computername
enter-pssession: Set parameter ini memerlukan WSMan, dan tidak ada library klien WSMan yang didukung. WSMan tidak diinstal atau tidak tersedia untuk sistem ini.
Pada baris: 1 karakter: 1

  • nama komputer enter-pssession
  • ~ ~ ~ ~ ~ ~~~
  • CategoryInfo: InvalidArgument: (computername: String) [Enter-PSSession], PSRemotingTransportException
  • FullyQualifiedErrorId: CreateRemoteRunspaceFailed
    ``

Bantuan apa pun akan sangat dihargai

Berkomentar dari # 10600

Saya memiliki masalah yang sama, berhasil menyelesaikannya dengan menautkan versi openssl yang lebih lama dari brew dengan brew switch openssl 1.0.2s

Bagi saya beralih ke openssl 1.0.2r bekerja juga. Saya telah menginstal openssl 1.1 melalui brew sebagai default tetapi tidak berfungsi

Hai kawan,

mengenai versi openssl, saya memaksa brew untuk menggunakan ver 1.02 dan ini memperbaiki masalah pwsh O365 saya. Perintah yang saya jalankan adalah ...

brew uninstall openssl;
brew uninstall openssl; (untuk memastikan tidak ada yang tertinggal)
instal minuman https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

Kredit: @kensoh

Terima kasih.

@leeharrison yang berhasil untuk saya menjalankan mojave dengan pwsh 6.0.4. Saya mencoba semua saran sebelumnya dan tidak ada yang berhasil untuk saya.

terima kasih @leeharrison Saya juga mengalami masalah ini di High Sierra dengan pwsh 6.0.4 dan saran Anda telah diperbaiki untuk saya juga.

Bisakah kami memastikan bahwa PowerShell di macOS tidak memiliki ketergantungan yang kuat pada versi pustaka OpenSSL yang lebih lama dan tidak aman? Ini juga merupakan praktik yang buruk untuk secara eksplisit mengharuskan perpustakaan diinstal oleh Homebrew dengan jalur hardcode.

Hai kawan,

mengenai versi openssl, saya memaksa brew untuk menggunakan ver 1.02 dan ini memperbaiki masalah pwsh O365 saya. Perintah yang saya jalankan adalah ...

brew uninstall openssl;
brew uninstall openssl; (untuk memastikan tidak ada yang tertinggal)
instal minuman https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

Kredit: @kensoh

Terima kasih.

Ini pasti bekerja dengan baik! Terima kasih.

Hai kawan,

mengenai versi openssl, saya memaksa brew untuk menggunakan ver 1.02 dan ini memperbaiki masalah pwsh O365 saya. Perintah yang saya jalankan adalah ...

brew uninstall openssl;
brew uninstall openssl; (untuk memastikan tidak ada yang tertinggal)
instal minuman https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

Kredit: @kensoh

Terima kasih.

Ini bekerja dengan Catalina 10.15.4

Hai kawan,
mengenai versi openssl, saya memaksa brew untuk menggunakan ver 1.02 dan ini memperbaiki masalah pwsh O365 saya. Perintah yang saya jalankan adalah ...
brew uninstall openssl;
brew uninstall openssl; (untuk memastikan tidak ada yang tertinggal)
instal minuman https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb
Kredit: @kensoh
Terima kasih.

Ini bekerja dengan Catalina 10.15.4

Bagaimana Anda mendapatkan ini untuk bekerja tanpa merusak alat lain yang diinstal minuman ??
Sepertinya saya hanya bisa memiliki salah satunya atau ketika saya mencobanya.
Baik memutar kembali versi openssl, pwsh berfungsi tetapi iperf3 rusak misalnya.

Nilai Nama
---- -----
PSVersion 7.0.1
PSEdition Core
GitCommitId 7.0.1
OS Darwin 19.4.0 Versi Kernel Darwin 19.4.0: Rab 4 Mar 22:28:40 PST 2020; root: xnu-6153.101.6 ~ 15 / RELEASE_X8…
Platform Unix
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0

Bisakah saya tunjukkan saja bahwa menurunkan versi ke versi OpenSSL yang lebih lama, usang, dan karena itu tidak aman bukanlah solusi nyata.

Apple sudah mendapatkan banyak versi perpustakaan OpenSSL yang diinstal di macOS.

Mengapa PowerShell di macOS memiliki jalur hardcode ke pustaka, alih-alih mencari jalur pustaka sistem.

Di folder / usr / lib kami memiliki setengah lusin versi berbeda yang menunggu untuk digunakan.
/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

Bisakah saya tunjukkan saja bahwa menurunkan versi ke versi OpenSSL yang lebih lama, usang, dan karena itu tidak aman bukanlah solusi nyata.

Apple sudah mendapatkan banyak versi perpustakaan OpenSSL yang diinstal di macOS.

Mengapa PowerShell di macOS memiliki jalur hardcode ke pustaka, alih-alih mencari jalur pustaka sistem.

Di folder / usr / lib kami memiliki setengah lusin versi berbeda yang menunggu untuk digunakan.
/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

Saya harap Anda memahami bahwa itu adalah rilis OpenSSL yang lebih lama. Rilis baru v1.1.0 dirilis 25 Agustus 2016 - Versi 0.9.8 dirilis 5 Juli 2005. Saya akhirnya beralih ke Linux karena saya tidak dapat menangani implementasi OpenSSH pada begitu banyak server Windows dan memeliharanya, tetapi masih menantikan bagaimana kerberos akan didukung untuk PSCore di rilis mendatang dan jika ada perawatan untuk itu di macOS.

@mikeyjoel Harap buat terbitan baru dan jelaskan skenario

@mikeyjoel Harap buat terbitan baru dan jelaskan skenario

Saya tidak perlu membuat masalah baru karena masalah sudah dibuat: # 3708

Pada Distribusi RHEL / Centos atau Debian / Ubuntu Anda memerlukan paket-paket berikut:
krb5-workstation
krb5-devel
gssntlmssp (membutuhkan epel-release untuk diinstal sebelumnya)
PowerShell

Yang tersedia secara default untuk setiap distribusi Linux. Saya mengemukakan ini karena sangat umum bahwa Anda tidak hanya mengelola Office365 tetapi juga Server Windows di lingkungan Anda.

Bisakah saya tunjukkan saja bahwa menurunkan versi ke versi OpenSSL yang lebih lama, usang, dan karena itu tidak aman bukanlah solusi nyata.
Apple sudah mendapatkan banyak versi perpustakaan OpenSSL yang diinstal di macOS.
Mengapa PowerShell di macOS memiliki jalur hardcode ke pustaka, alih-alih mencari jalur pustaka sistem.
Di folder / usr / lib kami memiliki setengah lusin versi berbeda yang menunggu untuk digunakan.
/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

Saya harap Anda memahami bahwa itu adalah rilis OpenSSL yang lebih lama. Rilis baru v1.1.0 dirilis 25 Agustus 2016 - Versi 0.9.8 dirilis 5 Juli 2005. Saya akhirnya beralih ke Linux karena saya tidak dapat menangani implementasi OpenSSH pada begitu banyak server Windows dan memeliharanya, tetapi masih menantikan bagaimana kerberos akan didukung untuk PSCore di rilis mendatang dan jika ada perawatan untuk itu di macOS.

Saya sangat menyadari bahwa ini adalah pustaka OpenSSL yang lebih lama - namun karena pwsh saat ini hanya berfungsi dengan pustaka yang lebih lama, mereka sudah diinstal di macOS.

Jadi saya tidak yakin di mana harus membagikan ini tetapi saya baru-baru ini bermain-main dengan OMI untuk mencoba dan membuatnya berfungsi dengan versi OpenSSL (1.1.0) yang lebih baru serta auth Kerberos (dan semoga NTLM juga) di sebuah Mac. Ada beberapa bug yang telah saya perbaiki pada build lokal tetapi pasti mungkin untuk membuatnya berfungsi dan saya berencana membuat posting blog / panduan untuk membantu orang melakukan hal yang sama untuk mendapatkan PSRemoting melalui WinRM di non-Windows mereka tuan rumah.

Saya bertanya-tanya seberapa tertarik tim PowerShell untuk mencoba memasukkan perubahan tersebut ke dalam kompilasi OMI yang mereka sertakan dalam rilisnya. Saya berencana untuk mencoba menggabungkan mereka ke dalam repo OMI tetapi saya tidak optimis mereka benar-benar akan berhasil masuk. Perbaikan OpenSSL juga harus memungkinkan mereka untuk menjatuhkan persyaratan pada OpenSSL 1.0.0 yang telah mereka dokumentasikan dalam langkah-langkah pemasangan mereka karena sepertinya hanya hal-hal klien PSRP yang memerlukan pustaka tersebut.

Ini tampaknya menjadi utas terpanjang yang dapat saya temukan tentang masalah ini jadi saya pikir yang terbaik adalah memposting di sini. Senang membuat masalah baru untuk menyusun berbagai masalah dan solusi / perbaikan yang saya temukan sehingga kami dapat mendokumentasikannya dengan benar untuk orang lain yang ingin mencobanya.

Hai kawan,

mengenai versi openssl, saya memaksa brew untuk menggunakan ver 1.02 dan ini memperbaiki masalah pwsh O365 saya. Perintah yang saya jalankan adalah ...

brew uninstall openssl;
brew uninstall openssl; (untuk memastikan tidak ada yang tertinggal)
instal minuman https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

Kredit: @kensoh

Terima kasih.

Menemukan solusi yang mudah dan sementara. Terima kasih kepada @kensoh dan @leeharrison karena telah mengarahkan saya ke arah yang benar:

1.) Periksa apakah versi lama belum diinstal
ls -al /usr/local/Cellar/openssl*

2.) Instal versi lama (1.0.2t sekarang)
brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

3.) Beralih ke versi lama
brew switch openssl 1.0.2t

4.) Lakukan shenanigans Powershell

5.) Beralih kembali ke versi OpenSSL baru (1.1.1g dalam kasus saya, periksa Langkah 1. untuk menemukan versi dan Folder Cellar Anda)
brew switch [email protected] 1.1.1g

Selamat menikmati 😉

Mengapa ini ditutup, ini masih menjadi masalah. Saya mencoba untuk mengeksekusi: Enter-AzWebAppContainerPSSession tetapi mendapat kesalahan WSMan dan tampaknya ini adalah masalah dengan PowerShell di Mac yang membutuhkan OpenSSL 1.0.0 sementara saya menginstal 1.1.1g.

PEMBARUAN - Sepertinya WSMan sudah usang dan Anda meninggalkannya, tapi sayangnya tidak ada garis waktu yang tersedia:
https://github.com/PowerShell/PowerShell/issues/10600#issuecomment -610565488

Jadi saya tidak yakin di mana harus membagikan ini tetapi saya baru-baru ini bermain-main dengan OMI untuk mencoba dan membuatnya berfungsi dengan versi OpenSSL (1.1.0) yang lebih baru serta auth Kerberos (dan semoga NTLM juga) di sebuah Mac. Ada beberapa bug yang telah saya perbaiki pada build lokal tetapi pasti mungkin untuk membuatnya berfungsi dan saya berencana membuat posting blog / panduan untuk membantu orang melakukan hal yang sama untuk mendapatkan PSRemoting melalui WinRM di non-Windows mereka tuan rumah.

Saya bertanya-tanya seberapa tertarik tim PowerShell untuk mencoba memasukkan perubahan tersebut ke dalam kompilasi OMI yang mereka sertakan dalam rilisnya. Saya berencana untuk mencoba menggabungkan mereka ke dalam repo OMI tetapi saya tidak optimis mereka benar-benar akan berhasil masuk. Perbaikan OpenSSL juga harus memungkinkan mereka untuk menjatuhkan persyaratan pada OpenSSL 1.0.0 yang telah mereka dokumentasikan dalam langkah-langkah pemasangan mereka karena sepertinya hanya hal-hal klien PSRP yang memerlukan pustaka tersebut.

Ini tampaknya menjadi utas terpanjang yang dapat saya temukan tentang masalah ini jadi saya pikir yang terbaik adalah memposting di sini. Senang membuat masalah baru untuk menyusun berbagai masalah dan solusi / perbaikan yang saya temukan sehingga kami dapat mendokumentasikannya dengan benar untuk orang lain yang ingin mencobanya.

Hai @ jborean93 apa pekerjaannya. Saya menggunakan Fedora 32 dan ini mengganggu saya dengan persyaratan OpenSSL 1.0.0.

@alaurie jika Anda tidak menggunakan macOS maka Anda agak beruntung. omi repo sebenarnya menyediakan paket universal OpenSSL 1.0.0 dan OpenSSL 1.1.0 di halaman rilisnya . Agar saya jelaskan, ini sama sekali bukan panduan resmi dan hanya sesuatu yang saya jalankan sendiri. Ikuti petunjuk ini dengan risiko Anda sendiri dan pastikan Anda mencadangkan file apa pun yang Anda ganti.

Cukup unduh paket ssl_110.ulinux.x64.rpm dan instal atau ekstrak RPM. Selanjutnya Anda perlu menyalin atau menghubungkan /opt/omi/lib/libmi.so ke /opt/microsoft/powershell/7/libmi.so . Dari sana Anda dapat memverifikasi bahwa perpustakaan itu ditautkan dengan 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)

Anda dapat melihat bahwa sekarang ditautkan ke /lib64/libssl.so.1.1 dan /lib64/libcrypto.so.1.1 . Saya tidak tahu mengapa paket PowerShell masih menggunakan paket universal OpenSSL 1.0.0 ketika 1.1.0 "secara resmi" tersedia. Mungkin ada beberapa masalah di masa lalu tetapi tes dasar berfungsi dengan baik untuk saya. Dengan mengatakan semua ini, Anda mungkin masih akan menemukan beberapa masalah dengan libmi like

  • Negosiasi (Kerberos / NTLM) seharusnya berfungsi tetapi saya telah menemukan itu hanya melakukannya dalam pengaturan yang sangat spesifik

    • Saya sebenarnya telah mengubah kode di macOS build saya sendiri untuk memperbaiki beberapa masalah dengan autentikasi GSSAPI di kode OMI

    • Meskipun secara teoritis Anda dapat membangun OMI sendiri dengan perubahan yang jauh lebih terlibat

    • Untungnya O365 / Exchange Online tidak menggunakan Negotiate auth tetapi hanya Basic auth jadi itu bukan masalah besar

  • OMI tidak menawarkan validasi sertifikat melalui HTTPS

    • Anda perlu memastikan bahwa Anda menambahkan -SessionOption (New-PSSessionOption -SkipCACheck -SkipCNCheck) saat Anda membuat PSSession jika Anda bersedia mengambil risiko itu

Untuk distro berbasis Debian, prosesnya akan serupa Anda hanya perlu libmi dari .deb dan bukan .rpm . Juga perlu diingat jalurnya mungkin berbeda. Bagi Anda yang menggunakan macOS, menurut saya Anda selalu perlu membuat omi sendiri karena tidak ada paket resmi yang tersedia. Fork omi saya sendiri berisi perubahan pada kode yang memungkinkan Anda membuatnya di versi macOS yang lebih baru. Saya bahkan mendapat panduan kecil tentang cara melakukan semua itu untuk macOS di sini .

@ jborean93 Anda dapat membuka terbitan baru di repo PowerShell-Docs - mungkin tim MSFT akan setuju untuk menambahkan penyelidikan Anda sebagai komentar tidak resmi / tidak didukung di dokumen PowerShell.

@iSazonov mereka dapat melangkah lebih jauh dan benar-benar membundel libmi dari rilis 1.1.0 OMI sehingga seluruh proses ini tidak diperlukan untuk distribusi Linux.

Saya enggan untuk mencoba dan melanjutkan ini lebih lanjut secara resmi karena konsensus umum adalah bahwa WSMan di non-Windows adalah EOL. Saat mencoba memperkenalkan perubahan ke OMI secara resmi untuk memperbaiki beberapa masalah saat membangun macOS atau masalah autentikasi GSSAPI umum, saya secara efektif diberi tahu tidak, terima kasih. Jika seseorang dari tim PowerShell ingin menyelidiki hal ini lebih lanjut, saya dengan senang hati membagikan pekerjaan yang telah saya lakukan untuk macOS dan mengupdate versi libmi yang dibundel dengan PowerShell.

@ jborean93 Saya melihat mereka pindah ke OMI 1.6 https://github.com/PowerShell/MMI/blob/master/build.sh#L4 dan saya berharap MMI 2.0 mendukung OpenSSL 1.1.0.
Paket PSRP masih dalam OMI 1.5 tetapi paket nuget versi 1.4 https://github.com/PowerShell/psl-omi-provider/blob/master/omi.version - sepertinya paket OMI mendukung 1.1.0 tetapi masih terhubung ke OpenSSL 1.0.0 - ya? dan kita harus meminta pembaruan MSFT ke paket nuget yang lebih baru yang terhubung ke OpenSSL 1.1.0 - ya?

(OMI pertama dengan dukungan OpenSSL 1.1.0 adalah 1.4.0-6 https://github.com/microsoft/omi/releases/tag/v1.4.0-6)

GitHub
Berkontribusi pada pengembangan PowerShell / MMI dengan membuat akun di GitHub.
GitHub
Pustaka dukungan PSRP Linux. Berkontribusi pada pengembangan PowerShell / psl-omi-provider dengan membuat akun di GitHub.
GitHub
Open Management Infrastructure v1.4.0-6 Masalah Catatan Rilis yang Diperbaiki dalam Kebocoran Memori Rilis ini telah dibersihkan. Fitur Baru Menjalankan sebagian besar OMI sebagai pengguna non-root. Untuk alasan keamanan, kami men ...

Ini sudah larut bagi saya jadi saya akan melihatnya lagi besok. Hanya beberapa pertanyaan:

Apakah MMI sebenarnya digunakan untuk klien WSMan asli. AFAIK dll asli WSMan dipanggil melalui libpsrpclient di Unix. Meskipun MMI sebenarnya menggunakan libmi melalui OMI, tampaknya repo tersebut digunakan untuk membuat Microsoft.Management.Infrastructure.dll yang digunakan oleh berbagai komponen CIM. Mungkin mereka masih terhubung entah bagaimana tetapi sepertinya untuk Enter-PSSession itu memanggil metode di libpsrpclient yang kemudian memanggil berbagai metode di libmi . Sepertinya untuk memastikan bahwa kita mendapatkan biner yang lebih baru untuk libmi, kita perlu melihat proses pembuatan dan melihat bagaimana libmi sebenarnya dikumpulkan selama proses pembuatan.

AFAIK psl-omi-provider adalah plugin server dan tidak terkait dengan aktivitas berbasis klien. Saya yakin mendapatkan itu bekerja akan menyenangkan tetapi jujur ​​saya pikir sisi klien adalah bagian terpenting dari cerita ini.

kita perlu melihat proses pembuatan dan melihat bagaimana libmi sebenarnya dikumpulkan selama proses pembuatan.

@PaulHigin Bisakah Anda menjelaskan bagaimana kami mendapatkan libmi di distributif PowerShell? Jika berasal dari paket PSPR, apakah mungkin memperbarui paket ke versi OMI yang lebih baru (ke 1.5 atau 1.6)?

Kami tidak lagi mendukung WinRM / OMI. Saya yakin sebagian alasannya adalah OMI sendiri tidak lagi mendukung. @ TravisEz13 mungkin dapat memberikan informasi lebih lanjut.

Pertanyaan saya berasal dari fakta bahwa sudah ada ketidakkonsistenan - MMI dipindahkan ke versi baru beberapa bulan yang lalu tetapi PSPR tidak - dan keduanya libmi referensi. Saya berharap MSFT membuat pembaruan _minor_ ke paket PSPR dan menutup banyak pertanyaan tentang masalah tersebut.

@PaulHigin Bisakah Anda menjelaskan bagaimana kami mendapatkan libmi dalam distribusi PowerShell? Jika berasal dari paket PSPR, apakah mungkin memperbarui paket ke versi OMI yang lebih baru (ke 1.5 atau 1.6)?

Anda harus meminta tim OMI untuk ini, dan mereka mengatakan mereka tidak akan membuat perubahan atau rilis untuk PowerShell.

@ TravisEz13 Saya bertanya tentang update versi OMI di https://github.com/PowerShell/psl-omi-provider/blob/master/omi.version

GitHub
Pustaka dukungan PSRP Linux. Berkontribusi pada pengembangan PowerShell / psl-omi-provider dengan membuat akun di GitHub.

@ TravisEz13 tim OMI tidak dapat membuat rilis lagi untuk Anda tetapi apa yang menghentikan Anda untuk menggunakan salah satu rilis yang ada sendiri. Sepertinya Anda saat ini melakukan ini untuk MMI jadi mengapa klien WSMan berbeda. Jelas Anda dapat menggunakan salah satu rilis baru yang kompatibel dengan OpenSSL 1.1.x dan menghapus persyaratan untuk OpenSSL 1.0.x yang sudah usang dan mungkin tidak aman.

Keseluruhan pengaturan ini mungkin sudah usang tetapi bagi saya jelas bahwa masih ada kasus penggunaan untuk menggunakan WSMan. Mengapa tidak mencoba dan membuat PowerShell lebih berguna di platform non-Windows.

Jelas Anda dapat menggunakan salah satu rilis baru yang kompatibel dengan OpenSSL 1.1.x dan menghapus persyaratan untuk OpenSSL 1.0.x yang sudah usang dan mungkin tidak aman.

@ jborean93 Ini adalah kebalikan dari clear. OMI secara fundamental rusak. Jika kita pindah ke 1.1, kita akan merusak distro (segfault pwsh) yang menggunakan 1.0. Ini bukan starter. OMI menolak untuk memperbaiki masalah mendasar bahwa mereka tidak memuat perpustakaan dengan benar, menyebabkan segfaults.

Jika kita pindah ke 1.1, kita akan memutuskan distro (segfault pwsh) yang menggunakan 1.0

Jadi hanya gunakan libmi yang dikompilasi terhadap OpenSSL 1.1 untuk distro yang sebenarnya datang dengan OpenSSL 1.1? Atau lebih baik lagi, buat OpenSSL 1.1 build sebagai default dan cukup gunakan OpenSSL 1.0 yang ada untuk yang tidak memiliki 1.1. Mengapa kita harus menghalangi build distro yang lebih baru yang dapat memanfaatkan libs yang lebih baru. Bahkan beberapa distro yang lebih tua yang didukung oleh PowerShell menawarkan versi OpenSSL dalam beberapa bentuk atau bentuk.

OMI menolak untuk memperbaiki masalah mendasar bahwa mereka tidak memuat perpustakaan dengan benar, menyebabkan segfaults.

Meskipun saya benar-benar memahami tidak ingin melakukan lebih banyak pekerjaan secara teknis, tidak ada yang menghentikan Anda untuk melakukan perbaikan sendiri dan menyusunnya secara khusus untuk PowerShell.

Juga apakah kesalahan seg dalam kaitannya dengan masalah yang diketahui yang tidak terkait dengan OpenSSL atau hanya komentar yang mencoba memuatnya tanpa lib yang diperlukan akan gagal? Jika ini tentang libs tidak tersedia maka Anda sudah memiliki masalah itu di distro yang lebih baru yang tidak datang dengan OpenSSL 1.0.x. Mengapa distro yang lebih baru dihalangi dengan cara yang sama Anda menyatakan bahwa distro yang lebih lama dihalangi jika paket diperbarui?

Dari pengguna PowerShell, ini semua sangat membuat frustrasi melihat bahwa komponen penting dari bahasa tidak tersedia di luar host Windows. Tidak dapat menggunakan WSMan sebagai klien menghentikan saya tidak hanya mengelola host Windows yang ada dari host non-Linux tetapi karena judul masalah ini menyatakan hal itu menghentikan saya menggunakan PowerShell untuk mengelola layanan online seperti O365 atau Exchange Online. Dipaksa untuk menjalankan Windows hanya untuk mengelola layanan tersebut benar-benar terbang dalam menghadapi dukungan lintas platform yang biasanya ditawarkan PowerShell. Saya tahu itu semua sudah usang tetapi tanpa alternatif di tempat Anda akan terus membuat orang mencoba dan membuatnya bekerja dan menjadi frustrasi karena tidak berhasil. Apa yang benar-benar mengganggu saya adalah bahwa itu benar-benar dapat berfungsi tetapi ada sedikit atau tidak ada keinginan dari tim PowerShell untuk benar-benar mewujudkannya. Sepertinya tim puas untuk menjaga hal-hal dalam keadaan rusak saat ini dan menawarkan basa-basi untuk menggunakan transportasi yang lebih baru seperti ssh yang tidak akan berfungsi untuk situasi ini.

Saya minta maaf karena terus terang, saya sangat menghargai waktu dan usaha Anda, dan tim, yang memanfaatkan bahasa ini. Ini hanya akan menjadi upaya terakhir saya untuk mencoba dan membuat pengaturan di luar kotak lebih dapat digunakan untuk pengguna akhir. Jika konsensus masih tidak ada, maka saya akan terus memiliki solusi sendiri yang dapat diikuti orang lain jika mereka mau.

@ jborean93 Pertanyaan Anda telah diajukan dan dijawab sebelumnya di utas ini.

Saya telah mengajukan https://github.com/MicrosoftDocs/PowerShell-Docs/issues/6491 ke dokumen bahwa OMI ( libmi ) tidak didukung oleh PowerShell.

Sekadar informasi bagi siapa saja yang masih tertarik untuk menjalankan OMI di Linux / macOS. Saya baru saja membuka cabang repo OMI saya yang mencakup berbagai perbaikan agar semuanya berfungsi dengan baik di PowerShell. Anda dipersilakan untuk melihatnya dan bermain-main dengannya jika Anda mau. Saya juga telah menulis posting blog berjudul Wacky WSMan di Linux untuk membahas perjalanan saya dalam membuat garpu dan berbagai masalah yang saya temui.

Harap diingat bahwa ini tidak berafiliasi dengan Microsoft atau tim PowerShell / OMI dengan cara apa pun. Perubahan adalah milik saya sendiri dan tidak disertai jaminan jaminan dukungan. Saya akan mencoba yang terbaik untuk membantu dengan masalah apa pun yang dibuka di sana jika Anda masih mengalami masalah dengan garpu.

Hari ini adalah pertama kalinya saya menggunakan PowerShell dan saya sudah kecewa.
Tiga tahun dan tidak ada perbaikan ...

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: Parameter ini memerlukan WSMan, dan tidak ada library klien WSMan yang didukung. WSMan tidak diinstal atau tidak tersedia untuk sistem ini.

Jika Anda mengatakan bahwa ketergantungan PowerShell tidak digunakan lagi tetapi ketergantungan ini diperlukan untuk mengonfigurasi DKIM di Exchange 365, Anda mengatakan bahwa Exchange 365 sudah tidak digunakan lagi termasuk semua dokumen ini yang menggunakan perangkat lunak yang rusak:

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

Apakah saya perlu membeli komputer Windows hanya untuk mendapatkan beberapa kunci DKIM ke Exchange?

Tiga tahun masih bug, dan alih-alih Microsoft menghadirkan solusi dan memperbarui dependensi mereka, orang-orang non-Microsoft perlu menyediakan garpu dan solusi.

Bukti ketidakmampuan.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat