about_Remote_Requirements

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 också instruktioner för att konfigurera fjärråtgärder.

Obs! Många cmdlets (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 cmdlets.

Om du vill hitta cmdlet:ar 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 Windows PowerShell 3.0 måste de lokala datorerna och fjärrdatorerna ha följande:

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

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

  • Windows PowerShell 2.0 eller senare
  • Den 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 bara tillgängliga när båda datorerna kör Windows PowerShell 3.0.

Om du vill hitta versionsnumret för en installerad version av PowerShell använder du $PSVersionTable automatisk variabel.

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 version av WinRM eller Microsoft .NET Framework som krävs 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 autentiseringsuppgifterna för en administratör. 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 (även kallat en "slutpunkt") på den fjärrdator som sessionen ansluter till. Mer specifikt avgör säkerhetsbeskrivningen för sessionskonfigurationen vem som har åtkomst till sessionskonfigurationen och vem som kan använda den för att ansluta.

Säkerhetsbeskrivningarna i standardkonfigurationerna för sessioner, 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 cmdlets 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 bestämma vem som har behörighet att fjärransluta till datorn genom att ändra säkerhetsbeskrivningarna i standardkonfigurationerna för sessioner 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 Enable-PSRemoting-cmdleten aktivera fjärrkommunikation på klient- och serverversioner av Windows i privata nätverk, domäner och offentliga nätverk.

På serverversioner av Windows med privata nätverk och domännätverk skapar Enable-PSRemoting-cmdlet brandväggsregler som tillåter obegränsad fjärråtkomst. Det 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 lokala undernät är aktiverad som standard på serverversioner av Windows i offentliga nätverk, men Enable-PSRemoting återaktiverar regeln om den har ändrats eller tagits bort.

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

Om du vill aktivera fjärrkommunikation på klientversioner av Windows med offentliga nätverk använder du parametern SkipNetworkProfileCheck för Enable-PSRemoting cmdlet. 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 begränsningen för lokala undernät i 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 Modulen NetSecurity. 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 skapar Enable-PSRemoting endast brandväggsregler i privata nätverk och domännätverk på klientversioner av Windows. Om nätverksplatsen är offentlig misslyckas Enable-PSRemoting.

KÖR SOM ADMINISTRATÖR

Administratörsbehörighet krävs för följande fjärrå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 på den lokala datorn. Det här är inställningarna i LocalHost-noden på 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, för att Windows PowerShell med alternativet "Kör som administratör":

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

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

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

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

När du Windows PowerShell från ett annat program, till 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 någon konfiguration. Om du vill ta emot anslutningar och tillåta användare att skapa lokala och fjärranvändar-hanterade PowerShell-sessioner ("PSSessions") 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 Enable-PSRemoting cmdlet.

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

Fjärrkommunikationsfunktionerna i PowerShell stöds av WinRM-tjänsten, som är Microsofts implementering av protokollet Web Services for Management (WS-Management). När du aktiverar PowerShell-fjärrkommunikation ändrar du standardkonfigurationen för WS-Management och lägger till systemkonfiguration som tillåter användare att 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, vilket skapar en fjärrsession på den lokala datorn.

New-PSSession

Om fjärrkommunikationen är korrekt konfigurerad 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 genom att gå till about_Remote_Troubleshooting.

FÖRSTÅ PRINCIPER

När du arbetar via en fjärrdator 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å de lokala och fjärranslutna datorerna.

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 används principerna på fjärrdatorn.

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

Vid anslutning 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, som inte har upphört att gälla eller återkallats. Ett själv signerat certifikat kan användas i testsyfte.

Mer information finns i How To: Configure WINRM for HTTPS (Så här gör du: 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 (Förhandla med 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 göra det möjligt för andra administratörer än den inbyggda administratören att ansluta med NTLM. Se registerinställningen LocalAccountTokenFilterPolicy under Negotiate Authentication in Authentication for Remote Connections (Förhandla autentisering i autentisering för fjärranslutningar)

SE ÄVEN

about_Remote

about_Remote_Variables

about_PSSessions

Invoke-Command

Enter-PSSession

New-PSSession