Delen via


about_Remote_Requirements

Korte beschrijving

Hierin worden de systeemvereisten en configuratievereisten beschreven voor het uitvoeren van externe opdrachten in PowerShell.

Lange beschrijving

In dit onderwerp worden de systeemvereisten, gebruikersvereisten en resourcevereisten beschreven voor het tot stand brengen van externe verbindingen en het uitvoeren van externe opdrachten in PowerShell. Het bevat ook instructies voor het configureren van externe bewerkingen.

Notitie

Veel cmdlets (waaronder de Get-Servicecmdlets , Get-Process, Get-WMIObjectGet-EventLog, en Get-WinEvent ) halen objecten op van externe computers met behulp van Microsoft .NET Framework-methoden om de objecten op te halen. Ze maken geen gebruik van de externe communicatie-infrastructuur van PowerShell. De vereisten in dit document zijn niet van toepassing op deze cmdlets.

Lees de beschrijving van de parameter ComputerName van de cmdlets om de cmdlets te vinden die een ComputerName-parameter hebben, maar die geen externe toegang van PowerShell gebruiken.

Systeemvereisten

Als u externe sessies wilt uitvoeren op Windows PowerShell 3.0, moeten de lokale en externe computers het volgende hebben:

  • Windows PowerShell 3.0 of hoger
  • Microsoft .NET Framework 4 of hoger
  • Windows Remote Management 3.0

Als u externe sessies wilt uitvoeren op Windows PowerShell 2.0, moeten de lokale en externe computers het volgende hebben:

  • Windows PowerShell 2.0 of hoger
  • Microsoft .NET Framework 2.0 of hoger
  • Windows Remote Management 2.0

U kunt externe sessies maken tussen computers met Windows PowerShell 2.0 en Windows PowerShell 3.0. Functies die echter alleen worden uitgevoerd op Windows PowerShell 3.0, zoals de mogelijkheid om de verbinding met sessies te verbreken en opnieuw verbinding te maken, zijn alleen beschikbaar wanneer op beide computers Windows PowerShell 3.0 wordt uitgevoerd.

Gebruik $PSVersionTable de automatische variabele om het versienummer van een geïnstalleerde versie van PowerShell te vinden.

Windows Remote Management (WinRM) 3.0 en Microsoft .NET Framework 4 zijn opgenomen in Windows 8, Windows Server 2012 en nieuwere versies van het Windows-besturingssysteem. WinRM 3.0 is opgenomen in Windows Management Framework 3.0 voor oudere besturingssystemen. Als de computer niet over de vereiste versie van WinRM of de Microsoft .NET Framework beschikt, mislukt de installatie.

Gebruikersmachtigingen

Als u externe sessies wilt maken en externe opdrachten wilt uitvoeren, moet de huidige gebruiker standaard lid zijn van de groep Administrators op de externe computer of de referenties van een beheerder opgeven. Anders mislukt de opdracht.

De machtigingen die nodig zijn om sessies te maken en opdrachten uit te voeren op een externe computer (of in een externe sessie op de lokale computer) worden tot stand gebracht door de sessieconfiguratie (ook wel een eindpunt genoemd) op de externe computer waarmee de sessie verbinding maakt. Met name de beveiligingsdescriptor voor de sessieconfiguratie bepaalt wie toegang heeft tot de sessieconfiguratie en wie deze kan gebruiken om verbinding te maken.

De beveiligingsdescriptors voor de standaardsessieconfiguraties, Microsoft.PowerShell, Microsoft.PowerShell32 en Microsoft.PowerShell.Workflow, bieden alleen toegang tot leden van de groep Administrators .

Als de huidige gebruiker niet gemachtigd is om de sessieconfiguratie te gebruiken, mislukt de opdracht voor het uitvoeren van een opdracht (die gebruikmaakt van een tijdelijke sessie) of het maken van een permanente sessie op de externe computer. De gebruiker kan de parameter ConfigurationName van cmdlets gebruiken die sessies maken om een andere sessieconfiguratie te selecteren, als deze beschikbaar is.

Leden van de groep Administrators op een computer kunnen bepalen wie gemachtigd is om op afstand verbinding te maken met de computer door de beveiligingsdescriptors voor de standaardsessieconfiguraties te wijzigen en door nieuwe sessieconfiguraties met verschillende beveiligingsdescriptors te maken.

Zie about_Session_Configurations (Engelstalig) voor meer informatie over sessieconfiguraties.

Windows-netwerklocaties

Vanaf Windows PowerShell 3.0 kan de Enable-PSRemoting cmdlet externe communicatie inschakelen op client- en serverversies van Windows op privé-, domein- en openbare netwerken.

Op serverversies van Windows met privé- en domeinnetwerken maakt de Enable-PSRemoting cmdlet firewallregels die onbeperkte externe toegang toestaan. Er wordt ook een firewallregel gemaakt voor openbare netwerken die alleen externe toegang toestaat vanaf computers in hetzelfde lokale subnet. Deze lokale subnetfirewallregel is standaard ingeschakeld op serverversies van Windows op openbare netwerken, maar Enable-PSRemoting past de regel opnieuw toe als deze is gewijzigd of verwijderd.

In clientversies van Windows met privé- en domeinnetwerken maakt de Enable-PSRemoting cmdlet standaard firewallregels die onbeperkte externe toegang toestaan.

Als u externe communicatie wilt inschakelen voor clientversies van Windows met openbare netwerken, gebruikt u de parameter SkipNetworkProfileCheck van de Enable-PSRemoting cmdlet. Er wordt een firewallregel gemaakt die alleen externe toegang toestaat vanaf computers in hetzelfde lokale subnet.

Als u de beperking van het lokale subnet op openbare netwerken wilt verwijderen en externe toegang wilt toestaan vanaf alle locaties in client- en serverversies van Windows, gebruikt u de Set-NetFirewallRule cmdlet in de NetSecurity-module . Voer de volgende opdracht uit:

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

Notitie

De naam van de firewallregel kan verschillen voor verschillende versies van Windows. Gebruik Get-NetFirewallRule 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.

In Windows PowerShell 2.0 worden in serverversies van Windows Enable-PSRemoting firewallregels gemaakt die externe toegang op alle netwerken toestaan.

In Windows PowerShell 2.0 worden in clientversies van Windows Enable-PSRemoting alleen firewallregels gemaakt voor privé- en domeinnetwerken. Als de netwerklocatie openbaar is, Enable-PSRemoting mislukt.

Als administrator uitvoeren

Beheerdersbevoegdheden zijn vereist voor de volgende externe communicatiebewerkingen:

  • Een externe verbinding met de lokale computer tot stand brengen. Dit wordt algemeen een 'loopback'-scenario genoemd.

  • Sessieconfiguraties op de lokale computer beheren.

  • Weergeven en wijzigen van WS-Management instellingen op de lokale computer. Dit zijn de instellingen in het knooppunt LocalHost van het WSMAN:-station.

Als u deze taken wilt uitvoeren, moet u PowerShell starten met de optie Als administrator uitvoeren, zelfs als u lid bent van de groep Administrators op de lokale computer.

In Windows 7 en in Windows Server 2008 R2 start u PowerShell met de optie Als administrator uitvoeren :

  1. Klik op Start, klik op Alle programma's, klik op Accessoires en klik vervolgens op de map PowerShell.
  2. Klik met de rechtermuisknop op PowerShell en klik vervolgens op Als administrator uitvoeren.

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

  1. Klik op Start, klik op Alle programma's en klik vervolgens op de map PowerShell.
  2. Klik met de rechtermuisknop op PowerShell en klik vervolgens op Als administrator uitvoeren.

De optie Als administrator uitvoeren is ook beschikbaar in andere Windows Verkenner-vermeldingen voor PowerShell, inclusief snelkoppelingen. Klik met de rechtermuisknop op het item en klik vervolgens op Als administrator uitvoeren.

Wanneer u PowerShell start vanuit een ander programma, zoals Cmd.exe, gebruikt u de optie Als administrator uitvoeren om het programma te starten.

Uw computer configureren voor externe communicatie

Computers met alle ondersteunde versies van Windows kunnen zonder configuratie externe verbindingen tot stand brengen en externe opdrachten uitvoeren in PowerShell. Als u echter verbindingen wilt ontvangen en gebruikers lokale en externe door de gebruiker beheerde PowerShell-sessies (PSSessions) wilt laten maken en opdrachten op de lokale computer wilt uitvoeren, moet u externe communicatie met PowerShell op de computer inschakelen.

Windows Server 2012 en nieuwere versies van Windows Server zijn standaard ingeschakeld voor externe communicatie met PowerShell. Als de instellingen zijn gewijzigd, kunt u de standaardinstellingen herstellen door de Enable-PSRemoting cmdlet uit te voeren.

In alle andere ondersteunde versies van Windows moet u de Enable-PSRemoting cmdlet uitvoeren om externe communicatie met PowerShell in te schakelen.

De functies voor externe communicatie van PowerShell worden ondersteund door de WinRM-service, de Microsoft-implementatie van het WS-Management-protocol (Web Services for Management). Wanneer u externe communicatie met PowerShell inschakelt, wijzigt u de standaardconfiguratie van WS-Management en voegt u systeemconfiguratie toe waarmee gebruikers verbinding kunnen maken met WS-Management.

PowerShell configureren voor het ontvangen van externe opdrachten:

  1. Start PowerShell met de optie Als administrator uitvoeren .
  2. Typ bij de opdrachtprompt: Enable-PSRemoting

Als u wilt controleren of externe communicatie correct is geconfigureerd, voert u een testopdracht uit, zoals de volgende opdracht, waarmee een externe sessie op de lokale computer wordt gemaakt.

New-PSSession

Als externe communicatie correct is geconfigureerd, maakt de opdracht een sessie op de lokale computer en retourneert een object dat de sessie vertegenwoordigt. De uitvoer moet lijken op de volgende voorbeelduitvoer:

Id Name        ComputerName    State    ConfigurationName
-- ----        ------------    -----    -----
1  Session1    localhost       Opened   Microsoft.PowerShell

Als de opdracht mislukt, raadpleegt u about_Remote_Troubleshooting voor hulp.

Inzicht in beleidsregels

Wanneer u op afstand werkt, gebruikt u twee exemplaren van PowerShell, één op de lokale computer en één op de externe computer. Als gevolg hiervan wordt uw werk beïnvloed door het Windows-beleid en het PowerShell-beleid op de lokale en externe computers.

Over het algemeen geldt dat voordat u verbinding maakt en wanneer u verbinding maakt, het beleid op de lokale computer van kracht is. Wanneer u de verbinding gebruikt, is het beleid op de externe computer van kracht.

Beperkingen voor basisverificatie in Linux en macOS

Wanneer u verbinding maakt vanaf een Linux- of macOS-systeem met Windows, wordt basisverificatie via HTTP niet ondersteund. Basisverificatie kan worden gebruikt via HTTPS door een certificaat op de doelserver te installeren. Het certificaat moet een CN-naam hebben die overeenkomt met de hostnaam, niet is verlopen of ingetrokken. Een zelfondertekend certificaat kan worden gebruikt voor testdoeleinden.

Zie Procedure: WINRM configureren voor HTTPS voor meer informatie.

Met de volgende opdracht, uitgevoerd vanaf een opdrachtprompt met verhoogde bevoegdheid, wordt de HTTPS-listener in Windows geconfigureerd met het geïnstalleerde certificaat.

$hostinfo = '@{Hostname="<DNS_NAME>"; CertificateThumbprint="<THUMBPRINT>"}'
winrm create winrm/config/Listener?Address=*+Transport=HTTPS $hostinfo

Selecteer aan de linux- of macOS-zijde Basic voor verificatie en -UseSSl.

Notitie

Basisverificatie kan niet worden gebruikt met domeinaccounts; een lokaal account is vereist en het account moet zich in de groep Administrators bevinden.

# The specified local user must have administrator rights on the target machine.
# Specify the unqualified username.
$cred = Get-Credential username
$session = New-PSSession -Computer <hostname> -Credential $cred `
  -Authentication Basic -UseSSL

Een alternatief voor basisverificatie via HTTPS is Onderhandelen. Dit resulteert in NTLM-verificatie tussen de client en server en de nettolading wordt versleuteld via HTTP.

Hieronder ziet u hoe u onderhandelen gebruikt met New-PSSession:

# The specified user must have administrator rights on the target machine.
$cred = Get-Credential username@hostname
$session = New-PSSession -Computer <hostname> -Credential $cred `
  -Authentication Negotiate

Notitie

Windows Server vereist een extra registerinstelling om andere beheerders dan de ingebouwde beheerder in staat te stellen verbinding te maken met behulp van NTLM. Raadpleeg de registerinstelling LocalAccountTokenFilterPolicy onder Negotiate Authentication in Authentication for Remote Connections

Zie ook