Om fjärrkrav

KORT BESKRIVNING

Beskriver systemkraven och konfigurationskraven för att köra fjärrkommandon i PowerShell.

LÅNG BESKRIVNING

Det här avsnittet beskriver systemkrav, användarkrav och resurskrav för att upprätta fjärranslutningar och köra fjärrkommandon i PowerShell. Den innehåller även instruktioner för att konfigurera fjärråtgärder.

Obs! Många cmdletar (inklusive cmdletarna Get-Service, Get-Process, Get-WMIObject, Get-EventLog och Get-WinEvent) hämtar objekt från fjärrdatorer med hjälp av Microsoft .NET Framework metoder för att hämta objekten. De använder inte PowerShell-fjärrkommunikationsinfrastrukturen. Kraven i det här dokumentet gäller inte för dessa cmdletar.

Om du vill hitta de cmdletar som har en ComputerName-parameter men inte använder PowerShell-fjärrkommunikation läser du beskrivningen av parametern ComputerName för cmdletarna.

SYSTEMKRAV

Om du vill köra fjärrsessioner på Windows PowerShell 3.0 måste de lokala datorerna och fjärrdatorerna ha följande:

  • Windows PowerShell 3.0 eller senare
  • Microsoft .NET Framework 4 eller senare
  • Windows Remote Management 3.0

Om du vill köra fjärrsessioner på Windows PowerShell 2.0 måste de lokala datorerna och fjärrdatorerna ha följande:

  • Windows PowerShell 2.0 eller senare
  • Microsoft .NET Framework 2.0 eller senare
  • Windows Remote Management 2.0

Du kan skapa fjärrsessioner mellan datorer som kör Windows PowerShell 2.0 och Windows PowerShell 3.0. Funktioner som endast körs på Windows PowerShell 3.0, till exempel möjligheten att koppla från och återansluta till sessioner, är dock endast tillgängliga när båda datorerna körs Windows PowerShell 3.0.

Om du vill hitta versionsnumret för en installerad version av PowerShell använder du den $PSVersionTable automatiska variabeln.

Windows Remote Management (WinRM) 3.0 och Microsoft .NET Framework 4 ingår i Windows 8, Windows Server 2012 och nyare versioner av Windows-operativsystemet. WinRM 3.0 ingår i Windows Management Framework 3.0 för äldre operativsystem. Om datorn inte har den nödvändiga versionen av WinRM eller Microsoft .NET Framework misslyckas installationen.

ANVÄNDARBEHÖRIGHETER

Om du vill skapa fjärrsessioner och köra fjärrkommandon måste den aktuella användaren som standard vara medlem i gruppen Administratörer på fjärrdatorn eller ange administratörens autentiseringsuppgifter. Annars misslyckas kommandot.

De behörigheter som krävs för att skapa sessioner och köra kommandon på en fjärrdator (eller i en fjärrsession på den lokala datorn) upprättas av sessionskonfigurationen (kallas även för en "slutpunkt") på fjärrdatorn som sessionen ansluter till. Mer specifikt avgör säkerhetsbeskrivning för sessionskonfigurationen vem som har åtkomst till sessionskonfigurationen och vem som kan använda den för att ansluta.

Säkerhetsbeskrivningarna för standardsessionskonfigurationerna Microsoft.PowerShell, Microsoft.PowerShell32 och Microsoft.PowerShell.Workflow tillåter endast åtkomst till medlemmar i gruppen Administratörer.

Om den aktuella användaren inte har behörighet att använda sessionskonfigurationen misslyckas kommandot för att köra ett kommando (som använder en tillfällig session) eller skapa en beständig session på fjärrdatorn. Användaren kan använda parametern ConfigurationName för cmdletar som skapar sessioner för att välja en annan sessionskonfiguration, om en sådan är tillgänglig.

Medlemmar i gruppen Administratörer på en dator kan avgöra vem som har behörighet att ansluta till datorn via fjärranslutning genom att ändra säkerhetsbeskrivningarna för standardsessionskonfigurationerna och genom att skapa nya sessionskonfigurationer med olika säkerhetsbeskrivningar.

För ytterligare information om sessionskonfigurationer, se about_Session_Configurations.

WINDOWS-NÄTVERKSPLATSER

Från och med Windows PowerShell 3.0 kan cmdleten Enable-PSRemoting aktivera fjärrkommunikation på klient- och serverversioner av Windows i privata, domän- och offentliga nätverk.

På serverversioner av Windows med privata nätverk och domännätverk skapar Enable-PSRemoting-cmdleten brandväggsregler som tillåter obegränsad fjärråtkomst. Den skapar också en brandväggsregel för offentliga nätverk som endast tillåter fjärråtkomst från datorer i samma lokala undernät. Den här brandväggsregeln för det lokala undernätet är aktiverad som standard på serverversioner av Windows i offentliga nätverk, men Enable-PSRemoting återställer regeln om den skulle ändras eller tas bort.

I klientversioner av Windows med privata nätverk och domännätverk skapar cmdleten Enable-PSRemoting som standard brandväggsregler som tillåter obegränsad fjärråtkomst.

Om du vill aktivera fjärrkommunikation i klientversioner av Windows med offentliga nätverk använder du parametern SkipNetworkProfileCheck för cmdleten Enable-PSRemoting. Den skapar en brandväggsregel som endast tillåter fjärråtkomst från datorer i samma lokala undernät.

Om du vill ta bort den lokala undernätsbegränsningen för offentliga nätverk och tillåta fjärråtkomst från alla platser på klient- och serverversioner av Windows använder du cmdleten Set-NetFirewallRule i NetSecurity-modulen. Kör följande kommando:

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

I Windows PowerShell 2.0, på serverversioner av Windows, skapar Enable-PSRemoting brandväggsregler som tillåter fjärråtkomst i alla nätverk.

I Windows PowerShell 2.0 i klientversioner av Windows skapar Enable-PSRemoting endast brandväggsregler i privata nätverk och domännätverk. Om nätverksplatsen är offentlig misslyckas Enable-PSRemoting.

KÖR SOM ADMINISTRATÖR

Administratörsbehörighet krävs för följande fjärrkommunikationsåtgärder:

  • Upprätta en fjärranslutning till den lokala datorn. Detta kallas ofta för ett "loopback"-scenario.

  • Hantera sessionskonfigurationer på den lokala datorn.

  • Visa och ändra WS-Management inställningar på den lokala datorn. Det här är inställningarna i noden LocalHost för WSMAN:-enheten.

Om du vill utföra dessa uppgifter måste du starta PowerShell med alternativet "Kör som administratör" även om du är medlem i gruppen Administratörer på den lokala datorn.

I Windows 7 och Windows Server 2008 R2 börjar du Windows PowerShell med alternativet Kör som administratör:

  1. Klicka på Start, klicka på Alla program, klicka på Tillbehör och klicka sedan på mappen Windows PowerShell.
  2. Högerklicka på Windows PowerShell och klicka sedan på Kör som administratör.

Så här startar du Windows PowerShell med alternativet Kör som administratör:

  1. Klicka på Start, klicka på Alla program och klicka sedan på mappen Windows PowerShell.
  2. Högerklicka på Windows PowerShell och klicka sedan på Kör som administratör.

Alternativet "Kör som administratör" är också tillgängligt i andra Windows Explorer-poster för Windows PowerShell, inklusive genvägar. Högerklicka bara på objektet och klicka sedan på "Kör som administratör".

När du startar Windows PowerShell från ett annat program, till exempel Cmd.exe, använder du alternativet Kör som administratör för att starta programmet.

SÅ HÄR KONFIGURERAR DU DATORN FÖR FJÄRRKOMMUNIKATION

Datorer som kör alla versioner av Windows som stöds kan upprätta fjärranslutningar till och köra fjärrkommandon i PowerShell utan konfiguration. Men för att ta emot anslutningar och tillåta användare att skapa lokala och fjärranvändarhanterade PowerShell-sessioner ("PSSessioner") och köra kommandon på den lokala datorn måste du aktivera PowerShell-fjärrkommunikation på datorn.

Windows Server 2012 och nyare versioner av Windows Server är aktiverade för PowerShell-fjärrkommunikation som standard. Om inställningarna ändras kan du återställa standardinställningarna genom att köra cmdleten Enable-PSRemoting.

I alla andra versioner av Windows som stöds måste du köra cmdleten Enable-PSRemoting för att aktivera PowerShell-fjärrkommunikation.

Fjärrkommunikationsfunktionerna i PowerShell stöds av WinRM-tjänsten, som är Microsofts implementering av WS-Management-protokollet (Web Services for Management). När du aktiverar PowerShell-fjärrkommunikation ändrar du standardkonfigurationen för WS-Management och lägger till systemkonfiguration som gör att användarna kan ansluta till WS-Management.

Så här konfigurerar du PowerShell för att ta emot fjärrkommandon:

  1. Starta PowerShell med alternativet "Kör som administratör".
  2. Skriv Enable-PSRemoting i kommandotolken

Kontrollera att fjärrkommunikationen är korrekt konfigurerad genom att köra ett testkommando, till exempel följande kommando, som skapar en fjärrsession på den lokala datorn.

New-PSSession

Om fjärrkommunikation är korrekt konfigurerat skapar kommandot en session på den lokala datorn och returnerar ett objekt som representerar sessionen. Utdata bör likna följande exempelutdata:

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

Om kommandot misslyckas kan du få hjälp med about_Remote_Troubleshooting.

FÖRSTÅ PRINCIPER

När du arbetar via fjärranslutning använder du två instanser av PowerShell, en på den lokala datorn och en på fjärrdatorn. Därför påverkas ditt arbete av Windows-principerna och PowerShell-principerna på lokala datorer och fjärrdatorer.

I allmänhet gäller principerna på den lokala datorn innan du ansluter och när du upprättar anslutningen. När du använder anslutningen gäller principerna på fjärrdatorn.

Grundläggande autentiseringsbegränsningar för Linux och macOS

När du ansluter från ett Linux- eller macOS-system till Windows stöds inte grundläggande autentisering via HTTP. Grundläggande autentisering kan användas via HTTPS genom att installera ett certifikat på målservern. Certifikatet måste ha ett CN-namn som matchar värdnamnet, inte har upphört att gälla eller återkallats. Ett självsignerat certifikat kan användas i testsyfte.

Mer information finns i Anvisningar: Konfigurera WINRM för HTTPS .

Följande kommando, som körs från en upphöjd kommandotolk, konfigurerar HTTPS-lyssnaren i Windows med det installerade certifikatet.

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

På Linux- eller macOS-sidan väljer du Grundläggande för autentisering och -UseSSl.

Obs! Grundläggande autentisering kan inte användas med domänkonton. ett lokalt konto krävs och kontot måste finnas i gruppen Administratörer.

# 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

Ett alternativ till grundläggande autentisering via HTTPS är Negotiate. Detta resulterar i NTLM-autentisering mellan klienten och servern och nyttolasten krypteras via HTTP.

Följande illustrerar hur du använder Negotiate with 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

Anteckning

Windows Server kräver ytterligare en registerinställning för att administratörer, förutom den inbyggda administratören, ska kunna ansluta med hjälp av NTLM. Se registerinställningen LocalAccountTokenFilterPolicy under Negotiate Authentication in Authentication for Remote Connections

SE ÄVEN

about_Remote

about_Remote_Variables

about_PSSessions

Invoke-Command

Enter-PSSession

New-PSSession