Enter-PSSession
Rozpoczyna interakcyjną sesję z komputerem zdalnym.
Składnia
ComputerName (Domyślna)
Enter-PSSession
[-ComputerName] <String>
[[-Credential] <PSCredential>]
[-EnableNetworkAccess]
[-ConfigurationName <String>]
[-Port <Int32>]
[-UseSSL]
[-ApplicationName <String>]
[-SessionOption <PSSessionOption>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[<CommonParameters>]
SSHHost
Enter-PSSession
[-HostName] <String>
[-Options <Hashtable>]
[-Port <Int32>]
[-UserName <String>]
[-KeyFilePath <String>]
[-Subsystem <String>]
[-ConnectingTimeout <Int32>]
[-SSHTransport]
[<CommonParameters>]
Session
Enter-PSSession
[[-Session] <PSSession>]
[<CommonParameters>]
Uri
Enter-PSSession
[[-ConnectionUri] <Uri>]
[[-Credential] <PSCredential>]
[-EnableNetworkAccess]
[-ConfigurationName <String>]
[-AllowRedirection]
[-SessionOption <PSSessionOption>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[<CommonParameters>]
InstanceId
Enter-PSSession
[-InstanceId <Guid>]
[<CommonParameters>]
Id
Enter-PSSession
[[-Id] <Int32>]
[<CommonParameters>]
Name
Enter-PSSession
[-Name <String>]
[<CommonParameters>]
VMId
Enter-PSSession
[-VMId] <Guid>
[-Credential] <PSCredential>
[-ConfigurationName <String>]
[<CommonParameters>]
VMName
Enter-PSSession
[-VMName] <String>
[-Credential] <PSCredential>
[-ConfigurationName <String>]
[<CommonParameters>]
ContainerId
Enter-PSSession
[-ContainerId] <String>
[-ConfigurationName <String>]
[-RunAsAdministrator]
[<CommonParameters>]
Opis
Polecenie Enter-PSSession cmdlet uruchamia 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 New-PSSession polecenia cmdlet dla sesji interakcyjnej. Nie można jednak użyć Disconnect-PSSessionpoleceń cmdlet , Connect-PSSessionlub Receive-PSSession , aby odłączyć się lub ponownie nawiązać połączenie z sesją interaktywną.
Począwszy od programu PowerShell 6.0, można użyć protokołu Secure Shell (SSH) do nawiązania połączenia z komputerem zdalnym. Musisz mieć protokół SSH na komputerze lokalnym, a komputer zdalny musi być skonfigurowany przy użyciu punktu końcowego protokołu SSH programu PowerShell. Zaletą sesji zdalnej programu PowerShell opartej na protokole SSH jest to, że działa na wielu platformach (Windows, Linux, macOS). W przypadku komunikacji zdalnej opartej na protokole SSH należy użyć parametru HostName ustawionego w celu określenia komputera zdalnego i odpowiednich informacji o połączeniu. Aby uzyskać więcej informacji na temat konfigurowania komunikacji zdalnej protokołu SSH programu PowerShell, zobacz Komunikacja zdalna programu PowerShell za pośrednictwem protokołu SSH.
Aby zakończyć sesję interaktywną i odłączyć się od komputera zdalnego, użyj Exit-PSSession polecenia cmdlet lub wpisz exit.
Ważne
Enter-PSSession program został zaprojektowany tak, aby zastąpić bieżącą sesję interaktywną nową interaktywną sesją zdalną. Nie należy wywoływać go z poziomu funkcji lub skryptu ani przekazując go jako polecenie do pwsh pliku wykonywalnego.
Przykłady
Przykład 1. Uruchamianie sesji interakcyjnej
PS> Enter-PSSession
[localhost]: PS>
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ą
Pierwsze polecenie używa Enter-PSSession polecenia cmdlet, aby uruchomić interaktywną sesję z serwerem Server01, komputerem zdalnym. Po uruchomieniu sesji wiersz polecenia zmieni się, aby uwzględnić nazwę komputera.
Drugie polecenie pobiera proces programu PowerShell i przekierowuje dane wyjściowe do Process.txt pliku.
Polecenie jest przesyłane do komputera zdalnego, a plik jest zapisywany na komputerze zdalnym.
Trzecie polecenie używa słowa kluczowego exit , aby zakończyć sesję interaktywną i zamknąć połączenie.
Czwarte polecenie potwierdza, że plik Process.txt znajduje się na komputerze zdalnym. Polecenie Get-ChildItem ("dir") na komputerze lokalnym nie może odnaleźć pliku.
PS C:\> Enter-PSSession -ComputerName Server01
[Server01]: PS C:\>
[Server01]: PS C:\> Get-Process powershell > C:\ps-test\Process.txt
[Server01]: PS C:\> exit
PS C:\>
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> $s = New-PSSession -ComputerName Server01
PS> Enter-PSSession -Session $s
[Server01]: PS>
Te polecenia używają parametru Sesja , Enter-PSSession aby uruchomić sesję interaktywną w istniejącej sesji programu PowerShell (PSSession).
Przykład 4: Uruchamianie sesji interakcyjnej i określanie parametrów Port i Poświadczenia
PS> Enter-PSSession -ComputerName Server01 -Port 90 -Credential Domain01\User01
[Server01]: PS>
To polecenie uruchamia interaktywną sesję z komputerem Server01. Używa parametru
Przykład 5. Zatrzymywanie sesji interakcyjnej
PS> Enter-PSSession -ComputerName Server01
[Server01]: PS> Exit-PSSession
PS>
W tym przykładzie pokazano, jak uruchomić i zatrzymać sesję interaktywną. Pierwsze polecenie używa Enter-PSSession polecenia cmdlet do rozpoczęcia sesji interakcyjnej z komputerem Server01.
Drugie polecenie używa Exit-PSSession polecenia cmdlet, 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.
Przykład 6. Uruchamianie sesji interakcyjnej przy użyciu protokołu SSH
PS> Enter-PSSession -HostName UserA@LinuxServer01
W tym przykładzie pokazano, jak uruchomić sesję interaktywną przy użyciu protokołu Secure Shell (SSH). Jeśli protokół SSH jest skonfigurowany na komputerze zdalnym do używania haseł, zostanie wyświetlony monit o wprowadzenie hasła. W przeciwnym razie należy użyć uwierzytelniania użytkowników opartego na kluczach.
Przykład 7: Rozpoczynanie sesji interakcyjnej przy użyciu protokołu SSH z portem i kluczem uwierzytelniania użytkownika
PS> Enter-PSSession -HostName UserA@LinuxServer02:22 -KeyFilePath C:\sshkeys\userAKey_rsa
W tym przykładzie pokazano, jak rozpocząć sesję interaktywną przy użyciu protokołu SSH. Nazwa użytkownika i numer portu SSH są określane jako części wartości parametru HostName . Parametr KeyFilePath określa lokalizację klucza RSA używanego do uwierzytelniania użytkownika na komputerze zdalnym.
Przykład 8. Uruchamianie sesji interakcyjnej przy użyciu opcji SSH
$options = @{
Port=22
User = 'UserA'
Host = 'LinuxServer02'
}
Enter-PSSession -KeyFilePath C:\sshkeys\userAKey_rsa -Options $options
W tym przykładzie pokazano, jak rozpocząć sesję interaktywną przy użyciu protokołu SSH. Parametr Opcje przyjmuje tabelę skrótów wartości, które są przekazywane jako opcje do bazowego ssh polecenia ustanowione połączenie z systemem zdalnym.
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 ConnectionURI zdalny obiekt docelowy może poinformować o przekierowaniu do innego identyfikatora URI. Domyślnie program PowerShell nie przekierowuje połączeń, ale można użyć tego parametru, aby umożliwić mu przekierowanie połączenia.
Możesz również ograniczyć liczbę przekierowań połączenia, zmieniając wartość opcji sesji MaximumConnectionRedirectionCount. Użyj parametru MaximumRedirection polecenia cmdlet New-PSSessionOption lub ustaw właściwość MaximumConnectionRedirectionCount zmiennej preferencji $PSSessionOption. Wartość domyślna to 5.
Właściwości parametru
| Typ: | SwitchParameter |
| Domyślna wartość: | False |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
Uri
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-ApplicationName
Określa segment nazwy aplikacji w 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.
Właściwości parametru
| Typ: | String |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
ComputerName
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | True |
| Wartość z pozostałych argumentów: | False |
-Authentication
Określa mechanizm używany do uwierzytelniania poświadczeń użytkownika. Dopuszczalne wartości tego parametru to:
- Wartość domyślna
- Basic
- Credssp
- Podsumowanie
- Kerberos
- Negocjacja
- Nawiąż połączenie przy użyciu poświadczenia domyślnego
Wartość domyślna to Default.
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 Enum(Wyliczenie UwierzytelnianiaMechanism).
Ostrzeżenie
Uwierzytelnianie za pomocą dostawcy obsługi zabezpieczeń poświadczeń (CredSSP), w którym poświadczenia użytkownika są przekazywane do zdalnego komputera w celu uwierzytelnienia, jest przeznaczone do poleceń wymagających uwierzytelniania na więcej niż jednym zasobie, takich jak dostęp 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.
Właściwości parametru
| Typ: | AuthenticationMechanism |
| Domyślna wartość: | None |
| Dopuszczalne wartości: | Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
ComputerName
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
Uri
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | 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 Get-Item polecenia lub Get-ChildItem na dysku Certyfikat programu PowerShell.
Właściwości parametru
| Typ: | String |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
ComputerName
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
Uri
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | 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 / Notatka
W systemie operacyjnym Windows, aby uwzględnić komputer lokalny w wartości parametru ComputerName , należy uruchomić program PowerShell z opcją Uruchom jako administrator.
Właściwości parametru
| Typ: | String |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
| Aliasy: | Cn |
Zestawy parametrów
ComputerName
| Position: | 0 |
| Obowiązkowy: | True |
| Wartość z potoku: | True |
| Wartość z potoku według nazwy właściwości: | True |
| Wartość z pozostałych argumentów: | 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: http://schemas.microsoft.com/powershell.
W przypadku używania z protokołem SSH określa podsystem do użycia na obiekcie docelowym zgodnie z definicją w sshd_config. Wartością domyślną powershell protokołu SSH jest podsystem.
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.
Właściwości parametru
| Typ: | String |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
ComputerName
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | True |
| Wartość z pozostałych argumentów: | False |
Uri
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | True |
| Wartość z pozostałych argumentów: | False |
VMId
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | True |
| Wartość z pozostałych argumentów: | False |
VMName
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | True |
| Wartość z pozostałych argumentów: | False |
ContainerId
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | True |
| Wartość z pozostałych argumentów: | False |
-ConnectingTimeout
Określa czas w milisekundach dozwolony do ukończenia początkowego połączenia SSH. Jeśli połączenie nie zostanie ukończone w określonym czasie, zostanie zwrócony błąd.
Ten parametr został wprowadzony w programie PowerShell 7.2
Właściwości parametru
| Typ: | Int32 |
| Domyślna wartość: | unlimited |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
SSHHost
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | 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:
http://localhost:5985/WSMAN
Jeśli nie określisz identyfikatora ConnectionURI, możesz użyć parametrów UseSSL, ComputerName, Port i ApplicationName , aby określić wartości identyfikatora 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 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, PowerShell blokuje przekierowanie, chyba że użyjesz parametru AllowRedirection w poleceniu.
Właściwości parametru
| Typ: | Uri |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
| Aliasy: | URI, jednostka pojemności |
Zestawy parametrów
Uri
| Position: | 1 |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | True |
| Wartość z pozostałych argumentów: | False |
-ContainerId
Określa identyfikator kontenera.
Właściwości parametru
| Typ: | String |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
ContainerId
| Position: | 0 |
| Obowiązkowy: | True |
| Wartość z potoku: | True |
| Wartość z potoku według nazwy właściwości: | True |
| Wartość z pozostałych argumentów: | 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 lub Domain01\User01, lub wprowadź obiekt PSCredential wygenerowany przez polecenie cmdlet Get-Credential. Jeśli wpiszesz nazwę użytkownika, zostanie wyświetlony monit o wprowadzenie hasła.
Poświadczenia są przechowywane w obiekcie PSCredential, a hasło jest przechowywane jako SecureString.
Uwaga / Notatka
Aby uzyskać więcej informacji na temat ochrony danych SecureString, zobacz Jak bezpieczny jest protokół SecureString?.
Właściwości parametru
| Typ: | PSCredential |
| Domyślna wartość: | Current user |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
ComputerName
| Position: | 1 |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | True |
| Wartość z pozostałych argumentów: | False |
Uri
| Position: | 1 |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | True |
| Wartość z pozostałych argumentów: | False |
VMId
| Position: | 1 |
| Obowiązkowy: | True |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | True |
| Wartość z pozostałych argumentów: | False |
VMName
| Position: | 1 |
| Obowiązkowy: | True |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | True |
| Wartość z pozostałych argumentów: | 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.
Właściwości parametru
| Typ: | SwitchParameter |
| Domyślna wartość: | False |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
ComputerName
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
Uri
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-HostName
Określa nazwę komputera dla połączenia opartego na protokole Secure Shell (SSH). Jest to podobne do parametru ComputerName , z tą różnicą, że połączenie z komputerem zdalnym jest wykonywane przy użyciu protokołu SSH, a nie windows WinRM. Ten parametr obsługuje określanie nazwy użytkownika i/lub portu w ramach wartości parametru Nazwa hosta przy użyciu formularza user@hostname:port. Nazwa użytkownika i/lub port określony jako część nazwy hosta mają pierwszeństwo przed -UserName parametrami i -Port , jeśli określono. Umożliwia to przekazanie wielu nazw komputerów do tego parametru, w którym niektóre mają określone nazwy użytkowników i/lub porty, podczas gdy inne używają nazwy użytkownika i/lub portu z -UserName parametrów i -Port .
Ten parametr został wprowadzony w programie PowerShell 6.0.
Właściwości parametru
| Typ: | String |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
SSHHost
| Position: | 0 |
| Obowiązkowy: | True |
| Wartość z potoku: | True |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-Id
Określa identyfikator istniejącej sesji.
Enter-PSSession używa określonej sesji dla sesji interakcyjnej.
Aby znaleźć identyfikator sesji, użyj Get-PSSession polecenia cmdlet .
Właściwości parametru
| Typ: | Int32 |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
Id
| Position: | 0 |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | True |
| Wartość z pozostałych argumentów: | 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 Get-PSSession polecenia cmdlet . Możesz również użyć parametrów Sesja, Nazwa lub Identyfikator , aby określić istniejącą sesję. Możesz też użyć parametru ComputerName, aby uruchomić sesję tymczasową.
Właściwości parametru
| Typ: | Guid |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
InstanceId
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | True |
| Wartość z pozostałych argumentów: | False |
-KeyFilePath
Określa ścieżkę pliku klucza używaną przez protokół Secure Shell (SSH) do uwierzytelniania użytkownika na komputerze zdalnym.
Protokół SSH umożliwia uwierzytelnianie użytkowników za pośrednictwem kluczy prywatnych/publicznych jako alternatywy dla podstawowego uwierzytelniania haseł. Jeśli komputer zdalny jest skonfigurowany do uwierzytelniania klucza, ten parametr może służyć do podania klucza identyfikującego użytkownika.
Ten parametr został wprowadzony w programie PowerShell 6.0.
Właściwości parametru
| Typ: | String |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
| Aliasy: | IdentityFilePath |
Zestawy parametrów
SSHHost
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | 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. Możesz również użyć parametrów Sesja, InstanceId lub Id , aby określić istniejącą sesję. Możesz też użyć parametru ComputerName, aby uruchomić sesję tymczasową.
Aby ustanowić przyjazną nazwę sesji, użyj parametru New-PSSessionName polecenia cmdlet.
Właściwości parametru
| Typ: | String |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
Name
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | True |
| Wartość z pozostałych argumentów: | False |
-Options
Określa tabelę skrótu opcji SSH używanych podczas nawiązywania połączenia z zdalną sesją opartą na protokole SSH. Możliwe opcje to wszystkie wartości obsługiwane przez wersję polecenia SSH opartą na systemie Unix.
Wszystkie wartości jawnie przekazywane przez parametry mają pierwszeństwo przed wartościami przekazanymi w tabeli skrótów Opcje . Na przykład użycie parametru Port zastępuje dowolną Port parę klucz-wartość przekazaną w tabeli skrótowej Opcje.
Właściwości parametru
| Typ: | Hashtable |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
SSHHost
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-Port
Określa port sieciowy na komputerze zdalnym używanym dla tego polecenia.
W programie PowerShell 6.0 ten parametr został uwzględniony w zestawie parametrów HostName , który obsługuje połączenia protokołu Secure Shell (SSH).
WinRM (zestaw parametrów ComputerName)
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ń:
winrm delete winrm/config/listener?Address=*+Transport=HTTPwinrm create winrm/config/listener?Address=*+Transport=HTTP @{Port="\<port-number\>"}
Nie używaj parametru Port , chyba że musisz. Ustawienie portu w poleceniu ma zastosowanie do wszystkich komputerów lub sesji, na których jest uruchamiane polecenie. Ustawienie alternatywnego portu może uniemożliwić uruchomienie polecenia na wszystkich komputerach.
SSH (zestaw parametrów Nazwa hosta)
Aby nawiązać połączenie z komputerem zdalnym, należy skonfigurować komputer zdalny z usługą SSH (SSHD) i musi nasłuchiwać na porcie używanym przez połączenie. Domyślny port protokołu SSH to 22.
Właściwości parametru
| Typ: | Int32 |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
ComputerName
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
SSHHost
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-RunAsAdministrator
Wskazuje, że narzędzie PSSession działa jako administrator.
Właściwości parametru
| Typ: | SwitchParameter |
| Domyślna wartość: | False |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
ContainerId
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-Session
Określa sesję programu PowerShell (PSSession) do użycia na potrzeby sesji interakcyjnej. Ten parametr przyjmuje obiekt sesji. Można również użyć parametrów Name, InstanceId lub Id , aby określić pssession.
Wprowadź zmienną zawierającą obiekt sesji lub polecenie, które tworzy lub pobiera obiekt sesji, taki jak New-PSSession polecenie lub Get-PSSession . Możesz również przekazać obiekt sesji do Enter-PSSessionobiektu . 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.
Gdy używasz Exit-PSSession lub słowa kluczowego exit , sesja interaktywna kończy się, ale utworzona sesja PSSession pozostaje otwarta i dostępna do użycia.
Właściwości parametru
| Typ: | PSSession |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
Session
| Position: | 0 |
| Obowiązkowy: | False |
| Wartość z potoku: | True |
| Wartość z potoku według nazwy właściwości: | True |
| Wartość z pozostałych argumentów: | False |
-SessionOption
Ustawia opcje zaawansowane dla sesji. Wprowadź obiekt SessionOption, taki jak obiekt utworzony przy użyciu polecenia cmdlet New-PSSessionOption lub tabela skrótu, 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 ani 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.
Właściwości parametru
| Typ: | PSSessionOption |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
ComputerName
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
Uri
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-SSHTransport
Wskazuje, że połączenie zdalne zostało nawiązane przy użyciu protokołu Secure Shell (SSH).
Domyślnie program PowerShell używa usługi Windows WinRM do nawiązywania połączenia z komputerem zdalnym. Ten przełącznik zmusza program PowerShell do używania zestawu parametrów HostName do ustanawiania połączenia zdalnego opartego na protokole SSH.
Ten parametr został wprowadzony w programie PowerShell 6.0.
Właściwości parametru
| Typ: | SwitchParameter |
| Domyślna wartość: | False |
| Dopuszczalne wartości: | true |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
SSHHost
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-Subsystem
Określa podsystem SSH używany na potrzeby nowej usługi PSSession.
Określa podsystem do użycia w obiekcie docelowym zgodnie z definicją w sshd_config. Podsystem uruchamia określoną wersję programu PowerShell ze wstępnie zdefiniowanymi parametrami. Jeśli określony podsystem nie istnieje na komputerze zdalnym, polecenie zakończy się niepowodzeniem.
Jeśli ten parametr nie jest używany, wartością domyślną powershell jest podsystem .
Właściwości parametru
| Typ: | String |
| Domyślna wartość: | Powershell |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
SSHHost
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | True |
| Wartość z pozostałych argumentów: | False |
-UserName
Określa nazwę użytkownika konta użytego do utworzenia sesji na komputerze zdalnym. Metoda uwierzytelniania użytkownika zależy od konfiguracji protokołu Secure Shell (SSH) na komputerze zdalnym.
Jeśli protokół SSH jest skonfigurowany do uwierzytelniania podstawowego hasła, zostanie wyświetlony monit o podanie hasła użytkownika.
Jeśli protokół SSH jest skonfigurowany do uwierzytelniania użytkownika opartego na kluczach, uou nie jest monitowany o podanie hasła. Musisz podać ścieżkę do pliku klucza SSH. Jeśli plik klucza użytkownika znajduje się w znanej lokalizacji SSH, parametr KeyFilePath nie jest wymagany. Uwierzytelnianie użytkownika odbywa się automatycznie na podstawie nazwy użytkownika. Aby uzyskać więcej informacji, zobacz dokumentację protokołu SSH dotyczącą uwierzytelniania użytkowników opartego na kluczach.
Jeśli parametr UserName nie zostanie określony, zostanie użyta bieżąca zalogowana nazwa użytkownika.
Ten parametr został wprowadzony w programie PowerShell 6.0.
Właściwości parametru
| Typ: | String |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
SSHHost
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | 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 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.
Właściwości parametru
| Typ: | SwitchParameter |
| Domyślna wartość: | False |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
ComputerName
| Position: | Named |
| Obowiązkowy: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-VMId
Określa identyfikator maszyny wirtualnej.
Właściwości parametru
| Typ: | Guid |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
| Aliasy: | VmGuid |
Zestawy parametrów
VMId
| Position: | 0 |
| Obowiązkowy: | True |
| Wartość z potoku: | True |
| Wartość z potoku według nazwy właściwości: | True |
| Wartość z pozostałych argumentów: | False |
-VMName
Określa nazwę maszyny wirtualnej.
Właściwości parametru
| Typ: | String |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
VMName
| Position: | 0 |
| Obowiązkowy: | True |
| Wartość z potoku: | True |
| Wartość z potoku według nazwy właściwości: | True |
| Wartość z pozostałych argumentów: | False |
CommonParameters
To polecenie cmdlet obsługuje typowe parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction i -WarningVariable. Aby uzyskać więcej informacji, zobacz about_CommonParameters.
Dane wejściowe
String
Możesz przekazać nazwę komputera jako ciąg do tego polecenia cmdlet.
PSSession
Do tego polecenia cmdlet można przekazać obiekt sesji.
Dane wyjściowe
None
To polecenie cmdlet nie zwraca żadnych danych wyjściowych.
Uwagi
Program PowerShell zawiera następujące aliasy dla Enter-PSSession:
- Wszystkie platformy:
etsn
Aby nawiązać połączenie z komputerem zdalnym, musisz być członkiem grupy Administratorzy na komputerze zdalnym. Aby uruchomić sesję interaktywną na komputerze lokalnym, należy uruchomić program PowerShell z opcją Uruchom jako administrator .
W przypadku korzystania z Enter-PSSessionprogramu profil 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 modułów programu 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
Get-Commandwymaga poleceń cmdlet , Out-Defaulti Exit-PSSession . Jeśli te polecenia cmdlet nie są uwzględnione w konfiguracji sesji na komputerze zdalnym, Enter-PSSession polecenia kończą się niepowodzeniem.
W przeciwieństwie do Invoke-Commandprogramu , 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 PowerShell odpowie na Enter-PSSession polecenie. Po udostępnieniu sesji masz połączenie. Aby anulować Enter-PSSession polecenie, naciśnij CTRL+C.
Zestaw parametrów HostName został dołączony do programu PowerShell 6.0. Dodano go w celu zapewnienia komunikacji zdalnej programu PowerShell na podstawie protokołu Secure Shell (SSH). Zarówno protokół SSH, jak i program PowerShell są obsługiwane na wielu platformach (Windows, Linux, macOS) i komunikacji zdalnej programu PowerShell na tych platformach, na których zainstalowano i skonfigurowano program PowerShell. Jest to oddzielone od poprzedniej komunikacji równorzędnej systemu Windows opartej na usłudze WinRM, a większość funkcji i ograniczeń specyficznych dla usługi WinRM nie ma zastosowania. Na przykład przydziały oparte na usłudze WinRM, opcje sesji, konfiguracja niestandardowego punktu końcowego i funkcje rozłączania/ponownego łączenia nie są obecnie obsługiwane. Aby uzyskać więcej informacji na temat konfigurowania komunikacji zdalnej protokołu SSH programu PowerShell, zobacz Komunikacja zdalna programu PowerShell za pośrednictwem protokołu SSH.
Przed PowerShell 7.1, komunikacja zdalna za pośrednictwem protokołu SSH nie obsługiwała połączeń zdalnych typu „drugi skok”. Ta funkcja była ograniczona do sesji przy użyciu usługi WinRM. Program PowerShell 7.1 umożliwia Enter-PSSession i Enter-PSHostProcess pracę z poziomu dowolnej interaktywnej sesji zdalnej.
Plik ssh wykonywalny uzyskuje dane konfiguracji z następujących źródeł w następującej kolejności:
- Opcje wiersza polecenia
- plik konfiguracji użytkownika (~/.ssh/config)
- plik konfiguracji dla całego systemu (/etc/ssh/ssh_config)
Następujące parametry polecenia cmdlet są mapowane na ssh parametry i opcje:
| Parametr polecenia cmdlet | Parametr ssh | równoważna opcja ssh -o |
|---|---|---|
-KeyFilePath |
-i <KeyFilePath> |
-o IdentityFile=<KeyFilePath> |
-UserName |
-l <UserName> |
-o User=<UserName> |
-Port |
-p <Port> |
-o Port=<Port> |
-ComputerName -Subsystem |
-s <ComputerName> <Subsystem> |
-o Host=<ComputerName> |
Wszystkie wartości jawnie przekazywane przez parametry mają pierwszeństwo przed wartościami przekazanymi w tabeli skrótów Opcje . Aby uzyskać więcej informacji na temat ssh_config plików, zobacz ssh_config(5).