about_Remote_Requirements

Korte beschrijving

Beschrijft de systeemvereisten en configuratievereisten 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 (Get-Servicewaaronder de cmdlets , Get-Process, Get-WMIObject, Get-EventLogen Get-WinEvent ) halen objecten op van externe computers met behulp van Microsoft .NET Framework om de objecten op te halen. Ze maken geen gebruik van de infrastructuur voor remoting 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 te zoeken naar de cmdlets die een ComputerName-parameter hebben, maar geen gebruik maken van remoting van PowerShell.

Systeemvereisten

Als u externe sessies wilt uitvoeren 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 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 alleen op Windows PowerShell 3.0 worden uitgevoerd, zoals de mogelijkheid om de verbinding te verbreken en opnieuw verbinding te maken met sessies, zijn echter alleen beschikbaar wanneer op beide computers Windows PowerShell 3.0 wordt uitgevoerd.

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

Windows WinRM (Remote Management) 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 microsoft .NET Framework, 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 verstrekken. 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 ingesteld door de sessieconfiguratie (ook wel een eindpunt genoemd) op de externe computer waarmee de sessie verbinding maakt. Met name de security descriptor 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, staan alleen toegang toe aan leden van de groep Administrators .

Als de huidige gebruiker geen toestemming heeft 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 gebruiken van cmdlets die sessies maken om een andere sessieconfiguratie te selecteren, als er een beschikbaar is.

Leden van de groep Administrators op een computer kunnen bepalen wie toestemming heeft om op afstand verbinding te maken met de computer door de beveiligingsdescriptors op 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 Enable-PSRemoting kan de cmdlet remoting inschakelen op client- en serverversies van Windows in privénetwerken, domeinen en openbare netwerken.

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

Op clientversies van Windows met particuliere netwerken en domeinnetwerken maakt Enable-PSRemoting de cmdlet standaard firewallregels die onbeperkte externe toegang toestaan.

Gebruik de parameter Enable-PSRemoting SkipNetworkProfileCheck van de cmdlet om remoting in te Windows clientversies van Windows met openbare netwerken. Er wordt een firewallregel gemaakt die externe toegang alleen toestaat vanaf computers in hetzelfde lokale subnet.

Als u de lokale subnetbeperking voor openbare netwerken wilt verwijderen en externe toegang wilt toestaan vanaf alle locaties op client- en serverversies van Windows, Set-NetFirewallRule gebruikt u de 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 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.

In Windows PowerShell 2.0 maakt op serverversies van Windows Enable-PSRemoting firewallregels 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, mislukt Enable-PSRemoting .

Als administrator uitvoeren

Beheerdersbevoegdheden zijn vereist voor de volgende bewerkingen voor het zoeken naar een andere beheerder:

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

  • Sessieconfiguraties op de lokale computer beheren.

  • Weergeven en wijzigen WS-Management instellingen op de lokale computer. Dit zijn de instellingen in het localhost-knooppunt 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 wilt Windows PowerShell 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 Explorer-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, Cmd.exe, gebruikt u de optie Als administrator uitvoeren om het programma te starten.

Uw computer configureren voor remoting

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

Windows Server 2012 en nieuwere versies van Windows Server zijn standaard ingeschakeld voor powershell-remoting. Als de instellingen zijn gewijzigd, kunt u de standaardinstellingen herstellen door de Enable-PSRemoting cmdlet uit te stellen.

Op alle andere ondersteunde versies van Windows moet Enable-PSRemoting u de cmdlet uitvoeren om powershell voor remoting in te stellen.

De functies voor remoting van PowerShell worden ondersteund door de WinRM-service, de Microsoft-implementatie van het WS-Management-protocol (Web Services for Management). Wanneer u Voor andere toegang tot PowerShell inschakelen, 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 toegang juist is geconfigureerd, moet u een testopdracht uitvoeren, zoals de volgende opdracht, waarmee een externe sessie op de lokale computer wordt gemaakt.

New-PSSession

Als remoting 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, zie de about_Remote_Troubleshooting.

Beleid begrijpen

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 de Windows en het PowerShell-beleid op de lokale en externe computers.

In het algemeen zijn de beleidsregels op de lokale computer van kracht voordat u verbinding maakt en wanneer u de verbinding tot stand wilt brengen. Wanneer u de verbinding gebruikt, zijn de beleidsregels op de externe computer van kracht.

Basisverificatiebeperkingen voor Linux en macOS

Bij het verbinden van 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 zelf-ondertekend certificaat kan worden gebruikt voor testdoeleinden.

Zie How To: Configure WINRM for HTTPS (WinRM configureren voor HTTPS) voor meer informatie.

Met de volgende opdracht, die wordt uitgevoerd vanaf een opdrachtprompt met verhoogde opdracht, wordt de HTTPS-listener op Windows 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 .

# 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 het gebruik van Negotiate 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 is een extra registerinstelling vereist, zodat beheerders, anders dan de ingebouwde beheerder, verbinding kunnen maken met behulp van NTLM. Raadpleeg de registerinstelling LocalAccountTokenFilterPolicy onder Negotiate Authentication in Authentication for Remote Connections

Zie ook