about_Remote_Troubleshooting

Korte beschrijving

Hierin wordt beschreven hoe u problemen met externe bewerkingen in PowerShell oplost.

Lange beschrijving

Zie about_Remote en about_Remote_Requirements voor hulp bij configuratie en basisgebruik voordat u externe communicatie van PowerShell gebruikt.

U moet beheerdersrechten hebben om instellingen voor de lokale computer in het WSMan: station weer te geven of te wijzigen. Dit omvat wijzigingen in sessieconfiguratie, vertrouwde hosts, poorten of listeners.

U moet PowerShell uitvoeren met de optie Als administrator uitvoeren.

Uitvoeren als beheerder

Voor fout:

FOUT: De toegang is geweigerd. U moet deze cmdlet uitvoeren vanuit een proces met verhoogde bevoegdheid.

Als u Windows PowerShell wilt starten met de optie Uitvoeren als administrator, klikt u met de rechtermuisknop op het PowerShell-pictogram in het menu Start en selecteert u Uitvoeren als administrator.

Externe communicatie inschakelen

Voor fouten:

  • FOUT: DE TOEGANG IS GEWEIGERD
  • FOUT: De verbinding met de externe host is geweigerd. Controleer of de WS-Management-service wordt uitgevoerd op de externe host en geconfigureerd om te luisteren naar aanvragen op de juiste poort en HTTP-URL.

Als u externe opdrachten wilt ontvangen, moet externe communicatie van PowerShell zijn ingeschakeld op de computer. Externe communicatie met Windows PowerShell is standaard ingeschakeld in Windows Server 2012 en nieuwere versies van Windows Server. U kunt Enable-PSRemoting externe communicatie opnieuw inschakelen als deze is uitgeschakeld. Zie Enable-PSRemoting voor meer informatie.

Externe communicatie inschakelen in een onderneming

Voor fouten:

  • FOUT: DE TOEGANG IS GEWEIGERD
  • FOUT: De verbinding met de externe host is geweigerd. Controleer of de WS-Management-service wordt uitgevoerd op de externe host en geconfigureerd om te luisteren naar aanvragen op de juiste poort en HTTP-URL.

Als u wilt dat één computer externe PowerShell-opdrachten ontvangt en verbindingen accepteert, gebruikt u de Enable-PSRemoting cmdlet.

Als u externe toegang wilt inschakelen voor meerdere computers in een onderneming, kunt u de volgende geschaalde opties gebruiken.

  • Schakel de automatische configuratie van het groepsbeleid van listeners in om listeners te configureren voor externe communicatie.
  • Configureer en schakel Windows Firewall in: groepsbeleid voor uitzonderingen voor lokale poorten toestaan.
  • Stel het opstarttype van de WinRM-service in Automatic op en start de service.

Listeners inschakelen met behulp van een groepsbeleid

Voor fouten:

  • FOUT: DE TOEGANG IS GEWEIGERD
  • FOUT: De verbinding met de externe host is geweigerd. Controleer of de WS-Management-service wordt uitgevoerd op de externe host en geconfigureerd om te luisteren naar aanvragen op de juiste poort en HTTP-URL.

Schakel de automatische configuratie van listenersbeleid toestaan in om de listeners voor alle computers in een domein te configureren.

Het beleid vindt u in het volgende pad naar groepsbeleid:

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

Schakel het beleid in en geef de IPv4- en IPv6-filters op. Jokertekens (*) zijn toegestaan.

Externe communicatie inschakelen voor openbare netwerken

Enable-PSRemoting retourneert deze fout wanneer het lokale netwerk openbaar is en de parameter SkipNetworkProfileCheck niet wordt gebruikt in de opdracht.

FOUT: Kan de status van de firewall niet controleren

In serverversies van Windows Enable-PSRemoting slaagt dit in alle netwerkprofielen. Er worden firewallregels gemaakt waarmee externe toegang tot privé- en domeinnetwerken ('Thuis' en 'Werk') is toegestaan. Voor openbare netwerken worden firewallregels gemaakt waarmee externe toegang vanuit hetzelfde lokale subnet mogelijk is.

In clientversies van Windows Enable-PSRemoting slaagt het in privé- en domeinnetwerken. Standaard mislukt dit op openbare netwerken, maar als u de parameter SkipNetworkProfileCheck gebruikt, Enable-PSRemoting slaagt en maakt u een firewallregel die verkeer van hetzelfde lokale subnet toestaat.

Notitie

In Windows PowerShell 2.0 maakt u op computers met serverversies van Windows Enable-PSRemoting firewallregels die externe toegang toestaan op privé-, domein- en openbare netwerken. Op computers met clientversies van Windows Enable-PSRemoting maakt u firewallregels die alleen externe toegang toestaan op privénetwerken en domeinnetwerken.

Voer de volgende opdracht uit om de lokale subnetbeperking op openbare netwerken te verwijderen en externe toegang vanaf elke locatie toe te staan:

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

De Set-NetFirewallRule cmdlet wordt geëxporteerd door de NetSecurity-module .

Notitie

De naam van de firewallregel kan verschillen voor verschillende versies van Windows. Gebruik Get-NetFirewallRule dit om een lijst met regels weer te geven. Voordat u de firewallregel inschakelt, bekijkt u de beveiligingsinstellingen in de regel om te controleren of de configuratie geschikt is voor uw omgeving.

Een firewalluitzondering inschakelen met behulp van een groepsbeleid

Voor fouten:

  • FOUT: DE TOEGANG IS GEWEIGERD
  • FOUT: De verbinding met de externe host is geweigerd. Controleer of de WS-Management-service wordt uitgevoerd op de externe host en geconfigureerd om te luisteren naar aanvragen op de juiste poort en HTTP-URL.

Gebruik Windows Firewall: beleid voor uitzonderingen op lokale poorten toestaan om een firewall-uitzondering in te schakelen voor alle computers in een domein.

Het beleid bevindt zich in het volgende pad voor groepsbeleid:

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

Met dit beleid kunnen leden van de groep Beheer istrators een firewall-uitzondering maken voor de WinRM-service (Windows Remote Management).

Als de beleidsconfiguratie onjuist is, wordt mogelijk de volgende fout weergegeven:

De client kan geen verbinding maken met de bestemming die is opgegeven in de aanvraag. Controleer of de service op de bestemming wordt uitgevoerd en of aanvragen worden geaccepteerd.

Een configuratiefout in het beleid resulteert in een lege waarde voor de eigenschap ListeningOn . Gebruik de volgende opdracht om de waarde te controleren.

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           : {}

Het opstarttype van de WinRM-service instellen

Voor fout:

FOUT: DE TOEGANG IS GEWEIGERD

Externe communicatie van PowerShell is afhankelijk van de WinRM-service (Windows Remote Management). De service moet worden uitgevoerd om externe opdrachten te ondersteunen.

Op serverversies van Windows is Automatichet opstarttype van de WinRM-service. In clientversies van Windows is de WinRM-service echter standaard uitgeschakeld.

Gebruik het volgende voorbeeld om het opstarttype van de WinRM-service in te stellen en de service te Automatic starten. De parameter ComputerName accepteert meerdere waarden.

$invokeCimMethodSplat = @{
    ComputerName = 'Server01', 'Server02'
    Query = 'Select * From Win32_Service Where Name = "WinRM"'
    MethodName = 'ChangeStartMode'
    Arguments = @{StartMode  = 'Automatic'}
}
Invoke-CimMethod @invokeCimMethodSplat

De standaardsessieconfiguraties opnieuw maken

Voor fout:

FOUT: DE TOEGANG IS GEWEIGERD

Wanneer u deze gebruikt Enable-PSRemoting, worden er standaardsessieconfiguraties gemaakt op de lokale computer. Externe gebruikers gebruiken deze sessieconfiguraties wanneer een externe opdracht de parameter ConfigurationName niet bevat.

Als de standaardconfiguraties op een computer niet zijn geregistreerd of verwijderd, gebruikt u de Enable-PSRemoting cmdlet om deze opnieuw te maken. U kunt deze cmdlet herhaaldelijk gebruiken. Er worden geen fouten gegenereerd als een functie al is geconfigureerd.

Als u de standaardsessieconfiguraties wijzigt en de oorspronkelijke sessieconfiguraties wilt herstellen, kunt u de configuraties verwijderen en opnieuw maken.

Gebruik de Unregister-PSSessionConfiguration cmdlet om de gewijzigde sessieconfiguraties te verwijderen. Gebruik Enable-PSRemoting dit om de oorspronkelijke sessieconfiguraties te herstellen. Enable-PSRemoting wijzigt bestaande sessieconfiguraties niet.

Notitie

Wanneer Enable-PSRemoting de standaardsessieconfiguratie wordt hersteld, worden er geen expliciete beveiligingsdescriptors voor de configuraties gemaakt. In plaats daarvan nemen de configuraties de beveiligingsdescriptor van de RootSDDL over, die standaard veilig is.

Als u de rootSDDL-beveiligingsdescriptor wilt zien, typt u:

Get-Item wsman:\localhost\Service\RootSDDL

Als u de RootSDDL wilt wijzigen, gebruikt u de Set-Item cmdlet in het WSMan: station. Als u de beveiligingsdescriptor van een sessieconfiguratie wilt wijzigen, gebruikt u de cmdlet met de Set-PSSessionConfigurationparameters SecurityDescriptorSDDL of ShowSecurityDescriptorUI .

Zie about_WSMan_Provider voor meer informatie over het WSMan: station.

Beheerdersreferenties opgeven

Voor fout:

FOUT: DE TOEGANG IS GEWEIGERD

U moet lid zijn van de groep Beheer istrators die verbinding maken met de standaardeindpunten voor externe sessies. U kunt de referentieparameter van de New-PSSessionof Enter-PSSessionInvoke-Command cmdlets gebruiken om verbinding te maken met externe eindpunten met behulp van alternatieve referenties.

In het volgende voorbeeld ziet u hoe u de referenties voor een gebruiker met beheerdersrechten opgeeft.

Invoke-Command -ComputerName Server01 -Credential Domain01\Admin01

Zie de Help voor New-PSSession, Enter-PSSession of Invoke-Command voor meer informatie over de referentieparameter.

Externe toegang inschakelen voor niet-gebruikers met beheerdersrechten

Voor fout:

FOUT: DE TOEGANG IS GEWEIGERD

Standaard zijn alleen leden van de groep Beheer istrators op een computer gemachtigd om de standaardsessieconfiguraties te gebruiken. Daarom kunnen alleen leden van de groep Beheer istrators op afstand verbinding maken met de computer.

Als u wilt toestaan dat andere gebruikers verbinding kunnen maken met de lokale computer, geeft u de gebruiker uitvoeringsmachtigingen voor de standaardsessieconfiguraties op de lokale computer.

In het volgende voorbeeld wordt een eigenschappenvenster geopend waarmee u de beveiligingsdescriptor van de standaardsessieconfiguratie Microsoft.PowerShell op de lokale computer kunt wijzigen.

Set-PSSessionConfiguration Microsoft.PowerShell -ShowSecurityDescriptorUI

Zie about_Session_Configurations voor meer informatie.

Externe toegang inschakelen voor beheerders in andere domeinen

Voor fout:

FOUT: DE TOEGANG IS GEWEIGERD

Wanneer een gebruiker in een ander domein lid is van de groep Beheer istrators op de lokale computer, kan de gebruiker op afstand geen verbinding maken met de lokale computer met Beheer istrator-bevoegdheden. Externe verbindingen van andere domeinen worden standaard uitgevoerd met alleen standaard tokens voor gebruikersbevoegdheden.

U kunt de registervermelding LocalAccountTokenFilterPolicy gebruiken om het standaardgedrag te wijzigen en externe gebruikers die lid zijn van de groep Beheer istrators, toe te staan om te worden uitgevoerd met Beheer istrator-bevoegdheden.

Let op

Met de vermelding LocalAccountTokenFilterPolicy worden externe beperkingen voor gebruikersaccountbeheer (UAC) uitgeschakeld voor alle gebruikers van alle betrokken computers. Houd rekening met de gevolgen van deze instelling voordat u het beleid wijzigt.

Gebruik de volgende opdracht om de registerwaarde LocalAccountTokenFilterPolicy in te stellen op 1.

$newItemPropertySplat = @{
  Name = 'LocalAccountTokenFilterPolicy'
  Path = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System'
  PropertyType = 'DWord'
  Value = 1
}
New-ItemProperty @newItemPropertySplat

Een IP-adres gebruiken in een externe opdracht

Voor fout:

FOUT: De WinRM-client kan de aanvraag niet verwerken. Als het verificatieschema verschilt van Kerberos of als de clientcomputer niet aan een domein is gekoppeld, moet HTTPS-transport worden gebruikt of moet de doelcomputer aan de configuratie-instelling TrustedHosts worden toegevoegd.

De parameter ComputerName van de New-PSSessionen Enter-PSSessionInvoke-Command cmdlets accepteert een IP-adres als een geldige waarde. Omdat Kerberos-verificatie echter geen ONDERSTEUNING biedt voor IP-adressen. Wanneer u een IP-adres opgeeft, wordt NTLM-verificatie gebruikt.

Als u NTLM-verificatie wilt ondersteunen, moet u voldoen aan de volgende vereisten:

  • Configureer de computer voor HTTPS-transport of voeg de IP-adressen van de externe computers toe aan de lijst TrustedHosts op de lokale computer.
  • Gebruik de referentieparameter in alle externe opdrachten. Dit is vereist, zelfs wanneer u verbinding maakt als de huidige gebruiker.

Extern verbinding maken vanaf een computer op basis van werkgroepen

Voor fout

FOUT: De WinRM-client kan de aanvraag niet verwerken. Als het verificatieschema verschilt van Kerberos of als de clientcomputer niet aan een domein is gekoppeld, moet HTTPS-transport worden gebruikt of moet de doelcomputer aan de configuratie-instelling TrustedHosts worden toegevoegd.

Wanneer de lokale computer zich niet in een domein bevindt, moet u voldoen aan de volgende vereisten:

  • Configureer de computer voor HTTPS-transport of voeg de IP-adressen van de externe computers toe aan de lijst TrustedHosts op de lokale computer.
  • Controleer of een wachtwoord is ingesteld op de computer op basis van werkgroepen. Als een wachtwoord niet is ingesteld of de wachtwoordwaarde leeg is, kunt u geen externe opdrachten uitvoeren.
  • Gebruik de referentieparameter in alle externe opdrachten. Dit is vereist, zelfs wanneer u verbinding maakt als de huidige gebruiker.

Een computer toevoegen aan de lijst met vertrouwde hosts

Het Item TrustedHosts kan een door komma's gescheiden lijst met computernamen, IP-adressen en volledig gekwalificeerde domeinnamen bevatten. Jokertekens zijn toegestaan.

Gebruik het WSMan: station om de lijst met vertrouwde hosts weer te geven of te wijzigen. Het TrustedHost-item bevindt zich in het WSMan:\localhost\Client knooppunt. Alleen leden van de groep Beheer istrators op de computer zijn gemachtigd om de lijst met vertrouwde hosts op de computer te wijzigen.

Let op

De waarde die u voor het Item TrustedHosts instelt, is van invloed op alle gebruikers van de computer.

Gebruik de volgende opdracht om de lijst met vertrouwde hosts weer te geven:

Get-Item wsman:\localhost\Client\TrustedHosts

In het volgende voorbeeld wordt het jokerteken (*) gebruikt om alle computers toe te voegen aan de lijst met vertrouwde hosts.

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

U kunt ook een jokerteken (*) gebruiken om alle computers in een bepaald domein toe te voegen aan de lijst met vertrouwde hosts. Met de volgende opdracht worden bijvoorbeeld alle computers in het Fabrikam-domein toegevoegd.

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

In het volgende voorbeeld wordt de lijst met vertrouwde hosts ingesteld op één computer.

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

Als u een computernaam wilt toevoegen aan een bestaande lijst met vertrouwde hosts, slaat u eerst de huidige waarde op in een variabele. Stel vervolgens de waarde in op een tekenreeks die een door komma's gescheiden lijst bevat die de huidige en nieuwe waarden bevat.

In het volgende voorbeeld voegt u Server01 toe aan een bestaande lijst met vertrouwde hosts.

$newServer = 'Server01.Domain01.Fabrikam.com'
$curValue = (Get-Item wsman:\localhost\Client\TrustedHosts).Value
Set-Item wsman:\localhost\Client\TrustedHosts -Value "$curValue, $newServer"

Gebruik de volgende opdrachtindeling om de IP-adressen van bepaalde computers toe te voegen aan de lijst met vertrouwde hosts:

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

Voorbeeld:

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

Als u een computer wilt toevoegen aan de lijst TrustedHosts van een externe computer, gebruikt u de Connect-WSMan computer om verbinding te maken met WSMan: de externe computer die wordt gebruikt Set-Item om de computer toe te voegen.

Zie de Help voor Verbinding maken-WSMan voor meer informatie.

Externe communicatie configureren op alternatieve poorten

Voor fout:

FOUT: De verbinding met de opgegeven externe host is geweigerd. Controleer of de WS-Management-service wordt uitgevoerd op de externe host en geconfigureerd om te luisteren naar aanvragen op de juiste poort en HTTP-URL.

Externe communicatie van PowerShell maakt standaard gebruik van poort 80 voor HTTP-transport. De standaardpoort wordt gebruikt wanneer de gebruiker de Verbinding maken ionURI- of poortparameters niet opgeeft in een externe opdracht.

Gebruik Set-Item de cmdlet om de poortwaarde in het leaf-knooppunt van de listener te wijzigen.

Met de volgende opdracht wordt bijvoorbeeld de standaardpoort gewijzigd in 8080.

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

Externe communicatie configureren met een proxyserver

Voor fout:

FOUT: De client kan geen verbinding maken met het doel dat is opgegeven in de aanvraag. Controleer of de service op de bestemming wordt uitgevoerd en of aanvragen worden geaccepteerd.

Omdat externe communicatie van PowerShell gebruikmaakt van het HTTP-protocol, wordt dit beïnvloed door HTTP-proxyinstellingen. In ondernemingen met proxyservers hebben gebruikers rechtstreeks geen toegang tot een externe PowerShell-computer.

U kunt dit probleem oplossen door proxy-instellingsopties te gebruiken in uw externe opdracht.

  • Gebruik de parameters ProxyAccessType, ProxyAuthentication en ProxyCredential van de New-PSSessionOption cmdlet om een variabele te maken die een PSSessionOption-object bevat met de proxy-instellingen voor uw onderneming.
  • Gebruik de variabele met het PSSessionOption-object met de parameter SessionOption van een New-PSSession, Enter-PSSessionof Invoke-Command opdracht.
$newPSSessionOptionSplat = @{
    ProxyAccessType = 'IEConfig'
    ProxyAuthentication = 'Negotiate'
    ProxyCredential = 'Domain01\User01'
}
$SessionOption = New-PSSessionOption @newPSSessionOptionSplat

$newPSSessionSplat = @{
    ConnectionUri = 'https://www.fabrikam.com'
    SessionOption = $SessionOption
}
New-PSSession @newPSSessionSplat

Zie New-PSSessionOption voor meer informatie over de New-PSSessionOption cmdlet.

Als u deze opties wilt instellen voor alle externe opdrachten in de huidige sessie, stelt u de $PSSessionOption voorkeursvariabele in op het PSSessionOption-object dat u hebt gemaakt. Zie about_Preference_Variables voor meer informatie.

Als u deze opties wilt instellen voor alle externe opdrachten in alle PowerShell-sessies op de lokale computer, voegt u de $PSSessionOption voorkeursvariabele toe aan uw PowerShell-profiel. Zie about_Profiles voor meer informatie over PowerShell-profielen.

Een 32-bits sessie detecteren op een 64-bits computer

Voor fout:

FOUT: De term <toolnaam> wordt niet herkend als de naam van een cmdlet, functie, scriptbestand of beveiligbaar programma. Controleer de spelling van de naam of controleer of een pad is opgenomen, controleer of het pad juist is en probeer het opnieuw.

Als op de externe computer een 64-bits versie van Windows wordt uitgevoerd en de externe opdracht een 32-bits sessieconfiguratie gebruikt, zoals Microsoft.PowerShell32, laadt WinRM een WOW64-proces. In Windows worden alle verwijzingen naar $env:Windir\System32 de $env:Windir\SysWOW64 map automatisch omgeleid.

Als gevolg hiervan kunt u hulpprogramma's uitvoeren in de System32 map die geen tegenhangers in de SysWow64 map hebben, niet worden gevonden.

Als u de processorarchitectuur wilt vinden die in de sessie wordt gebruikt, gebruikt u de waarde van de omgevingsvariabele PROCESSOR_ARCHITECTURE.

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

Zie about_Session_Configurations voor meer informatie.

Problemen met beleid en voorkeur oplossen

In deze sectie worden problemen met externe communicatie besproken die betrekking hebben op beleid en voorkeuren die zijn ingesteld op de lokale en externe computers.

Het uitvoeringsbeleid voor Import-PSSession en Import-Module wijzigen

Voor fout:

FOUT: Import-Module: Bestandsnaam <> van bestand kan niet worden geladen omdat de uitvoering van scripts op dit systeem is uitgeschakeld.

De Import-PSSession en Export-PSSession cmdlets maken modules die niet-ondertekende scriptbestanden en opmaakbestanden bevatten.

Als u de modules wilt importeren die door deze cmdlets zijn gemaakt, kan het uitvoeringsbeleid in de huidige sessie niet Restricted of AllSigned. Raadpleeg about_Execution_Policies voor meer informatie.

Als u de modules wilt importeren zonder het uitvoeringsbeleid voor de lokale computer te wijzigen, gebruikt u de parameter Bereik om Set-ExecutionPolicy een minder beperkend uitvoeringsbeleid in te stellen voor één proces.

In het volgende voorbeeld wordt bijvoorbeeld het uitvoeringsbeleid RemoteSigned ingesteld op het huidige proces. De wijziging is alleen van invloed op het huidige proces.

Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned

U kunt ook de parameter PowerShell.exe ExecutionPolicy gebruiken om één sessie te starten met een minder beperkend uitvoeringsbeleid.

pwsh.exe -ExecutionPolicy RemoteSigned

Quota instellen en wijzigen

U kunt quota gebruiken om de lokale computer en de externe computer te beschermen tegen overmatig resourcegebruik, zowel onbedoeld als schadelijk. Wanneer quota conflicteren met een opdracht, genereert PowerShell de volgende fout.

FOUT: De totale gegevens die van de externe client zijn ontvangen, hebben het toegestane maximum overschreden.

De WSMan-provider heeft de volgende quotuminstellingen:

  • De instellingen MaxEnvelopeSizeKB en MaxProviderRequests in het WSMan:<ComputerName> knooppunt en de instellingen MaxConcurrentOperations, MaxConcurrentOperationsPerUser en Max Verbinding maken ions in het WSMan:<ComputerName>\Service knooppunt.
  • U kunt de parameters MaximumReceivedDataSizePerCommand en MaximumReceivedObjectSize van de New-PSSessionOption cmdlet en de $PSSessionOption voorkeursvariabele gebruiken om de lokale computer te beveiligen.
  • Als u de externe computer wilt beveiligen, voegt u beperkingen toe aan de sessieconfiguraties met behulp van de parameters MaximumReceivedDataSizePerCommandMB en MaximumReceivedObjectSizeMB van de Register-PSSessionConfiguration cmdlet.

Als u de fout wilt oplossen, wijzigt u de externe opdracht om te voldoen aan het quotum of verhoogt u het quotum zodat de opdracht kan worden voltooid.

Met de volgende opdracht wordt bijvoorbeeld het quotum voor objectgrootte in de microsoft.PowerShell-sessieconfiguratie op de externe computer verhoogd van 10 MB (de standaardwaarde) tot 11 MB.

$setPSSessionConfigurationSplat = @{
    Name = 'Microsoft.PowerShell'
    MaximumReceivedObjectSizeMB = 11
    Force = $true
}
Set-PSSessionConfiguration @setPSSessionConfigurationSplat

Zie about_WSMan_Provider voor meer informatie over de WS-Management-quota.

Time-outfouten oplossen

U kunt time-outs gebruiken om de lokale computer en de externe computer te beschermen tegen overmatig resourcegebruik, zowel onbedoeld als schadelijk. Wanneer time-outs zijn ingesteld op zowel de lokale als externe computer, gebruikt PowerShell de kortste time-outinstellingen.

Wanneer een time-outwaarde geen bewerking toestaat, beëindigt PowerShell de bewerking en genereert de volgende fout.

FOUT: De WS-Management-service kan de bewerking niet voltooien binnen de tijd die is opgegeven in OperationTimeout.

De WSMan-provider heeft de volgende time-outinstellingen.

  • De instelling MaxTimeoutMs in het WSMan:<ComputerName> knooppunt en de instellingen EnumerationTimeoutMs en MaxPacketRetrievalTimeSeconds in het WSMan:<ComputerName>\Service knooppunt.
  • U kunt de lokale computer beveiligen met behulp van de parameters CancelTimeout, IdleTimeout, OpenTimeout en OperationTimeout van de New-PSSessionOption cmdlet en de $PSSessionOption voorkeursvariabele.
  • U kunt de externe computer ook beveiligen door programmatisch time-outwaarden in te stellen in de sessieconfiguratie voor de sessie.

Als u de fout wilt oplossen, wijzigt u de opdracht die u binnen het time-outinterval wilt voltooien of verhoogt u het time-outinterval zodat de opdracht kan worden voltooid.

In het volgende voorbeeld wordt een sessieoptie gemaakt met een OperationTimeout-waarde van 4 minuten (in MS). Vervolgens wordt de sessieoptie gebruikt om een externe sessie te maken.

$pso = New-PSSessionOption -OperationTimeout 240000
New-PSSession -ComputerName Server01 -SessionOption $pso

Zie about_WSMan_Provider voor meer informatie over de time-outs van WS-Management.

Een opdracht onderbreken die niet reageert

Sommige systeemeigen programma's, zoals programma's met een gebruikersinterface, consoletoepassingen die vragen om invoer en consoletoepassingen die gebruikmaken van de Win32-console-API, werken niet correct in de externe PowerShell-host.

Wanneer u deze programma's gebruikt, ziet u mogelijk onverwacht gedrag, zoals geen uitvoer, gedeeltelijke uitvoer of een externe opdracht die niet is voltooid.

Als u een niet-reagerend programma wilt beëindigen, typt u Ctrl+c. Gebruik Get-Error deze functie in de lokale host en de externe sessie om eventuele fouten weer te geven die mogelijk zijn gerapporteerd.

Herstellen na een bewerkingsfout

De volgende fout wordt geretourneerd wanneer een bewerking wordt beëindigd voordat deze is voltooid.

FOUT: De I/O-bewerking is afgebroken vanwege een thread-exit of een toepassingsaanvraag.

Dit gebeurt meestal wanneer de WinRM-service stopt of opnieuw wordt opgestart terwijl er andere WinRM-bewerkingen worden uitgevoerd.

U kunt dit probleem oplossen door te controleren of de WinRM-service wordt uitgevoerd en probeer de opdracht opnieuw uit te voeren.

  1. Start PowerShell met de optie Uitvoeren als administrator .

  2. Voer de volgende opdracht uit:

    Start-Service WinRM

  3. Voer de opdracht die de fout heeft gegenereerd opnieuw uit.

Beperkingen voor Linux en macOS

Externe communicatie van PowerShell is Linux en macOS met behulp van externe communicatie via SSH. Zie Voor meer informatie PowerShell remoting via SSH.

Zie ook