Om fjärrfelsökning

Kort beskrivning

Beskriver hur du felsöker fjärråtgärder i PowerShell.

Lång beskrivning

I det här avsnittet beskrivs några av de problem som kan uppstå när du använder fjärrkommunikationsfunktionerna i PowerShell som baseras på WS-Management teknik och föreslår lösningar på dessa problem.

Information om konfiguration och grundläggande användning finns i about_Remote och about_Remote_Requirements innan du använder PowerShell-fjärrkommunikation. Dessutom har hjälpavsnitten för var och en av fjärrkommunikations-cmdletarna, särskilt parameterbeskrivningarna, användbar information som är utformad för att hjälpa dig att undvika problem.

Anteckning

Om du vill visa eller ändra inställningarna för den lokala datorn på WSMan-enheten, inklusive ändringar i sessionskonfigurationer, betrodda värdar, portar eller lyssnare, startar du PowerShell med alternativet Kör som administratör .

Felsöka problem med behörighet och autentisering

I det här avsnittet beskrivs fjärrkommunikationsproblem som är relaterade till användar- och datorbehörigheter och fjärrkommunikationskrav.

Så här kör du som administratör

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

Om du vill starta en fjärrsession på den lokala datorn eller visa eller ändra inställningar för den lokala datorn på WSMan-enheten, inklusive ändringar i sessionskonfigurationerna, betrodda värdar, portar eller lyssnare, börjar du Windows PowerShell med alternativet Kör som administratör.

Så här startar du Windows PowerShell med alternativet Kör som administratör:

  • Högerklicka på ikonen Windows PowerShell (eller Windows PowerShell ISE) och klicka sedan på Kör som administratör.

    Starta Windows PowerShell med alternativet Kör som administratör i Windows 7 och Windows Server 2008 R2.

  • Högerklicka på ikonen Windows PowerShell i Aktivitetsfältet i Windows och klicka sedan på Kör som administratör.

    I Windows Server 2008 R2 fästs Windows PowerShell-ikonen i aktivitetsfältet som standard.

Så här aktiverar du fjärrkommunikation

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.

Ingen konfiguration krävs för att en dator ska kunna skicka fjärrkommandon. Men för att kunna ta emot fjärrkommandon måste PowerShell-fjärrkommunikation vara aktiverat på datorn. Aktivering omfattar att starta WinRM-tjänsten, ange starttypen för WinRM-tjänsten till Automatisk, skapa lyssnare för HTTP- och HTTPS-anslutningar och skapa standardkonfigurationer för sessioner.

Windows PowerShell fjärrkommunikation är aktiverat på Windows Server 2012 och nyare versioner av Windows Server som standard. På alla andra system kör du cmdleten Enable-PSRemoting för att aktivera fjärrkommunikation. Du kan också köra cmdleten Enable-PSRemoting för att återaktivera fjärrkommunikation på Windows Server 2012 och nyare versioner av Windows Server om fjärrkommunikation är inaktiverat.

Om du vill konfigurera en dator för att ta emot fjärrkommandon använder du cmdleten Enable-PSRemoting . Följande kommando aktiverar alla nödvändiga fjärrinställningar, aktiverar sessionskonfigurationerna och startar om WinRM-tjänsten för att göra ändringarna gällande.

Enable-PSRemoting

Om du vill ignorera alla användarfrågor skriver du:

Enable-PSRemoting -Force

Mer information finns i Enable-PSRemoting(Aktivera PSRemoting).

Så här aktiverar du fjärrkommunikation i ett företag

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.

Om du vill att en enskild dator ska kunna ta emot PowerShell-fjärrkommandon och acceptera anslutningar använder du cmdleten Enable-PSRemoting .

Om du vill aktivera fjärrkommunikation för flera datorer i ett företag kan du använda följande skalningsalternativ.

  • Om du vill konfigurera lyssnare för fjärrkommunikation aktiverar du grupprincipen Tillåt automatisk konfiguration av lyssnare .

  • Om du vill ange starttypen för Windows Remote Management (WinRM) till Automatisk på flera datorer använder du cmdleten Set-Service .

  • Om du vill aktivera ett brandväggsfel använder du grupprincipen Windows-brandväggen: Tillåt undantag för lokala portar .

Så här aktiverar du lyssnare med hjälp av en grupprincip

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.

Om du vill konfigurera lyssnarna för alla datorer i en domän aktiverar du principen Tillåt automatisk konfiguration av lyssnare i följande grupprincip sökväg:

Computer Configuration\Administrative Templates\Windows Components
    \Windows Remote Management (WinRM)\WinRM service

Aktivera principen och ange IPv4- och IPv6-filtren. Jokertecken (*) tillåts.

Så här aktiverar du fjärrkommunikation i offentliga nätverk

ERROR:  Unable to check the status of the firewall

Cmdleten Enable-PSRemoting returnerar det här felet när det lokala nätverket är offentligt och parametern SkipNetworkProfileCheck inte används i kommandot.

På serverversioner av Windows Enable-PSRemoting lyckas på alla nätverksplatstyper. Den skapar brandväggsregler som tillåter fjärråtkomst till privata nätverk och domännätverk ("Start" och "Arbete"). För offentliga nätverk skapas brandväggsregler som tillåter fjärråtkomst från samma lokala undernät.

I klientversioner av Windows Enable-PSRemoting lyckas på privata nätverk och domännätverk. Som standard misslyckas den i offentliga nätverk, men om du använder parametern Enable-PSRemotingSkipNetworkProfileCheck lyckas och skapar en brandväggsregel som tillåter trafik från samma lokala undernät.

Om du vill ta bort den lokala undernätsbegränsningen för offentliga nätverk och tillåta fjärråtkomst från valfri plats kör du följande kommando:

Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP-PUBLIC" -RemoteAddress Any

Cmdleten Set-NetFirewallRule exporteras av NetSecurity-modulen.

Anteckning

I Windows PowerShell 2.0, på datorer som kör serverversioner av Windows, Enable-PSRemoting skapas brandväggsregler som tillåter fjärråtkomst i privata, domänbaserade och offentliga nätverk. På datorer som kör klientversioner av Windows Enable-PSRemoting skapar brandväggsregler som endast tillåter fjärråtkomst i privata nätverk och domännätverk.

Så här aktiverar du ett brandväggsfel med hjälp av en grupprincip

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.

Om du vill aktivera ett brandväggsfel för på alla datorer i en domän aktiverar du principen Windows-brandväggen: Tillåt lokala portfel i följande grupprincip sökväg:

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

Med den här principen kan medlemmar i gruppen Administratörer på datorn använda Windows-brandväggen i Kontrollpanelen för att skapa ett brandväggsfel för windows fjärrhanteringstjänst.

Om principkonfigurationen är felaktig kan du få följande fel:

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

Ett konfigurationsfel i principen resulterar i ett tomt värde för egenskapen ListeningOn . Använd följande kommando för att kontrollera värdet.

PS> Get-WSManInstance winrm/config/listener -Enumerate

cfg                   : https://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           : {}

Så här anger du starttypen för WinRM-tjänsten

ERROR:  ACCESS IS DENIED

PowerShell-fjärrkommunikation är beroende av WinRM-tjänsten (Windows Remote Management). Tjänsten måste köras för att stödja fjärrkommandon.

På serverversioner av Windows är starttypen för WinRM-tjänsten (Windows Remote Management) Automatisk.

Men i klientversioner av Windows är WinRM-tjänsten inaktiverad som standard.

Om du vill ange starttypen för en tjänst på en fjärrdator använder du cmdleten Set-Service .

Om du vill köra kommandot på flera datorer kan du skapa en textfil eller EN CSV-fil med datornamnen.

Följande kommandon hämtar till exempel en lista över datornamn från Servers.txt filen och anger sedan starttypen för WinRM-tjänsten på alla datorer till Automatisk.

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

Om du vill se resultatet använder du cmdleten Get-WMIObject med objektet Win32_Service . Mer information finns i Set-Service.

Så här återskapar du standardkonfigurationerna för sessioner

ERROR:  ACCESS IS DENIED

Om du vill ansluta till den lokala datorn och köra kommandon via fjärranslutning måste den lokala datorn innehålla sessionskonfigurationer för fjärrkommandon.

När du använder Enable-PSRemotingskapas standardkonfigurationer för sessioner på den lokala datorn. Fjärranvändare använder dessa sessionskonfigurationer när ett fjärrkommando inte innehåller parametern ConfigurationName .

Om standardkonfigurationerna på en dator avregistreras eller tas bort använder du cmdleten Enable-PSRemoting för att återskapa dem. Du kan använda den här cmdleten upprepade gånger. Det genererar inga fel om en funktion redan har konfigurerats.

Om du ändrar standardkonfigurationerna för sessioner och vill återställa de ursprungliga standardkonfigurationerna för sessioner använder du cmdleten Unregister-PSSessionConfiguration för att ta bort de ändrade sessionskonfigurationerna och använder sedan cmdleten Enable-PSRemoting för att återställa dem. Enable-PSRemoting ändrar inte befintliga sessionskonfigurationer.

Anteckning

När Enable-PSRemoting återställer standardkonfigurationen för sessionen skapas inte explicita säkerhetsbeskrivningar för konfigurationerna. Konfigurationerna ärver i stället säkerhetsbeskrivningen för RootSDDL, som är säker som standard.

Om du vill se rootSDDL-säkerhetsbeskrivningen skriver du:

Get-Item wsman:\localhost\Service\RootSDDL

Om du vill ändra RootSDDL använder du cmdleten Set-Item på WSMan:-enheten. Om du vill ändra säkerhetsbeskrivningen för en sessionskonfiguration använder du cmdleten Set-PSSessionConfiguration med parametrarna SecurityDescriptorSDDL eller ShowSecurityDescriptorUI .

Mer information om WSMan:-enheten finns i hjälpavsnittet för WSMan-providern ("Get-Help wsman").

Så här anger du administratörsautentiseringsuppgifter

ERROR:  ACCESS IS DENIED

Om du vill skapa en PSSession eller köra kommandon på en fjärrdator måste den aktuella användaren som standard vara medlem i gruppen Administratörer på fjärrdatorn. Autentiseringsuppgifter krävs ibland även när den aktuella användaren är inloggad på ett konto som är medlem i gruppen Administratörer.

Om den aktuella användaren är medlem i gruppen Administratörer på fjärrdatorn eller kan ange autentiseringsuppgifterna för en medlem i gruppen Administratörer använder du parametern New-PSSessionAutentiseringsuppgifter för cmdletarna eller Enter-PSSessionInvoke-Command för att fjärransluta.

Följande kommando innehåller till exempel autentiseringsuppgifterna för en administratör.

Invoke-Command -ComputerName Server01 -Credential Domain01\Admin01

Mer information om parametern Credential finns i New-PSSession, Enter-PSSession eller Invoke-Command.

Så här aktiverar du fjärrkommunikation för icke-administrativa användare

ERROR:  ACCESS IS DENIED

Om du vill upprätta en PSSession eller köra ett kommando på en fjärrdator måste användaren ha behörighet att använda sessionskonfigurationerna på fjärrdatorn.

Som standard har endast medlemmar i gruppen Administratörer på en dator behörighet att använda standardsessionskonfigurationerna. Därför kan endast medlemmar i gruppen Administratörer fjärransluta till datorn.

Om du vill tillåta andra användare att ansluta till den lokala datorn ger du användaren körbehörighet till standardsessionskonfigurationerna på den lokala datorn.

Följande kommando öppnar ett egenskapsblad där du kan ändra säkerhetsbeskrivningen för standardkonfigurationen för Microsoft.PowerShell-sessioner på den lokala datorn.

Set-PSSessionConfiguration Microsoft.PowerShell -ShowSecurityDescriptorUI

Mer information finns i about_Session_Configurations.

Så här aktiverar du fjärrkommunikation för administratörer i andra domäner

ERROR:  ACCESS IS DENIED

När en användare i en annan domän är medlem i gruppen Administratörer på den lokala datorn kan användaren inte fjärransluta till den lokala datorn med administratörsbehörighet. Som standard körs fjärranslutningar från andra domäner med endast standardtoken för användarprivilegier.

Du kan dock använda registerposten LocalAccountTokenFilterPolicy för att ändra standardbeteendet och tillåta fjärranvändare som är medlemmar i gruppen Administratörer att köras med administratörsbehörighet.

Varning

Posten LocalAccountTokenFilterPolicy inaktiverar UAC-fjärrbegränsningar (user account control) för alla användare på alla berörda datorer. Tänk noga på konsekvenserna av den här inställningen innan du ändrar principen.

Om du vill ändra principen använder du följande kommando för att ange värdet för registerposten LocalAccountTokenFilterPolicy till 1.

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

Så här använder du en IP-adress i ett fjärrkommando

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.

Parametern ComputerName för New-PSSessioncmdletarna , Enter-PSSession och Invoke-Command accepterar en IP-adress som ett giltigt värde. Men eftersom Kerberos-autentisering inte stöder IP-adresser används NTLM-autentisering som standard när du anger en IP-adress.

När du använder NTLM-autentisering krävs följande procedur för fjärrkommunikation.

  1. Konfigurera datorn för HTTPS-transport eller lägg till IP-adresserna för fjärrdatorerna i listan TrustedHosts på den lokala datorn.

  2. Använd parametern Credential i alla fjärrkommandon.

    Detta krävs även när du skickar in den aktuella användarens autentiseringsuppgifter.

Fjärransluta från en arbetsgruppsbaserad dator

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.

När den lokala datorn inte finns i en domän krävs följande procedur för fjärrkommunikation.

  1. Konfigurera datorn för HTTPS-transport eller lägg till namnen på fjärrdatorerna i listan TrustedHosts på den lokala datorn.

  2. Kontrollera att ett lösenord har angetts på den arbetsgruppsbaserade datorn. Om ett lösenord inte har angetts eller om lösenordsvärdet är tomt kan du inte köra fjärrkommandon.

    Om du vill ange lösenord för ditt användarkonto använder du Användarkonton i Kontrollpanelen.

  3. Använd parametern Credential i alla fjärrkommandon.

    Detta krävs även när du skickar in den aktuella användarens autentiseringsuppgifter.

Så här lägger du till en dator i listan över betrodda värdar

Objektet TrustedHosts kan innehålla en kommaavgränsad lista över datornamn, IP-adresser och fullständigt kvalificerade domännamn. Jokertecken tillåts.

Om du vill visa eller ändra listan över betrodda värdar använder du WSMan:-enheten. TrustedHost-objektet finns i WSMan:\localhost\Client noden.

Endast medlemmar i gruppen Administratörer på datorn har behörighet att ändra listan över betrodda värdar på datorn.

Varning! Det värde som du anger för trustedhosts-objektet påverkar alla användare av datorn.

Om du vill visa listan över betrodda värdar använder du följande kommando:

Get-Item wsman:\localhost\Client\TrustedHosts

Du kan också använda cmdleten Set-Location (alias = cd) för att navigera genom WSMan:-enheten till platsen. Exempel:

cd WSMan:\localhost\Client; dir

Om du vill lägga till alla datorer i listan över betrodda värdar använder du följande kommando, som placerar värdet * (alla) i ComputerName

Set-Item wsman:localhost\client\trustedhosts -Value *

Du kan också använda jokertecken (*) för att lägga till alla datorer i en viss domän i listan över betrodda värdar. Följande kommando lägger till exempel till alla datorer i Fabrikam-domänen i listan över betrodda värdar.

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

Om du vill lägga till namnen på vissa datorer i listan över betrodda värdar använder du följande kommandoformat:

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

där varje värde <ComputerName> måste ha följande format:

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

Exempel:

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

Om du vill lägga till ett datornamn i en befintlig lista över betrodda värdar sparar du först det aktuella värdet i en variabel och anger sedan värdet till en kommaavgränsad lista som innehåller aktuella och nya värden.

Om du till exempel vill lägga till Server01-datorn i en befintlig lista över betrodda värdar använder du följande kommando

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

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

Om du vill lägga till IP-adresserna för vissa datorer i listan över betrodda värdar använder du följande kommandoformat:

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

Exempel:

Set-Item wsman:\localhost\Client\TrustedHosts -Value 172.16.0.0

Om du vill lägga till en dator i listan TrustedHosts för en fjärrdator använder du cmdleten Connect-WSMan för att lägga till en nod för fjärrdatorn till WSMan:-enheten på den lokala datorn. Använd sedan ett Set-Item kommando för att lägga till datorn.

Mer information om cmdleten finns i Connect-WSManConnect-WSMan.

Felsöka problem med datorkonfiguration

I det här avsnittet beskrivs fjärrkommunikationsproblem som är relaterade till vissa konfigurationer av en dator, en domän eller ett företag.

Så här konfigurerar du fjärrkommunikation på alternativa portar

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-fjärrkommunikation använder port 80 för HTTP-transport som standard. Standardporten används när användaren inte anger connectionURI- eller portparametrarna i ett fjärrkommando.

Om du vill ändra standardporten som PowerShell använder använder du Set-Item cmdleten i WSMan:-enheten för att ändra portvärdet i lyssnarens lövnod.

Följande kommando ändrar till exempel standardporten till 8080.

Set-Item wsman:\localhost\listener\listener*\port -Value 8080

Så här konfigurerar du fjärrkommunikation med en proxyserver

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.

Eftersom PowerShell-fjärrkommunikation använder HTTP-protokollet påverkas det av HTTP-proxyinställningarna. I företag som har proxyservrar kan användarna inte komma åt en PowerShell-fjärrdator direkt.

Lös problemet genom att använda alternativ för proxyinställningar i fjärrkommandot. Följande inställningar är tillgängliga:

  • ProxyAccessType
  • ProxyAuthentication
  • ProxyCredential

Om du vill ange de här alternativen för ett visst kommando använder du följande procedur:

  1. Använd parametrarna ProxyAccessType, ProxyAuthentication och ProxyCredential för cmdleten New-PSSessionOption för att skapa ett sessionsalternativobjekt med proxyinställningarna för ditt företag. Spara alternativobjektet är en variabel.

  2. Använd variabeln som innehåller alternativobjektet som värdet för parametern SessionOption för ett New-PSSession- Enter-PSSessioneller Invoke-Command -kommando.

Följande kommando skapar till exempel ett sessionsalternativobjekt med proxysessionsalternativ och använder sedan -objektet för att skapa en fjärrsession.

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

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

Mer information om cmdleten New-PSSessionOption finns i New-PSSessionOption.

Om du vill ange dessa alternativ för alla fjärrkommandon i den aktuella sessionen använder du det alternativobjekt som New-PSSessionOption skapar i värdet för $PSSessionOption inställningsvariabeln. Mer information finns i about_Preference_Variables.

Om du vill ange dessa alternativ för alla fjärrkommandon för alla PowerShell-sessioner på den lokala datorn lägger du till $PSSessionOption inställningsvariabeln i din PowerShell-profil. Mer information om PowerShell-profiler finns i about_Profiles.

Så här identifierar du en 32-bitars session på en 64-bitars dator

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.

Om fjärrdatorn kör en 64-bitarsversion av Windows och fjärrkommandot använder en 32-bitars sessionskonfiguration, till exempel Microsoft.PowerShell32, läser WinRM (Windows Remote Management) in en WOW64-process och Windows omdirigerar automatiskt alla referenser till $env:Windir\System32 katalogen till $env:Windir\SysWOW64 katalogen.

Om du försöker använda verktyg i System32-katalogen som inte har motsvarigheter i syswow64-katalogen, till exempel Defrag.exe, kan verktygen därför inte hittas i katalogen.

Om du vill hitta processorarkitekturen som används i sessionen använder du värdet för miljövariabeln PROCESSOR_ARCHITECTURE . Följande kommando hittar processorarkitekturen för sessionen i variabeln $s .

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

För ytterligare information om sessionskonfigurationer, se about_Session_Configurations.

Felsöka problem med principer och inställningar

I det här avsnittet beskrivs fjärrkommunikationsproblem som är relaterade till principer och inställningar som angetts på lokala datorer och fjärrdatorer.

Ändra körningsprincipen för Import-PSSession och Import-Module

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

Cmdletarna Import-PSSession och Export-PSSession skapar moduler som innehåller osignerade skriptfiler och formateringsfiler.

Om du vill importera modulerna som skapas av dessa cmdletar, antingen med hjälp Import-PSSession av eller Import-Module, kan körningsprincipen i den aktuella sessionen inte vara Begränsad eller AllSigned. Information om PowerShell-körningsprinciper finns i about_Execution_Policies.

Om du vill importera modulerna utan att ändra körningsprincipen för den lokala datorn som anges i registret använder du parametern Set-ExecutionPolicyOmfång för för att ange en mindre restriktiv körningsprincip för en enda process.

Följande kommando startar till exempel en process med RemoteSigned körningsprincipen. Ändringen av körningsprincipen påverkar endast den aktuella processen och ändrar inte registerinställningen PowerShell ExecutionPolicy .

Set-ExecutionPolicy -Scope process -ExecutionPolicy RemoteSigned

Du kan också använda parametern PowerShell.exeExecutionPolicy för för att starta en enskild session med en mindre restriktiv körningsprincip.

PowerShell.exe -ExecutionPolicy RemoteSigned

Mer information om körningsprinciper finns i about_Execution_Policies. För mer information ange PowerShell.exe -?.

Så här ställer du in och ändrar kvoter

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

Du kan använda kvoter för att skydda den lokala datorn och fjärrdatorn från överdriven resursanvändning, både oavsiktlig och skadlig.

Följande kvoter är tillgängliga i den grundläggande konfigurationen.

  • WSMan-providern (WSMan:) innehåller flera kvotinställningar, till exempel inställningarna MaxEnvelopeSizeKB och MaxProviderRequests i WSMan:<ComputerName> noden och inställningarna MaxConcurrentOperations, MaxConcurrentOperationsPerUser och MaxConnectionsWSMan:<ComputerName>\Service noden.

  • Du kan skydda den lokala datorn med parametrarna MaximumReceivedDataSizePerCommand och MaximumReceivedObjectSize för cmdleten New-PSSessionOption$PSSessionOption och inställningsvariabeln.

  • Du kan skydda fjärrdatorn genom att lägga till begränsningar i sessionskonfigurationerna, till exempel genom att använda parametrarna MaximumReceivedDataSizePerCommandMB och MaximumReceivedObjectSizeMB för cmdleten Register-PSSessionConfiguration .

När kvoter är i konflikt med ett kommando genererar PowerShell ett fel.

Lös felet genom att ändra fjärrkommandot så att det överensstämmer med kvoten. Eller så kan du fastställa källan för kvoten och sedan öka kvoten så att kommandot kan slutföras.

Följande kommando ökar till exempel objektstorlekskvoten i Microsoft.PowerShell-sessionskonfigurationen på fjärrdatorn från 10 MB (standardvärdet) till 11 MB.

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

Mer information om cmdleten finns i New-PSSessionOptionNew-PSSessionOption.

Mer information om WS-Management kvoter finns i about_WSMan_Provider.

Så här löser du timeout-fel

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

Du kan använda tidsgränser för att skydda den lokala datorn och fjärrdatorn från överdriven resursanvändning, både oavsiktligt och skadligt. När tidsgränser anges på både den lokala datorn och fjärrdatorn använder PowerShell de kortaste tidsgränsinställningarna.

Följande timeouter är tillgängliga i den grundläggande konfigurationen.

  • WSMan-providern (WSMan:) innehåller flera timeout-inställningar på klientsidan och på tjänstsidan, till exempel inställningen MaxTimeoutms i WSMan:<ComputerName> noden och inställningarna EnumerationTimeoutms och MaxPacketRetrievalTimeSeconds i WSMan:<ComputerName>\Service noden.

  • Du kan skydda den lokala datorn med hjälp av parametrarna CancelTimeout, IdleTimeout, OpenTimeout och OperationTimeout för cmdleten New-PSSessionOption och inställningsvariabeln $PSSessionOption .

  • Du kan också skydda fjärrdatorn genom att ange timeout-värden programmatiskt i sessionskonfigurationen för sessionen.

När ett timeout-värde inte tillåter att en åtgärd slutförs avslutar PowerShell åtgärden och genererar ett fel.

Lös felet genom att ändra kommandot så att det slutförs inom tidsgränsen eller fastställa tidsgränsens källa och öka tidsgränsintervallet så att kommandot kan slutföras.

Följande kommandon använder till exempel cmdleten New-PSSessionOption för att skapa ett sessionsalternativobjekt med värdet OperationTimeout på 4 minuter (i MS) och använder sedan sessionsalternativobjektet för att skapa en fjärrsession.

$pso = New-PSSessionoption -OperationTimeout 240000

New-PSSession -ComputerName Server01 -sessionOption $pso

Mer information om tidsgränserna för WS-Management finns i hjälpavsnittet för WSMan-providern (typ Get-Help WSMan).

Mer information om cmdleten finns i New-PSSessionOptionNew-PSSessionOption.

Felsöka beteende som inte svarar

I det här avsnittet beskrivs problem med fjärrkommunikation som förhindrar att ett kommando slutförs och förhindrar eller fördröjer returen av PowerShell-prompten.

Så här avbryter du ett kommando

Vissa inbyggda Windows-program, till exempel program med ett användargränssnitt, konsolprogram som frågar efter indata och konsolprogram som använder Win32-konsol-API:et, fungerar inte korrekt i PowerShell-fjärrvärden.

När du använder dessa program kan du se ett oväntat beteende, till exempel inga utdata, partiella utdata eller ett fjärrkommando som inte slutförs.

Om du vill avsluta ett program som inte svarar skriver du CTRL+C. Om du vill visa eventuella fel som kan ha rapporterats skriver du $error in den lokala värden och fjärrsessionen.

Så här återställer du från ett åtgärdsfel

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

Det här felet returneras när en åtgärd avslutas innan den slutförs. Vanligtvis inträffar det när WinRM-tjänsten stoppas eller startas om medan andra WinRM-åtgärder pågår.

Lös problemet genom att kontrollera att WinRM-tjänsten körs och försök igen.

  1. Starta PowerShell med alternativet Kör som administratör .

  2. Kör följande kommando:

    Start-Service WinRM

  3. Kör kommandot som genererade felet igen.

Begränsningar för Linux och macOS

Autentisering

Endast grundläggande autentisering fungerar på macOS och försök att använda andra autentiseringsscheman kan leda till att processen kraschar.

Se Anvisningarna för OMI-autentisering .

SE ÄVEN

Import-PSSession

Exportera PSSession

Import-Module

about_Remote

about_Remote_Requirements

about_Remote_Variables