about_Remote_Troubleshooting
Deskripsi singkat
Menjelaskan cara memecahkan masalah operasi jarak jauh di PowerShell.
Deskripsi panjang
Sebelum menggunakan powerShell jarak jauh, lihat about_Remote dan about_Remote_Requirements untuk panduan tentang konfigurasi dan penggunaan dasar.
Anda harus memiliki hak administratif untuk melihat atau mengubah setelan untuk komputer lokal di dalam WSMan:
kandar. Ini termasuk perubahan pada konfigurasi sesi, host tepercaya, port, atau pendengar.
Anda harus menjalankan PowerShell dengan opsi Jalankan sebagai administrator .
Cara menjalankan sebagai administrator
Untuk kesalahan:
KESALAHAN: Akses ditolak. Anda perlu menjalankan cmdlet ini dari proses yang ditingkatkan.
Untuk memulai Windows PowerShell dengan opsi Jalankan sebagai administrator , klik kanan ikon PowerShell di Menu Mulai dan pilih Jalankan sebagai administrator.
Cara mengaktifkan jarak jauh
Untuk kesalahan:
- KESALAHAN: AKSES DITOLAK
- KESALAHAN: Koneksi ke host jarak jauh ditolak. Verifikasi bahwa layanan WS-Management berjalan pada host jarak jauh dan dikonfigurasi untuk mendengarkan permintaan pada port dan URL HTTP yang benar.
Untuk menerima perintah jarak jauh, remoting PowerShell harus diaktifkan di komputer. Jarak jauh Windows PowerShell diaktifkan secara default pada Windows Server 2012 dan rilis Windows Server yang lebih baru. Anda dapat menjalankan Enable-PSRemoting
untuk mengaktifkan kembali jarak jauh jika dinonaktifkan. Untuk informasi selengkapnya, lihat Enable-PSRemoting.
Cara mengaktifkan jarak jauh di perusahaan
Untuk kesalahan:
- KESALAHAN: AKSES DITOLAK
- KESALAHAN: Koneksi ke host jarak jauh ditolak. Verifikasi bahwa layanan WS-Management berjalan pada host jarak jauh dan dikonfigurasi untuk mendengarkan permintaan pada port dan URL HTTP yang benar.
Untuk mengaktifkan satu komputer untuk menerima perintah PowerShell jarak jauh dan menerima koneksi, gunakan Enable-PSRemoting
cmdlet .
Untuk mengaktifkan jarak jauh untuk beberapa komputer di perusahaan, Anda dapat menggunakan opsi berskala berikut.
- Aktifkan kebijakan Izinkan konfigurasi otomatis grup listener untuk mengonfigurasi listener untuk jarak jauh.
- Konfigurasikan dan aktifkan kebijakan grup Windows Firewall: Izinkan Pengecualian Port Lokal.
- Atur jenis startup layanan WinRM ke
Automatic
dan mulai layanan.
Cara mengaktifkan pendengar dengan menggunakan kebijakan grup
Untuk kesalahan:
- KESALAHAN: AKSES DITOLAK
- KESALAHAN: Koneksi ke host jarak jauh ditolak. Verifikasi bahwa layanan WS-Management berjalan pada host jarak jauh dan dikonfigurasi untuk mendengarkan permintaan pada port dan URL HTTP yang benar.
Aktifkan kebijakan Izinkan konfigurasi otomatis listener untuk mengonfigurasi listener untuk semua komputer di domain.
Kebijakan ini ditemukan di jalur Kebijakan Grup berikut:
Computer Configuration\Administrative Templates\Windows Components
\Windows Remote Management (WinRM)\WinRM service
Aktifkan kebijakan dan tentukan filter IPv4 dan IPv6. Kartubebas (*
) diizinkan.
Cara mengaktifkan jarak jauh pada jaringan publik
Enable-PSRemoting
mengembalikan kesalahan ini ketika jaringan lokal bersifat publik dan parameter SkipNetworkProfileCheck tidak digunakan dalam perintah.
KESALAHAN: Tidak dapat memeriksa status firewall
Pada versi server Windows, Enable-PSRemoting
berhasil pada semua profil jaringan. Ini membuat aturan firewall yang memungkinkan akses jarak jauh ke jaringan privat dan domain ("Rumah" dan "Kerja"). Untuk jaringan publik, ini membuat aturan firewall yang memungkinkan akses jarak jauh dari subnet lokal yang sama.
Pada versi klien Windows, Enable-PSRemoting
berhasil pada jaringan privat dan domain. Secara default, ini gagal di jaringan publik, tetapi jika Anda menggunakan parameter SkipNetworkProfileCheck , Enable-PSRemoting
berhasil dan membuat aturan firewall yang memungkinkan lalu lintas dari subnet lokal yang sama.
Catatan
Di Windows PowerShell 2.0, pada komputer yang menjalankan versi server Windows, Enable-PSRemoting
membuat aturan firewall yang memungkinkan akses jarak jauh pada jaringan privat, domain, dan publik. Pada komputer yang menjalankan versi klien Windows, Enable-PSRemoting
buat aturan firewall yang mengizinkan akses jarak jauh hanya pada jaringan privat dan domain.
Untuk menghapus pembatasan subnet lokal pada jaringan publik dan mengizinkan akses jarak jauh dari lokasi mana pun, jalankan perintah berikut:
Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP-PUBLIC" -RemoteAddress Any
Set-NetFirewallRule
Cmdlet diekspor oleh modul NetSecurity.
Catatan
Nama aturan firewall bisa berbeda untuk versi Windows yang berbeda. Gunakan Get-NetFirewallRule
untuk melihat daftar aturan. Sebelum mengaktifkan aturan firewall, lihat pengaturan keamanan dalam aturan untuk memverifikasi bahwa konfigurasi sesuai untuk lingkungan Anda.
Cara mengaktifkan pengecualian firewall dengan menggunakan kebijakan grup
Untuk kesalahan:
- KESALAHAN: AKSES DITOLAK
- KESALAHAN: Koneksi ke host jarak jauh ditolak. Verifikasi bahwa layanan WS-Management berjalan pada host jarak jauh dan dikonfigurasi untuk mendengarkan permintaan pada port dan URL HTTP yang benar.
Gunakan kebijakan Windows Firewall: Izinkan pengecualian port lokal untuk mengaktifkan pengecualian firewall di semua komputer dalam domain.
Kebijakan ini terletak di jalur Kebijakan Grup berikut:
Computer Configuration\Administrative Templates\Network
\Network Connections\Windows Firewall\Domain Profile
Kebijakan ini memungkinkan anggota grup Administrator membuat pengecualian firewall untuk layanan Windows Remote Management (WinRM).
Jika konfigurasi kebijakan salah, Anda mungkin menerima kesalahan berikut:
Klien tidak dapat tersambung ke tujuan yang ditentukan dalam permintaan. Verifikasi bahwa layanan di tujuan sedang berjalan dan menerima permintaan.
Kesalahan konfigurasi dalam kebijakan menghasilkan nilai kosong untuk properti ListeningOn . Gunakan perintah berikut untuk memeriksa nilai.
Get-WSManInstance winrm/config/listener -Enumerate
cfg : http://schemas.microsoft.com/wbem/wsman/1/config/listener
xsi : http://www.w3.org/2001/XMLSchema-instance
Source : GPO
lang : en-US
Address : *
Transport : HTTP
Port : 5985
Hostname :
Enabled : true
URLPrefix : wsman
CertificateThumbprint :
ListeningOn : {}
Cara mengatur jenis startup layanan WinRM
Untuk kesalahan:
KESALAHAN: AKSES DITOLAK
PowerShell jarak jauh tergantung pada layanan Windows Remote Management (WinRM). Layanan harus berjalan untuk mendukung perintah jarak jauh.
Pada versi server Windows, jenis startup layanan WinRM adalah Automatic
.
Namun, pada versi klien Windows, layanan WinRM dinonaktifkan secara default.
Gunakan contoh berikut untuk mengatur jenis startup layanan WinRM ke Automatic
dan memulai layanan. Parameter ComputerName menerima beberapa nilai.
$invokeCimMethodSplat = @{
ComputerName = 'Server01', 'Server02'
Query = 'Select * From Win32_Service Where Name = "WinRM"'
MethodName = 'ChangeStartMode'
Arguments = @{StartMode = 'Automatic'}
}
Invoke-CimMethod @invokeCimMethodSplat
Cara membuat ulang konfigurasi sesi default
Untuk kesalahan:
KESALAHAN: AKSES DITOLAK
Saat Anda menggunakan Enable-PSRemoting
, ini membuat konfigurasi sesi default di komputer lokal. Pengguna jarak jauh menggunakan konfigurasi sesi ini setiap kali perintah jarak jauh tidak menyertakan parameter ConfigurationName .
Jika konfigurasi default di komputer tidak terdaftar atau dihapus, gunakan Enable-PSRemoting
cmdlet untuk membuatnya kembali. Anda dapat menggunakan cmdlet ini berulang kali. Ini tidak menghasilkan kesalahan jika fitur sudah dikonfigurasi.
Jika Anda mengubah konfigurasi sesi default dan ingin memulihkan konfigurasi sesi asli, Anda dapat menghapus dan membuat ulang konfigurasi.
Unregister-PSSessionConfiguration
Gunakan cmdlet untuk menghapus konfigurasi sesi yang diubah. Gunakan Enable-PSRemoting
untuk memulihkan konfigurasi sesi asli. Enable-PSRemoting
tidak mengubah konfigurasi sesi yang ada.
Catatan
Saat Enable-PSRemoting
memulihkan konfigurasi sesi default, konfigurasi tersebut tidak membuat deskriptor keamanan eksplisit untuk konfigurasi. Sebagai gantinya, konfigurasi mewarisi deskriptor keamanan RootSDDL, yang aman secara default.
Untuk melihat deskriptor keamanan RootSDDL , ketik:
Get-Item wsman:\localhost\Service\RootSDDL
Untuk mengubah RootSDDL, gunakan Set-Item
cmdlet di WSMan:
drive. Untuk mengubah pendeskripsi keamanan konfigurasi sesi, gunakan Set-PSSessionConfiguration
cmdlet dengan parameter SecurityDescriptorSDDL atau ShowSecurityDescriptorUI .
Untuk informasi selengkapnya tentang WSMan:
drive, lihat about_WSMan_Provider.
Cara memberikan kredensial administrator
Untuk kesalahan:
KESALAHAN: AKSES DITOLAK
Anda harus menjadi anggota grup Administrator yang tersambung ke titik akhir sesi jarak jauh default. Anda dapat menggunakan parameter Kredensial cmdlet New-PSSession
, Enter-PSSession
atau Invoke-Command
untuk menyambungkan ke titik akhir jarak jauh menggunakan kredensial alternatif.
Contoh berikut menunjukkan cara memberikan kredensial untuk pengguna admin.
Invoke-Command -ComputerName Server01 -Credential Domain01\Admin01
Untuk informasi selengkapnya tentang parameter Kredensial, lihat bantuan untuk New-PSSession, Enter-PSSession, atau Invoke-Command.
Cara mengaktifkan jarak jauh untuk pengguna non-administratif
Untuk kesalahan:
KESALAHAN: AKSES DITOLAK
Secara default, hanya anggota grup Administrator di komputer yang memiliki izin untuk menggunakan konfigurasi sesi default. Oleh karena itu, hanya anggota grup Administrator yang dapat tersambung ke komputer dari jarak jauh.
Untuk mengizinkan pengguna lain tersambung ke komputer lokal, berikan pengguna izin Jalankan ke konfigurasi sesi default di komputer lokal.
Contoh berikut membuka lembar properti yang memungkinkan Anda mengubah deskriptor keamanan konfigurasi sesi default Microsoft.PowerShell
di komputer lokal.
Set-PSSessionConfiguration Microsoft.PowerShell -ShowSecurityDescriptorUI
Untuk informasi selengkapnya, lihat about_Session_Configurations.
Cara mengaktifkan jarak jauh untuk administrator di domain lain
Untuk kesalahan:
KESALAHAN: AKSES DITOLAK
Ketika pengguna di domain lain adalah anggota grup Administrator di komputer lokal, pengguna tidak dapat tersambung ke komputer lokal dari jarak jauh dengan hak istimewa Administrator. Secara default, koneksi jarak jauh dari domain lain hanya berjalan dengan token hak istimewa pengguna standar.
Anda dapat menggunakan entri registri LocalAccountTokenFilterPolicy untuk mengubah perilaku default dan mengizinkan pengguna jarak jauh yang merupakan anggota grup Administrator untuk dijalankan dengan hak istimewa Administrator.
Perhatian
Entri LocalAccountTokenFilterPolicy menonaktifkan pembatasan jarak jauh kontrol akun pengguna (UAC) untuk semua pengguna dari semua komputer yang terpengaruh. Pertimbangkan implikasi pengaturan ini dengan hati-hati sebelum mengubah kebijakan.
Gunakan perintah berikut untuk mengatur nilai registri LocalAccountTokenFilterPolicy ke 1.
$newItemPropertySplat = @{
Name = 'LocalAccountTokenFilterPolicy'
Path = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System'
PropertyType = 'DWord'
Value = 1
}
New-ItemProperty @newItemPropertySplat
Cara menggunakan alamat IP dalam perintah jarak jauh
Untuk kesalahan:
KESALAHAN: Klien WinRM tidak dapat memproses permintaan. Jika skema autentikasi berbeda dengan Kerberos, atau jika komputer klien tidak bergabung ke domain, maka transportasi HTTPS harus digunakan atau komputer tujuan harus ditambahkan ke pengaturan konfigurasi TrustedHosts.
Parameter ComputerName dari New-PSSession
cmdlet , Enter-PSSession
dan Invoke-Command
menerima alamat IP sebagai nilai yang valid. Namun, karena autentikasi Kerberos tidak mendukung alamat IP. Saat Anda menentukan alamat IP, autentikasi NTLM digunakan.
Untuk mendukung autentikasi NTLM, Anda harus memenuhi persyaratan berikut:
- Konfigurasikan komputer untuk transportasi HTTPS atau tambahkan alamat IP komputer jarak jauh ke daftar TrustedHosts di komputer lokal.
- Gunakan parameter Kredensial di semua perintah jarak jauh. Ini diperlukan bahkan ketika Anda terhubung sebagai pengguna saat ini.
Cara menyambungkan dari jarak jauh dari komputer berbasis grup kerja
Untuk kesalahan
KESALAHAN: Klien WinRM tidak dapat memproses permintaan. Jika skema autentikasi berbeda dengan Kerberos, atau jika komputer klien tidak bergabung ke domain, maka transportasi HTTPS harus digunakan atau komputer tujuan harus ditambahkan ke pengaturan konfigurasi TrustedHosts.
Saat komputer lokal tidak berada di domain, Anda harus memenuhi persyaratan berikut:
- Konfigurasikan komputer untuk transportasi HTTPS atau tambahkan alamat IP komputer jarak jauh ke daftar TrustedHosts di komputer lokal.
- Verifikasi bahwa kata sandi diatur pada komputer berbasis grup kerja. Jika kata sandi tidak diatur atau nilai kata sandi kosong, Anda tidak dapat menjalankan perintah jarak jauh.
- Gunakan parameter Kredensial di semua perintah jarak jauh. Ini diperlukan bahkan ketika Anda terhubung sebagai pengguna saat ini.
Cara menambahkan komputer ke daftar host tepercaya
Item TrustedHosts dapat berisi daftar nama komputer, alamat IP, dan nama domain yang sepenuhnya memenuhi syarat yang dipisahkan koma. Kartubebas diizinkan.
Untuk melihat atau mengubah daftar host tepercaya, gunakan WSMan:
drive. Item TrustedHost ada di simpul WSMan:\localhost\Client
. Hanya anggota grup Administrator pada komputer yang memiliki izin untuk mengubah daftar host tepercaya pada komputer.
Perhatian
Nilai yang Anda tetapkan untuk item TrustedHosts memengaruhi semua pengguna komputer.
Untuk melihat daftar host tepercaya, gunakan perintah berikut:
Get-Item wsman:\localhost\Client\TrustedHosts
Contoh berikut menggunakan karakter kartubebas (*
) untuk menambahkan semua komputer ke daftar host tepercaya.
Set-Item wsman:localhost\client\trustedhosts -Value *
Anda juga dapat menggunakan karakter kartubebas (*
) untuk menambahkan semua komputer di domain tertentu ke daftar host tepercaya. Misalnya, perintah berikut menambahkan semua komputer di domain Fabrikam.
Set-Item wsman:localhost\client\trustedhosts *.fabrikam.com
Contoh berikut mengatur daftar host tepercaya ke satu komputer.
$server = 'Server01.Domain01.Fabrikam.com'
Set-Item wsman:\localhost\Client\TrustedHosts -Value $server
Untuk menambahkan nama komputer ke daftar host tepercaya yang ada, pertama-tama simpan nilai saat ini dalam variabel. Kemudian atur nilai ke string yang berisi daftar yang dipisahkan koma yang menyertakan nilai saat ini dan baru.
Contoh berikut menambahkan Server01 ke daftar host tepercaya yang sudah ada.
$newServer = 'Server01.Domain01.Fabrikam.com'
$curValue = (Get-Item wsman:\localhost\Client\TrustedHosts).Value
Set-Item wsman:\localhost\Client\TrustedHosts -Value "$curValue, $newServer"
Untuk menambahkan alamat IP komputer tertentu ke daftar host tepercaya, gunakan format perintah berikut:
Set-Item wsman:\localhost\Client\TrustedHosts -Value <IP Address>
Contohnya:
Set-Item wsman:\localhost\Client\TrustedHosts -Value 172.16.0.0
Untuk menambahkan komputer ke daftar TrustedHosts komputer jarak jauh, gunakan Connect-WSMan
untuk menyambungkan ke WSMan:
drive komputer jarak jauh yang digunakan Set-Item
untuk menambahkan komputer.
Untuk informasi selengkapnya tentang, lihat bantuan untuk Connect-WSMan.
Cara mengonfigurasi jarak jauh pada port alternatif
Untuk kesalahan:
KESALAHAN: Koneksi ke host jarak jauh yang ditentukan ditolak. Verifikasi bahwa layanan WS-Management berjalan pada host jarak jauh dan dikonfigurasi untuk mendengarkan permintaan pada port dan URL HTTP yang benar.
PowerShell jarak jauh menggunakan port 80 untuk transportasi HTTP secara default. Port default digunakan setiap kali pengguna tidak menentukan parameter ConnectionURI atau Port dalam perintah jarak jauh.
Gunakan Set-Item
cmdlet untuk mengubah nilai Port di simpul daun pendengar.
Misalnya, perintah berikut mengubah port default menjadi 8080.
Set-Item wsman:\localhost\listener\listener*\port -Value 8080
Cara mengonfigurasi jarak jauh dengan server proksi
Untuk kesalahan:
KESALAHAN: Klien tidak dapat tersambung ke tujuan yang ditentukan dalam permintaan. Verifikasi bahwa layanan di tujuan sedang berjalan dan menerima permintaan.
Karena Jarak jauh PowerShell menggunakan protokol HTTP, powerShell dipengaruhi oleh pengaturan proksi HTTP. Di perusahaan yang memiliki server proksi, pengguna tidak dapat mengakses komputer jarak jauh PowerShell secara langsung.
Untuk mengatasi masalah ini, gunakan opsi pengaturan proksi di perintah jarak jauh Anda.
- Gunakan parameter ProxyAccessType, ProxyAuthentication, dan ProxyCredential cmdlet
New-PSSessionOption
untuk membuat variabel yang berisi objek PSSessionOption dengan pengaturan proksi untuk perusahaan Anda. - Gunakan variabel yang berisi objek PSSessionOption wit parameter SessionOption dari
New-PSSession
perintah , ,Enter-PSSession
atauInvoke-Command
.
$newPSSessionOptionSplat = @{
ProxyAccessType = 'IEConfig'
ProxyAuthentication = 'Negotiate'
ProxyCredential = 'Domain01\User01'
}
$SessionOption = New-PSSessionOption @newPSSessionOptionSplat
$newPSSessionSplat = @{
ConnectionUri = 'https://www.fabrikam.com'
SessionOption = $SessionOption
}
New-PSSession @newPSSessionSplat
Untuk informasi selengkapnya tentang New-PSSessionOption
cmdlet, lihat New-PSSessionOption.
Untuk mengatur opsi ini untuk semua perintah jarak jauh dalam sesi saat ini, atur $PSSessionOption
variabel preferensi ke objek PSSessionOption yang Anda buat. Untuk informasi selengkapnya, lihat about_Preference_Variables.
Untuk mengatur opsi ini untuk semua perintah jarak jauh di semua sesi PowerShell di komputer lokal, tambahkan $PSSessionOption
variabel preferensi ke profil PowerShell Anda. Untuk informasi selengkapnya tentang profil PowerShell, lihat about_Profiles.
Cara mendeteksi sesi 32-bit pada komputer 64-bit
Untuk kesalahan:
KESALAHAN: Istilah <nama> alat tidak dikenali sebagai nama cmdlet, fungsi, file skrip, atau program yang dapat dioperasikan. Periksa ejaan nama, atau jika jalur disertakan, verifikasi bahwa jalur tersebut benar dan coba lagi.
Jika komputer jarak jauh menjalankan Windows versi 64-bit, dan perintah jarak jauh menggunakan konfigurasi sesi 32-bit, seperti Microsoft.PowerShell32, WinRM memuat proses WOW64. Windows otomatis mengalihkan semua referensi ke $env:Windir\System32
$env:Windir\SysWOW64
direktori.
Akibatnya, alat yang berjalan di System32
direktori yang tidak memiliki mitra di SysWow64
direktori tidak dapat ditemukan.
Untuk menemukan arsitektur prosesor yang sedang digunakan dalam sesi, gunakan nilai variabel lingkungan PROCESSOR_ARCHITECTURE .
$s = New-PSSession -ComputerName Server01 -ConfigurationName CustomShell
Invoke-Command -Session $s {$env:PROCESSOR_ARCHITECTURE}
x86
Untuk informasi selengkapnya, lihat about_Session_Configurations.
Pemecahan masalah kebijakan dan preferensi
Bagian ini membahas masalah jarak jauh yang terkait dengan kebijakan dan preferensi yang ditetapkan pada komputer lokal dan jarak jauh.
Cara mengubah kebijakan eksekusi untuk Import-PSSession dan Import-Module
Untuk kesalahan:
KESALAHAN: Import-Module: Nama <> file tidak dapat dimuat karena eksekusi skrip dinonaktifkan pada sistem ini.
Import-PSSession
cmdlet dan Export-PSSession
membuat modul yang berisi file skrip dan file pemformatan yang tidak ditandatangani.
Untuk mengimpor modul yang dibuat oleh cmdlet ini, kebijakan eksekusi dalam sesi saat ini tidak boleh Restricted
atau AllSigned
. Untuk informasi selengkapnya, lihat about_Execution_Policies.
Untuk mengimpor modul tanpa mengubah kebijakan eksekusi untuk komputer lokal, gunakan parameter Set-ExecutionPolicy
Cakupan untuk mengatur kebijakan eksekusi yang kurang ketat untuk satu proses.
Misalnya, contoh berikut menetapkan kebijakan eksekusi ke RemoteSigned
untuk proses saat ini. Perubahan hanya memengaruhi proses saat ini.
Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned
Anda juga dapat menggunakan parameter PowerShell.exe
ExecutionPolicy untuk memulai satu sesi dengan kebijakan eksekusi yang kurang ketat.
pwsh.exe -ExecutionPolicy RemoteSigned
Cara mengatur dan mengubah kuota
Anda dapat menggunakan kuota untuk melindungi komputer lokal dan komputer jarak jauh dari penggunaan sumber daya yang berlebihan, baik yang tidak disengaja maupun berbahaya. Saat kuota bertentangan dengan perintah, PowerShell menghasilkan kesalahan berikut.
KESALAHAN: Total data yang diterima dari klien jarak jauh melebihi maksimum yang diizinkan.
Penyedia WSMan memiliki pengaturan kuota berikut:
- Pengaturan MaxEnvelopeSizeKB dan MaxProviderRequests di
WSMan:<ComputerName>
node dan pengaturan MaxConcurrentOperations, MaxConcurrentOperationsPerUser, dan MaxConnections dalam simpulWSMan:<ComputerName>\Service
. - Anda dapat menggunakan parameter MaximumReceivedDataSizePerCommand dan MaximumReceivedObjectSize dari
New-PSSessionOption
cmdlet dan$PSSessionOption
variabel preferensi untuk melindungi komputer lokal. - Untuk melindungi komputer jarak jauh, tambahkan pembatasan ke konfigurasi sesi menggunakan parameter MaximumReceivedDataSizePerCommandMB dan MaximumReceivedObjectSizeMB cmdlet
Register-PSSessionConfiguration
.
Untuk mengatasi kesalahan, ubah perintah jarak jauh untuk mematuhi kuota atau menambah kuota untuk memungkinkan perintah selesai.
Misalnya, perintah berikut meningkatkan kuota ukuran objek dalam konfigurasi sesi Microsoft.PowerShell di komputer jarak jauh dari 10 MB (nilai default) menjadi 11 MB.
$setPSSessionConfigurationSplat = @{
Name = 'Microsoft.PowerShell'
MaximumReceivedObjectSizeMB = 11
Force = $true
}
Set-PSSessionConfiguration @setPSSessionConfigurationSplat
Untuk informasi selengkapnya tentang kuota WS-Management, lihat about_WSMan_Provider.
Cara mengatasi kesalahan waktu habis
Anda dapat menggunakan batas waktu untuk melindungi komputer lokal dan komputer jarak jauh dari penggunaan sumber daya yang berlebihan, baik yang tidak disengaja maupun berbahaya. Ketika batas waktu diatur pada komputer lokal dan jarak jauh, PowerShell menggunakan pengaturan batas waktu terpendek.
Ketika nilai batas waktu tidak mengizinkan operasi selesai, PowerShell mengakhiri operasi dan menghasilkan kesalahan berikut.
KESALAHAN: Layanan WS-Management tidak dapat menyelesaikan operasi dalam waktu yang ditentukan dalam OperationTimeout.
Penyedia WSMan memiliki pengaturan batas waktu berikut.
- Pengaturan MaxTimeoutMs di node dan pengaturan EnumerationTimeoutMs dan MaxPacketRetrievalTimeSeconds di simpul
WSMan:<ComputerName>\Service
WSMan:<ComputerName>
. - Anda dapat melindungi komputer lokal menggunakan parameter CancelTimeout, IdleTimeout, OpenTimeout, dan OperationTimeout cmdlet
New-PSSessionOption
dan$PSSessionOption
variabel preferensi. - Anda juga dapat melindungi komputer jarak jauh dengan mengatur nilai batas waktu secara terprogram dalam konfigurasi sesi untuk sesi.
Untuk mengatasi kesalahan, ubah perintah untuk diselesaikan dalam interval waktu habis atau tingkatkan interval batas waktu untuk memungkinkan perintah selesai.
Contoh berikut membuat opsi sesi dengan nilai OperationTimeout 4 menit (dalam MS), lalu menggunakan opsi sesi untuk membuat sesi jarak jauh.
$pso = New-PSSessionOption -OperationTimeout 240000
New-PSSession -ComputerName Server01 -SessionOption $pso
Untuk informasi selengkapnya tentang batas waktu WS-Management, lihat about_WSMan_Provider.
Cara mengganggu perintah yang tidak responsif
Beberapa program asli, seperti program dengan antarmuka pengguna, aplikasi konsol yang meminta input, dan aplikasi konsol yang menggunakan API konsol Win32, tidak berfungsi dengan benar di host jarak jauh PowerShell.
Ketika Anda menggunakan program ini, Anda mungkin melihat perilaku tak terduga, seperti tidak ada output, output parsial, atau perintah jarak jauh yang tidak selesai.
Untuk mengakhiri program yang tidak responsif, ketik Ctrl+c. Gunakan Get-Error
di host lokal dan sesi jarak jauh untuk melihat kesalahan apa pun yang mungkin telah dilaporkan.
Cara memulihkan dari kegagalan operasi
Kesalahan berikut dikembalikan ketika operasi dihentikan sebelum selesai.
KESALAHAN: Operasi I/O telah dibatalkan karena keluarnya utas atau permintaan aplikasi.
Biasanya, ini terjadi ketika layanan WinRM berhenti atau dimulai ulang saat operasi WinRM lainnya sedang berlangsung.
Untuk mengatasi masalah ini, verifikasi bahwa layanan WinRM sedang berjalan dan coba perintah lagi.
Mulai PowerShell dengan opsi Jalankan sebagai administrator .
Jalankan perintah berikut:
Start-Service WinRM
Jalankan kembali perintah yang menghasilkan kesalahan.
Batasan Linux dan macOS
PowerShell remoting adalah Linux dan macOS menggunakan remoting melalui SSH. Untuk informasi selengkapnya, lihat PowerShell Remoting Over SSH.