Ketika mengkonfigurasi WinRM di server dalam domain Active Directory, saya mengalami masalah aneh. Setelah layanan WinRM dikonfigurasikan dan diaktifkan di server, ia diizinkan untuk terhubung dari jarak jauh melalui Windows PowerShell Remoting, ketika mencoba untuk terhubung dari jarak jauh ke server ini menggunakan perintah Masukkan-PSSession msk-dp01
Kesalahan WinRM berikut muncul di konsol PowerShell:
baris: 1 karakter: 1
+ Masukkan-PSSession msk-dp01
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo: InvalidArgument: (msk-dp01: String) [Enter-PSSession], PSRemotingTransportException
+ FullyQualifiedErrorId: CreateRemoteRunspaceFailed
Di Windows versi bahasa Inggris, kesalahannya terlihat seperti ini:
PS C: \ Windows \ system32> Masukkan-PSSession msk-dp01Enter-PSSession: Menyambung ke server jauh msk-dp01 gagal dengan pesan galat berikut: Klien WinRM menerima status permintaan buruk HTTP (400), tetapi layanan jarak jauh tidak menyertakan informasi lain tentang penyebab kegagalan. Untuk informasi lebih lanjut, lihat topik help_Remote_Troubleshooting.
Pada baris: 1 char: 1
+ Masukkan-PSSession msk-dp01
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo: InvalidArgument: (msk-dp01: String) [Enter-PSSession], PSRemotingTransportException
+ FullyQualifiedErrorId: CreateRemoteRunspaceFailed
Pada saat yang sama, pada server, port WinRm (5985 / HTTP, 5986 / HTTPS) merespons dan menerima koneksi. Anda dapat memeriksa ketersediaan port WinRM TCP menggunakan utilitas PortQryV2 atau cmdlet PowerShell Test-NetConnection:
TNC msk-dp01 -port 5985
Ternyata, masalahnya ternyata terkait dengan token Kerberos besar milik pengguna, karena fakta bahwa pengguna berada di terlalu banyak grup domain. Kesalahan terjadi ketika ukuran token adalah 16 Kb (lihat artikel MaxTokenSize - Ukuran Token Kerberos). Dalam situasi kami, hal yang sama terjadi, server WinRm me-reset permintaan dari klien, karena ukuran header paket otentikasi melebihi 16 Kb. Dalam artikel dengan referensi, kami menyebutkan bahwa secara default, IIS menggunakan ukuran header HTTP tidak lebih dari 16 Kb, dan jika ada masalah dengan otentikasi HTTP karena token pengguna besar, itu harus ditingkatkan menjadi 64 Kb
Untuk memperbaiki masalah, Anda perlu mengurangi ukuran token (mengurangi jumlah grup keamanan yang menjadi anggota pengguna), dan jika ini tidak memungkinkan, maka dalam editor registri di server Anda perlu mengubah nilai parameter registri DWORD berikut di cabang HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services \ HTTP \ Parameters
- MaxFieldLength meningkat menjadi 0000ffff (65535)
- MaxRequestBytes meningkat menjadi 0000ffff (65535)
Tetap me-restart server dan memeriksa koneksi WinRm melalui Enter-PSSession dari klien.