about_Remote_Troubleshooting

Deskripsi singkat

Menjelaskan cara memecahkan masalah operasi jarak jauh di PowerShell.

Deskripsi panjang

Bagian ini menjelaskan beberapa masalah yang mungkin Anda temui saat menggunakan fitur remoting PowerShell yang didasarkan pada teknologi WS-Management dan menyarankan solusi untuk masalah ini.

Sebelum menggunakan powerShell jarak jauh, lihat about_Remote dan about_Remote_Requirements untuk panduan tentang konfigurasi dan penggunaan dasar. Selain itu, topik Bantuan untuk setiap cmdlet jarak jauh, terutama deskripsi parameter, memiliki informasi berguna yang dirancang untuk membantu Anda menghindari masalah.

Catatan

Untuk melihat atau mengubah pengaturan untuk komputer lokal di drive WSMan: , termasuk perubahan pada konfigurasi sesi, host tepercaya, port, atau pendengar, mulai PowerShell dengan opsi Jalankan sebagai administrator .

Pemecahan masalah izin dan autentikasi

Bagian ini membahas masalah jarak jauh yang terkait dengan izin pengguna dan komputer dan persyaratan jarak jauh.

Cara menjalankan sebagai administrator

ERROR: Access is denied. You need to run this cmdlet from an elevated
process.

Untuk memulai sesi jarak jauh di komputer lokal, atau melihat atau mengubah pengaturan untuk komputer lokal di drive WSMan: drive, termasuk perubahan pada konfigurasi sesi, host tepercaya, port, atau pendengar, mulailah Windows PowerShell dengan opsi Jalankan sebagai administrator.

Untuk memulai Windows PowerShell dengan opsi Jalankan sebagai administrator:

  • Klik kanan ikon Windows PowerShell (atau Windows PowerShell ISE) lalu klik Jalankan sebagai administrator.

    Untuk memulai Windows PowerShell dengan opsi Jalankan sebagai administrator di Windows 7 dan Windows Server 2008 R2.

  • Di taskbar Windows, klik kanan ikon Windows PowerShell, lalu klik Jalankan sebagai administrator.

    Di Windows Server 2008 R2, ikon Windows PowerShell disematkan ke taskbar secara default.

Cara mengaktifkan jarak jauh

ERROR:  ACCESS IS DENIED

or

ERROR: The connection to the remote host was refused. Verify that the
WS-Management service is running on the remote host and configured to
listen for requests on the correct port and HTTP URL.

Tidak diperlukan konfigurasi untuk memfungsikan komputer untuk mengirim perintah jarak jauh. Namun, untuk menerima perintah jarak jauh, remoting PowerShell harus diaktifkan di komputer. Mengaktifkan termasuk memulai layanan WinRM, mengatur jenis startup untuk layanan WinRM ke Otomatis, membuat listener untuk koneksi HTTP dan HTTPS, dan membuat konfigurasi sesi default.

Windows PowerShell jarak jauh diaktifkan pada Windows Server 2012 dan rilis Windows Server yang lebih baru secara default. Pada semua sistem lain, jalankan Enable-PSRemoting cmdlet untuk mengaktifkan jarak jauh. Anda juga dapat menjalankan Enable-PSRemoting cmdlet untuk mengaktifkan akses jauh kembali pada Windows Server 2012 dan rilis Windows Server yang lebih baru jika jarak jauh dinonaktifkan.

Untuk mengonfigurasi komputer untuk menerima perintah jarak jauh, gunakan Enable-PSRemoting cmdlet . Perintah berikut memungkinkan semua pengaturan jarak jauh yang diperlukan, mengaktifkan konfigurasi sesi, dan memulai ulang layanan WinRM untuk membuat perubahan efektif.

Enable-PSRemoting

Untuk menekan semua perintah pengguna, ketik:

Enable-PSRemoting -Force

Untuk informasi selengkapnya, lihat Enable-PSRemoting.

Cara mengaktifkan jarak jauh di perusahaan

ERROR:  ACCESS IS DENIED

or

ERROR: The connection to the remote host was refused. Verify that the
WS-Management service is running on the remote host and configured to listen
for requests on the correct port and HTTP URL.

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 bisa menggunakan opsi berskala berikut.

  • Untuk mengonfigurasi listener untuk jarak jauh, aktifkan kebijakan Izinkan konfigurasi otomatis grup pendengar .

  • Untuk mengatur jenis startup Windows Remote Management (WinRM) ke Otomatis di beberapa komputer, gunakan Set-Service cmdlet .

  • Untuk mengaktifkan pengecualian firewall, gunakan kebijakan grup Windows Firewall: Izinkan Pengecualian Port Lokal .

Cara mengaktifkan listener dengan menggunakan kebijakan grup

ERROR:  ACCESS IS DENIED

or

ERROR: The connection to the remote host was refused. Verify that the
WS-Management service is running on the remote host and configured to listen
for requests on the correct port and HTTP URL.

Untuk mengonfigurasi pendengar untuk semua komputer di domain, aktifkan kebijakan Izinkan konfigurasi otomatis pendengar 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

ERROR:  Unable to check the status of the firewall

Enable-PSRemoting Cmdlet mengembalikan kesalahan ini ketika jaringan lokal bersifat publik dan parameter SkipNetworkProfileCheck tidak digunakan dalam perintah.

Pada versi server Windows, Enable-PSRemoting berhasil pada semua tipe lokasi 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.

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

Cmdlet Set-NetFirewallRule 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.

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 hanya mengizinkan akses jarak jauh pada jaringan privat dan domain.

Cara mengaktifkan pengecualian firewall dengan menggunakan kebijakan grup

ERROR:  ACCESS IS DENIED

or

ERROR: The connection to the remote host was refused. Verify that the
WS-Management service is running on the remote host and configured to listen
for requests on the correct port and HTTP URL.

Untuk mengaktifkan pengecualian firewall untuk di semua komputer di domain, aktifkan kebijakan Windows Firewall: Izinkan pengecualian port lokal di jalur Kebijakan Grup berikut:

Computer Configuration\Administrative Templates\Network
    \Network Connections\Windows Firewall\Domain Profile

Kebijakan ini memungkinkan anggota grup Administrator di komputer untuk menggunakan Windows Firewall di Panel Kontrol membuat pengecualian firewall untuk layanan Manajemen Jarak Jauh Windows.

Jika konfigurasi kebijakan salah, Anda mungkin menerima kesalahan berikut:

The client cannot connect to the destination specified in the request. Verify
that the service on the destination is running and is accepting requests.

Kesalahan konfigurasi dalam kebijakan menghasilkan nilai kosong untuk properti ListeningOn . Gunakan perintah berikut untuk memeriksa nilai.

PS> 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

ERROR:  ACCESS IS DENIED

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 Windows Remote Management (WinRM) adalah Otomatis.

Namun, pada versi klien Windows, layanan WinRM dinonaktifkan secara default.

Untuk mengatur jenis startup layanan di komputer jarak jauh, gunakan Set-Service cmdlet .

Untuk menjalankan perintah di beberapa komputer, Anda dapat membuat file teks atau file CSV dari nama komputer.

Misalnya, perintah berikut mendapatkan daftar nama komputer dari Servers.txt file lalu mengatur jenis startup layanan WinRM di semua komputer ke Otomatis.

$servers = Get-Content servers.txt
Set-Service WinRM -ComputerName $servers -startuptype Automatic

Untuk melihat hasilnya, gunakan Get-WMIObject cmdlet dengan objek Win32_Service . Untuk informasi selengkapnya, lihat Set-Service.

Cara membuat ulang konfigurasi sesi default

ERROR:  ACCESS IS DENIED

Untuk tersambung ke komputer lokal dan menjalankan perintah dari jarak jauh, komputer lokal harus menyertakan konfigurasi sesi untuk perintah jarak jauh.

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 pada 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 default asli, gunakan Unregister-PSSessionConfiguration cmdlet untuk menghapus konfigurasi sesi yang diubah lalu gunakan Enable-PSRemoting cmdlet untuk memulihkannya. Enable-PSRemoting tidak mengubah konfigurasi sesi yang ada.

Catatan

Saat Enable-PSRemoting memulihkan konfigurasi sesi default, ia tidak membuat deskriptor keamanan eksplisit untuk konfigurasi. Sebaliknya, 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 drive WSMan: . Untuk mengubah pendeskripsi keamanan konfigurasi sesi, gunakan Set-PSSessionConfiguration cmdlet dengan parameter SecurityDescriptorSDDL atau ShowSecurityDescriptorUI .

Untuk informasi selengkapnya tentang WSMan: drive, lihat topik Bantuan untuk penyedia WSMan ("Get-Help wsman").

Cara memberikan kredensial administrator

ERROR:  ACCESS IS DENIED

Untuk membuat PSSession atau menjalankan perintah pada komputer jarak jauh, secara default, pengguna saat ini harus menjadi anggota grup Administrator di komputer jarak jauh. Kredensial terkadang diperlukan bahkan ketika pengguna saat ini masuk ke akun yang merupakan anggota grup Administrator.

Jika pengguna saat ini adalah anggota grup Administrator di komputer jarak jauh, atau dapat memberikan kredensial anggota grup Administrator, gunakan parameter Kredensial cmdlet New-PSSession, atau Enter-PSSessionInvoke-Command untuk terhubung dari jarak jauh.

Misalnya, perintah berikut ini menyediakan kredensial Administrator.

Invoke-Command -ComputerName Server01 -Credential Domain01\Admin01

Untuk informasi selengkapnya tentang parameter Kredensial , lihat New-PSSession, Enter-PSSession , atau Invoke-Command.

Cara mengaktifkan akses jauh untuk pengguna non-administratif

ERROR:  ACCESS IS DENIED

Untuk membuat PSSession atau menjalankan perintah pada komputer jarak jauh, pengguna harus memiliki izin untuk menggunakan konfigurasi sesi di komputer jarak jauh.

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 memperbolehkan pengguna lain tersambung ke komputer lokal, berikan pengguna izin Jalankan ke konfigurasi sesi default di komputer lokal.

Perintah berikut membuka lembar properti yang memungkinkan Anda mengubah pendeskripsi keamanan konfigurasi sesi Microsoft.PowerShell default di komputer lokal.

Set-PSSessionConfiguration Microsoft.PowerShell -ShowSecurityDescriptorUI

Untuk informasi selengkapnya, lihat about_Session_Configurations.

Cara mengaktifkan jarak jauh untuk administrator di domain lain

ERROR:  ACCESS IS DENIED

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.

Namun, Anda dapat menggunakan entri registri LocalAccountTokenFilterPolicy untuk mengubah perilaku default dan mengizinkan pengguna jarak jauh yang merupakan anggota grup Administrator untuk berjalan 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 dari pengaturan ini dengan hati-hati sebelum mengubah kebijakan.

Untuk mengubah kebijakan, gunakan perintah berikut untuk mengatur nilai entri registri LocalAccountTokenFilterPolicy ke 1.

New-ItemProperty -Name LocalAccountTokenFilterPolicy `
  -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System `
  -PropertyType DWord -Value 1

Cara menggunakan alamat ip dalam perintah jarak jauh

ERROR: 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.

Parameter ComputerName dari New-PSSessioncmdlet , dan Enter-PSSessionInvoke-Command menerima alamat IP sebagai nilai yang valid. Namun, karena autentikasi Kerberos tidak mendukung alamat IP, autentikasi NTLM digunakan secara default setiap kali Anda menentukan alamat IP.

Saat menggunakan autentikasi NTLM, prosedur berikut diperlukan untuk jarak jauh.

  1. Konfigurasikan komputer untuk transportasi HTTPS atau tambahkan alamat IP komputer jarak jauh ke daftar TrustedHosts di komputer lokal.

  2. Gunakan parameter Kredensial di semua perintah jarak jauh.

    Ini diperlukan bahkan ketika Anda mengirimkan kredensial pengguna saat ini.

Cara menyambungkan dari jarak jauh dari komputer berbasis grup kerja

ERROR: 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.

Ketika komputer lokal tidak berada di domain, prosedur berikut diperlukan untuk jarak jauh.

  1. Konfigurasikan komputer untuk transportasi HTTPS atau tambahkan nama komputer jarak jauh ke daftar TrustedHosts di komputer lokal.

  2. 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.

    Untuk mengatur kata sandi untuk akun pengguna Anda, gunakan Akun Pengguna di Panel Kontrol.

  3. Gunakan parameter Kredensial di semua perintah jarak jauh.

    Ini diperlukan bahkan ketika Anda mengirimkan kredensial 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 drive WSMan: . Item TrustedHost ada di simpul WSMan:\localhost\Client .

Hanya anggota grup Administrator di komputer yang memiliki izin untuk mengubah daftar host tepercaya di 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

Anda juga dapat menggunakan Set-Location cmdlet (alias = cd) untuk menavigasi melalui WSMan: drive ke lokasi. Contohnya:

cd WSMan:\localhost\Client; dir

Untuk menambahkan semua komputer ke daftar host tepercaya, gunakan perintah berikut, yang menempatkan nilai * (semua) di ComputerName

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 ke daftar host tepercaya.

Set-Item wsman:localhost\client\trustedhosts *.fabrikam.com

Untuk menambahkan nama komputer tertentu ke daftar host tepercaya, gunakan format perintah berikut:

Set-Item wsman:\localhost\Client\TrustedHosts -Value <ComputerName>

di mana setiap nilai <ComputerName> harus memiliki format berikut:

<Computer>.<Domain>.<Company>.<top-level-domain>

Contohnya:

$server = 'Server01.Domain01.Fabrikam.com'
Set-Item wsman:\localhost\Client\TrustedHosts -Value $server

Untuk menambahkan nama komputer ke daftar host tepercaya yang sudah ada, pertama-tama simpan nilai saat ini dalam variabel, lalu atur nilai ke daftar yang dipisahkan koma yang menyertakan nilai saat ini dan baru.

Misalnya, untuk menambahkan komputer Server01 ke daftar host tepercaya yang sudah ada, gunakan perintah berikut

$curValue = (Get-Item wsman:\localhost\Client\TrustedHosts).value

Set-Item wsman:\localhost\Client\TrustedHosts -Value `
  "$curValue, Server01.Domain01.Fabrikam.com"

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 cmdlet untuk menambahkan simpul untuk komputer jarak jauh ke drive WSMan: di komputer lokal. Kemudian gunakan Set-Item perintah untuk menambahkan komputer.

Untuk informasi selengkapnya tentang Connect-WSMan cmdlet, lihat Connect-WSMan.

Pemecahan masalah konfigurasi komputer

Bagian ini membahas masalah jarak jauh yang terkait dengan konfigurasi tertentu dari komputer, domain, atau perusahaan.

Cara mengonfigurasi jarak jauh pada port alternatif

ERROR: The connection to the specified remote host was refused. Verify that the
WS-Management service is running on the remote host and configured to listen
for requests on the correct port and HTTP URL.

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.

Untuk mengubah port default yang digunakan PowerShell, gunakan Set-Item cmdlet di drive WSMan: 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

ERROR: The client cannot connect to the destination specified in the request.
Verify that the service on the destination is running and is accepting
requests.

Karena PowerShell jarak jauh 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. Pengaturan berikut ini tersedia:

  • ProxyAccessType
  • ProxyAuthentication
  • ProxyCredential

Untuk mengatur opsi ini untuk perintah tertentu, gunakan prosedur berikut:

  1. Gunakan parameter ProxyAccessType, ProxyAuthentication, dan ProxyCredential cmdlet New-PSSessionOption untuk membuat objek opsi sesi dengan pengaturan proksi untuk perusahaan Anda. Simpan objek opsi adalah variabel.

  2. Gunakan variabel yang berisi objek opsi sebagai nilai parameter SessionOption dari New-PSSessionperintah , Enter-PSSession, atau Invoke-Command .

Misalnya, perintah berikut membuat objek opsi sesi dengan opsi sesi proksi lalu menggunakan objek untuk membuat sesi jarak jauh.

$SessionOption = New-PSSessionOption -ProxyAccessType IEConfig `
-ProxyAuthentication Negotiate -ProxyCredential Domain01\User01

New-PSSession -ConnectionURI https://www.fabrikam.com

Untuk informasi selengkapnya tentang New-PSSessionOption cmdlet, lihat New-PSSessionOption.

Untuk mengatur opsi ini untuk semua perintah jarak jauh dalam sesi saat ini, gunakan objek opsi yang New-PSSessionOption dibuat dalam nilai $PSSessionOption variabel preferensi. Untuk informasi selengkapnya, lihat about_Preference_Variables.

Untuk mengatur opsi ini untuk semua perintah jarak jauh 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

ERROR: The term "<tool-Name>" is not recognized as the name of a cmdlet,
function, script file, or operable program. Check the spelling of the name, or
if a path was included, verify that the path is correct and try again.

Jika komputer jarak jauh menjalankan Windows versi 64-bit, dan perintah jarak jauh menggunakan konfigurasi sesi 32-bit, seperti Microsoft.PowerShell32, Windows Remote Management (WinRM) memuat proses WOW64 dan Windows secara otomatis mengalihkan semua referensi ke $env:Windir\System32 direktori ke $env:Windir\SysWOW64 direktori.

Akibatnya, jika Anda mencoba menggunakan alat di direktori System32 yang tidak memiliki rekan di direktori SysWow64, seperti Defrag.exe, alat tidak dapat ditemukan di direktori.

Untuk menemukan arsitektur prosesor yang sedang digunakan dalam sesi, gunakan nilai variabel lingkungan PROCESSOR_ARCHITECTURE . Perintah berikut menemukan arsitektur prosesor sesi dalam $s variabel .

$s = New-PSSession -ComputerName Server01 -ConfigurationName CustomShell
Invoke-Command -Session $s {$env:PROCESSOR_ARCHITECTURE}
x86

Untuk informasi selengkapnya tentang konfigurasi sesi, 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

ERROR: Import-Module: File <filename> cannot be loaded because the
execution of scripts is disabled on this system.

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, baik dengan menggunakan Import-PSSession atau Import-Module, kebijakan eksekusi dalam sesi saat ini tidak dapat Dibatasi atau AllSigned. Untuk informasi tentang kebijakan eksekusi PowerShell, lihat about_Execution_Policies.

Untuk mengimpor modul tanpa mengubah kebijakan eksekusi untuk komputer lokal yang diatur dalam registri, gunakan parameter Set-ExecutionPolicyCakupan untuk menetapkan kebijakan eksekusi yang kurang ketat untuk satu proses.

Misalnya, perintah berikut memulai proses dengan RemoteSigned kebijakan eksekusi. Perubahan kebijakan eksekusi hanya memengaruhi proses saat ini dan tidak mengubah pengaturan registri PowerShell ExecutionPolicy .

Set-ExecutionPolicy -Scope process -ExecutionPolicy RemoteSigned

Anda juga dapat menggunakan parameter PowerShell.exeExecutionPolicy untuk memulai satu sesi dengan kebijakan eksekusi yang kurang ketat.

PowerShell.exe -ExecutionPolicy RemoteSigned

Untuk informasi selengkapnya tentang kebijakan eksekusi, lihat about_Execution_Policies. Untuk informasi selengkapnya, ketik PowerShell.exe -?.

Cara mengatur dan mengubah kuota

ERROR: The total data received from the remote client exceeded allowed
maximum.

Anda dapat menggunakan kuota untuk melindungi komputer lokal dan komputer jarak jauh dari penggunaan sumber daya yang berlebihan, baik yang tidak disengaja maupun berbahaya.

Kuota berikut tersedia dalam konfigurasi dasar.

  • Penyedia WSMan (WSMan:) menyediakan beberapa pengaturan kuota, seperti pengaturan MaxEnvelopeSizeKB dan MaxProviderRequests dalam WSMan:<ComputerName> simpul dan pengaturan MaxConcurrentOperations, MaxConcurrentOperationsPerUser, dan MaxConnections dalam simpul WSMan:<ComputerName>\Service .

  • Anda dapat melindungi komputer lokal dengan menggunakan parameter MaximumReceivedDataSizePerCommand dan MaximumReceivedObjectSize cmdlet New-PSSessionOption dan $PSSessionOption variabel preferensi.

  • Anda dapat melindungi komputer jarak jauh dengan menambahkan pembatasan ke konfigurasi sesi, seperti dengan menggunakan parameter MaximumReceivedDataSizePerCommandMB dan MaximumReceivedObjectSizeMB cmdlet Register-PSSessionConfiguration .

Saat kuota bertentangan dengan perintah, PowerShell menghasilkan kesalahan.

Untuk mengatasi kesalahan, ubah perintah jarak jauh untuk mematuhi kuota. Atau, tentukan sumber kuota, lalu tingkatkan 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.

Set-PSSessionConfiguration -Name microsoft.PowerShell `
  -MaximumReceivedObjectSizeMB 11 -Force

Untuk informasi selengkapnya tentang New-PSSessionOption cmdlet , lihat New-PSSessionOption.

Untuk informasi selengkapnya tentang kuota WS-Management, lihat about_WSMan_Provider.

Cara mengatasi kesalahan waktu habis

ERROR: The WS-Management service cannot complete the operation within
the time specified in OperationTimeout.

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.

Batas waktu berikut tersedia dalam konfigurasi dasar.

  • Penyedia WSMan (WSMan:) menyediakan beberapa pengaturan batas waktu sisi klien dan sisi layanan, seperti pengaturan MaxTimeoutms di WSMan:<ComputerName> simpul dan pengaturan EnumerationTimeoutms dan MaxPacketRetrievalTimeSeconds di simpul WSMan:<ComputerName>\Service .

  • Anda dapat melindungi komputer lokal dengan menggunakan parameter CancelTimeout, IdleTimeout, OpenTimeout, dan OperationTimeout dari New-PSSessionOption cmdlet dan $PSSessionOption variabel preferensi.

  • Anda juga dapat melindungi komputer jarak jauh dengan mengatur nilai batas waktu secara terprogram dalam konfigurasi sesi untuk sesi tersebut.

Ketika nilai batas waktu tidak mengizinkan operasi selesai, PowerShell mengakhiri operasi dan menghasilkan kesalahan.

Untuk mengatasi kesalahan, ubah perintah untuk diselesaikan dalam interval waktu habis atau tentukan sumber batas waktu habis dan tingkatkan interval batas waktu untuk memungkinkan perintah selesai.

Misalnya, perintah berikut menggunakan New-PSSessionOption cmdlet untuk membuat objek opsi sesi dengan nilai OperationTimeout 4 menit (dalam MS) lalu menggunakan objek 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 topik Bantuan untuk penyedia WSMan (jenis Get-Help WSMan).

Untuk informasi selengkapnya tentang New-PSSessionOption cmdlet , lihat New-PSSessionOption.

Pemecahan masalah perilaku tidak responsif

Bagian ini membahas masalah jarak jauh yang mencegah perintah selesai dan mencegah atau menunda pengembalian prompt PowerShell.

Cara mengganggu perintah

Beberapa program Windows 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. Untuk melihat kesalahan apa pun yang mungkin telah dilaporkan, ketik $error host lokal dan sesi jarak jauh.

Cara memulihkan dari kegagalan operasi

ERROR: The I/O operation has been aborted because of either a thread exit
or an  application request.

Kesalahan ini dikembalikan ketika operasi dihentikan sebelum selesai. Biasanya, itu 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.

  1. Mulai PowerShell dengan opsi Jalankan sebagai administrator .

  2. Jalankan perintah berikut:

    Start-Service WinRM

  3. Jalankan kembali perintah yang menghasilkan kesalahan.

Batasan Linux dan macOS

Autentikasi

Hanya autentikasi dasar yang berfungsi pada macOS dan mencoba menggunakan skema autentikasi lain yang dapat mengakibatkan proses crash.

Silakan lihat instruksi autentikasi OMI .

Lihat juga