Sesi PS jarak jauh gagal pada server non-domain

10

Saya mencoba untuk terhubung ke non-domain bergabung dengan server Win2008R2 jarak jauh menggunakan PS dari host Win8 (subnet yang sama, ini adalah VM lokal). Mencoba semua yang bisa kutemukan, tidak ada yang berhasil.

SERVER:

PS C:\Users\Administrator> winrm quickconfig
PS C:\Users\Administrator> enable-psremoting

KLIEN:

PS C:\scripts> $cred = get-credential -username "administrator" -message "Enter password"

PS C:\scripts> $sess = new-pssession -computername 10.10.106.2 -credential $cred -authentication default
new-pssession : [10.10.106.2] Connecting to remote server 10.10.106.2 failed with the following error message : The
WinRM client cannot process the request. If the authentication scheme is different from Kerberos, or if the client
computer is not joined to a domain, then HTTPS transport must be used or the destination machine must be added to the
TrustedHosts configuration setting. Use winrm.cmd to configure TrustedHosts. Note that computers in the TrustedHosts
list might not be authenticated. You can get more information about that by running the following command: winrm help
config. For more information, see the about_Remote_Troubleshooting Help topic.
At line:1 char:9
  + $sess = new-pssession -computername 10.10.106.2 -credential $cred -authenticatio ...
  + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [New-PSSession], PSRemotingTransportException
    + FullyQualifiedErrorId : ServerNotTrusted,PSSessionOpenFailed

PS C:\scripts> winrm set winrm/config/client '@{TrustedHosts="10.10.106.2"}'
WSManFault
Message = The client cannot connect to the destination specified in the request. Verify that the service on the dest
ination is running and is accepting requests. Consult the logs and documentation for the WS-Management service running o
n the destination, most commonly IIS or WinRM. If the destination is the WinRM service, run the following command on the
destination to analyze and configure the WinRM service: "winrm quickconfig".
Error number:  -2144108526 0x80338012
The client cannot connect to the destination specified in the request. Verify that the service on the destination is run
ning and is accepting requests. Consult the logs and documentation for the WS-Management service running on the destinat
ion, most commonly IIS or WinRM. If the destination is the WinRM service, run the following command on the destination t
o analyze and configure the WinRM service: "winrm quickconfig".

PS C:\scripts> $sess = new-pssession -computername 10.10.106.2 -credential $cred -usessl
new-pssession : [10.10.106.2] Connecting to remote server 10.10.106.2 failed with the following error message : WinRM
cannot complete the operation. Verify that the specified computer name is valid, that the computer is accessible over
the network, and that a firewall exception for the WinRM service is enabled and allows access from this computer. By
default, the WinRM firewall exception for public profiles limits access to remote computers within the same local
subnet. For more information, see the about_Remote_Troubleshooting Help topic.
At line:1 char:9
  + $sess = new-pssession -computername 10.10.106.2 -credential $cred -usessl
  +         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [New-PSSession], PSRemotin   gTransportException
    + FullyQualifiedErrorId : WinRMOperationTimeout,PSSessionOpenFailed

Oh dan RDP berfungsi dengan baik antara dua host dengan kredensial yang sama.

Bahkan ini berfungsi:

PS C:\scripts> Get-WinEvent -computername 10.10.106.2 -credential $cred
Dendory
sumber

Jawaban:

17

Di sisi klien

winrm quickconfig
winrm set winrm/config/client '@{TrustedHosts="Computer1,Computer2"}'

Di sisi server

Enable-PSRemoting -Force
winrm quickconfig

untuk https

winrm create winrm/config/Listener?Address=*+Transport=HTTPS @{Hostname="_";CertificateThumbprint="_"}

untuk http

winrm create winrm/config/Listener?Address=*+Transport=HTTP

Tes dengan

Test-WsMan ComputerName
Test-WsMan ComputerName -UseSSL

Sunting: Setel TrustedHosts dengan PowerShell

Atau dengan PowerShell (sebagai Admin)

Set-Item -Path WSMan:\localhost\Client\TrustedHosts -Value "Computer1,Computer2"

Dan periksa (tidak perlu Admin untuk itu)

Get-Item WSMan:\localhost\Client\TrustedHosts
dhcgn
sumber
5

Masalah Anda, seperti yang ditemukan di salah satu pesan kesalahan itu adalah:

Jika skema otentikasi berbeda dari Kerberos, atau jika komputer klien tidak bergabung ke domain, maka HTTPS transport harus digunakan atau mesin tujuan harus ditambahkan ke pengaturan konfigurasi TrustedHosts.

Pada dasarnya, Anda perlu mengatur WinRM untuk menggunakan HTTPS (bukan HTTP default), atau menambahkan mesin yang Anda sambungkan sebagai Host Tepercaya pada mesin yang Anda sambungkan.

HopelessN00b
sumber
Saya tidak dapat menggunakan perintah itu karena tidak ada sertifikat yang valid di server. Seperti yang Anda lihat di pertanyaan awal, saya mencoba menambahkan mesin ke host tepercaya di sisi klien. Apakah saya perlu melakukan hal yang sama di sisi server juga?
Dendory
RDP ke server jarak jauh, dan atur Host Tepercaya dari sesi RDP Anda, jika itu yang Anda inginkan. Saya pikir lebih mudah dan jauh lebih baik untuk mengatur WinRM / WinRS untuk menggunakan HTTPS daripada HTTP pada semua komputer yang saya kelola (untuk lebih banyak alasan daripada hanya masalah khusus ini), tapi saya rasa itu adalah panggilan Anda.
HopelessN00b
Ya tapi PS HTTPS rupanya membutuhkan sertifikat nyata (tidak ditandatangani sendiri) bersama dengan nama DNS publik. Mengapa tidak menggunakan enkripsi yang sama dengan RDP? Tidak perlu sesuatu yang istimewa untuk itu. Ini adalah VM lokal untuk pengembangan dan seperti itu, tidak ada pilihan, tidak bisa mendapatkan CA publik untuk itu.
Dendory
winrm set winrm/config/client '@{TrustedHosts="10.10.106.1"}'bekerja di server, tetapi saya masih mendapatkan pesan kesalahan yang sama pada klien saya, masih tidak terhubung.
Dendory
1
@Dendory WinRM atas HTTPS berfungsi dengan baik dengan sertifikat yang dikeluarkan oleh otoritas sertifikat internal, asalkan Anda memiliki pengaturan mesin dengan benar untuk mempercayai CA yang menerbitkan. Tidak memerlukan mesin untuk memiliki nama DNS eksternal yang valid, hanya saja Anda menggunakan nama DNS-nya, dan sertifikat juga melakukannya. Jika itu bukan pilihan, untuk alasan apa pun, Anda harus berharap ada orang lain yang dapat membantu Anda membuatnya bekerja hanya dengan entri Host Tepercaya (entri?) - Saya hanya tidak melakukannya dengan cara itu, karena itu terlalu menyebalkan, dan sepertinya tidak berhasil untukku.
HopelessN00b
1

Masalah saya adalah misalnya dihosting di AWS.

  • Saya harus membuka 5985 pada contoh grup keamanan
  • Saya harus memodifikasi aturan firewall untuk memungkinkan 5.985 untuk semua profil dan alamat jarak jauh

    New-NetFirewallRule -Name PsRemotingHttp -Direction Inbound -Action Allow -Protocol tcp -LocalPort 5985 -DisplayName PsRemotingHttp

Saya mengerjakan ini ketika saya menjalankan tes-wsman:

"Secara default, pengecualian firewall WinRM untuk profil publik membatasi akses ke komputer jarak jauh dalam subnet lokal yang sama."

avvi
sumber
0

Saya akhirnya mendapatkan milik saya untuk bekerja ... di mana xxx.xxx.xxx.xxx adalah Alamat IP.

PS C:\Users\Administrator> winrm quickconfig
WinRM service is already running on this machine.
WinRM is already set up for remote management on this computer.
PS C:\Users\Administrator> Enable-PSRemoting -Force
WinRM is already set up to receive requests on this computer.
WinRM is already set up for remote management on this computer.
PS C:\Users\Administrator> winrm set winrm/config/client '@{TrustedHosts="xxx.xxx.xxx.xxx"}'
Client
    NetworkDelayms = 5000
    URLPrefix = wsman
    AllowUnencrypted = false
    Auth
        Basic = true
        Digest = true
        Kerberos = true
        Negotiate = true
        Certificate = true
        CredSSP = false
    DefaultPorts
        HTTP = 5985
        HTTPS = 5986
    TrustedHosts = xxx.xxx.xxx.xxx

PS C:\Users\Administrator> Enter-PSSession  -ComputerName xxx.xxx.xxx.xxx -Credential "~\Administrator"
[xxx.xxx.xxx.xxx]: PS C:\Users\Administrator\Documents>
Jimdenver
sumber
0

Setelah berbulan-bulan masalah ini, bagi saya ternyata saya perlu menambahkan IP dari Remote Server dan itu Nama DNS ke host tepercaya. Menambahkan IP saja tidak cukup!

Rachel Nichols
sumber