Enter-PSSession

Rozpoczyna sesję interaktywną z komputerem zdalnym.

Składnia

Enter-PSSession
     [-ComputerName] <String>
     [-EnableNetworkAccess]
     [[-Credential] <PSCredential>]
     [-ConfigurationName <String>]
     [-Port <Int32>]
     [-UseSSL]
     [-ApplicationName <String>]
     [-SessionOption <PSSessionOption>]
     [-Authentication <AuthenticationMechanism>]
     [-CertificateThumbprint <String>]
     [<CommonParameters>]
Enter-PSSession
     [-HostName] <String>
     [-Port <Int32>]
     [-UserName <String>]
     [-KeyFilePath <String>]
     [-SSHTransport]
     [<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
     [-VMId] <Guid>
     [-Credential] <PSCredential>
     [-ConfigurationName <String>]
     [<CommonParameters>]
Enter-PSSession
     [-VMName] <String>
     [-Credential] <PSCredential>
     [-ConfigurationName <String>]
     [<CommonParameters>]
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 należy użyć parametru ComputerName , aby określić nazwę komputera zdalnego. 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, jeśli protokół SSH jest dostępny na komputerze lokalnym, a komputer zdalny jest skonfigurowany przy użyciu punktu końcowego SSH programu PowerShell. Zaletą sesji zdalnej programu PowerShell opartej na protokole SSH jest to, że działa ona 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 o sposobie konfigurowania komunikacji zdalnej SSH programu PowerShell, zobacz PowerShell Remoting Over SSH (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.

Przykłady

Przykład 1. Rozpoczynanie sesji interakcyjnej

PS> Enter-PSSession
[localhost]: PS>

To polecenie uruchamia sesję interaktywną na komputerze lokalnym. Wiersz polecenia zmienia się, aby wskazać, że teraz uruchamiasz polecenia w innej sesji.

Polecenia wprowadzone w nowej sesji i wyniki są zwracane do sesji domyślnej jako tekst.

Przykład 2. Praca z sesją interaktywną

Pierwsze polecenie używa Enter-PSSession polecenia cmdlet do uruchomienia sesji interakcyjnej z serwerem Server01, komputerem zdalnym. Po rozpoczęciu sesji wiersz polecenia zmieni się w celu uwzględnienia nazwy komputera.

Drugie polecenie pobiera proces programu PowerShell i przekierowuje dane wyjściowe do pliku Process.txt. 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>
[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żyj parametru Sesja

PS> $s = New-PSSession -ComputerName Server01
PS> Enter-PSSession -Session $s
[Server01]: PS>

Te polecenia używają parametru Enter-PSSessionSesja, aby uruchomić sesję interaktywną w istniejącej sesji programu PowerShell (PSSession).

Przykład 4. Rozpoczynanie 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 Port do określenia portu i parametru Credential w celu określenia konta użytkownika, który ma uprawnienia do nawiązywania połączenia z komputerem zdalnym.

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 uruchomienia sesji interakcyjnej z komputerem Server01.

Drugie polecenie używa Exit-PSSession polecenia cmdlet do zakończenia sesji. 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. Rozpoczynanie sesji interakcyjnej przy użyciu protokołu SSH

PS> Enter-PSSession -HostName UserA@LinuxServer01

W tym przykładzie pokazano, jak rozpocząć sesję interaktywną przy użyciu protokołu Secure Shell (SSH). Jeśli na komputerze zdalnym skonfigurowano protokół SSH w celu wyświetlenia monitu o podanie haseł, zostanie wyświetlony monit o podanie hasła. W przeciwnym razie konieczne będzie użycie uwierzytelniania użytkownika opartego na kluczu SSH.

Przykład 7. Rozpoczynanie sesji interakcyjnej przy użyciu protokołu SSH i określanie klucza uwierzytelniania portów i użytkowników

PS> Enter-PSSession -HostName UserA@LinuxServer02:22 -KeyFilePath c:\<path>\userAKey_rsa

W tym przykładzie pokazano, jak rozpocząć sesję interaktywną przy użyciu protokołu SSH. Używa parametru Port do określenia portu do użycia i parametru KeyFilePath w celu określenia klucza RSA używanego do uwierzytelniania użytkownika na komputerze zdalnym.

Parametry

-AllowRedirection

Umożliwia przekierowanie tego połączenia do alternatywnego identyfikatora URI (Uniform Resource Identifier). Domyślnie przekierowywanie nie jest dozwolone.

Jeśli używasz parametru ConnectionURI , lokalizacja docelowa zdalna może zwrócić instrukcję, aby przekierować 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żna również ograniczyć liczbę przekierowań połączenia, zmieniając wartość opcji sesji MaximumConnectionRedirectionCount . Użyj parametru New-PSSessionOptionMaximumRedirection polecenia cmdlet lub ustaw właściwość MaximumConnectionRedirectionCount zmiennej $PSSessionOption preferencji. Wartość domyślna to 5.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 $PSSessionApplicationName preferencji 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, aby wybrać odbiornik do obsługi żądania połączenia. Wartość tego parametru powinna być zgodna z wartością właściwości URLPrefix odbiornika na komputerze zdalnym.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Authentication

Określa mechanizm używany do uwierzytelniania poświadczeń użytkownika. Dopuszczalne wartości dla tego parametru to:

  • Domyślny
  • Podstawowa
  • Credssp
  • Szyfrowane
  • Kerberos
  • Negotiate
  • NegotiateWithImplicitCredential

Wartość domyślna to 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 Enum.

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.

Type:AuthenticationMechanism
Accepted values:Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 w dysku Certyfikat programu PowerShell.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ComputerName

Określa nazwę komputera. To polecenie cmdlet uruchamia interaktywną sesję z określonym komputerem zdalnym. Wprowadź tylko jedną nazwę komputera. Wartością domyślną jest 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 komputer musi być skonfigurowany do transportu HTTPS lub adres IP komputera zdalnego musi być uwzględniony na liście TrustedHosts 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 PowerShell z opcją Uruchom jako administrator.

Type:String
Aliases:Cn
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-ConfigurationName

Określa konfigurację sesji, która jest używana dla sesji interaktywnej.

Wprowadź nazwę konfiguracji lub w pełni kwalifikowany identyfikator URI zasobu dla konfiguracji sesji. Jeśli określisz tylko nazwę konfiguracji, identyfikator URI schematu zostanie wstępnie utworzony: http://schemas.microsoft.com/powershell.

W przypadku używania z protokołem SSH określa podsystem do użycia w 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 $PSSessionConfigurationName preferencji 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.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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 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 z innym identyfikatorem URI, program PowerShell uniemożliwia przekierowanie, chyba że użyjesz parametru AllowRedirection w poleceniu .

Type:Uri
Aliases:URI, CU
Position:1
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-ContainerId

Określa identyfikator kontenera.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Credential

Określa konto użytkownika, które ma uprawnienia do wykonania tej akcji. Wartość domyślna to użytkownik bieżący.

Wpisz nazwę użytkownika, taką jak User01 lub Domain01\User01, lub wprowadź obiekt PSCredential wygenerowany przez Get-Credential polecenie cmdlet. 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

Aby uzyskać więcej informacji na temat ochrony danych za pomocą protokołu SecureString , zobacz Jak bezpieczny jest protokół SecureString?.

Type:PSCredential
Position:1
Default value:Current user
Required:False
Accept pipeline input:True
Accept wildcard characters: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. Na przykład można uruchomić polecenie w sesji, która kopiuje pliki XML z komputera zdalnego do komputera lokalnego.

Sesja sprzężenia zwrotnego to sesja PSSession , która pochodzi i kończy się na tym samym komputerze. Aby utworzyć sesję sprzężenia zwrotnego, pomiń parametr ComputerName lub ustaw jego wartość na . (kropka), localhost lub nazwa komputera lokalnego.

Domyślnie sesje sprzężenia zwrotnego są tworzone przy użyciu tokenu sieciowego, który może nie zapewniać wystarczających uprawnień do uwierzytelniania na komputerach zdalnych.

Parametr EnableNetworkAccess jest skuteczny tylko w sesjach sprzężenia zwrotnego. Jeśli podczas tworzenia sesji na komputerze zdalnym używasz funkcji EnableNetworkAccess , polecenie zakończy się pomyślnie, ale parametr zostanie zignorowany.

Dostęp zdalny można również zezwolić na dostęp zdalny w sesji sprzężenia zwrotnego przy użyciu wartości CredSSP parametru uwierzytelniania , który deleguje poświadczenia sesji do innych komputerów.

Ten parametr został wprowadzony w Windows PowerShell 3.0.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 nawiązywane 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 nazwy hosta przy użyciu formularza user@hostname:port. Nazwa użytkownika i/lub port określony w ramach 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 z nich 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.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Id

Określa identyfikator istniejącej sesji. Enter-PSSession używa określonej sesji dla sesji interaktywnej.

Aby znaleźć identyfikator sesji, użyj Get-PSSession polecenia cmdlet .

Type:Int32
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-InstanceId

Określa identyfikator wystąpienia istniejącej sesji. Enter-PSSession używa określonej sesji dla sesji interaktywnej.

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 rozpocząć sesję tymczasową.

Type:Guid
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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 alternatywę dla podstawowego uwierzytelniania haseł. Jeśli komputer zdalny jest skonfigurowany do uwierzytelniania za pomocą klucza, ten parametr może służyć do podania klucza identyfikującego użytkownika.

Ten parametr został wprowadzony w programie PowerShell 6.0.

Type:String
Aliases:IdentityFilePath
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Name

Określa przyjazną nazwę istniejącej sesji. Enter-PSSession używa określonej sesji dla sesji interaktywnej.

Jeśli określona nazwa jest zgodna z więcej niż jedną sesją, polecenie zakończy się niepowodzeniem. Można również użyć parametrów Session, InstanceID lub ID , aby określić istniejącą sesję. Możesz też użyć parametru ComputerName , aby rozpocząć sesję tymczasową.

Aby ustanowić przyjazną nazwę sesji, użyj parametru New-PSSessionName polecenia cmdlet.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Port

Określa port sieciowy na komputerze zdalnym, który jest używany dla tego polecenia.

W programie PowerShell 6.0 ten parametr został włączony 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 alternatywnego portu 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 , chyba że musisz. Ustawienie portu w poleceniu dotyczy wszystkich komputerów lub sesji, na których jest uruchamiane polecenie. Alternatywne ustawienie 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 za pomocą usługi SSH (SSHD) i musi nasłuchiwać na porcie używanym przez połączenie. Domyślny port protokołu SSH to 22.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RunAsAdministrator

Wskazuje, że usługa PSSession jest uruchamiana jako administrator.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Session

Określa sesję programu PowerShell (PSSession), która ma być używana 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, na przykład New-PSSession polecenie lub Get-PSSession . Możesz również przekazać potok obiektu sesji do Enter-PSSessionobiektu . Za pomocą tego parametru można przesłać tylko jedną usługę PSSession . Jeśli wprowadzisz zmienną zawierającą więcej niż jedną usługę 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.

Type:PSSession
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-SessionOption

Ustawia opcje zaawansowane dla sesji. Wprowadź obiekt SessionOption , taki jak obiekt utworzony za pomocą New-PSSessionOption polecenia cmdlet lub tabela skrótu, w której klucze są nazwami opcji sesji, a wartości to wartości opcji sesji.

Wartości domyślne opcji są określane przez wartość zmiennej $PSSessionOption preferencji, jeśli jest 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 $PSSessionOption preferencji 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 $PSSessionOption preferencji, zobacz about_Preference_Variables. Aby uzyskać więcej informacji na temat konfiguracji sesji, zobacz Informacje o konfiguracjach sesji.

Type:PSSessionOption
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 WinRM systemu Windows do nawiązywania połączenia z komputerem zdalnym. Ten przełącznik wymusza, aby program PowerShell używał zestawu parametrów HostName do ustanawiania połączenia zdalnego opartego na protokole SSH.

Ten parametr został wprowadzony w programie PowerShell 6.0.

Type:SwitchParameter
Accepted values:true
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Subsystem

Określa podsystem SSH używany do nowej usługi PSSession.

Określa podsystem do użycia na 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ą jest podsystem "powershell".

Type:String
Position:Named
Default value:powershell
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-UserName

Określa nazwę użytkownika konta użytego do utworzenia sesji na komputerze zdalnym. Metoda uwierzytelniania użytkownika zależy od sposobu konfigurowania 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, ścieżkę pliku klucza można podać za pośrednictwem parametru KeyFilePath i nie zostanie wyświetlony żaden monit o podanie hasła. Należy pamiętać, że jeśli plik klucza użytkownika klienta znajduje się w znanej lokalizacji SSH, parametr KeyFilePath nie jest wymagany do uwierzytelniania opartego na kluczu, a uwierzytelnianie użytkownika nastąpi 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.

Nie jest to wymagany parametr. Jeśli nie określono parametru UserName , bieżący dziennik nazwy użytkownika jest używany dla połączenia.

Ten parametr został wprowadzony w programie PowerShell 6.0.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 nie jest używane szyfrowanie SSL.

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 kończy się niepowodzeniem.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-VMId

Określa identyfikator maszyny wirtualnej.

Type:Guid
Aliases:VMGuid
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-VMName

Określa nazwę maszyny wirtualnej.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

Dane wejściowe

System.String, System.Management.Automation.Runspaces.PSSession

Nazwę komputera można przekazać 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. Aby rozpocząć sesję interaktywną na komputerze lokalnym, należy uruchomić program PowerShell z opcją Uruchom jako administrator .

W przypadku korzystania z programu Enter-PSSessionprofil użytkownika na komputerze zdalnym jest używany do sesji interakcyjnej. Polecenia w profilu użytkownika zdalnego, w tym polecenia, aby dodać moduły programu PowerShell i zmienić wiersz 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-PSSessionGet-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 klawisze CTRL+C.

Zestaw parametrów HostName został dołączony do programu PowerShell 6.0. Dodano ją 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 będzie działać na tych platformach, na których zainstalowano i skonfigurowano program PowerShell oraz protokół SSH. Jest to oddzielone od poprzedniego komunikacji zdalnie systemu Windows, która jest oparta na usłudze WinRM, a wiele określonych funkcji i ograniczeń usługi WinRM nie ma zastosowania. Na przykład limity przydziału oparte na usłudze WinRM, opcje sesji, niestandardowa konfiguracja punktu końcowego i funkcje rozłączania/ponownego łączenia nie są obecnie obsługiwane. Aby uzyskać więcej informacji o sposobie konfigurowania komunikacji zdalnej SSH programu PowerShell, zobacz PowerShell Remoting Over SSH (Komunikacja zdalna programu PowerShell za pośrednictwem protokołu SSH).

Przed programem PowerShell 7.1 komunikacja zdalna za pośrednictwem protokołu SSH nie obsługiwała sesji zdalnych drugiego przeskoku. Ta funkcja była ograniczona do sesji przy użyciu usługi WinRM. Program PowerShell 7.1 umożliwia Enter-PSSession i Enter-PSHostProcess działa z poziomu dowolnej interakcyjnej sesji zdalnej.