about_PSSessions

Krótki opis

W tym artykule opisano sesje programu PowerShell (PSSessions) i wyjaśniono, jak nawiązać trwałe połączenie z komputerem zdalnym.

Długi opis

Aby uruchomić polecenia programu PowerShell na komputerze zdalnym, możesz użyć parametru ComputerName polecenia cmdlet lub utworzyć sesję programu PowerShell (PSSession) i uruchomić polecenia w sesji PSSession.

Podczas tworzenia programu PSSession program PowerShell ustanawia trwałe połączenie z komputerem zdalnym. Użyj sesji PSSession, aby uruchomić serię powiązanych poleceń na komputerze zdalnym. Polecenia uruchamiane w ramach tej samej usługi PSSession mogą udostępniać dane, takie jak wartości zmiennych, aliasów i funkcji.

Można również utworzyć pssession na komputerze lokalnym i uruchomić w nim polecenia. Lokalna usługa PSSession używa infrastruktury komunikacji zdalnej programu PowerShell do tworzenia i konserwacji programu PSSession.

Począwszy od Windows PowerShell 3.0, sesje PSSessions w systemie Windows są niezależne od sesji, w których są tworzone. Aktywne sesje PSSession są przechowywane na komputerze zdalnym (lub komputerze na końcu zdalnym lub "po stronie serwera" połączenia). W związku z tym w systemie Windows można odłączyć się od sesji PSSession na zdalnym komputerze z systemem Windows i ponownie połączyć się z nim później z tego samego komputera lub z innego komputera z systemem Windows.

W tym temacie wyjaśniono, jak tworzyć, używać, pobierać i usuwać pliki PSSessions. Aby uzyskać bardziej zaawansowane informacje, zobacz about_PSSession_Details.

Uwaga: program PSSessions używa infrastruktury komunikacji zdalnej programu PowerShell. Aby można było używać sesji PSSessions, należy skonfigurować komputery lokalne i zdalne do komunikacji zdalnej. Aby uzyskać więcej informacji, zobacz about_Remote_Requirements.

W systemie Windows Vista i nowszych wersjach systemu Windows, aby utworzyć program PSSession na komputerze lokalnym, należy uruchomić program PowerShell z opcją "Uruchom jako administrator".

Co to jest sesja?

Sesja to środowisko, w którym działa program PowerShell.

Za każdym razem, gdy uruchamiasz program PowerShell, sesja jest tworzona i można uruchamiać polecenia w sesji. Możesz również dodawać elementy do sesji, takie jak moduły i przystawki, a także tworzyć elementy, takie jak zmienne, funkcje i aliasy. Te elementy istnieją tylko w sesji i są usuwane po zakończeniu sesji.

Można również tworzyć sesje zarządzane przez użytkownika, znane jako "sesje programu PowerShell" lub "sesje PSSessions", na komputerze lokalnym lub na komputerze zdalnym. Podobnie jak w przypadku sesji domyślnej, można uruchamiać polecenia w sesji PSSession i dodawać i tworzyć elementy. Jednak w przeciwieństwie do sesji, która rozpoczyna się automatycznie, można kontrolować utworzone sesje PSSessions. Można je pobrać, utworzyć, skonfigurować i usunąć, rozłączyć i ponownie nawiązać z nimi połączenie, a następnie uruchomić wiele poleceń w tym samym psSession. Usunięcie programu PSSession pozostaje dostępne do momentu jego usunięcia lub upłynął limit czasu.

Zazwyczaj tworzy się sesję PSSession w celu uruchomienia serii powiązanych poleceń na komputerze zdalnym. Podczas tworzenia programu PSSession na komputerze zdalnym program PowerShell ustanawia trwałe połączenie z komputerem zdalnym w celu obsługi sesji.

Jeśli używasz parametru Invoke-CommandComputerName polecenia cmdlet lub Enter-PSSession do uruchamiania zdalnej sesji lub do uruchamiania sesji interakcyjnej, program PowerShell tworzy sesję tymczasową na komputerze zdalnym i zamyka sesję zaraz po zakończeniu polecenia lub po zakończeniu sesji interakcyjnej. Nie można kontrolować tych sesji tymczasowych i nie można ich używać do więcej niż jednego polecenia lub jednej sesji interakcyjnej.

W programie PowerShell "bieżąca sesja" to sesja, w której pracujesz. "Bieżąca sesja" może odwoływać się do dowolnej sesji, w tym sesji tymczasowej lub sesji PSSession.

Dlaczego warto używać programu PSSession?

Użyj sesji PSSession, jeśli potrzebujesz trwałego połączenia z komputerem zdalnym. Za pomocą programu PSSession można uruchomić serię poleceń, które współdzielą dane, takie jak wartość zmiennych, zawartość funkcji lub definicja aliasu.

Polecenia zdalne można uruchamiać bez tworzenia sesji PSSession. Użyj parametru ComputerName poleceń cmdlet z obsługą zdalnego, aby uruchomić jedno polecenie lub serię niepowiązanych poleceń na jednym lub wielu komputerach.

W przypadku korzystania z parametru ComputerName programu Invoke-Command lub Enter-PSSessionprogram PowerShell ustanawia tymczasowe połączenie z komputerem zdalnym, a następnie zamyka połączenie natychmiast po zakończeniu wykonywania polecenia. Wszystkie utworzone elementy danych zostaną utracone po zamknięciu połączenia.

Inne polecenia cmdlet z parametrem ComputerName , takie jak Get-Eventlog i Get-WmiObject, używają różnych technologii komunikacji wirtualnej do zbierania danych. Brak tworzy trwałe połączenie, takie jak PSSession.

How to Create a PSSession

Aby utworzyć plik PSSession, użyj New-PSSession polecenia cmdlet . Aby utworzyć program PSSession na komputerze zdalnym, użyj parametru New-PSSessionComputerName polecenia cmdlet .

Na przykład następujące polecenie tworzy nową konsolę PSSession na komputerze Server01.

New-PSSession -ComputerName Server01

Po przesłaniu polecenia New-PSSession program tworzy polecenie PSSession i zwraca obiekt reprezentujący ciąg PSSession. Obiekt można zapisać w zmiennej podczas tworzenia programu PSSession lub użyć Get-PSSession polecenia w celu późniejszego pobrania pliku PSSession.

Na przykład następujące polecenie tworzy nowe pssession na komputerze Server01 i zapisuje wynikowy obiekt w zmiennej $ps.

$ps = New-PSSession -ComputerName Server01

How to Create PSSessions on Multiple Computers

Aby utworzyć psSessions na wielu komputerach, użyj parametru ComputerName polecenia New-PSSession cmdlet. Wpisz nazwy komputerów zdalnych na liście rozdzielanej przecinkami.

Aby na przykład utworzyć pssessions na komputerach Server01, Server02 i Server03, wpisz:

New-PSSession -ComputerName Server01, Server02, Server03

New-PSSession Program tworzy jedną sesję PSSession na każdym z komputerów zdalnych.

Jak uzyskać pssessions

Aby uzyskać sesje PSSessions, które zostały utworzone w bieżącej sesji, użyj Get-PSSession polecenia cmdlet bez parametru ComputerName . Get-PSSession Zwraca ten sam typ obiektu, który New-PSSession zwraca.

Następujące polecenie pobiera wszystkie sesje PSSessions, które zostały utworzone w bieżącej sesji.

Get-PSSession

Domyślnym wyświetlaniem pssessions jest ich identyfikator i domyślna nazwa wyświetlana. Alternatywną nazwę wyświetlaną można przypisać podczas tworzenia sesji.

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

Można również zapisać pliki PSSessions w zmiennej. Następujące polecenie pobiera pliki PSSessions i zapisuje je w zmiennej $ps 123.

$ps123 = Get-PSSession

W przypadku korzystania z poleceń cmdlet PSSession można odwoływać się do identyfikatora PSSession według jego identyfikatora, nazwy lub identyfikatora wystąpienia (identyfikator GUID). Następujące polecenie pobiera identyfikator PSSession i zapisuje go w zmiennej $ps 01.

$ps01 = Get-PSSession -Id 1

Począwszy od Windows PowerShell 3.0, sesje PSSessions są obsługiwane na komputerze zdalnym. Aby uzyskać pliki PSSessions utworzone na określonych komputerach zdalnych, użyj parametru Get-PSSessionComputerName polecenia cmdlet. Następujące polecenie pobiera pliki PSSessions utworzone na komputerze zdalnym Server01. Obejmuje to sesje PSSession utworzone w bieżącej sesji i w innych sesjach na komputerze lokalnym lub na innych komputerach.

Get-PSSession -ComputerName Server01

W Windows PowerShell 2.0 Get-PSSession program pobiera tylko sesje PSSessions, które zostały utworzone w bieżącej sesji. Nie uzyskuje sesji PSSessions, które zostały utworzone w innych sesjach lub na innych komputerach, nawet jeśli sesje są połączone i są uruchomione polecenia na komputerze lokalnym.

Jak uruchamiać polecenia w programie PSSession

Aby uruchomić polecenie w co najmniej jednym psSessions, użyj Invoke-Command polecenia cmdlet . Użyj parametru Sesja, aby określić parametry PSSessions i ScriptBlock , aby określić polecenie.

Aby na przykład uruchomić Get-ChildItem polecenie ("dir") w każdym z trzech psSessions zapisanych w zmiennej $ps 123, wpisz:

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

How to Delete PSSessions

Po zakończeniu pracy z programem PSSession użyj Remove-PSSession polecenia cmdlet , aby usunąć plik PSSession i zwolnić zasoby, z których korzysta.

Remove-PSSession -Session $ps

lub

Remove-PSSession -Id 1

Aby usunąć psSession z komputera zdalnego, użyj parametru Remove-PSSessionComputerName polecenia cmdlet.

Remove-PSSession -ComputerName Server01 -Id 1

Jeśli nie usuniesz pssession, psSession pozostaje dostępny do użycia, dopóki nie upłynął limit czasu.

Możesz również użyć parametru New-PSSessionOptionIdleTimeout polecenia cmdlet, aby ustawić czas wygaśnięcia bezczynności psSession. Aby uzyskać więcej informacji, zobacz New-PSSessionOption.

Polecenia cmdlet PSSession

Aby uzyskać listę poleceń cmdlet PSSession, wpisz:

Get-Help *-PSSession
  • Connect-PSSession: łączy sesję PSSession z bieżącą sesją
  • Disconnect-PSSession: rozłącza sesję PSSession z bieżącej sesji
  • Enter-PSSession: uruchamia sesję interaktywną
  • Exit-PSSession: kończy sesję interaktywną
  • Get-PSSession: pobiera sesje PSSessions w bieżącej sesji
  • New-PSSession: Tworzy nową sesję PSSession na komputerze lokalnym lub zdalnym
  • Receive-PSSession: pobiera wyniki poleceń uruchomionych w rozłączonej sesji
  • Remove-PSSession: usuwa sesje PSSessions w bieżącej sesji

Uwaga

Sesje rozłączone są obsługiwane tylko w systemie Windows. Polecenia Connect-PSSessioncmdlet , Disconnect-PSSessioni Receive-PSSession są dostępne tylko w systemie Windows. Aby uzyskać więcej informacji na temat rozłączonych sesji, zobacz about_Remote_Disconnected_Session

Aby uzyskać więcej informacji

Aby uzyskać więcej informacji na temat programu PSSessions, zobacz about_PSSession_Details.

Zobacz też