Udostępnij przez


Informacje o programach PSSessions

Krótki opis

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

Długi opis

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

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

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

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

W tym temacie opisano sposób tworzenia, używania, pobierania i usuwania usług PSSessions. Aby uzyskać bardziej zaawansowane informacje, zobacz about_PSSession_Details.

Uwaga: Narzędzie PSSessions korzysta z infrastruktury komunikacji zdalnej programu Windows PowerShell. Aby można było korzystać z programu PSSessions, należy skonfigurować komputery lokalne i zdalne na potrzeby 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 Windows PowerShell z opcją "Uruchom jako administrator".

Co to jest sesja?

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

Za każdym razem, gdy uruchamiany jest program Windows PowerShell, tworzona jest sesja, w której można uruchamiać polecenia. Możesz również dodawać elementy do sesji, takie jak moduły i przystawki, oraz 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, nazywane " sesjami programu Windows PowerShell lub "PSSessions" (Sesje programu Windows PowerShell) lub "PSSessions" na komputerze lokalnym lub 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żesz pobrać, utworzyć, skonfigurować i usunąć je, rozłączyć i ponownie nawiązać z nimi połączenie, a następnie uruchomić wiele poleceń w ramach tej samej usługi PSSession. Sesja PSSession pozostaje dostępna dopóki jej nie usuniesz lub nie wygaśnie.

Zazwyczaj program PSSession służy do uruchamiania serii powiązanych poleceń na komputerze zdalnym. Podczas tworzenia programu PSSession na komputerze zdalnym program Windows PowerShell ustanawia trwałe połączenie z komputerem zdalnym w celu obsługi sesji.

Jeśli parametr Invoke-CommandComputerName polecenia cmdlet or Enter-PSSession zostanie użyty do uruchomienia polecenia zdalnego lub uruchomienia sesji interaktywnej, program Windows PowerShell utworzy sesję tymczasową na komputerze zdalnym i zamknie ją zaraz po zakończeniu polecenia lub po zakończeniu sesji interaktywnej. Nie można kontrolować tych sesji tymczasowych i nie można ich używać do więcej niż jednego polecenia lub jednej sesji interaktywnej.

W programie Windows 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ć PSSession?

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

Polecenia zdalne można uruchamiać bez tworzenia sesji PSSession. Użyj parametru ComputerName w cmdletach obsługujących zdalne wykonywanie, aby uruchomić pojedyncze polecenie lub serię niepowiązanych poleceń na jednym lub wielu komputerach.

W przypadku użycia parametru ComputerName parametru Invoke-Command or Enter-PSSessionprogram Windows PowerShell ustanawia tymczasowe połączenie z komputerem zdalnym, a następnie zamyka połączenie zaraz 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 zdalnych do zbierania danych. Żadne połączenie nie jest trwałe tak jak PSSession.

Jak utworzyć usługę PSSession

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

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

New-PSSession -ComputerName Server01

Po przesłaniu polecenia New-PSSession tworzy psSession i zwraca obiekt reprezentujący psSession. Obiekt można zapisać w zmiennej podczas tworzenia programu PSSession lub użyć polecenia Get-PSSession, aby uzyskać psSession w późniejszym czasie.

Na przykład, następujące polecenie tworzy nową sesję PSSession na komputerze Server01 i zapisuje obiekt wynikowy w zmiennej $ps.

$ps = New-PSSession -ComputerName Server01

Jak utworzyć sesje PS na wielu komputerach

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

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

New-PSSession -ComputerName Server01, Server02, Server03

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

Jak uzyskać sesje PS

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

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

Get-PSSession

Domyślny widok PSSessions pokazuje ich identyfikator i domyślną nazwę wyświetlaną. Podczas tworzenia sesji można przypisać alternatywną nazwę wyświetlaną.

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ć 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łać się do PSSession według jego identyfikatora, nazwy lub identyfikatora wystąpienia (identyfikator GUID). Następujące polecenie pobiera PSSession przy użyciu jego identyfikatora i zapisuje ją w zmiennej $ps01.

$ps01 = Get-PSSession -Id 1

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

Get-PSSession -ComputerName Server01

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

Jak uruchamiać polecenia w programie PSSession

Aby uruchomić polecenie w co najmniej jednej PSSession, użyj cmdletu Invoke-Command. Użyj parametru Sesja, aby określić psSessions i parametr ScriptBlock, aby określić polecenie.

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

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

Jak usunąć sesje PS

Po zakończeniu pracy z programem PSSession użyj polecenia cmdlet Remove-PSSession, aby usunąć program PSSession i zwolnić używane zasoby.

Remove-PSSession -Session $ps

lub

Remove-PSSession -Id 1

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

Remove-PSSession -ComputerName Server01 -Id 1

Jeśli nie usuniesz programu PSSession, narzędzie PSSession pozostanie dostępne do użycia, dopóki nie upłynął limit czasu.

Możesz również użyć parametru IdleTimeout polecenia cmdlet New-PSSessionOption, aby ustawić czas wygaśnięcia bezczynnej sesji PSSession. Aby uzyskać więcej informacji, zobacz New-PSSessionOption.

Polecenia cmdlet PSSession

Aby uzyskać listę cmdletów 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 PSSession 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 PSSessions w bieżącej sesji

Aby uzyskać więcej informacji

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

Zobacz też

o_zdalny

o_sesjach_zdalnych_rozłączonych

o_Wymaganiach_Zdalnych

Connect-PSSession

Odłącz-PSSession

Enter-PSSession

Exit-PSSession

Get-PSSession

Invoke-Command (Wywołanie-polecenia)

NowaSesja-PS

Remove-PSSession