Udostępnij za pośrednictwem


Informacje o usłudze PSSessions

Krótki opis

Opisuje sesje Windows PowerShell (PSSessions) i wyjaśnia, jak nawiązać trwałe połączenie z komputerem zdalnym.

Długi opis

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

Podczas tworzenia programu PSSession 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 tej samej usłudze PSSession mogą udostępniać dane, takie jak wartości zmiennych, aliasów i funkcji.

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

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

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

Uwaga: usługi PSSessions używają infrastruktury komunikacji sieciowej Windows PowerShell komunikacji sieciowej. Aby korzystać z usług 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ć Windows PowerShell z opcją "Uruchom jako administrator".

Co to jest sesja?

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

Za każdym razem, gdy rozpoczynasz Windows 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, nazywane "sesjami Windows PowerShell" lub "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 jest uruchamiana automatycznie, można kontrolować utworzone przez Ciebie pliki PSSessions. Możesz pobierać, tworzyć, konfigurować i usuwać je, rozłączać i ponownie łączyć się z nimi oraz uruchamiać wiele poleceń w tym samym programie PSSession. Usługa PSSession pozostaje dostępna do momentu jego usunięcia lub upłynął limit czasu.

Zazwyczaj można utworzyć program PSSession, aby uruchomić serię powiązanych poleceń na komputerze zdalnym. Podczas tworzenia programu PSSession na komputerze zdalnym Windows PowerShell ustanawia trwałe połączenie z komputerem zdalnym w celu obsługi sesji.

Jeśli używasz parametru Invoke-CommandComputerName polecenia lub Enter-PSSession polecenia cmdlet, aby uruchomić zdalne polecenie lub uruchomić sesję interaktywną, Windows PowerShell tworzy sesję tymczasową na komputerze zdalnym i zamyka sesję, gdy tylko polecenie zostanie ukończone lub zaraz 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 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ć programu PSSession?

Użyj programu PSSession, gdy 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 serwera PSSession. Użyj parametru ComputerName poleceń cmdlet z obsługą zdalnej, aby uruchomić jedno polecenie lub serię niepowiązanych poleceń na jednym lub wielu komputerach.

Gdy używasz parametru ComputerName lub Invoke-CommandEnter-PSSession, Windows PowerShell ustanawia tymczasowe połączenie z komputerem zdalnym, a następnie zamyka połączenie zaraz po zakończeniu 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.

Jak Twórca psSession

Aby utworzyć usługę PSSession, użyj New-PSSession polecenia cmdlet . Aby utworzyć serwer 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 program tworzy plik New-PSSession PSSession i zwraca obiekt reprezentujący usługę PSSession. Obiekt można zapisać w zmiennej podczas tworzenia programu PSSession lub użyć Get-PSSession polecenia , aby uzyskać usługę PSSession w późniejszym czasie.

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

$ps = New-PSSession -ComputerName Server01

Jak Twórca psSessions na wielu komputerach

Aby utworzyć pliki PSSessions na wielu komputerach, użyj parametru New-PSSessionComputerName polecenia cmdlet. 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 jeden serwer PSSession na każdym z komputerów zdalnych.

How to Get PSSessions

Aby uzyskać pliki PSSessions 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 pliki PSSessions utworzone w bieżącej sesji.

Get-PSSession

Domyślny ekran 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ć 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 je w zmiennej $ps 01.

$ps01 = Get-PSSession -Id 1

Począwszy od Windows PowerShell 3.0, na komputerze zdalnym są przechowywane pliki PSSessions. 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 PSSessions 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 pobiera tylko pliki PSSession utworzone w bieżącej sesji. Nie jest pobierana usługa PSSessions, które zostały utworzone w innych sesjach lub na innych komputerach, nawet jeśli sesje są połączone i uruchamiają polecenia na komputerze lokalnym.

Jak uruchamiać polecenia w programie PSSession

Aby uruchomić polecenie w co najmniej jednym programie 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żdej z trzech psSessions zapisanych w zmiennej $ps 123, wpisz:

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

Jak usunąć usługi PSSessions

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

Remove-PSSession -Session $ps

lub

Remove-PSSession -Id 1

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

Remove-PSSession -ComputerName Server01 -Id 1

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

Można 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 usługę PSSession z bieżącą sesją
  • Disconnect-PSSession: Rozłącza usługę PSSession z bieżącej sesji
  • Enter-PSSession: rozpoczyna sesję interaktywną
  • Exit-PSSession: kończy sesję interaktywną
  • Get-PSSession: pobiera pliki PSSessions w bieżącej sesji
  • New-PSSession: Tworzy nową usługę PSSession na komputerze lokalnym lub zdalnym
  • Receive-PSSession: pobiera wyniki poleceń uruchomionych w rozłączonej sesji
  • Remove-PSSession: usuwa pliki PSSession w bieżącej sesji

Aby uzyskać więcej informacji

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

Zobacz też

about_Remote

about_Remote_Disconnected_Sessions

about_Remote_Requirements

Connect-PSSession

Disconnect-PSSession

Enter-PSSession

Exit-PSSession

Get-PSSession

Wywołaj polecenie

New-PSSession

Remove-PSSession