Informacje o PSSessionsAbout PSSessions

Krótki opisShort Description

Opisuje sesje programu PowerShell (PSSessions) i wyjaśnia, jak ustanowić trwałe połączenie z komputerem zdalnym.Describes PowerShell sessions (PSSessions) and explains how to establish a persistent connection to a remote computer.

Długi opisLong Description

Aby uruchomić polecenia programu PowerShell na komputerze zdalnym, można użyć parametru ComputerName polecenia cmdlet lub można utworzyć sesję programu PowerShell (PSSession) i uruchomić polecenia w 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.

Podczas tworzenia PSSession program PowerShell tworzy trwałe połączenie z komputerem zdalnym.When you create a PSSession, PowerShell establishes a persistent connection to the remote computer. Użyj PSSession, aby uruchomić serię powiązanych poleceń na komputerze zdalnym.Use a PSSession to run a series of related commands on a remote computer. Polecenia uruchamiane w tym samym PSSession mogą udostępniać dane, takie jak wartości zmiennych, aliasów i funkcji.Commands that run in the same PSSession can share data, such as the values of variables, aliases, and functions.

Możesz również utworzyć PSSession na komputerze lokalnym i uruchomić w nim polecenia.You can also create a PSSession on the local computer and run commands in it. PSSession lokalny używa infrastruktury komunikacji zdalnej programu PowerShell do tworzenia i obsługi PSSession.A local PSSession uses the PowerShell remoting infrastructure to create and maintain the PSSession.

Począwszy od programu Windows PowerShell 3,0, PSSessions są niezależne od sesji, w których zostały utworzone.Beginning in Windows PowerShell 3.0, PSSessions are independent of the sessions in which they are created. Aktywne PSSessions są utrzymywane na komputerze zdalnym (lub na komputerze pod adresem zdalnym lub po stronie serwera).Active PSSessions are maintained on the remote computer (or the computer at the remote end or "server-side" of the connection). W związku z tym można odłączyć od PSSession i ponownie połączyć się z nim w późniejszym czasie z tego samego komputera lub z innego komputera.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.

W tym temacie opisano sposób tworzenia, używania, pobierania i usuwania PSSessions.This topic explains how to create, use, get, and delete PSSessions. Aby uzyskać bardziej zaawansowane informacje, zobacz about_PSSession_Details.For more advanced information, see about_PSSession_Details.

Uwaga: PSSessions używać infrastruktury komunikacji zdalnej programu PowerShell.Note: PSSessions use the PowerShell remoting infrastructure. Aby można było korzystać z PSSessions, komputery lokalne i zdalne muszą być skonfigurowane pod kątem komunikacji zdalnej.To use PSSessions, the local and remote computers must be configured for remoting. Aby uzyskać więcej informacji, zobacz about_Remote_Requirements.For more information, see about_Remote_Requirements.

W systemie Windows Vista i nowszych wersjach systemu Windows, aby utworzyć PSSession na komputerze lokalnym, należy uruchomić program PowerShell z opcją "Uruchom jako administrator".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.

Co to jest sesja?What Is a Session?

Sesja to środowisko, w którym działa program PowerShell.A session is an environment in which PowerShell runs.

Za każdym razem, gdy uruchamiasz program PowerShell, tworzona jest sesja i można uruchamiać polecenia w sesji.Each time you start PowerShell, a session is created for you, and you can run commands in the session. Można również dodawać elementy do sesji, takie jak moduły i przystawki, i można tworzyć elementy, takie jak zmienne, funkcje i aliasy.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. Te elementy istnieją tylko w sesji i są usuwane po zakończeniu sesji.These items exist only in the session and are deleted when the session ends.

Można również tworzyć sesje zarządzane przez użytkownika, znane jako "sesje programu PowerShell" lub "PSSessions" na komputerze lokalnym lub na komputerze zdalnym.You can also create user-managed sessions, known as " PowerShell sessions" or "PSSessions," on the local computer or on a remote computer. Podobnie jak w przypadku sesji domyślnej można uruchamiać polecenia w PSSession i dodawać i tworzyć elementy.Like the default session, you can run commands in a PSSession and add and create items. Jednak w przeciwieństwie do sesji, która jest uruchamiana automatycznie, można kontrolować utworzoną PSSessions.However, unlike the session that starts automatically, you can control the PSSessions that you create. Można je pobrać, utworzyć, skonfigurować i usunąć, odłączyć i ponownie połączyć się z nimi oraz uruchomić wiele poleceń w tym samym PSSession.You can get, create, configure, and remove them, disconnect and reconnect to them, and run multiple commands in the same PSSession. PSSession pozostaje dostępna do momentu jego usunięcia lub przełączenia.The PSSession remains available until you delete it or it times out.

Zazwyczaj tworzysz PSSession do uruchamiania szeregu powiązanych poleceń na komputerze zdalnym.Typically, you create a PSSession to run a series of related commands on a remote computer. Po utworzeniu PSSession na komputerze zdalnym program PowerShell tworzy trwałe połączenie z komputerem zdalnym w celu obsługi sesji.When you create a PSSession on a remote computer, PowerShell establishes a persistent connection to the remote computer to support the session.

Jeśli używasz parametru ComputerName polecenia Invoke-Command Enter-PSSession cmdlet lub, aby uruchomić polecenie zdalne lub uruchomić sesję interaktywną, program PowerShell tworzy tymczasową sesję na komputerze zdalnym i zamyka sesję zaraz po zakończeniu wykonywania polecenia lub zaraz po zakończeniu sesji interaktywnej.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. Nie można kontrolować tych sesji tymczasowych i nie można ich używać dla więcej niż jednego polecenia lub pojedynczej sesji interaktywnej.You cannot control these temporary sessions, and you cannot use them for more than a single command or a single interactive session.

W programie PowerShell "bieżąca sesja" to sesja, w której pracujesz.In PowerShell, the "current session" is the session that you are working in. "Bieżąca sesja" może odwoływać się do dowolnej sesji, w tym tymczasowej sesji lub PSSession.The "current session" can refer to any session, including a temporary session or a PSSession.

Dlaczego warto używać PSSession?Why Use a PSSession?

Użyj PSSession, gdy potrzebujesz trwałego połączenia z komputerem zdalnym.Use a PSSession when you need a persistent connection to a remote computer. Za pomocą PSSession można uruchomić szereg poleceń, które współdzielą dane, takie jak wartość zmiennych, zawartość funkcji lub definicja aliasu.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.

Polecenia zdalne można uruchamiać bez tworzenia PSSession.You can run remote commands without creating a PSSession. Użyj parametru ComputerName poleceń cmdlet z obsługą zdalną, aby uruchomić pojedyncze polecenie lub serię niepowiązanych poleceń na jednym lub wielu komputerach.Use the ComputerName parameter of remote-enabled cmdlets to run a single command or a series of unrelated commands on one or many computers.

Jeśli używasz parametru ComputerName Invoke-Command lub Enter-PSSession , program PowerShell ustanowi tymczasowe połączenie z komputerem zdalnym, a następnie zamknie połączenie zaraz po zakończeniu wykonywania polecenia.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. Wszystkie elementy danych, które tworzysz, zostaną utracone po zamknięciu połączenia.Any data elements that you create are lost when the connection is closed.

Inne polecenia cmdlet, które mają parametr ComputerName , takie jak Get-Eventlog i Get-WmiObject , używają różnych technologii usług zdalnych do zbierania danych.Other cmdlets that have a ComputerName parameter, such as Get-Eventlog and Get-WmiObject, use different remoting technologies to gather data. Brak Utwórz trwałe połączenie, takie jak PSSession.None create a persistent connection like a PSSession.

Jak utworzyć PSSessionHow to Create a PSSession

Aby utworzyć PSSession, użyj New-PSSession polecenia cmdlet.To create a PSSession, use the New-PSSession cmdlet. Aby utworzyć PSSession na komputerze zdalnym, użyj parametru ComputerName New-PSSession polecenia cmdlet.To create the PSSession on a remote computer, use the ComputerName parameter of the New-PSSession cmdlet.

Na przykład następujące polecenie tworzy nowy PSSession na komputerze Serwer01.For example, the following command creates a new PSSession on the Server01 computer.

New-PSSession -ComputerName Server01

Gdy przesyłasz polecenie, program New-PSSession tworzy PSSession i zwraca obiekt, który reprezentuje PSSession.When you submit the command, New-PSSession creates the PSSession and returns an object that represents the PSSession. Obiekt można zapisać w zmiennej podczas tworzenia PSSession lub użyć Get-PSSession polecenia, aby uzyskać PSSession w późniejszym czasie.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.

Na przykład następujące polecenie tworzy nowy PSSession na komputerze Serwer01 i zapisuje obiekt wyników w zmiennej $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

Jak utworzyć PSSessions na wielu komputerachHow to Create PSSessions on Multiple Computers

Aby utworzyć PSSessions na wielu komputerach, użyj parametru ComputerName New-PSSession polecenia cmdlet.To create PSSessions on multiple computers, use the ComputerName parameter of the New-PSSession cmdlet. Wpisz nazwy komputerów zdalnych na liście rozdzielanej przecinkami.Type the names of the remote computers in a comma-separated list.

Na przykład, aby utworzyć PSSessions na komputerach Serwer01, Server02 i Server03, wpisz:For example, to create PSSessions on the Server01, Server02, and Server03 computers, type:

New-PSSession -ComputerName Server01, Server02, Server03

New-PSSession tworzy jeden PSSession na każdym komputerze zdalnym.New-PSSession creates one PSSession on each of the remote computers.

Jak uzyskać PSSessionsHow to Get PSSessions

Aby uzyskać PSSessions, które zostały utworzone w bieżącej sesji, należy użyć Get-PSSession polecenia cmdlet bez parametru ComputerName .To get the PSSessions that were created in your current session, use the Get-PSSession cmdlet without the ComputerName parameter. Get-PSSession zwraca ten sam typ obiektu, który New-PSSession zwraca wartość.Get-PSSession returns the same type of object that New-PSSession returns.

Następujące polecenie pobiera wszystkie PSSessions, które zostały utworzone w bieżącej sesji.The following command gets all the PSSessions that were created in the current session.

Get-PSSession

Domyślne wyświetlanie PSSessions pokazuje ich identyfikator i domyślną nazwę wyświetlaną.The default display of the PSSessions shows their ID and a default display name. Podczas tworzenia sesji można przypisać alternatywną nazwę wyświetlaną.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

Możesz również zapisać PSSessions w zmiennej.You can also save the PSSessions in a variable. Następujące polecenie pobiera PSSessions i zapisuje je w $ zmiennej ps123.The following command gets the PSSessions and saves them in the $ps123 variable.

$ps123 = Get-PSSession

W przypadku korzystania z poleceń cmdlet PSSession można odwołać się do PSSession za pomocą jego identyfikatora, jego nazwy lub identyfikatora wystąpienia (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). Następujące polecenie pobiera PSSession według identyfikatora i zapisuje je w $ zmiennej PS01.The following command gets a PSSession by its ID and saves it in the $ps01 variable.

$ps01 = Get-PSSession -Id 1

Począwszy od programu Windows PowerShell 3,0, PSSessions są przechowywane na komputerze zdalnym.Beginning in Windows PowerShell 3.0, PSSessions are maintained on the remote computer. Aby uzyskać PSSessions utworzone na określonych komputerach zdalnych, użyj parametru ComputerName Get-PSSession polecenia cmdlet.To get PSSessions that you created on particular remote computers, use the ComputerName parameter of the Get-PSSession cmdlet. Następujące polecenie pobiera PSSessions, który został utworzony na komputerze zdalnym Serwer01.The following command gets the PSSessions that you created on the Server01 remote computer. Obejmuje to PSSessions utworzone w bieżącej sesji i w innych sesjach na komputerze lokalnym lub na innych komputerach.This includes PSSessions created in the current session and in other sessions on the local computer or other computers.

Get-PSSession -ComputerName Server01

W programie Windows PowerShell 2,0 Get-PSSession Pobiera tylko PSSessions, które zostały utworzone w bieżącej sesji.In Windows PowerShell 2.0, Get-PSSession gets only the PSSessions that were created in the current session. Nie otrzymuje PSSessions utworzonych w innych sesjach ani na innych komputerach, nawet jeśli sesje są połączone z systemem i działają polecenia na komputerze lokalnym.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.

Jak uruchamiać polecenia w PSSessionHow to Run Commands in a PSSession

Aby uruchomić polecenie w co najmniej jednym PSSessions, użyj Invoke-Command polecenia cmdlet.To run a command in one or more PSSessions, use the Invoke-Command cmdlet. Użyj parametru session, aby określić parametry PSSessions i ScriptBlock , aby określić polecenie.Use the Session parameter to specify the PSSessions and the ScriptBlock parameter to specify the command.

Na przykład aby uruchomić Get-ChildItem polecenie (dir) w każdym z trzech PSSessions zapisywanych w zmiennej $ps 123, wpisz: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 }

Jak usunąć PSSessionsHow to Delete PSSessions

Po zakończeniu pracy z PSSession Użyj Remove-PSSession polecenia cmdlet, aby usunąć PSSession i zwolnić zasoby, których używa.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

lubor

Remove-PSSession -Id 1

Aby usunąć PSSession z komputera zdalnego, użyj parametru ComputerName Remove-PSSession polecenia cmdlet.To remove a PSSession from a remote computer, use the ComputerName parameter of the Remove-PSSession cmdlet.

Remove-PSSession -ComputerName Server01 -Id 1

Jeśli nie usuniesz PSSession, PSSession pozostanie dostępne do użycia do czasu przełączenia.If you do not delete the PSSession, the PSSession remains available for use until it times out.

Można również użyć parametru IdleTimeout New-PSSessionOption polecenia cmdlet w celu ustawienia czasu wygaśnięcia dla PSSession bezczynności.You can also use the IdleTimeout parameter of the New-PSSessionOption cmdlet to set an expiration time for an idle PSSession. Aby uzyskać więcej informacji, zobacz polecenie New-PSSessionOption.For more information, see New-PSSessionOption.

Polecenia cmdlet PSSessionThe PSSession Cmdlets

Aby uzyskać listę poleceń cmdlet PSSession, wpisz:For a list of PSSession cmdlets, type:

Get-Help *-PSSession
  • Connect-PSSession: nawiązuje połączenie PSSession z bieżącą sesjąConnect-PSSession: Connects a PSSession to the current session
  • Disconnect-PSSession: rozłącza PSSession z bieżącej sesjiDisconnect-PSSession: Disconnects a PSSession from the current session
  • Enter-PSSession: uruchamia sesję interaktywnąEnter-PSSession: Starts an interactive session
  • Exit-PSSession: kończy sesję interaktywnąExit-PSSession: Ends an interactive session
  • Get-PSSession: Pobiera PSSessions w bieżącej sesjiGet-PSSession: Gets the PSSessions in the current session
  • New-PSSession: tworzy nowy PSSession na komputerze lokalnym lub zdalnymNew-PSSession: Creates a new PSSession on a local or remote computer
  • Receive-PSSession: pobiera wyniki poleceń, które zostały uruchomione w rozłączonej sesjiReceive-PSSession: Gets the results of commands that ran in a disconnected session
  • Remove-PSSession: usuwa PSSessions w bieżącej sesjiRemove-PSSession: Deletes the PSSessions in the current session

Aby uzyskać więcej informacjiFor More Information

Aby uzyskać więcej informacji na temat PSSessions, zobacz about_PSSession_Details.For more information about PSSessions, see about_PSSession_Details.

Zobacz teżSee Also

about_Remoteabout_Remote

about_Remote_Disconnected_Sessionsabout_Remote_Disconnected_Sessions

about_Remote_Requirementsabout_Remote_Requirements

Connect-PSSessionConnect-PSSession

Odłącz — PSSessionDisconnect-PSSession

Enter-PSSessionEnter-PSSession

Exit — PSSessionExit-PSSession

Get-PSSessionGet-PSSession

Wywołaj polecenieInvoke-Command

New-PSSessionNew-PSSession

Remove-PSSessionRemove-PSSession