Om PSSessionsAbout PSSessions

Kort beskrivningShort Description

Beskriver PowerShell-sessioner (PSSessions) och förklarar hur du upprättar en permanent anslutning till en fjärrdator.Describes PowerShell sessions (PSSessions) and explains how to establish a persistent connection to a remote computer.

Lång beskrivningLong Description

Om du vill köra PowerShell-kommandon på en fjärrdator kan du använda parametern computername för en cmdlet, eller så kan du skapa en PowerShell-session (PSSession) och köra kommandon i PSSession.To run PowerShell commands on a remote computer, you can use the ComputerName parameter of a cmdlet, or you can create a PowerShell session (PSSession) and run commands in the PSSession.

När du skapar en PSSession upprättar PowerShell en permanent anslutning till fjärrdatorn.When you create a PSSession, PowerShell establishes a persistent connection to the remote computer. Använd en PSSession för att köra en serie relaterade kommandon på en fjärrdator.Use a PSSession to run a series of related commands on a remote computer. Kommandon som körs i samma PSSession kan dela data, till exempel värden för variabler, alias och funktioner.Commands that run in the same PSSession can share data, such as the values of variables, aliases, and functions.

Du kan också skapa en PSSession på den lokala datorn och köra kommandon i den.You can also create a PSSession on the local computer and run commands in it. En lokal PSSession använder PowerShell-infrastrukturen för fjärr kommunikation för att skapa och underhålla PSSession.A local PSSession uses the PowerShell remoting infrastructure to create and maintain the PSSession.

Från och med Windows PowerShell 3,0 är PSSessions oberoende av de sessioner som de skapas i.Beginning in Windows PowerShell 3.0, PSSessions are independent of the sessions in which they are created. Aktiva PSSessions underhålls på fjärrdatorn (eller datorn på fjärrplatsen eller "Server sidan" i anslutningen).Active PSSessions are maintained on the remote computer (or the computer at the remote end or "server-side" of the connection). Därför kan du koppla från PSSession och återansluta till den vid ett senare tillfälle från samma dator eller från en annan dator.As a result, you can disconnect from the PSSession and reconnect to it at a later time from the same computer or from a different computer.

I det här avsnittet beskrivs hur du skapar, använder, hämtar och tar bort PSSessions.This topic explains how to create, use, get, and delete PSSessions. Mer avancerad information finns i about_PSSession_Details.For more advanced information, see about_PSSession_Details.

Obs: PSSessions använder PowerShell-fjärrinfrastrukturen.Note: PSSessions use the PowerShell remoting infrastructure. För att kunna använda PSSessions måste lokala och fjärranslutna datorer konfigureras för fjärr kommunikation.To use PSSessions, the local and remote computers must be configured for remoting. Mer information finns i about_Remote_Requirements.For more information, see about_Remote_Requirements.

I Windows Vista och senare versioner av Windows måste du starta PowerShell med alternativet "kör som administratör" för att kunna skapa en PSSession på en lokal dator.In Windows Vista and later versions of Windows, to create a PSSession on a local computer, you must start PowerShell with the "Run as administrator" option.

Vad är en session?What Is a Session?

En session är en miljö där PowerShell körs.A session is an environment in which PowerShell runs.

Varje gången du startar PowerShell skapas en session åt dig, och du kan köra kommandon i sessionen.Each time you start PowerShell, a session is created for you, and you can run commands in the session. Du kan också lägga till objekt i din session, till exempel moduler och snapin-moduler, och du kan skapa objekt, till exempel variabler, funktioner och alias.You can also add items to your session, such as modules and snap-ins, and you can create items, such as variables, functions, and aliases. Dessa objekt finns bara i sessionen och tas bort när sessionen avslutas.These items exist only in the session and are deleted when the session ends.

Du kan också skapa användar hanterade sessioner som kallas "PowerShell-sessioner" eller "PSSessions" på den lokala datorn eller på en fjärrdator.You can also create user-managed sessions, known as " PowerShell sessions" or "PSSessions," on the local computer or on a remote computer. Precis som Standardsessionen kan du köra kommandon i en PSSession och lägga till och skapa objekt.Like the default session, you can run commands in a PSSession and add and create items. Men till skillnad från den session som startar automatiskt kan du kontrol lera de PSSessions som du skapar.However, unlike the session that starts automatically, you can control the PSSessions that you create. Du kan hämta, skapa, konfigurera och ta bort dem, koppla från och återansluta till dem och köra flera kommandon i samma PSSession.You can get, create, configure, and remove them, disconnect and reconnect to them, and run multiple commands in the same PSSession. PSSession förblir tillgänglig tills du tar bort den eller tids gränsen uppnåddes.The PSSession remains available until you delete it or it times out.

Normalt skapar du en PSSession för att köra en serie relaterade kommandon på en fjärrdator.Typically, you create a PSSession to run a series of related commands on a remote computer. När du skapar en PSSession på en fjärrdator upprättar PowerShell en permanent anslutning till fjärrdatorn för att stödja sessionen.When you create a PSSession on a remote computer, PowerShell establishes a persistent connection to the remote computer to support the session.

Om du använder parametern computername för Invoke-Command Enter-PSSession cmdleten eller för att köra ett fjärrkommando, eller om du vill starta en interaktiv session, skapar PowerShell en tillfällig session på fjärrdatorn och stänger sessionen så snart kommandot är slutfört eller så snart den interaktiva sessionen avslutas.If you use the ComputerName parameter of the Invoke-Command or Enter-PSSession cmdlet to run a remote command or to start an interactive session, PowerShell creates a temporary session on the remote computer and closes the session as soon as the command is complete or as soon as the interactive session ends. Du kan inte kontrol lera dessa tillfälliga sessioner och du kan inte använda dem för mer än ett enda kommando eller en enkel interaktiv session.You cannot control these temporary sessions, and you cannot use them for more than a single command or a single interactive session.

I PowerShell är den aktuella sessionen den session som du arbetar i.In PowerShell, the "current session" is the session that you are working in. Den aktuella sessionen kan referera till en session, inklusive en tillfällig session eller en PSSession.The "current session" can refer to any session, including a temporary session or a PSSession.

Varför ska jag använda en PSSession?Why Use a PSSession?

Använd en PSSession när du behöver en permanent anslutning till en fjärrdator.Use a PSSession when you need a persistent connection to a remote computer. Med en PSSession kan du köra en serie kommandon som delar data, till exempel värdet för variabler, innehållet i en funktion eller definitionen av ett alias.With a PSSession, you can run a series of commands that share data, such as the value of variables, the contents of a function, or the definition of an alias.

Du kan köra fjärrkommandon utan att skapa en PSSession.You can run remote commands without creating a PSSession. Använd parametern computername för fjärraktiverade cmdlet: ar för att köra ett enskilt kommando eller en serie orelaterade kommandon på en eller flera datorer.Use the ComputerName parameter of remote-enabled cmdlets to run a single command or a series of unrelated commands on one or many computers.

När du använder parametern computername för Invoke-Command eller Enter-PSSession , upprättar PowerShell en tillfällig anslutning till fjärrdatorn och stänger sedan anslutningen så snart kommandot har slutförts.When you use the ComputerName parameter of Invoke-Command or Enter-PSSession, PowerShell establishes a temporary connection to the remote computer and then closes the connection as soon as the command is complete. Alla data element som du skapar försvinner när anslutningen stängs.Any data elements that you create are lost when the connection is closed.

Andra cmdletar som har en computername -parameter, till exempel Get-Eventlog och Get-WmiObject , använder olika fjärr kommunikations tekniker för att samla in data.Other cmdlets that have a ComputerName parameter, such as Get-Eventlog and Get-WmiObject, use different remoting technologies to gather data. Ingen skapar en permanent anslutning som en PSSession.None create a persistent connection like a PSSession.

Så här skapar du en PSSessionHow to Create a PSSession

Använd cmdleten för att skapa en PSSession New-PSSession .To create a PSSession, use the New-PSSession cmdlet. Om du vill skapa PSSession på en fjärrdator använder du parametern computername för New-PSSession cmdleten.To create the PSSession on a remote computer, use the ComputerName parameter of the New-PSSession cmdlet.

Följande kommando skapar till exempel en ny PSSession på Server01-datorn.For example, the following command creates a new PSSession on the Server01 computer.

New-PSSession -ComputerName Server01

När du skickar kommandot New-PSSession skapar PSSession och returnerar ett objekt som representerar PSSession.When you submit the command, New-PSSession creates the PSSession and returns an object that represents the PSSession. Du kan spara objektet i en variabel när du skapar PSSession, eller så kan du använda ett Get-PSSession kommando för att hämta PSSession vid ett senare tillfälle.You can save the object in a variable when you create the PSSession, or you can use a Get-PSSession command to get the PSSession at a later time.

Följande kommando skapar till exempel en ny PSSession på Server01-datorn och sparar det resulterande objektet i variabeln $ps.For example, the following command creates a new PSSession on the Server01 computer and saves the resulting object in the $ps variable.

$ps = New-PSSession -ComputerName Server01

Så här skapar du PSSessions på flera datorerHow to Create PSSessions on Multiple Computers

Om du vill skapa PSSessions på flera datorer använder du parametern computername för New-PSSession cmdleten.To create PSSessions on multiple computers, use the ComputerName parameter of the New-PSSession cmdlet. Ange namnen på fjärrdatorerna i en kommaavgränsad lista.Type the names of the remote computers in a comma-separated list.

Om du till exempel vill skapa PSSessions på Server01-, Server02-och Server03-datorerna skriver du:For example, to create PSSessions on the Server01, Server02, and Server03 computers, type:

New-PSSession -ComputerName Server01, Server02, Server03

New-PSSession skapar en PSSession på varje fjärran sluten dator.New-PSSession creates one PSSession on each of the remote computers.

Så här hämtar du PSSessionsHow to Get PSSessions

Om du vill hämta PSSessions som har skapats i den aktuella sessionen använder du Get-PSSession cmdleten utan parametern computername .To get the PSSessions that were created in your current session, use the Get-PSSession cmdlet without the ComputerName parameter. Get-PSSession returnerar samma typ av objekt som New-PSSession returneras.Get-PSSession returns the same type of object that New-PSSession returns.

Följande kommando hämtar alla PSSessions som skapades i den aktuella sessionen.The following command gets all the PSSessions that were created in the current session.

Get-PSSession

Standard visningen av PSSessions visar deras ID och standard visnings namn.The default display of the PSSessions shows their ID and a default display name. Du kan tilldela ett alternativt visnings namn när du skapar sessionen.You can assign an alternate display name when you create the session.

Id   Name       ComputerName    State    ConfigurationName
---  ----       ------------    -----    ---------------------
1    Session1   Server01        Opened   Microsoft.PowerShell
2    Session2   Server02        Opened   Microsoft.PowerShell
3    Session3   Server03        Opened   Microsoft.PowerShell

Du kan också spara PSSessions i en variabel.You can also save the PSSessions in a variable. Följande kommando hämtar PSSessions och sparar dem i $ ps123-variabeln.The following command gets the PSSessions and saves them in the $ps123 variable.

$ps123 = Get-PSSession

När du använder PSSession-cmdlet: arna kan du referera till en PSSession med hjälp av dess ID, efter dess namn eller med dess instans-ID (GUID).When using the PSSession cmdlets, you can refer to a PSSession by its ID, by its name, or by its instance ID (a GUID). Följande kommando hämtar ett PSSession efter dess ID och sparar det i ps01- $ variabeln.The following command gets a PSSession by its ID and saves it in the $ps01 variable.

$ps01 = Get-PSSession -Id 1

Från och med Windows PowerShell 3,0 underhålls PSSessions på fjärrdatorn.Beginning in Windows PowerShell 3.0, PSSessions are maintained on the remote computer. Om du vill hämta PSSessions som du har skapat på vissa fjärrdatorer använder du parametern computername för Get-PSSession cmdleten.To get PSSessions that you created on particular remote computers, use the ComputerName parameter of the Get-PSSession cmdlet. Följande kommando hämtar PSSessions som du skapade på Server01-fjärrdatorn.The following command gets the PSSessions that you created on the Server01 remote computer. Detta inkluderar PSSessions som skapats i den aktuella sessionen och i andra sessioner på den lokala datorn eller andra datorer.This includes PSSessions created in the current session and in other sessions on the local computer or other computers.

Get-PSSession -ComputerName Server01

I Windows PowerShell 2,0 Get-PSSession hämtar endast de PSSessions som skapades i den aktuella sessionen.In Windows PowerShell 2.0, Get-PSSession gets only the PSSessions that were created in the current session. Den hämtar inte PSSessions som har skapats i andra sessioner eller på andra datorer, även om sessionerna är anslutna till och kör kommandon på den lokala datorn.It does not get PSSessions that were created in other sessions or on other computers, even if the sessions are connected to and are running commands on the local computer.

Köra kommandon i en PSSessionHow to Run Commands in a PSSession

Använd cmdleten om du vill köra ett kommando i en eller flera PSSessions Invoke-Command .To run a command in one or more PSSessions, use the Invoke-Command cmdlet. Använd parametern session för att ange PSSessions och parametern script block för att ange kommandot.Use the Session parameter to specify the PSSessions and the ScriptBlock parameter to specify the command.

Om du till exempel vill köra ett Get-ChildItem kommando ("dir") i vart och ett av de tre PSSessions som sparas i variabeln $ps 123, skriver du:For example, to run a Get-ChildItem ("dir") command in each of the three PSSessions saved in the $ps123 variable, type:

Invoke-Command -Session $ps123 -ScriptBlock { Get-ChildItem }

Ta bort PSSessionsHow to Delete PSSessions

När du är färdig med PSSession använder du Remove-PSSession cmdleten för att ta bort PSSession och för att frigöra de resurser som används.When you are finished with the PSSession, use the Remove-PSSession cmdlet to delete the PSSession and to release the resources that it was using.

Remove-PSSession -Session $ps

elleror

Remove-PSSession -Id 1

Om du vill ta bort en PSSession från en fjärrdator använder du parametern computername för Remove-PSSession cmdleten.To remove a PSSession from a remote computer, use the ComputerName parameter of the Remove-PSSession cmdlet.

Remove-PSSession -ComputerName Server01 -Id 1

Om du inte tar bort PSSession är PSSession fortfarande tillgängligt för användning tills tids gränsen uppnåddes.If you do not delete the PSSession, the PSSession remains available for use until it times out.

Du kan också använda idleTimeout -parametern för New-PSSessionOption cmdlet: en för att ange en förfallo tid för en inaktiv PSSession.You can also use the IdleTimeout parameter of the New-PSSessionOption cmdlet to set an expiration time for an idle PSSession. Mer information finns i New-PSSessionOption.For more information, see New-PSSessionOption.

PSSession-cmdletarThe PSSession Cmdlets

Om du vill ha en lista över PSSession-cmdletar skriver du:For a list of PSSession cmdlets, type:

Get-Help *-PSSession
  • Connect-PSSession: ansluter en PSSession till den aktuella sessionenConnect-PSSession: Connects a PSSession to the current session
  • Koppla från-PSSession: kopplar från en PSSession från den aktuella sessionenDisconnect-PSSession: Disconnects a PSSession from the current session
  • Retur-PSSession: startar en interaktiv sessionEnter-PSSession: Starts an interactive session
  • Exit-PSSession: avslutar en interaktiv sessionExit-PSSession: Ends an interactive session
  • Get-PSSession: hämtar PSSessions i den aktuella sessionenGet-PSSession: Gets the PSSessions in the current session
  • New-PSSession: skapar en ny PSSession på en lokal eller fjärran sluten datorNew-PSSession: Creates a new PSSession on a local or remote computer
  • Receive-PSSession: hämtar resultatet från kommandon som kördes i en frånkopplad sessionReceive-PSSession: Gets the results of commands that ran in a disconnected session
  • Remove-PSSession: tar bort PSSessions i den aktuella sessionenRemove-PSSession: Deletes the PSSessions in the current session

Mer informationFor More Information

Mer information om PSSessions finns i about_PSSession_Details.For more information about PSSessions, see about_PSSession_Details.

Se ävenSee Also

about_Remoteabout_Remote

about_Remote_Disconnected_Sessionsabout_Remote_Disconnected_Sessions

about_Remote_Requirementsabout_Remote_Requirements

Anslut – PSSessionConnect-PSSession

Koppla från-PSSessionDisconnect-PSSession

Retur-PSSessionEnter-PSSession

Avsluta-PSSessionExit-PSSession

Get-PSSessionGet-PSSession

Invoke-kommandoInvoke-Command

New-PSSessionNew-PSSession

Remove-PSSessionRemove-PSSession