about_Remote_Troubleshooting
Korte beschrijving
Beschrijft hoe u problemen met externe bewerkingen in PowerShell oplost.
Lange beschrijving
In deze sectie worden enkele van de problemen beschreven die u kunt tegenkomen bij het gebruik van de externe functies van PowerShell die zijn gebaseerd op WS-Management technologie en worden oplossingen voor deze problemen voorgesteld.
Zie about_Remote en about_Remote_Requirements voor hulp bij het configureren en basisgebruik voordat u externe communicatie van PowerShell gebruikt. De Help-onderwerpen voor elk van de externe cmdlets, met name de beschrijvingen van de parameters, bevatten ook nuttige informatie die is ontworpen om u te helpen problemen te voorkomen.
Notitie
Als u instellingen voor de lokale computer in de WSMan wilt weergeven of wijzigen: station, inclusief wijzigingen in de sessieconfiguraties, vertrouwde hosts, poorten of listeners, start u PowerShell met de optie Uitvoeren als administrator .
Problemen met machtigingen en verificatie oplossen
In deze sectie worden problemen met externe toegang besproken die betrekking hebben op gebruikers- en computermachtigingen en externe toegangsvereisten.
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 instellingen voor de lokale computer in de WSMan wilt weergeven of wijzigen: station, inclusief wijzigingen in de sessieconfiguraties, vertrouwde hosts, poorten of listeners, start Windows PowerShell met de optie Als administrator uitvoeren.
Als u Windows PowerShell wilt starten met de optie Uitvoeren als administrator:
Klik met de rechtermuisknop op een Windows PowerShell (of Windows PowerShell ISE) en klik vervolgens op Uitvoeren als administrator.
Als u Windows PowerShell wilt starten met de optie Uitvoeren als administrator in Windows 7 en Windows Server 2008 R2.
Klik in de Windows-taakbalk met de rechtermuisknop op het pictogram Windows PowerShell en klik vervolgens op Als administrator uitvoeren.
In Windows Server 2008 R2 wordt het pictogram Windows PowerShell standaard vastgemaakt aan de taakbalk.
Externe communicatie 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 te schakelen voor het verzenden van externe opdrachten. Als u echter externe opdrachten wilt ontvangen, moet externe communicatie via PowerShell zijn ingeschakeld op de computer. Het 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 externe toegang is standaard ingeschakeld op Windows Server 2012 en nieuwere versies van Windows Server. Voer op alle andere systemen de Enable-PSRemoting cmdlet uit om externe communicatie in te schakelen. U kunt de Enable-PSRemoting cmdlet ook uitvoeren om externe communicatie opnieuw in te schakelen op Windows Server 2012 en nieuwere releases van Windows Server als externe toegang is uitgeschakeld.
Gebruik de Enable-PSRemoting cmdlet om een computer te configureren voor het ontvangen van externe opdrachten. Met de volgende opdracht worden alle vereiste externe instellingen ingeschakeld, worden de sessieconfiguraties ingeschakeld en wordt de WinRM-service opnieuw gestart om de wijzigingen effectief te maken.
Enable-PSRemoting
Als u alle gebruikersprompts wilt onderdrukken, typt u:
Enable-PSRemoting -Force
Zie Enable-PSRemoting voor meer informatie.
Externe communicatie 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 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.
Als u listeners wilt configureren voor externe communicatie, schakelt u de automatische configuratie van listeners-groepsbeleid toestaan in.
Gebruik de
Set-Servicecmdlet om het opstarttype van Windows Remote Management (WinRM) in te stellen op Automatisch op meerdere computers.Als u een firewall-uitzondering wilt inschakelen, gebruikt u Windows Firewall: Groepsbeleid voor lokale poortonderzondering 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, schakelt u de automatische configuratie van listenersbeleid toestaan in het volgende groepsbeleid pad in:
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
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.
In serverversies van Windows Enable-PSRemoting slaagt het op alle netwerklocatietypen. Er worden firewallregels gemaakt waarmee externe toegang tot privé- en domeinnetwerken ('Thuis' en 'Werk') is toegestaan. Voor openbare netwerken worden er firewallregels gemaakt waarmee externe toegang vanuit hetzelfde lokale subnet wordt toegestaan.
In clientversies van Windows Enable-PSRemoting slaagt het in privé- en domeinnetwerken. Dit mislukt standaard op openbare netwerken, maar als u de parameter SkipNetworkProfileCheck gebruikt, Enable-PSRemoting wordt er een firewallregel gemaakt waarmee verkeer van hetzelfde lokale subnet wordt toegestaan.
Als u de beperking van het lokale subnet op openbare netwerken wilt verwijderen en externe toegang vanaf elke locatie wilt toestaan, voert u de volgende opdracht uit:
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.
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 maakt Enable-PSRemoting u firewallregels die alleen externe toegang toestaan op particuliere netwerken en domeinnetwerken.
Een firewalluitzondering 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 alle computers in een domein, schakelt u Windows Firewall in: beleid voor uitzonderingen voor lokale poorten toestaan in het volgende groepsbeleid pad:
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 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 het opstarttype van de WinRM-service (Windows Remote Management) automatisch.
In clientversies van Windows is de WinRM-service echter standaard uitgeschakeld.
Gebruik de Set-Service cmdlet om het opstarttype van een service op een externe computer in te stellen.
Als u de opdracht op meerdere computers wilt uitvoeren, kunt u een tekstbestand of CSV-bestand van de computernamen maken.
Met de volgende opdrachten wordt bijvoorbeeld een lijst met computernamen uit het Servers.txt bestand opgehaald en wordt vervolgens het opstarttype van de WinRM-service op alle computers ingesteld op Automatisch.
$servers = Get-Content servers.txt
Set-Service WinRM -ComputerName $servers -startuptype Automatic
Als u de resultaten wilt zien, gebruikt u de Get-WMIObject 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 op afstand wilt uitvoeren, moet de lokale computer sessieconfiguraties voor externe opdrachten bevatten.
Wanneer u deze gebruikt Enable-PSRemoting, worden standaardsessieconfiguraties op de lokale computer gemaakt. 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 standaardsessieconfiguraties wilt herstellen, gebruikt u de Unregister-PSSessionConfiguration cmdlet om de gewijzigde sessieconfiguraties te verwijderen en gebruikt u vervolgens de Enable-PSRemoting cmdlet om deze 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. Deze is standaard beveiligd.
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 station WSMan: . Als u de beveiligingsdescriptor van een sessieconfiguratie wilt wijzigen, gebruikt u de Set-PSSessionConfiguration cmdlet met de parameters SecurityDescriptorSDDL of ShowSecurityDescriptorUI .
Zie het Help-onderwerp voor de WSMan-provider ('Get-Help wsman') voor meer informatie over de WSMan: drive.
Beheerdersreferenties opgeven
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 referentieparameter van de New-PSSessionEnter-PSSession groep Administrators of Invoke-Command cmdlets om extern 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.
Externe toegang inschakelen voor niet-gebruikers met beheerdersrechten
ERROR: ACCESS IS DENIED
Om een PSSession tot stand te brengen of een opdracht uit te voeren op een externe computer, moet de gebruiker gemachtigd zijn om de sessieconfiguraties op de externe computer te kunnen gebruiken.
Standaard zijn alleen leden van de groep Administrators op een computer gemachtigd om de standaardsessieconfiguraties te gebruiken. Daarom kunnen alleen leden van de groep Administrators 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.
Met de volgende opdracht opent u een eigenschappenvenster waarmee u de beveiligingsdescriptor van de standaardconfiguratie van de Microsoft.PowerShell-sessie 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
ERROR: ACCESS IS DENIED
Wanneer een gebruiker in een ander domein lid is van de groep Administrators op de lokale computer, kan de gebruiker geen verbinding maken met de lokale computer op afstand met beheerdersbevoegdheden. Externe verbindingen van andere domeinen worden standaard uitgevoerd met alleen standaard tokens voor gebruikersbevoegdheden.
U kunt echter de registervermelding LocalAccountTokenFilterPolicy gebruiken om het standaardgedrag te wijzigen en externe gebruikers toe te staan die lid zijn van de groep Administrators met beheerdersbevoegdheden.
Waarschuwing
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 zorgvuldig voordat u het beleid wijzigt.
Als u het beleid wilt wijzigen, gebruikt u de volgende opdracht om de waarde van de registervermelding 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-PSSessionEnter-PSSession cmdlets Invoke-Command accepteert een IP-adres als een geldige waarde. Omdat Kerberos-verificatie echter geen IP-adressen ondersteunt, wordt NTLM-verificatie standaard gebruikt wanneer u een IP-adres opgeeft.
Wanneer u NTLM-verificatie gebruikt, is de volgende procedure vereist voor externe communicatie.
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 de referenties van de huidige gebruiker verzendt.
Extern verbinding maken vanaf een computer op basis van een werkgroep
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 bevindt, is de volgende procedure vereist voor externe communicatie.
Configureer de computer voor HTTPS-transport of voeg de namen van de externe computers toe aan de lijst TrustedHosts op de lokale computer.
Controleer of een wachtwoord is ingesteld op de werkgroepcomputer. Als een wachtwoord niet is ingesteld of de wachtwoordwaarde leeg is, kunt u geen externe opdrachten uitvoeren.
Als u een wachtwoord voor uw gebruikersaccount wilt instellen, gebruikt u Gebruikersaccounts in Configuratiescherm.
Gebruik de referentieparameter in alle externe opdrachten.
Dit is vereist, zelfs wanneer u de referenties van de huidige gebruiker verzendt.
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 hosts wilt weergeven of wijzigen, gebruikt u het station WSMan: . Het TrustedHost-item bevindt zich in het WSMan:\localhost\Client knooppunt.
Alleen leden van de groep Administrators op de computer zijn gemachtigd om de lijst met vertrouwde hosts op de computer te wijzigen.
Waarschuwing: 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
U kunt ook de Set-Location cmdlet (alias = cd) gebruiken om te navigeren door de WSMan: station naar de locatie. Bijvoorbeeld:
cd WSMan:\localhost\Client; dir
Als u alle computers wilt toevoegen aan de lijst met vertrouwde hosts, gebruikt u de volgende opdracht, die een waarde van * (alle) in de ComputerName plaatst
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 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, slaat u eerst de huidige waarde op in een variabele en stelt u de waarde vervolgens in 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"
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>
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, gebruikt u de Connect-WSMan cmdlet om een knooppunt voor de externe computer toe te voegen aan de WSMan: station op de lokale computer. Gebruik vervolgens een Set-Item opdracht om de computer toe te voegen.
Zie Connect-WSMan voor meer informatie over de Connect-WSMan cmdlet.
Problemen met computerconfiguratie oplossen
In deze sectie worden problemen met externe toegang besproken die betrekking hebben op bepaalde configuraties van een computer, domein of onderneming.
Externe communicatie 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.
Externe communicatie via PowerShell maakt standaard gebruik van poort 80 voor HTTP-transport. De standaardpoort wordt gebruikt wanneer de gebruiker de connectionURI - of poortparameters niet opgeeft in een externe opdracht.
Als u de standaardpoort wilt wijzigen die PowerShell gebruikt, gebruikt u Set-Item de cmdlet in de WSMan: station om de poortwaarde in het listener leaf-knooppunt 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
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 externe communicatie via PowerShell gebruikmaakt van het HTTP-protocol, wordt dit 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 voor een bepaalde opdracht in te stellen:
Gebruik de parameters ProxyAccessType, ProxyAuthentication en ProxyCredential van de
New-PSSessionOptioncmdlet om een sessieoptieobject te maken met de proxy-instellingen voor uw onderneming. Het optieobject opslaan is een variabele.Gebruik de variabele die het optieobject bevat als de waarde van de parameter SessionOption van een
New-PSSession,Enter-PSSessionofInvoke-Commandopdracht.
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 New-PSSessionOption cmdlet.
Als u deze opties wilt instellen voor alle externe opdrachten in de huidige sessie, gebruikt u het optieobject dat New-PSSessionOption wordt gemaakt in de waarde van de $PSSessionOption voorkeursvariabele. Zie about_Preference_Variables voor meer informatie.
Als u deze opties wilt instellen voor alle externe opdrachten, voegt u alle PowerShell-sessies op de lokale computer 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
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 stuurt Windows automatisch alle verwijzingen naar de $env:Windir\System32$env:Windir\SysWOW64 map om.
Als u daarom hulpprogramma's probeert te gebruiken in de System32-directory die geen tegenhangers hebben in de map SysWow64, zoals Defrag.exe, 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 omgevingsvariabele PROCESSOR_ARCHITECTURE . Met de volgende opdracht wordt de processorarchitectuur van de sessie in de $s variabele 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 beleid en voorkeuren die zijn ingesteld op de lokale en externe computers.
Het uitvoeringsbeleid voor Import-PSSession en Import-Module wijzigen
ERROR: Import-Module: File <filename> cannot be loaded because the
execution of scripts is disabled on this system.
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, hetzij met behulp van Import-PSSession of Import-Module, kan het uitvoeringsbeleid in de huidige sessie niet worden beperkt of AllSigned. Zie about_Execution_Policies voor informatie over powerShell-uitvoeringsbeleid.
Als u de modules wilt importeren zonder het uitvoeringsbeleid te wijzigen voor de lokale computer die in het register is ingesteld, gebruikt u de parameter Bereik om Set-ExecutionPolicy een minder beperkend uitvoeringsbeleid in te stellen voor één proces.
Met de volgende opdracht wordt bijvoorbeeld een proces gestart met het RemoteSigned uitvoeringsbeleid. De wijziging van het uitvoeringsbeleid is alleen van invloed op het huidige proces en wijzigt niet de registerinstelling PowerShell ExecutionPolicy .
Set-ExecutionPolicy -Scope process -ExecutionPolicy RemoteSigned
U kunt ook de parameter PowerShell.exeExecutionPolicy gebruiken om één sessie te starten met een minder beperkend uitvoeringsbeleid.
PowerShell.exe -ExecutionPolicy RemoteSigned
Zie about_Execution_Policies voor meer informatie over het uitvoeringsbeleid. 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 per ongeluk als schadelijk.
De volgende quota zijn beschikbaar in de basisconfiguratie.
De WSMan-provider (WSMan:) biedt verschillende quota-instellingen, zoals de instellingen MaxEnvelopeSizeKB en MaxProviderRequests in het
WSMan:<ComputerName>knooppunt en de instellingen MaxConcurrentOperations, MaxConcurrentOperationsPerUser en MaxConnections in hetWSMan:<ComputerName>\Serviceknooppunt.U kunt de lokale computer beveiligen met behulp van de parameters MaximumReceivedDataSizePerCommand en MaximumReceivedObjectSize van de
New-PSSessionOptioncmdlet en de$PSSessionOptionvoorkeursvariabele.U kunt de externe computer beveiligen door beperkingen toe te voegen aan de sessieconfiguraties, zoals met behulp van de parameters MaximumReceivedDataSizePerCommandMB en MaximumReceivedObjectSizeMB van de
Register-PSSessionConfigurationcmdlet.
Wanneer quota conflicten 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 wordt bijvoorbeeld het quotum voor objectgrootte verhoogd in de microsoft.PowerShell-sessieconfiguratie op de externe computer van 10 MB (de standaardwaarde) tot 11 MB.
Set-PSSessionConfiguration -Name microsoft.PowerShell `
-MaximumReceivedObjectSizeMB 11 -Force
Zie New-PSSessionOptionvoor meer informatie over de New-PSSessionOption cmdlet.
Zie about_WSMan_Provider voor meer informatie over de quota voor WS-Management.
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 per ongeluk als kwaadwillend. Wanneer time-outs zijn ingesteld op zowel de lokale als 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 client- en servicezijde, zoals de instelling MaxTimeoutms in het
WSMan:<ComputerName>knooppunt en de instellingen EnumerationTimeoutms en MaxPacketRetrievalTimeSeconds in hetWSMan:<ComputerName>\Serviceknooppunt.U kunt de lokale computer beveiligen met behulp van de parameters CancelTimeout, IdleTimeout, OpenTimeout en OperationTimeout van de
New-PSSessionOptioncmdlet en de$PSSessionOptionvoorkeursvariabele.U kunt de externe computer ook beveiligen door programmatisch time-outwaarden in te stellen in de sessieconfiguratie voor de sessie.
Wanneer een time-outwaarde niet toestaat dat een bewerking kan worden voltooid, wordt de bewerking beëindigd en wordt er een fout gegenereerd.
Als u de fout wilt oplossen, wijzigt u de opdracht om te voltooien binnen het time-outinterval of bepaalt u de bron van de time-outlimiet en verhoogt u het time-outinterval zodat de opdracht kan worden voltooid.
Met de volgende opdrachten gebruikt u bijvoorbeeld de New-PSSessionOption cmdlet om een sessieoptieobject te maken met een OperationTimeout-waarde van 4 minuten (in MS) en gebruikt u vervolgens het sessieoptieobject om een externe sessie te maken.
$pso = New-PSSessionoption -OperationTimeout 240000
New-PSSession -ComputerName Server01 -sessionOption $pso
Zie het Help-onderwerp voor de WSMan-provider (type Get-Help WSMan) voor meer informatie over de WS-Management time-outs.
Zie New-PSSessionOption voor meer informatie over de New-PSSessionOption cmdlet.
Problemen met niet-reagerend gedrag oplossen
In deze sectie worden problemen met externe toegang besproken die verhinderen dat een opdracht wordt voltooid en het retourneren van de PowerShell-prompt wordt voorkomen of vertragen.
Een opdracht onderbreken
Sommige systeemeigen Windows-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. Als u eventuele fouten wilt weergeven die mogelijk zijn gerapporteerd, typt u $error de lokale host en de externe sessie.
Herstellen na 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.
Start PowerShell met de optie Uitvoeren als administrator .
Voer de volgende opdracht uit:
Start-Service WinRMVoer de opdracht die de fout heeft gegenereerd opnieuw uit.
Beperkingen voor Linux en macOS
Verificatie
Alleen basisverificatie werkt in macOS en probeert andere verificatieschema's te gebruiken, kan ertoe leiden dat het proces vastloopt.
Raadpleeg de INSTRUCTIES voor OMI-verificatie .