Enter-PSSession
Rozpoczyna interakcyjną sesję z komputerem zdalnym.
Składnia
Enter-PSSession
[-ComputerName] <String>
[-EnableNetworkAccess]
[-Credential <PSCredential>]
[-Port <Int32>]
[-UseSSL]
[-ConfigurationName <String>]
[-ApplicationName <String>]
[-SessionOption <PSSessionOption>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[<CommonParameters>]
Enter-PSSession
[[-Session] <PSSession>]
[<CommonParameters>]
Enter-PSSession
[[-ConnectionUri] <Uri>]
[-EnableNetworkAccess]
[-Credential <PSCredential>]
[-ConfigurationName <String>]
[-AllowRedirection]
[-SessionOption <PSSessionOption>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[<CommonParameters>]
Enter-PSSession
[-InstanceId <Guid>]
[<CommonParameters>]
Enter-PSSession
[[-Id] <Int32>]
[<CommonParameters>]
Enter-PSSession
[-Name <String>]
[<CommonParameters>]
Enter-PSSession
[-VMGuid] <Guid>
-Credential <PSCredential>
[<CommonParameters>]
Enter-PSSession
[-VMName] <String>
-Credential <PSCredential>
[<CommonParameters>]
Opis
Polecenie cmdlet Enter-PSSession rozpoczyna sesję interaktywną z jednym komputerem zdalnym. Podczas sesji polecenia, które są uruchamiane na komputerze zdalnym, tak jak w przypadku wpisywania bezpośrednio na komputerze zdalnym. Jednocześnie można mieć tylko jedną sesję interaktywną.
Zazwyczaj do określenia nazwy komputera zdalnego należy użyć parametru ComputerName. Można jednak również użyć sesji utworzonej przy użyciu polecenia cmdlet New-PSSession dla sesji interakcyjnej. Nie można jednak użyć polecenia cmdlet Disconnect-PSSession, Connect-PSSession lub Receive-PSSession, aby odłączyć się lub ponownie nawiązać połączenie z sesją interaktywną.
Aby zakończyć sesję interaktywną i odłączyć się od komputera zdalnego, użyj polecenia cmdlet Exit-PSSession lub wpisz exit
.
Przykłady
Przykład 1. Uruchamianie sesji interakcyjnej
PS C:\> Enter-PSSession
[localhost]: PS C:\>
To polecenie uruchamia interaktywną sesję na komputerze lokalnym. Wiersz polecenia zmienia się, aby wskazać, że teraz uruchamiasz polecenia w innej sesji.
Polecenia wprowadzone w nowej sesji są uruchamiane, a wyniki są zwracane do sesji domyślnej jako tekst.
Przykład 2: Praca z sesją interaktywną
The first command uses the **Enter-PSSession** cmdlet to start an interactive session with Server01, a remote computer. When the session starts, the command prompt changes to include the computer name.
PS C:\> Enter-PSSession -ComputerName Server01
[Server01]: PS C:\>
The second command gets the Windows PowerShell process and redirects the output to the Process.txt file. The command is submitted to the remote computer, and the file is saved on the remote computer.
[Server01]: PS C:\> Get-Process PowerShell > C:\ps-test\Process.txt
The third command uses the **Exit** keyword to end the interactive session and close the connection.
[Server01]: PS C:\> exit
PS C:\>
The fourth command confirms that the Process.txt file is on the remote computer. A **Get-ChildItem** ("dir") command on the local computer cannot find the file.
PS C:\> dir C:\ps-test\process.txt
Get-ChildItem : Cannot find path 'C:\ps-test\process.txt' because it does not exist.
At line:1 char:4
+ dir <<<< c:\ps-test\process.txt
To polecenie pokazuje, jak pracować w sesji interaktywnej z komputerem zdalnym.
Przykład 3. Użycie parametru sesji
PS C:\> $s = New-PSSession -ComputerName Server01
PS C:\> Enter-PSSession -Session $s
[Server01]: PS C:\>
Te polecenia używają parametru sesji
Przykład 4: Uruchamianie sesji interakcyjnej i określanie parametrów Port i Poświadczenia
PS C:\> Enter-PSSession -ComputerName Server01 -Port 90 -Credential Domain01\User01
[Server01]: PS C:\>
To polecenie uruchamia interaktywną sesję z komputerem Server01.
Używa parametru
Przykład 5. Zatrzymywanie sesji interakcyjnej
PS C:\> Enter-PSSession -ComputerName Server01
[Server01]: PS C:\> Exit-PSSession
PS C:\>
W tym przykładzie pokazano, jak uruchomić i zatrzymać sesję interaktywną. Pierwsze polecenie używa polecenia cmdlet Enter-PSSession, aby rozpocząć interaktywną sesję z komputerem Server01.
Drugie polecenie używa polecenia cmdlet Exit-PSSession, aby zakończyć sesję. Możesz również użyć słowa kluczowego Exit, aby zakończyć sesję interaktywną. exit-PSSession i Exit mają taki sam efekt.
Parametry
-AllowRedirection
Umożliwia przekierowanie tego połączenia do alternatywnego identyfikatora URI (Uniform Resource Identifier). Domyślnie przekierowywanie nie jest dozwolone.
W przypadku używania parametru identyfikatora ConnectionURI
Możesz również ograniczyć liczbę przekierowań połączenia, zmieniając wartość opcji MaximumConnectionRedirectionCount sesji. Użyj parametru MaximumRedirection polecenia cmdlet New-PSSessionOption lub ustaw właściwość MaximumConnectionRedirectionCount zmiennej preferencji $PSSessionOption. Wartość domyślna to 5.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-ApplicationName
Określa segment nazwy aplikacji identyfikatora URI połączenia. Użyj tego parametru, aby określić nazwę aplikacji, jeśli nie używasz parametru ConnectionURI w poleceniu .
Wartość domyślna to wartość zmiennej preferencji $PSSessionApplicationName na komputerze lokalnym. Jeśli ta zmienna preferencji nie jest zdefiniowana, wartość domyślna to WSMAN. Ta wartość jest odpowiednia dla większości zastosowań. Aby uzyskać więcej informacji, zobacz about_Preference_Variables.
Usługa WinRM używa nazwy aplikacji do wybierania odbiornika do obsługi żądania połączenia. Wartość tego parametru powinna odpowiadać wartości właściwości URLPrefix odbiornika na komputerze zdalnym.
Typ: | String |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-Authentication
Określa mechanizm używany do uwierzytelniania poświadczeń użytkownika. Dopuszczalne wartości tego parametru to:
- Domyślny
- Podstawowy
- Credssp
- Trawić
- Kerberos
- Negocjować
- NegotiateWithImplicitCredential
Wartość domyślna to Wartość domyślna.
Uwierzytelnianie CredSSP jest dostępne tylko w systemach Windows Vista, Windows Server 2008 i nowszych wersjach systemu operacyjnego Windows.
Aby uzyskać więcej informacji na temat wartości tego parametru, zobacz AuthenticationMechanism Enumeration w bibliotece MSDN.
Uwaga: uwierzytelnianie dostawcy obsługi zabezpieczeń poświadczeń (CredSSP), w którym poświadczenia użytkownika są przekazywane do komputera zdalnego do uwierzytelnienia, jest przeznaczone dla poleceń wymagających uwierzytelniania w więcej niż jednym zasobie, takich jak uzyskiwanie dostępu do zdalnego udziału sieciowego. Ten mechanizm zwiększa ryzyko bezpieczeństwa operacji zdalnej. W przypadku naruszenia zabezpieczeń komputera zdalnego poświadczenia przekazywane do niego mogą służyć do kontrolowania sesji sieciowej.
Typ: | AuthenticationMechanism |
Dopuszczalne wartości: | Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-CertificateThumbprint
Określa cyfrowy certyfikat klucza publicznego (X509) konta użytkownika, które ma uprawnienia do wykonania tej akcji. Wprowadź odcisk palca certyfikatu.
Certyfikaty są używane w uwierzytelnianiu opartym na certyfikatach klienta. Mogą być mapowane tylko na konta użytkowników lokalnych; nie działają z kontami domeny.
Aby uzyskać certyfikat, użyj polecenia Get-Item lub Get-ChildItem w dysku Windows PowerShell Cert: .
Typ: | String |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-ComputerName
Określa nazwę komputera. To polecenie cmdlet uruchamia interaktywną sesję z określonym komputerem zdalnym. Wprowadź tylko jedną nazwę komputera. Wartość domyślna to komputer lokalny.
Wpisz nazwę NetBIOS, adres IP lub w pełni kwalifikowaną nazwę domeny komputera. Możesz również przekazać nazwę komputera do Enter-PSSession.
Aby użyć adresu IP w wartości parametru ComputerName, polecenie musi zawierać parametr Credential. Ponadto należy skonfigurować komputer pod kątem transportu HTTPS lub adres IP komputera zdalnego musi znajdować się na liście Zaufanych Hostów usługi WinRM na komputerze lokalnym. Aby uzyskać instrukcje dotyczące dodawania nazwy komputera do listy TrustedHosts, zobacz "How to Add a Computer to the Trusted Host List" (Jak dodać komputer do listy zaufanych hostów) w about_Remote_Troubleshooting.
Uwaga: w systemie Windows Vista i nowszych wersjach systemu operacyjnego Windows, aby uwzględnić komputer lokalny w wartości parametru ComputerName, należy uruchomić program Windows PowerShell z opcją Uruchom jako administrator.
Typ: | String |
Aliasy: | Cn |
Position: | 0 |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-ConfigurationName
Określa konfigurację sesji, która jest używana dla sesji interakcyjnej.
Wprowadź nazwę konfiguracji lub w pełni kwalifikowany identyfikator URI zasobu dla konfiguracji sesji.
Jeśli określisz tylko nazwę konfiguracji, następujący identyfikator URI schematu jest poprzedzany: https://schemas.microsoft.com/powershell
.
Konfiguracja sesji dla sesji znajduje się na komputerze zdalnym. Jeśli określona konfiguracja sesji nie istnieje na komputerze zdalnym, polecenie zakończy się niepowodzeniem.
Wartość domyślna to wartość zmiennej preferencji $PSSessionConfigurationName na komputerze lokalnym. Jeśli ta zmienna preferencji nie jest ustawiona, wartość domyślna to Microsoft.PowerShell. Aby uzyskać więcej informacji, zobacz about_Preference_Variables.
Typ: | String |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-ConnectionUri
Określa identyfikator URI, który definiuje punkt końcowy połączenia dla sesji. Identyfikator URI musi być w pełni kwalifikowany. Format tego ciągu jest następujący:
<Transport>://<ComputerName>:<Port>/<ApplicationName>
Wartość domyślna jest następująca:
https://localhost:5985/WSMAN
Jeśli nie określiszidentyfikatora ConnectionURI
Prawidłowe wartości segmentu Transport identyfikatora URI to HTTP i HTTPS. Jeśli określisz identyfikator URI połączenia z segmentem Transport, ale nie określisz portu, sesja zostanie utworzona przy użyciu portów standardów: 80 dla protokołu HTTP i 443 dla protokołu HTTPS. Aby użyć domyślnych portów komunikacji zdalnej programu Windows PowerShell, określ port 5985 dla protokołu HTTP lub 5986 dla protokołu HTTPS.
Jeśli komputer docelowy przekierowuje połączenie do innego identyfikatora URI, program Windows PowerShell uniemożliwia przekierowanie, chyba że użyjesz parametru AllowRedirection w poleceniu .
Typ: | Uri |
Aliasy: | URI, CU |
Position: | 1 |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-Credential
Określa konto użytkownika, które ma uprawnienia do wykonania tej akcji. Wartość domyślna to bieżący użytkownik.
Wpisz nazwę użytkownika, taką jak User01
, Domain01\User01
lub User@Domain.com
, lub wprowadź obiekt PSCredential, taki jak jeden zwrócony przez polecenie cmdlet Get-Credential.
Po wpiseniu nazwy użytkownika to polecenie cmdlet wyświetli monit o podanie hasła.
Typ: | PSCredential |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-EnableNetworkAccess
Wskazuje, że to polecenie cmdlet dodaje interakcyjny token zabezpieczający do sesji sprzężenia zwrotnego. Token interaktywny umożliwia uruchamianie poleceń w sesji sprzężenia zwrotnego, które pobierają dane z innych komputerów. Można na przykład uruchomić polecenie w sesji, która kopiuje pliki XML z komputera zdalnego do komputera lokalnego.
Sesja sprzężenia zwrotnego to pssession, który pochodzi i kończy się na tym samym komputerze. Aby utworzyć sesję sprzężenia zwrotnego, pomiń parametr ComputerName lub ustaw jego wartość na . (dot), localhost lub nazwa komputera lokalnego.
Domyślnie sesje sprzężenia zwrotnego są tworzone przy użyciu tokenu sieciowego, co może nie zapewniać wystarczających uprawnień do uwierzytelniania na komputerach zdalnych.
Parametr EnableNetworkAccess jest skuteczny tylko w sesjach sprzężenia zwrotnego. Jeśli używasz EnableNetworkAccess podczas tworzenia sesji na komputerze zdalnym, polecenie zakończy się pomyślnie, ale parametr zostanie zignorowany.
Można również zezwolić na dostęp zdalny w sesji sprzężenia zwrotnego przy użyciu CredSSP wartości parametru Authentication, który deleguje poświadczenia sesji do innych komputerów.
Ten parametr został wprowadzony w programie Windows PowerShell 3.0.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Id
Określa identyfikator istniejącej sesji. enter-PSSession używa określonej sesji dla sesji interakcyjnej.
Aby znaleźć identyfikator sesji, użyj polecenia cmdlet Get-PSSession.
Typ: | Int32 |
Position: | 0 |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-InstanceId
Określa identyfikator wystąpienia istniejącej sesji. enter-PSSession używa określonej sesji dla sesji interakcyjnej.
Identyfikator wystąpienia jest identyfikatorem GUID. Aby znaleźć identyfikator wystąpienia sesji, użyj polecenia cmdlet Get-PSSession. Można również użyć parametrów Session, Namelub ID parametrów. Możesz też użyć parametru ComputerName, aby uruchomić sesję tymczasową.
Typ: | Guid |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-Name
Określa przyjazną nazwę istniejącej sesji. enter-PSSession używa określonej sesji dla sesji interakcyjnej.
Jeśli określona nazwa pasuje do więcej niż jednej sesji, polecenie zakończy się niepowodzeniem. Do określenia istniejącej sesji można również użyć parametrów Session, InstanceIDlub identyfikatora. Możesz też użyć parametru ComputerName, aby uruchomić sesję tymczasową.
Aby ustanowić przyjazną nazwę sesji, użyj parametru Name polecenia cmdlet New-PSSession.
Typ: | String |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-Port
Określa port sieciowy na komputerze zdalnym, który jest używany dla tego polecenia. Aby nawiązać połączenie z komputerem zdalnym, komputer zdalny musi nasłuchiwać na porcie używanym przez połączenie. Domyślne porty to 5985, czyli port usługi WinRM dla protokołu HTTP i 5986, czyli port usługi WinRM dla protokołu HTTPS.
Przed użyciem portu alternatywnego należy skonfigurować odbiornik WinRM na komputerze zdalnym do nasłuchiwania na tym porcie. Aby skonfigurować odbiornik, użyj następujących poleceń:
1. winrm delete winrm/config/listener?Address=*+Transport=HTTP
2. winrm create winrm/config/listener?Address=*+Transport=HTTP @{Port="\<port-number\>"}
Nie używaj parametru portów
Typ: | Int32 |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Session
Określa sesję programu Windows PowerShell (pssession) do użycia na potrzeby sesji interaktywnej.
Ten parametr przyjmuje obiekt sesji.
Można również użyć parametr
Wprowadź zmienną zawierającą obiekt sesji lub polecenie, które tworzy lub pobiera obiekt sesji, na przykład New-PSSession lub Get-PSSession polecenia. Możesz również przekazać obiekt sesji do Enter-PSSession. Za pomocą tego parametru można przesłać tylko jeden PSSession. Jeśli wprowadzisz zmienną zawierającą więcej niż jedną PSSession, polecenie zakończy się niepowodzeniem.
Jeśli używasz Exit-PSSession lub exit słowo kluczowe, sesja interaktywna kończy się, ale PSSession pozostaje otwarty i dostępny do użycia.
Typ: | PSSession |
Position: | 0 |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-SessionOption
Ustawia opcje zaawansowane dla sesji. Wprowadź obiekt SessionOption, taki jak obiekt utworzony przy użyciu polecenia cmdlet New-PSSessionOption lub tabeli skrótów, w której klucze są nazwami opcji sesji, a wartości są wartościami opcji sesji.
Wartości domyślne opcji są określane przez wartość zmiennej preferencji $PSSessionOption, jeśli została ustawiona. W przeciwnym razie wartości domyślne są ustanawiane przez opcje ustawione w konfiguracji sesji.
Wartości opcji sesji mają pierwszeństwo przed wartościami domyślnymi sesji ustawionymi w zmiennej preferencji $PSSessionOption i w konfiguracji sesji. Nie mają jednak pierwszeństwa przed maksymalnymi wartościami, limitami przydziału lub limitami ustawionymi w konfiguracji sesji.
Aby uzyskać opis opcji sesji, w tym wartości domyślne, zobacz New-PSSessionOption. Aby uzyskać informacje o zmiennej preferencji $PSSessionOption, zobacz about_Preference_Variables. Aby uzyskać więcej informacji na temat konfiguracji sesji, zobacz about_Session_Configurations.
Typ: | PSSessionOption |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-UseSSL
Wskazuje, że to polecenie cmdlet używa protokołu Secure Sockets Layer (SSL) do nawiązania połączenia z komputerem zdalnym. Domyślnie protokół SSL nie jest używany.
WS-Management szyfruje całą zawartość programu Windows PowerShell przesyłaną przez sieć. Parametr UseSSL to dodatkowa ochrona, która wysyła dane za pośrednictwem połączenia HTTPS zamiast połączenia HTTP.
Jeśli używasz tego parametru, ale protokół SSL nie jest dostępny na porcie używanym dla polecenia, polecenie zakończy się niepowodzeniem.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-VMGuid
Określa identyfikator maszyny wirtualnej.
Typ: | Guid |
Position: | 0 |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-VMName
Określa nazwę maszyny wirtualnej.
Typ: | String |
Position: | 0 |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
Dane wejściowe
System.String, System.Management.Automation.Runspaces.PSSession
Możesz potokować nazwę komputera jako ciąg lub obiekt sesji do tego polecenia cmdlet.
Dane wyjściowe
None
Polecenie cmdlet nie zwraca żadnych danych wyjściowych.
Uwagi
- Aby nawiązać połączenie z komputerem zdalnym, musisz być członkiem grupy Administratorzy na komputerze zdalnym.
- W systemie Windows Vista i nowszych wersjach systemu operacyjnego Windows, aby uruchomić interaktywną sesję na komputerze lokalnym, należy uruchomić program Windows PowerShell z opcją Uruchom jako administrator.
- W przypadku korzystania z Enter-PSSessionprofil użytkownika na komputerze zdalnym jest używany na potrzeby sesji interakcyjnej. Polecenia w profilu użytkownika zdalnego, w tym polecenia umożliwiające dodanie przystawek programu Windows PowerShell i zmianę wiersza polecenia, uruchom polecenie przed wyświetleniem wiersza polecenia.
- Enter-PSSession używa ustawienia kultury interfejsu użytkownika na komputerze lokalnym na potrzeby sesji interakcyjnej. Aby znaleźć lokalną kulturę interfejsu użytkownika, użyj zmiennej automatycznej $UICulture.
- enter-PSSession wymaga poleceń cmdlet Get-Command, Out-Default i Exit-PSSession. Jeśli te polecenia cmdlet nie są uwzględnione w konfiguracji sesji na komputerze zdalnym, polecenie Enter-PSSession zakończy się niepowodzeniem.
- W przeciwieństwie do Invoke-Command, który analizuje i interpretuje polecenia przed wysłaniem ich do komputera zdalnego, Enter-PSSession wysyła polecenia bezpośrednio do komputera zdalnego bez interpretacji.
- Jeśli sesja, którą chcesz wprowadzić, jest zajęta przetwarzaniem polecenia, może wystąpić opóźnienie, zanim program Windows PowerShell odpowie polecenie Enter-PSSession. Po udostępnieniu sesji zostanie nawiązane połączenie. Aby anulować polecenie Enter-PSSession, naciśnij
CTRL+C
.