Enter-PSSession

Startar en interaktiv session med en fjärrdator.

Syntax

Enter-PSSession
     [-ComputerName] <String>
     [-EnableNetworkAccess]
     [-Credential <PSCredential>]
     [-ConfigurationName <String>]
     [-Port <Int32>]
     [-UseSSL]
     [-ApplicationName <String>]
     [-SessionOption <PSSessionOption>]
     [-Authentication <AuthenticationMechanism>]
     [-CertificateThumbprint <String>]
     [<CommonParameters>]
Enter-PSSession
     [[-Session] <PSSession>]
     [<CommonParameters>]
Enter-PSSession
     [[-ConnectionUri] <Uri>]
     [-EnableNetworkAccess]
     [-Credential <PSCredential>]
     [-ConfigurationName <String>]
     [-AllowRedirection]
     [-SessionOption <PSSessionOption>]
     [-Authentication <AuthenticationMechanism>]
     [-CertificateThumbprint <String>]
     [<CommonParameters>]
Enter-PSSession
     [-InstanceId <Guid>]
     [<CommonParameters>]
Enter-PSSession
     [[-Id] <Int32>]
     [<CommonParameters>]
Enter-PSSession
     [-Name <String>]
     [<CommonParameters>]
Enter-PSSession
     [-VMId] <Guid>
     -Credential <PSCredential>
     [-ConfigurationName <String>]
     [<CommonParameters>]
Enter-PSSession
     [-VMName] <String>
     -Credential <PSCredential>
     [-ConfigurationName <String>]
     [<CommonParameters>]
Enter-PSSession
     [-ContainerId] <String>
     [-ConfigurationName <String>]
     [-RunAsAdministrator]
     [<CommonParameters>]

Description

Cmdleten Enter-PSSession startar en interaktiv session med en enda fjärrdator. Under sessionen körs de kommandon som du skriver på fjärrdatorn, precis som om du skrev direkt på fjärrdatorn. Du kan bara ha en interaktiv session i taget.

Vanligtvis använder du parametern ComputerName för att ange namnet på fjärrdatorn. Du kan dock också använda en session som du skapar med hjälp av cmdleten New-PSSession för den interaktiva sessionen. Du kan dock inte använda Disconnect-PSSessioncmdletarna , Connect-PSSessioneller Receive-PSSession för att koppla från eller återansluta till en interaktiv session.

Om du vill avsluta den interaktiva sessionen och koppla från fjärrdatorn använder du cmdleten Exit-PSSession eller skriver exit.

Viktigt!

Enter-PSSession är utformad för att ersätta den aktuella interaktiva sessionen med en ny interaktiv fjärrsession. Du bör inte anropa den inifrån en funktion eller ett skript eller genom att skicka den som ett kommando till den powershell.exe körbara filen.

Exempel

Exempel 1: Starta en interaktiv session

PS C:\> Enter-PSSession
[localhost]: PS C:\>

Det här kommandot startar en interaktiv session på den lokala datorn. Kommandotolken ändras för att indikera att du nu kör kommandon i en annan session.

De kommandon som du anger körs i den nya sessionen och resultatet returneras till standardsessionen som text.

Exempel 2: Arbeta med en interaktiv session

Det första kommandot använder cmdleten Enter-PSSession för att starta en interaktiv session med Server01, en fjärrdator. När sessionen startar ändras kommandotolken så att namnet på datorn inkluderas.

Det andra kommandot hämtar PowerShell-processen och omdirigerar utdata till Process.txt filen. Kommandot skickas till fjärrdatorn och filen sparas på fjärrdatorn.

Det tredje kommandot använder nyckelordet Avsluta för att avsluta den interaktiva sessionen och stänga anslutningen. Det fjärde kommandot bekräftar att filen Process.txt finns på fjärrdatorn. Ett Get-ChildItem ("dir")-kommando på den lokala datorn kan inte hitta filen.

PS C:\> Enter-PSSession -ComputerName Server01
[Server01]: PS C:\>
[Server01]: PS C:\> Get-Process PowerShell > C:\ps-test\Process.txt
[Server01]: PS C:\> exit
PS C:\>
PS C:\> dir C:\ps-test\Process.txt
Get-ChildItem : Cannot find path 'C:\ps-test\Process.txt' because it does not exist.
At line:1 char:4
+ dir <<<<  c:\ps-test\Process.txt

Det här kommandot visar hur du arbetar i en interaktiv session med en fjärrdator.

Exempel 3: Använd sessionsparametern

PS> $s = New-PSSession -ComputerName Server01
PS> Enter-PSSession -Session $s
[Server01]: PS>

Dessa kommandon använder sessionsparametern Enter-PSSession för för att köra den interaktiva sessionen i en befintlig PowerShell-session (PSSession).

Exempel 4: Starta en interaktiv session och ange parametrarna Port och autentiseringsuppgifter

PS> Enter-PSSession -ComputerName Server01 -Port 90 -Credential Domain01\User01
[Server01]: PS>

Det här kommandot startar en interaktiv session med Server01-datorn. Den använder portparametern för att ange porten och parametern Credential för att ange kontot för en användare som har behörighet att ansluta till fjärrdatorn.

Exempel 5: Stoppa en interaktiv session

PS> Enter-PSSession -ComputerName Server01
[Server01]: PS> Exit-PSSession
PS>

Det här exemplet visar hur du startar och stoppar en interaktiv session. Det första kommandot använder cmdleten Enter-PSSession för att starta en interaktiv session med Server01-datorn.

Det andra kommandot använder cmdleten Exit-PSSession för att avsluta sessionen. Du kan också använda nyckelordet Avsluta för att avsluta den interaktiva sessionen. Exit-PSSession och Avsluta har samma effekt.

Parametrar

-AllowRedirection

Tillåter omdirigering av den här anslutningen till en alternativ URI (Uniform Resource Identifier). Som standard tillåts inte omdirigering.

När du använder parametern ConnectionURI kan fjärrmålet returnera en instruktion för att omdirigera till en annan URI. Som standard omdirigerar PowerShell inte anslutningar, men du kan använda den här parametern för att låta den omdirigera anslutningen.

Du kan också begränsa antalet gånger anslutningen omdirigeras genom att ändra sessionsalternativvärdet MaximumConnectionRedirectionCount . Använd parametern MaximumRedirection för cmdleten New-PSSessionOption eller ange egenskapen MaximumConnectionRedirectionCount för inställningsvariabeln$PSSessionOption. Standardvärdet är 5.

Typ:SwitchParameter
Position:Named
Standardvärde:False
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-ApplicationName

Anger programnamnssegmentet för anslutnings-URI:n. Använd den här parametern för att ange programnamnet när du inte använder parametern ConnectionURI i kommandot .

Standardvärdet är värdet för $PSSessionApplicationName inställningsvariabeln på den lokala datorn. Om den här inställningsvariabeln inte har definierats är standardvärdet WSMAN. Det här värdet är lämpligt för de flesta användningsområden. Mer information finns i about_Preference_Variables.

WinRM-tjänsten använder programnamnet för att välja en lyssnare som ska betjäna anslutningsbegäran. Värdet för den här parametern ska matcha värdet för egenskapen URLPrefix för en lyssnare på fjärrdatorn.

Typ:String
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:True
Godkänn jokertecken:False

-Authentication

Anger den mekanism som används för att autentisera användarens autentiseringsuppgifter. De acceptabla värdena för den här parametern är:

  • Standardvärde
  • Grundläggande
  • Credssp
  • Smälta
  • Kerberos
  • Förhandla
  • NegotiateWithImplicitCredential

Standardvärdet är Standard.

CredSSP-autentisering är endast tillgängligt i Windows Vista, Windows Server 2008 och senare versioner av Windows-operativsystemet.

Mer information om värdena för den här parametern finns i AuthenticationMechanism Enum.

Varning

CredSSP-autentisering (CredSSP), där användarens autentiseringsuppgifter skickas till en fjärrdator som ska autentiseras, är utformad för kommandon som kräver autentisering på mer än en resurs, till exempel åtkomst till en fjärrnätverksresurs. Den här mekanismen ökar säkerhetsrisken för fjärråtgärden. Om fjärrdatorn komprometteras kan de autentiseringsuppgifter som skickas till den användas för att styra nätverkssessionen.

Typ:AuthenticationMechanism
Godkända värden:Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-CertificateThumbprint

Anger det digitala offentliga nyckelcertifikatet (X509) för ett användarkonto som har behörighet att utföra den här åtgärden. Ange certifikatets tumavtryck.

Certifikat används i klientcertifikatbaserad autentisering. De kan endast mappas till lokala användarkonton. de fungerar inte med domänkonton.

Om du vill hämta ett certifikat använder du Get-Item kommandot eller Get-ChildItem i PowerShell Cert:-enheten.

Typ:String
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-ComputerName

Anger ett datornamn. Den här cmdleten startar en interaktiv session med den angivna fjärrdatorn. Ange bara ett datornamn. Standard är den lokala datorn.

Ange NetBIOS-namnet, IP-adressen eller datorns fullständigt kvalificerade domännamn. Du kan också skicka ett datornamn till Enter-PSSession.

Om du vill använda en IP-adress i värdet för parametern ComputerName måste kommandot innehålla parametern Credential . Dessutom måste datorn konfigureras för HTTPS-transport, annars måste IP-adressen för fjärrdatorn ingå i WinRM TrustedHosts-listan på den lokala datorn. Anvisningar för hur du lägger till ett datornamn i listan TrustedHosts finns i "Så här lägger du till en dator i listan över betrodda värdar" i about_Remote_Troubleshooting.

Kommentar

Om du vill inkludera den lokala datorn i värdet för parametern ComputerName i Windows-operativsystemet måste du starta PowerShell med alternativet Kör som administratör.

Typ:String
Alias:Cn
Position:0
Standardvärde:None
Obligatorisk:True
Godkänn pipeline-indata:True
Godkänn jokertecken:False

-ConfigurationName

Anger sessionskonfigurationen som används för den interaktiva sessionen.

Ange ett konfigurationsnamn eller den fullständigt kvalificerade resurs-URI:n för en sessionskonfiguration. Om du bara anger konfigurationsnamnet förbereds följande schema-URI: http://schemas.microsoft.com/powershell.

Sessionskonfigurationen för en session finns på fjärrdatorn. Om den angivna sessionskonfigurationen inte finns på fjärrdatorn misslyckas kommandot.

Standardvärdet är värdet för $PSSessionConfigurationName inställningsvariabeln på den lokala datorn. Om den här inställningsvariabeln inte har angetts är standardvärdet Microsoft.PowerShell. Mer information finns i about_Preference_Variables.

Typ:String
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:True
Godkänn jokertecken:False

-ConnectionUri

Anger en URI som definierar anslutningsslutpunkten för sessionen. URI:n måste vara fullständigt kvalificerad. Formatet för den här strängen är följande:

<Transport>://<ComputerName>:<Port>/<ApplicationName>

Standardvärdet är följande:

http://localhost:5985/WSMAN

Om du inte anger en ConnectionURI kan du använda parametrarna UseSSL, ComputerName, Port och ApplicationName för att ange ConnectionURI-värdena .

Giltiga värden för transportsegmentet för URI:n är HTTP och HTTPS. Om du anger en anslutnings-URI med ett transportsegment, men inte anger någon port, skapas sessionen med hjälp av standardportarna: 80 för HTTP och 443 för HTTPS. Om du vill använda standardportarna för PowerShell-fjärrkommunikation anger du port 5985 för HTTP eller 5986 för HTTPS.

Om måldatorn omdirigerar anslutningen till en annan URI förhindrar PowerShell omdirigeringen om du inte använder parametern AllowRedirection i kommandot.

Typ:Uri
Alias:URI, CU
Position:1
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:True
Godkänn jokertecken:False

-ContainerId

Anger ID för en container.

Typ:String
Position:0
Standardvärde:None
Obligatorisk:True
Godkänn pipeline-indata:True
Godkänn jokertecken:False

-Credential

Anger ett användarkonto som har behörighet att utföra den här åtgärden. Standard är den aktuella användaren.

Ange ett användarnamn, till exempel User01 eller Domain01\User01, eller ange ett PSCredential-objekt som genereras av cmdleten Get-Credential . Om du skriver ett användarnamn uppmanas du att ange lösenordet.

Autentiseringsuppgifter lagras i ett PSCredential-objekt och lösenordet lagras som en SecureString.

Kommentar

Mer information om SecureString-dataskydd finns i Hur säker är SecureString?.

Typ:PSCredential
Position:1
Standardvärde:Current user
Obligatorisk:False
Godkänn pipeline-indata:True
Godkänn jokertecken:False

-EnableNetworkAccess

Anger att den här cmdleten lägger till en interaktiv säkerhetstoken till loopback-sessioner. Med den interaktiva token kan du köra kommandon i loopback-sessionen som hämtar data från andra datorer. Du kan till exempel köra ett kommando i sessionen som kopierar XML-filer från en fjärrdator till den lokala datorn.

En loopback-session är en PSSession som kommer från och slutar på samma dator. Om du vill skapa en loopback-session utelämnar du parametern ComputerName eller anger dess värde till . (punkt), localhost eller namnet på den lokala datorn.

Som standard skapas loopback-sessioner med hjälp av en nätverkstoken, vilket kanske inte ger tillräcklig behörighet för att autentisera till fjärrdatorer.

Parametern EnableNetworkAccess gäller endast i loopback-sessioner. Om du använder EnableNetworkAccess när du skapar en session på en fjärrdator lyckas kommandot, men parametern ignoreras.

Du kan också tillåta fjärråtkomst i en loopback-session med hjälp av CredSSP-värdet för parametern Authentication , som delegerar sessionsautentiseringsuppgifterna till andra datorer.

Den här parametern introducerades i Windows PowerShell 3.0.

Typ:SwitchParameter
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-Id

Anger ID för en befintlig session. Enter-PSSession använder den angivna sessionen för den interaktiva sessionen.

Använd cmdleten för att hitta ID:t för Get-PSSession en session.

Typ:Int32
Position:0
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:True
Godkänn jokertecken:False

-InstanceId

Anger instans-ID för en befintlig session. Enter-PSSession använder den angivna sessionen för den interaktiva sessionen.

Instans-ID:t är ett GUID. Använd cmdleten för att hitta instans-ID:t för Get-PSSession en session. Du kan också använda parametrarna Session, Name eller ID för att ange en befintlig session. Du kan också använda parametern ComputerName för att starta en tillfällig session.

Typ:Guid
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:True
Godkänn jokertecken:False

-Name

Anger det egna namnet på en befintlig session. Enter-PSSession använder den angivna sessionen för den interaktiva sessionen.

Om namnet som du anger matchar mer än en session misslyckas kommandot. Du kan också använda parametrarna Session, InstanceID eller ID för att ange en befintlig session. Du kan också använda parametern ComputerName för att starta en tillfällig session.

Om du vill upprätta ett eget namn för en session använder du parametern Namn för cmdleten New-PSSession .

Typ:String
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:True
Godkänn jokertecken:False

-Port

Anger nätverksporten på fjärrdatorn som används för det här kommandot. Om du vill ansluta till en fjärrdator måste fjärrdatorn lyssna på porten som anslutningen använder. Standardportarna är 5985, som är WinRM-porten för HTTP och 5986, som är WinRM-porten för HTTPS.

Innan du använder en alternativ port måste du konfigurera WinRM-lyssnaren på fjärrdatorn så att den lyssnar på den porten. Använd följande kommandon för att konfigurera lyssnaren:

  1. winrm delete winrm/config/listener?Address=*+Transport=HTTP
  2. winrm create winrm/config/listener?Address=*+Transport=HTTP @{Port="\<port-number\>"}

Använd inte portparametern om du inte måste. Portinställningen i kommandot gäller för alla datorer eller sessioner där kommandot körs. En alternativ portinställning kan förhindra att kommandot körs på alla datorer.

Typ:Int32
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-RunAsAdministrator

Anger att PSSession körs som administratör.

Typ:SwitchParameter
Position:Named
Standardvärde:False
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-Session

Anger en PowerShell-session (PSSession) som ska användas för den interaktiva sessionen. Den här parametern tar ett sessionsobjekt. Du kan också använda parametrarna Namn, InstanceID eller ID för att ange en PSSession.

Ange en variabel som innehåller ett sessionsobjekt eller ett kommando som skapar eller hämtar ett sessionsobjekt, till exempel ett New-PSSession eller Get-PSSession ett kommando. Du kan också skicka ett sessionsobjekt till Enter-PSSession. Du kan bara skicka en PSSession med hjälp av den här parametern. Om du anger en variabel som innehåller mer än en PSSession misslyckas kommandot.

När du använder Exit-PSSession eller nyckelordet EXIT avslutas den interaktiva sessionen, men pssessionen som du skapade förblir öppen och tillgänglig för användning.

Typ:PSSession
Position:0
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:True
Godkänn jokertecken:False

-SessionOption

Anger avancerade alternativ för sessionen. Ange ett SessionOption-objekt , till exempel ett objekt som du skapar med hjälp av cmdleten New-PSSessionOption eller en hash-tabell där nycklarna är sessionsalternativnamn och värdena är sessionsalternativvärden.

Standardvärdena för alternativen bestäms av värdet för $PSSessionOption inställningsvariabeln, om den har angetts. Annars upprättas standardvärdena av de alternativ som anges i sessionskonfigurationen.

Sessionsalternativvärdena har företräde framför standardvärden för sessioner som anges i inställningsvariabeln $PSSessionOption och i sessionskonfigurationen. De har dock inte företräde framför de högsta värden, kvoter eller gränser som anges i sessionskonfigurationen.

En beskrivning av sessionsalternativen, inklusive standardvärdena, finns i New-PSSessionOption. Information om inställningsvariabeln finns i $PSSessionOption about_Preference_Variables. För ytterligare information om sessionskonfigurationer, se about_Session_Configurations.

Typ:PSSessionOption
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-UseSSL

Anger att denna cmdlet använder SSL-protokollet (Secure Sockets Layer) för att upprätta en anslutning till fjärrdatorn. Som standard används inte SSL.

WS-Management krypterar allt PowerShell-innehåll som överförs via nätverket. Parametern UseSSL är ett ytterligare skydd som skickar data över en HTTPS-anslutning i stället för en HTTP-anslutning.

Om du använder den här parametern, men SSL inte är tillgängligt på porten som används för kommandot, misslyckas kommandot.

Typ:SwitchParameter
Position:Named
Standardvärde:False
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-VMId

Anger ID för en virtuell dator.

Typ:Guid
Alias:VMGuid
Position:0
Standardvärde:None
Obligatorisk:True
Godkänn pipeline-indata:True
Godkänn jokertecken:False

-VMName

Anger namnet på en virtuell dator.

Typ:String
Position:0
Standardvärde:None
Obligatorisk:True
Godkänn pipeline-indata:True
Godkänn jokertecken:False

Indata

String

Du kan skicka ett datornamn som en sträng till den här cmdleten.

PSSession

Du kan skicka ett sessionsobjekt till den här cmdleten.

Utdata

None

Den här cmdleten returnerar inga utdata.

Kommentarer

Windows PowerShell innehåller följande alias för Enter-PSSession:

  • etsn

Om du vill ansluta till en fjärrdator måste du vara medlem i gruppen Administratörer på fjärrdatorn. Om du vill starta en interaktiv session på den lokala datorn måste du starta PowerShell med alternativet Kör som administratör .

När du använder Enter-PSSessionanvänds användarprofilen på fjärrdatorn för den interaktiva sessionen. Kommandona i fjärranvändarprofilen, inklusive kommandon för att lägga till PowerShell-moduler och ändra kommandotolken, kör innan fjärrprompten visas.

Enter-PSSession använder UI-kulturinställningen på den lokala datorn för den interaktiva sessionen. Använd den automatiska variabeln för att hitta den lokala användargränssnittskulturen $UICulture .

Enter-PSSessionGet-Commandkräver cmdletarna , Out-Defaultoch Exit-PSSession . Om dessa cmdletar inte ingår i sessionskonfigurationen på fjärrdatorn misslyckas Enter-PSSession kommandona.

Till skillnad från Invoke-Command, som parsar och tolkar kommandona innan de skickas till fjärrdatorn, Enter-PSSession skickar kommandona direkt till fjärrdatorn utan tolkning.

Om den session som du vill ange är upptagen med att bearbeta ett kommando kan det uppstå en fördröjning innan PowerShell svarar på Enter-PSSession kommandot. Du är ansluten så snart sessionen är tillgänglig. Tryck på CTRL+C om Enter-PSSession du vill avbryta kommandot.