Enter-PSSession

Startar en interaktiv session med en fjärrdator.

Syntax

Enter-PSSession
     [-ComputerName] <String>
     [-EnableNetworkAccess]
     [-Credential <PSCredential>]
     [-Port <Int32>]
     [-UseSSL]
     [-ConfigurationName <String>]
     [-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
     [-VMGuid] <Guid>
     -Credential <PSCredential>
     [<CommonParameters>]
Enter-PSSession
     [-VMName] <String>
     -Credential <PSCredential>
     [<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 cmdletarna Disconnect-PSSession, Connect-PSSession eller 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.

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

The first command uses the **Enter-PSSession** cmdlet to start an interactive session with Server01, a remote computer. When the session starts, the command prompt changes to include the computer name.
PS C:\> Enter-PSSession -ComputerName Server01
[Server01]: PS C:\>

The second command gets the Windows PowerShell process and redirects the output to the Process.txt file. The command is submitted to the remote computer, and the file is saved on the remote computer.
[Server01]: PS C:\> Get-Process PowerShell > C:\ps-test\Process.txt

The third command uses the **Exit** keyword to end the interactive session and close the connection.
[Server01]: PS C:\> exit
PS C:\>

The fourth command confirms that the Process.txt file is on the remote computer. A **Get-ChildItem** ("dir") command on the local computer cannot find the file.
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 C:\> $s = New-PSSession -ComputerName Server01
PS C:\> Enter-PSSession -Session $s
[Server01]: PS C:\>

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

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

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

Det här kommandot startar en interaktiv session med Server01-datorn. Den använder parametern Port 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 C:\> Enter-PSSession -ComputerName Server01
[Server01]: PS C:\> Exit-PSSession
PS C:\>

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 Exit 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 Inte Windows PowerShell anslutningar, men du kan använda den här parametern för att tillåta att den omdirigerar anslutningen.

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

Typ:SwitchParameter
Position:Named
Standardvärde:None
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.

Tjänsten WinRM 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 URLPrefix egenskap 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 godtagbara värdena för den här parametern är:

  • Standard
  • 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 Enumeration i MSDN-biblioteket.

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 kommandot Get-Item eller Get-ChildItem i Windows 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. Standardvärdet är den lokala datorn.

Ange NetBIOS-namnet, IP-adressen eller datorns fullständigt kvalificerade domännamn. Du kan också skicka ett datornamn för att 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.

Obs! I Windows Vista och senare versioner av Windows-operativsystemet måste du starta Windows PowerShell med alternativet Kör som administratör för att inkludera den lokala datorn i värdet för parametern ComputerName.

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: https://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:

https://localhost:5985/WSMAN

Om du inte anger någon ConnectionURI-kan du använda parametrarna UseSSL, ComputerName, Portoch ApplicationName för att ange värdena för ConnectionURI.

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 Windows 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 Windows 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

-Credential

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

Ange ett användarnamn, till exempel User01, Domain01\User01eller User@Domain.com, eller ange ett PSCredential- objekt, till exempel ett som returneras av cmdleten Get-Credential.

När du skriver ett användarnamn uppmanas du att ange ett lösenord i den här cmdleten.

Typ:PSCredential
Position:Named
Standardvärde:None
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 värdet CredSSP 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.

Om du vill hitta ID:t för en session använder du cmdleten Get-PSSession.

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. Om du vill hitta instans-ID:t för en session använder du cmdleten Get-PSSession. Du kan också använda parametrarna Session, Nameeller 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, InstanceIDeller 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 Name i 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 parametern Port om du inte måste göra det. 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

-Session

Anger en Windows 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 Name, InstanceIDeller 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 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 PSSessionmisslyckas kommandot.

När du använder Exit-PSSession eller nyckelordet EXIT avslutas den interaktiva sessionen, men PSSession- 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ällningsvariabel, om den anges. 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 $PSSessionOption-inställningsvariabeln 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 $PSSessionOption-inställningsvariabeln finns i about_Preference_Variables. Mer information om sessionskonfigurationer finns i 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 Windows 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:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-VMGuid

Anger ID för en virtuell dator.

Typ:Guid
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

System.String, System.Management.Automation.Runspaces.PSSession

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

Utdata

None

Cmdleten returnerar inga utdata.

Kommentarer

  • 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 i Windows Vista och senare versioner av Windows-operativsystemet måste du starta Windows PowerShell med alternativet Kör som administratör.
  • När du använder Enter-PSSessionanvänds din användarprofil på fjärrdatorn för den interaktiva sessionen. Kommandona i fjärranvändarprofilen, inklusive kommandon för att lägga till Snapin-moduler för Windows PowerShell 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. Om du vill hitta den lokala användargränssnittskulturen använder du den $UICulture automatiska variabeln.
  • Enter-PSSession kräver cmdletarna Get-Command, Out-Default och Exit-PSSession. Om dessa cmdletar inte ingår i sessionskonfigurationen på fjärrdatorn misslyckas kommandona Enter-PSSession.
  • Till skillnad från Invoke-Command, som parsar och tolkar kommandona innan de skickas till fjärrdatorn, skickar Enter-PSSession kommandona direkt till fjärrdatorn utan tolkning.
  • Om sessionen som du vill ange är upptagen med att bearbeta ett kommando kan det uppstå en fördröjning innan Windows PowerShell svarar på kommandot Enter-PSSession. Du ansluts så snart sessionen är tillgänglig. Om du vill avbryta kommandot Enter-PSSession trycker du på CTRL+C.