about_Remote_Troubleshooting

Korte beschrijving

Beschrijft hoe u problemen met externe bewerkingen in PowerShell kunt oplossen.

Lange beschrijving

In deze sectie worden enkele problemen beschreven die kunnen ontstaan bij het gebruik van de functies voor communicatie met PowerShell die zijn gebaseerd op WS-Management-technologie en worden oplossingen voor deze problemen aangetroffen.

Zie Informatie over en about_Remote en about_Remote_Requirements voor hulp bij configuratie en basisgebruik voordat u PowerShell voor meer informatie gebruikt. Daarnaast bevatten de Help-onderwerpen voor elk van de cmdlets voor het op afstand zoeken, met name de beschrijvingen van parameters, nuttige informatie die is ontworpen om problemen te voorkomen.

Notitie

Als u instellingen voor de lokale computer in het station WSMan: wilt weergeven of wijzigen, inclusief wijzigingen in de sessieconfiguraties, vertrouwde hosts, poorten of listeners, start u PowerShell met de optie Als administrator uitvoeren.

Problemen met machtigingen en verificatie oplossen

In deze sectie worden problemen met betrekking tot gebruikers- en computermachtigingen en vereisten voor remoting besproken.

Uitvoeren als beheerder

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

Als u een externe sessie op de lokale computer wilt starten of de instellingen voor de lokale computer in het WSMan-station wilt weergeven of wijzigen, inclusief wijzigingen in de sessieconfiguraties, vertrouwde hosts, poorten of listeners, start u Windows PowerShell met de optie Als administrator uitvoeren.

Als u wilt Windows PowerShell met de optie Als administrator uitvoeren:

  • Klik met de rechtermuisknop op Windows PowerShell pictogram (of Windows PowerShell ISE) en klik vervolgens op Als administrator uitvoeren.

    Om te Windows PowerShell met de optie Als administrator uitvoeren in Windows 7 en Windows Server 2008 R2.

  • Klik in Windows taakbalk met de rechtermuisknop op het Windows PowerShell en klik vervolgens op Als administrator uitvoeren.

    In Windows Server 2008 R2 is het Windows PowerShell standaard vastgemaakt aan de taakbalk.

Remoting inschakelen

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.

Er is geen configuratie vereist om een computer in staat te stellen externe opdrachten te verzenden. Als u externe opdrachten wilt ontvangen, moet externe toegang van PowerShell echter zijn ingeschakeld op de computer. Inschakelen omvat het starten van de WinRM-service, het instellen van het opstarttype voor de WinRM-service op Automatisch, het maken van listeners voor HTTP- en HTTPS-verbindingen en het maken van standaardsessieconfiguraties.

Windows PowerShell is standaard ingeschakeld op Windows Server 2012 en nieuwere versies van Windows Server. Voer op alle andere systemen de Enable-PSRemoting cmdlet uit om remoting in te stellen. U kunt ook de Enable-PSRemoting cmdlet uitvoeren om remoting op Windows Server 2012 en nieuwere releases van Windows Server opnieuw in te stellen als de functie voor remoting is uitgeschakeld.

Als u een computer wilt configureren voor het ontvangen van externe opdrachten, gebruikt u de Enable-PSRemoting cmdlet . Met de volgende opdracht schakelt u alle vereiste externe instellingen in, schakelt u de sessieconfiguraties in en start u de WinRM-service opnieuw op om de wijzigingen van kracht te laten worden.

Enable-PSRemoting

Als u wilt onderdrukken alle gebruikersprompts, typt u:

Enable-PSRemoting -Force

Zie Enable-PSRemoting voor meer informatie.

Remoting inschakelen in een onderneming

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.

Als u één computer externe PowerShell-opdrachten wilt laten ontvangen en verbindingen wilt accepteren, gebruikt u de Enable-PSRemoting cmdlet .

U kunt de volgende geschaalde opties gebruiken om de functie voor het gebruik van de functie voor het gebruik van de computer voor meerdere computers in een onderneming in te stellen.

  • Schakel het groepsbeleid Automatische configuratie van listeners toestaan in om listeners te configureren voor remoting.

  • Als u het opstarttype van de Windows Remote Management (WinRM) wilt instellen op Automatisch op meerdere computers, gebruikt u de Set-Service cmdlet .

  • Als u een firewall-uitzondering wilt inschakelen, gebruikt u de Windows Firewall: Groepsbeleid Uitzonderingen op lokale poort toestaan.

Listeners inschakelen met behulp van een groepsbeleid

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.

Als u de listeners voor alle computers in een domein wilt configureren, moet u het beleid Automatische configuratie van listeners toestaan inschakelen in het volgende groepsbeleid pad:

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.

Remoting inschakelen in openbare netwerken

ERROR:  Unable to check the status of the firewall

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

Op serverversies van Windows, Enable-PSRemoting slaagt op alle netwerklocatietypen. Er worden firewallregels gemaakt die externe toegang tot privé- en domeinnetwerken ('Start' en 'Werk') toestaan. Voor openbare netwerken worden firewallregels gemaakt die externe toegang vanaf hetzelfde lokale subnet mogelijk maken.

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

Als u de lokale subnetbeperking voor openbare netwerken wilt verwijderen en externe toegang vanaf elke locatie wilt toestaan, moet u de volgende opdracht uitvoeren:

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 om een lijst met regels te bekijken. Voordat u de firewallregel inschakelen, bekijkt u de beveiligingsinstellingen in de regel om te controleren of de configuratie geschikt is voor uw omgeving.

Notitie

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

Een firewall-uitzondering inschakelen met behulp van een groepsbeleid

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.

Als u een firewall-uitzondering wilt inschakelen voor op alle computers in een domein, moet u het beleid Windows Firewall: Uitzonderingen voor lokale poort toestaan in het volgende groepsbeleid inschakelen:

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

Met dit beleid kunnen leden van de groep Administrators op de computer Windows Firewall in Configuratiescherm gebruiken om een firewall-uitzondering te maken voor de Windows Remote Management-service.

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

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

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

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

Het opstarttype van de WinRM-service instellen

ERROR:  ACCESS IS DENIED

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

Op serverversies van Windows is het opstarttype van de Windows WinRM-service (Remote Management) Automatisch.

Op clientversies van Windows is de WinRM-service echter standaard uitgeschakeld.

Als u het opstarttype van een service op een externe computer wilt instellen, gebruikt u de Set-Service cmdlet .

Als u de opdracht op meerdere computers wilt uitvoeren, kunt u een tekstbestand of CSV-bestand met de computernamen maken.

Met de volgende opdrachten wordt bijvoorbeeld een lijst met computernamen Servers.txt uit het bestand opgeslagen en wordt het opstarttype van de WinRM-service op alle computers op Automatisch gezet.

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

Als u de resultaten wilt zien, gebruikt Get-WMIObject u de cmdlet met het Win32_Service object . Zie Set-Service voor meer informatie.

De standaardsessieconfiguraties opnieuw maken

ERROR:  ACCESS IS DENIED

Als u verbinding wilt maken met de lokale computer en opdrachten extern wilt uitvoeren, moet de lokale computer sessieconfiguraties voor externe opdrachten bevatten.

Wanneer u gebruikt Enable-PSRemoting, worden 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, Enable-PSRemoting gebruikt u de 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 standaardsessieconfiguraties wilt herstellen, Unregister-PSSessionConfiguration gebruikt u de cmdlet om de gewijzigde sessieconfiguraties Enable-PSRemoting te verwijderen en gebruikt u vervolgens de cmdlet om deze te herstellen. Enable-PSRemoting wijzigt bestaande sessieconfiguraties niet.

Notitie

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

Als u de RootSDDL-security descriptor, typt u:

Get-Item wsman:\localhost\Service\RootSDDL

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

Zie het Help-onderwerp voor de WSMan-provider ('Get-Help wsman') voor meer informatie over het WSMan:-station.

Beheerdersreferenties verstrekken

ERROR:  ACCESS IS DENIED

Als u een PSSession wilt maken of opdrachten wilt uitvoeren op een externe computer, moet de huidige gebruiker standaard lid zijn van de groep Administrators op de externe computer. Referenties zijn soms vereist, zelfs wanneer de huidige gebruiker is aangemeld bij een account dat lid is van de groep Administrators.

Als de huidige gebruiker lid is van de groep Administrators op de externe computer of de referenties van een lid van de groep Administrators kan opgeven, gebruikt u de parameter Referentie van de cmdlets of New-PSSession``Enter-PSSession Invoke-Command om op afstand verbinding te maken.

De volgende opdracht bevat bijvoorbeeld de referenties van een beheerder.

Invoke-Command -ComputerName Server01 -Credential Domain01\Admin01

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

Remoting inschakelen voor niet-beheerders

ERROR:  ACCESS IS DENIED

Als u een PSSession wilt maken of een opdracht wilt uitvoeren op een externe computer, moet de gebruiker toestemming hebben om de sessieconfiguraties op de externe computer te gebruiken.

Standaard hebben alleen leden van de groep Administrators op een computer toestemming om de standaardsessieconfiguraties te gebruiken. Daarom kunnen alleen leden van de groep Administrators op afstand verbinding maken met de computer.

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

Met de volgende opdracht opent u een eigenschappenblad waarmee u de security descriptor van de standaardconfiguratie van de Microsoft.PowerShell-sessie op de lokale computer kunt wijzigen.

Set-PSSessionConfiguration Microsoft.PowerShell -ShowSecurityDescriptorUI

Zie voor meer informatie about_Session_Configurations.

Remoting inschakelen voor beheerders in andere domeinen

ERROR:  ACCESS IS DENIED

Wanneer een gebruiker in een ander domein lid is van de groep Administrators op de lokale computer, kan de gebruiker op afstand geen verbinding maken met de lokale computer met beheerdersbevoegdheden. Externe verbindingen van andere domeinen worden standaard alleen uitgevoerd met standaardtokens voor gebruikersrechten.

U kunt echter de registerinvoer LocalAccountTokenFilterPolicy gebruiken om het standaardgedrag te wijzigen en externe gebruikers die lid zijn van de groep Administrators toe te staan om uit te voeren met administratorbevoegdheden.

Waarschuwing

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

Als u het beleid wilt wijzigen, gebruikt u de volgende opdracht om de waarde van de registerinvoer LocalAccountTokenFilterPolicy in te stellen op 1.

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

Een IP-adres gebruiken in een externe opdracht

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.

De parameter ComputerName van de New-PSSessioncmdlets , Enter-PSSession Invoke-Command en accepteert een IP-adres als een geldige waarde. Omdat Kerberos-verificatie echter geen ONDERSTEUNING biedt voor IP-adressen, wordt NTLM-verificatie standaard gebruikt wanneer u een IP-adres opgeeft.

Wanneer u NTLM-verificatie gebruikt, is de volgende procedure vereist voor het zoeken naar een andere omgeving.

  1. Configureer de computer voor HTTPS-transport of voeg de IP-adressen van de externe computers toe aan de lijst TrustedHosts op de lokale computer.

  2. Gebruik de referentie parameter in alle externe opdrachten.

    Dit is vereist, zelfs wanneer u de referenties van de huidige gebruiker indient.

Op afstand verbinding maken vanaf een werkgroepcomputer

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.

Wanneer de lokale computer zich niet in een domein, is de volgende procedure vereist voor het op andere niveau gebruiken van de computer.

  1. Configureer de computer voor HTTPS-transport of voeg de namen van de externe computers toe aan de lijst TrustedHosts op de lokale computer.

  2. Controleer of er een wachtwoord is ingesteld op de werkgroepcomputer. Als er geen wachtwoord is ingesteld of de wachtwoordwaarde leeg is, kunt u geen externe opdrachten uitvoeren.

    Als u het wachtwoord voor uw gebruikersaccount wilt instellen, gebruikt u Gebruikersaccounts in Configuratiescherm.

  3. Gebruik de referentie parameter in alle externe opdrachten.

    Dit is vereist, zelfs wanneer u de referenties van de huidige gebruiker indient.

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.

Als u de lijst met vertrouwde host wilt weergeven of wijzigen, gebruikt u het station WSMan: . Het item TrustedHost staat in het WSMan:\localhost\Client knooppunt.

Alleen leden van de groep Administrators op de computer hebben toestemming om de lijst met vertrouwde hosts op de computer te wijzigen.

Let op: de waarde die u in stelt voor het item TrustedHosts 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

U kunt ook de Set-Location cmdlet (alias = cd) gebruiken om door het station WSMan: naar de locatie te navigeren. Bijvoorbeeld:

cd WSMan:\localhost\Client; dir

Als u alle computers wilt toevoegen aan de lijst met vertrouwde hosts, gebruikt u de volgende opdracht, waarmee de waarde * (alle) in de ComputerName wordt geplaatst

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 domein Fabrikam toegevoegd aan de lijst met vertrouwde hosts.

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

Als u de namen van bepaalde computers wilt toevoegen aan de lijst met vertrouwde hosts, gebruikt u de volgende opdrachtindeling:

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

waarbij elke waarde <ComputerName> de volgende indeling moet hebben:

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

Bijvoorbeeld:

$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, moet u eerst de huidige waarde opslaan in een variabele en vervolgens de waarde instellen op een door komma's gescheiden lijst met de huidige en nieuwe waarden.

Als u bijvoorbeeld de server01-computer wilt toevoegen aan een bestaande lijst met vertrouwde hosts, gebruikt u de volgende opdracht

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

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

Als u de IP-adressen van bepaalde computers wilt toevoegen aan de lijst met vertrouwde hosts, gebruikt u de volgende opdrachtindeling:

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

Bijvoorbeeld:

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, Connect-WSMan gebruikt u de cmdlet om een knooppunt voor de externe computer toe te voegen aan het station WSMan: op de lokale computer. Gebruik vervolgens een opdracht Set-Item om de computer toe te voegen.

Zie voor meer informatie over Connect-WSMan de cmdlet Verbinding maken-WSMan.

Problemen met computerconfiguratie oplossen

In deze sectie worden problemen met betrekking tot de remoting besproken die betrekking hebben op bepaalde configuraties van een computer, domein of onderneming.

Remoting configureren op alternatieve poorten

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 voor remoting gebruikt standaard poort 80 voor HTTP-transport. De standaardpoort wordt gebruikt wanneer de gebruiker de parameters ConnectionURI of Port niet opgeeft in een externe opdracht.

Als u de standaardpoort wilt wijzigen die powerShell gebruikt, Set-Item gebruikt u de cmdlet in het station WSMan: om de waarde Poort in het leaf-knooppunt van de listener te wijzigen.

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

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

Remoting configureren met een 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.

Omdat voor communicatie met PowerShell gebruik wordt gemaakt van het HTTP-protocol, worden deze beïnvloed door http-proxyinstellingen. In ondernemingen met proxyservers hebben gebruikers geen rechtstreeks toegang tot een externe PowerShell-computer.

Gebruik proxy-instellingsopties in uw externe opdracht om dit probleem op te lossen. De volgende instellingen zijn beschikbaar:

  • ProxyAccessType
  • ProxyAuthentication
  • ProxyCredential

Gebruik de volgende procedure om deze opties in te stellen voor een bepaalde opdracht:

  1. Gebruik de parameters New-PSSessionOption ProxyAccessType, ProxyAuthentication en ProxyCredential van de cmdlet om een sessieoptieobject te maken met de proxyinstellingen voor uw onderneming. Het optieobject opslaan is een variabele.

  2. Gebruik de variabele die het optieobject bevat als de waarde van de parameter SessionOption van een New-PSSessionopdracht , Enter-PSSessionof Invoke-Command .

Met de volgende opdracht maakt u bijvoorbeeld een sessieoptieobject met proxysessieopties en gebruikt u vervolgens het -object om een externe sessie te maken.

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

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

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

Als u deze opties wilt instellen voor alle externe opdrachten in de huidige sessie, gebruikt u het optieobject New-PSSessionOption dat maakt in de waarde van de voorkeursvariabele $PSSessionOption . Zie voor meer informatie about_Preference_Variables.

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

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

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.

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 Windows Remote Management (WinRM) een WOW64-proces en leidt Windows $env:Windir\System32 $env:Windir\SysWOW64 automatisch alle verwijzingen naar de map om naar de map.

Als u daarom hulpprogramma's in de System32-directory probeert te gebruiken die geen tegenhangers in de map SysWow64 hebben, Defrag.exezoals , kunnen de hulpprogramma's niet worden gevonden in de map .

Als u de processorarchitectuur wilt vinden die in de sessie wordt gebruikt, gebruikt u de waarde van de PROCESSOR_ARCHITECTURE omgevingsvariabele. Met de volgende opdracht wordt de processorarchitectuur van de sessie in de variabele $s gevonden.

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

Zie about_Session_Configurations (Engelstalig) voor meer informatie over sessieconfiguraties.

Problemen met beleid en voorkeur oplossen

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

Het uitvoeringsbeleid voor uw Import-PSSession en Import-Module

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

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

Als u de modules wilt importeren die door deze cmdlets zijn gemaakt, Import-PSSession met behulp van of Import-Module, kan het uitvoeringsbeleid in de huidige sessie niet Beperkt of AllSigned zijn. Zie voor meer informatie over het PowerShell-uitvoeringsbeleid about_Execution_Policies.

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

Met de volgende opdracht wordt bijvoorbeeld een proces gestart met het uitvoeringsbeleid RemoteSigned . De wijziging van het uitvoeringsbeleid is alleen van invloed op het huidige proces en wijzigt de registerinstelling PowerShell ExecutionPolicy niet.

Set-ExecutionPolicy -Scope process -ExecutionPolicy RemoteSigned

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

PowerShell.exe -ExecutionPolicy RemoteSigned

Zie voor meer informatie over uitvoeringsbeleid about_Execution_Policies. Typ PowerShell.exe -? voor meer informatie.

Quota instellen en wijzigen

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

U kunt quota gebruiken om de lokale computer en de externe computer te beschermen tegen overmatig resourcegebruik, zowel onopzettelijk als schadelijk.

De volgende quota zijn beschikbaar in de basisconfiguratie.

  • De WSMan-provider (WSMan:) biedt verschillende quotuminstellingen, zoals de instellingen MaxEnvelopeSizeKB en MaxProviderRequests in WSMan:<ComputerName> het knooppunt en de instellingen MaxConcurrentOperations, MaxConcurrentOperationsPerUser en MaxConnections in het WSMan:<ComputerName>\Service knooppunt.

  • U kunt de lokale computer beveiligen met de parameters New-PSSessionOption MaximumReceivedDataSizePerCommand en MaximumReceivedObjectSize van de cmdlet en de $PSSessionOption voorkeursvariabele.

  • U kunt de externe computer beveiligen door beperkingen toe te voegen aan de sessieconfiguraties, bijvoorbeeld door de parameters MaximumReceivedDataSizePerCommandMB en MaximumReceivedObjectSizeMB van de cmdlet te gebruiken.Register-PSSessionConfiguration

Wanneer quota conflicteren met een opdracht, genereert PowerShell een fout.

Als u de fout wilt oplossen, wijzigt u de externe opdracht om te voldoen aan het quotum. Of bepaal de bron van het quotum en verhoog vervolgens het quotum zodat de opdracht kan worden voltooid.

Met de volgende opdracht verhoogt u bijvoorbeeld het quotum voor objectgrootte in de Microsoft.PowerShell-sessieconfiguratie op de externe computer van 10 MB (de standaardwaarde) naar 11 MB.

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

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

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

Time-outfouten oplossen

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

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 de externe computer, gebruikt PowerShell de kortste time-outinstellingen.

De volgende time-outs zijn beschikbaar in de basisconfiguratie.

  • De WSMan-provider (WSMan:) biedt verschillende time-outinstellingen aan de clientzijde en aan de servicezijde, zoals de instelling MaxTimeoutms in WSMan:<ComputerName> het knooppunt en de instellingen EnumerationTimeoutms en MaxPacketRetrievalTimeSeconds in WSMan:<ComputerName>\Service het knooppunt.

  • U kunt de lokale computer beveiligen met de parameters New-PSSessionOption CancelTimeout, IdleTimeout, OpenTimeout en OperationTimeout van de cmdlet $PSSessionOption en de voorkeursvariabele.

  • U kunt de externe computer ook beveiligen door via een programma time-outwaarden in te stellen in de sessieconfiguratie voor de sessie.

Wanneer een time-outwaarde een bewerking niet kan voltooien, wordt de bewerking door PowerShell beëindigd en wordt er een fout gegenereerd.

Als u de fout wilt oplossen, wijzigt u de opdracht zodat deze binnen het time-outinterval wordt voltooid of bepaalt u de bron van de time-outlimiet en verhoogt u het time-outinterval zodat de opdracht kan worden voltooid.

New-PSSessionOption De volgende opdrachten gebruiken bijvoorbeeld de cmdlet om een sessieoptieobject te maken met een OperationTimeout-waarde van 4 minuten (in MS) en gebruiken vervolgens het sessieoptieobject om een externe sessie te maken.

$pso = New-PSSessionoption -OperationTimeout 240000

New-PSSession -ComputerName Server01 -sessionOption $pso

Zie het HelpWS-Management onderwerp voor de WSMan-provider (type) voor meer informatie over de time-outs van de WSMan-provider Get-Help WSMan.

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

Problemen met niet-reagerend gedrag oplossen

In deze sectie worden problemen met de remoting besproken die verhinderen dat een opdracht wordt voltooit en het retourneren van de PowerShell-prompt wordt voorkomen of vertraagd.

Een opdracht onderbreken

Sommige systeemeigen Windows-programma's, zoals programma's met een gebruikersinterface, consoletoepassingen die om invoer vragen en consoletoepassingen die gebruikmaken van de Win32-console-API, werken niet goed 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 wordt voltooid.

Typ CTRLC om een niet-reagerend programma te +beëindigen. Als u fouten wilt weergeven die mogelijk zijn gerapporteerd, typt u $error de lokale host en de externe sessie.

Herstellen van een bewerkingsfout

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

Deze fout wordt geretourneerd wanneer een bewerking wordt beëindigd voordat deze is voltooid. Dit gebeurt meestal wanneer de WinRM-service stopt of opnieuw wordt opgestart terwijl andere WinRM-bewerkingen worden uitgevoerd.

Als u dit probleem wilt oplossen, controleert u of de WinRM-service wordt uitgevoerd en probeert u de opdracht opnieuw.

  1. Start PowerShell met de optie Als administrator uitvoeren.

  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

Verificatie

Alleen basisverificatie werkt in macOS en het gebruik van andere verificatieschema's kan ertoe leiden dat het proces vast loopt.

Raadpleeg de INSTRUCTIES voor OMI-verificatie .

Zie ook