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-PSSession
cmdletarna , 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
.
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:
winrm delete winrm/config/listener?Address=*+Transport=HTTP
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
Du kan skicka ett datornamn som en sträng till den här cmdleten.
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-PSSession
anvä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-PSSession
Get-Command
kräver cmdletarna , Out-Default
och 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.