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-Service
waaronder de cmdlets , Get-Process
, Get-WMIObject
, Get-EventLog
en 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:
- Klik op Start, klik op Alle programma's, klik op Accessoires en klik vervolgens op de map PowerShell.
- Klik met de rechtermuisknop op PowerShell en klik vervolgens op Als administrator uitvoeren.
Als u wilt Windows PowerShell met de optie Als administrator uitvoeren:
- Klik op Start, klik op Alle programma's en klik vervolgens op de map PowerShell.
- 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:
- Start PowerShell met de optie Als administrator uitvoeren.
- 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
Feedback
Feedback verzenden en weergeven voor