New-PSSession
Tworzy trwałe połączenie z komputerem lokalnym lub zdalnym.
Składnia
New-PSSession
[[-ComputerName] <String[]>]
[-Credential <PSCredential>]
[-Name <String[]>]
[-EnableNetworkAccess]
[-ConfigurationName <String>]
[-Port <Int32>]
[-UseSSL]
[-ApplicationName <String>]
[-ThrottleLimit <Int32>]
[-SessionOption <PSSessionOption>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[<CommonParameters>]
New-PSSession
[-Credential <PSCredential>]
[-Name <String[]>]
[-EnableNetworkAccess]
[-ConfigurationName <String>]
[-ThrottleLimit <Int32>]
[-ConnectionUri] <Uri[]>
[-AllowRedirection]
[-SessionOption <PSSessionOption>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[<CommonParameters>]
New-PSSession
-Credential <PSCredential>
[-Name <String[]>]
[-ConfigurationName <String>]
[-VMId] <Guid[]>
[-ThrottleLimit <Int32>]
[<CommonParameters>]
New-PSSession
-Credential <PSCredential>
[-Name <String[]>]
[-ConfigurationName <String>]
-VMName <String[]>
[-ThrottleLimit <Int32>]
[<CommonParameters>]
New-PSSession
[[-Session] <PSSession[]>]
[-Name <String[]>]
[-EnableNetworkAccess]
[-ThrottleLimit <Int32>]
[<CommonParameters>]
New-PSSession
[-Name <String[]>]
[-ConfigurationName <String>]
-ContainerId <String[]>
[-RunAsAdministrator]
[-ThrottleLimit <Int32>]
[<CommonParameters>]
New-PSSession
-UseWindowsPowerShell
[-Name <string[]>]
[<CommonParameters>]
New-PSSession
[-Name <String[]>]
[-Port <Int32>]
[-HostName] <String[]>
[-UserName <String>]
[-KeyFilePath <String>]
[-SSHTransport]
[-Subsystem <String>]
[<CommonParameters>]
New-PSSession
[-Name <String[]>]
-SSHConnection <Hashtable[]>
[<CommonParameters>]
Opis
Polecenie New-PSSession
cmdlet tworzy sesję programu PowerShell (PSSession) na komputerze lokalnym lub zdalnym. Podczas tworzenia programu PSSession program PowerShell ustanawia trwałe połączenie z komputerem zdalnym.
Użyj programu PSSession , aby uruchomić wiele poleceń, które współdzielą dane, takie jak funkcja lub wartość zmiennej. Aby uruchomić polecenia w programie PSSession, użyj Invoke-Command
polecenia cmdlet . Aby użyć programu PSSession do bezpośredniej interakcji z komputerem zdalnym, użyj Enter-PSSession
polecenia cmdlet . Aby uzyskać więcej informacji, zobacz about_PSSessions.
Polecenia można uruchamiać na komputerze zdalnym bez tworzenia programu PSSession z parametrami ComputerName elementu Enter-PSSession
lub Invoke-Command
. Gdy używasz parametru ComputerName , program PowerShell tworzy tymczasowe połączenie, które jest używane dla polecenia, a następnie jest zamykane.
Począwszy od programu PowerShell 6.0, można użyć protokołu Secure Shell (SSH) do nawiązania połączenia i utworzenia sesji na komputerze 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 możliwość pracy na wielu platformach (Windows, Linux, macOS). W przypadku sesji opartych na protokole SSH należy użyć parametru HostName lub SSHConnection , aby określić komputer zdalny i odpowiednie informacje 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).
Uwaga
W przypadku korzystania z komunikacji wirtualnej programu WSMan z klienta z systemem Linux lub macOS z punktem końcowym HTTPS, w którym certyfikat serwera nie jest zaufany (np. certyfikat z podpisem własnym). Należy podać wartość PSSessionOption obejmującą wartości SkipCACheck i SkipCNCheck ustawione w celu $true
pomyślnego nawiązania połączenia. Należy to zrobić tylko wtedy, gdy jesteś w środowisku, w którym można być pewnym certyfikatem serwera i połączeniem sieciowym z systemem docelowym.
Przykłady
Przykład 1: Twórca sesji na komputerze lokalnym
$s = New-PSSession
To polecenie tworzy nową konsolę PSSession na komputerze lokalnym i zapisuje plik PSSession w zmiennej $s
.
Teraz możesz użyć tej usługi PSSession do uruchamiania poleceń na komputerze lokalnym.
Przykład 2: Twórca sesję na komputerze zdalnym
$Server01 = New-PSSession -ComputerName Server01
To polecenie tworzy nową konsolę PSSession na komputerze Server01 i zapisuje ją w zmiennej $Server01
.
Podczas tworzenia wielu obiektów PSSession przypisz je do zmiennych z przydatnymi nazwami. Pomoże to zarządzać obiektami PSSession w kolejnych poleceniach.
Przykład 3: sesje Twórca na wielu komputerach
$s1, $s2, $s3 = New-PSSession -ComputerName Server01,Server02,Server03
To polecenie tworzy trzy obiekty PSSession , jeden na każdym z komputerów określonych przez parametr ComputerName .
Polecenie używa operatora przypisania (=
) w celu przypisania nowych obiektów PSSession do zmiennych: $s1
, , $s2
$s3
. Przypisuje serwer server01 PSSession do $s1
, serwer02 PSSession do $s2
, i Server03 PSSession do $s3
.
Po przypisaniu wielu obiektów do serii zmiennych program PowerShell przypisuje każdy obiekt odpowiednio do zmiennej w serii. Jeśli istnieje więcej obiektów niż zmienne, wszystkie pozostałe obiekty są przypisywane do ostatniej zmiennej. Jeśli istnieje więcej zmiennych niż obiekty, pozostałe zmienne są puste ($null
).
Przykład 4: Twórca sesji z określonym portem
New-PSSession -ComputerName Server01 -Port 8081 -UseSSL -ConfigurationName E12
To polecenie tworzy nową usługę PSSession na komputerze Server01, który łączy się z portem 8081
serwera i używa protokołu SSL. Nowa konfiguracja sesji PSSession używa alternatywnej konfiguracji sesji o nazwie E12
.
Przed ustawieniem portu należy skonfigurować odbiornik WinRM na komputerze zdalnym do nasłuchiwania na porcie 8081. Aby uzyskać więcej informacji, zobacz opis parametru Port .
Przykład 5: Twórca sesji na podstawie istniejącej sesji
New-PSSession -Session $s -Credential Domain01\User01
To polecenie tworzy usługę PSSession z tymi samymi właściwościami co istniejąca usługa PSSession. Ten format polecenia można użyć, gdy zasoby istniejącego programu PSSession zostaną wyczerpane, a do odciążenia niektórych wymagań jest wymagana nowa usługa PSSession .
Polecenie używa parametru Sesja , New-PSSession
aby określić psSession zapisane w zmiennej $s
. Używa poświadczeń Domain1\Admin01
użytkownika do ukończenia polecenia.
Przykład 6: Twórca sesji z zakresem globalnym w innej domenie
$global:s = New-PSSession -ComputerName Server1.Domain44.Corpnet.Fabrikam.com -Credential Domain01\Admin01
W tym przykładzie pokazano, jak utworzyć usługę PSSession z zakresem globalnym na komputerze w innej domenie.
Domyślnie obiekty PSSession utworzone w wierszu polecenia są tworzone z zakresem lokalnym, a obiekty PSSession utworzone w skrytecie mają zakres skryptu.
Aby utworzyć usługę PSSession z zakresem globalnym, utwórz nową usługę PSSession , a następnie zapisz plik PSSession w zmiennej rzutowej na zakres globalny. W tym przypadku zmienna $s
jest rzutowania do zakresu globalnego.
Polecenie używa parametru ComputerName do określenia komputera zdalnego. Ponieważ komputer znajduje się w innej domenie niż konto użytkownika, pełna nazwa komputera jest określana wraz z poświadczeniami użytkownika.
Przykład 7: sesje Twórca dla wielu komputerów
$rs = Get-Content C:\Test\Servers.txt | New-PSSession -ThrottleLimit 50
To polecenie tworzy serwer PSSession na każdym z 200 komputerów wymienionych w Servers.txt
pliku i przechowuje wynikową usługę PSSession w zmiennej $rs
. Obiekty PSSession mają limit ograniczenia przepustowości .50
Ten format polecenia można użyć, gdy nazwy komputerów są przechowywane w bazie danych, arkuszu kalkulacyjnym, pliku tekstowym lub innym formacie konwertowanym na tekst.
Przykład 8: Twórca sesji przy użyciu identyfikatora URI
$s = New-PSSession -URI http://Server01:91/NewSession -Credential Domain01\User01
To polecenie tworzy serwer PSSession na komputerze Server01 i zapisuje je w zmiennej $s
. Używa parametru URI , aby określić protokół transportu, komputer zdalny, port i konfigurację sesji alternatywnej. Używa również parametru Credential do określenia konta użytkownika, które ma uprawnienia do tworzenia sesji na komputerze zdalnym.
Przykład 9. Uruchamianie zadania w tle w zestawie sesji
$s = New-PSSession -ComputerName (Get-Content Servers.txt) -Credential Domain01\Admin01 -ThrottleLimit 16
Invoke-Command -Session $s -ScriptBlock {Get-Process PowerShell} -AsJob
Te polecenia tworzą zestaw obiektów PSSession , a następnie uruchamiają zadanie w tle w każdym obiekcie PSSession .
Pierwsze polecenie tworzy nową konsolę PSSession na każdym z komputerów wymienionych w Servers.txt
pliku. Używa polecenia cmdlet do utworzenia New-PSSession
programu PSSession. Wartość parametru ComputerName to polecenie, które używa Get-Content
polecenia cmdlet do pobrania listy komputerów nazw Servers.txt
plików.
Polecenie używa parametru Credential do utworzenia obiektów PSSession , które mają uprawnienia administratora domeny, i używa parametru ThrottleLimit , aby ograniczyć polecenie do 16
połączeń współbieżnych. Polecenie zapisuje obiekty PSSession w zmiennej $s
.
Drugie polecenie używa parametru Invoke-Command
AsJob polecenia cmdlet, aby uruchomić zadanie w tle, które uruchamia Get-Process PowerShell
polecenie w każdym obiekcie PSSession w programie $s
.
Aby uzyskać więcej informacji na temat zadań w tle programu PowerShell, zobacz about_Jobs i about_Remote_Jobs.
Przykład 10: Twórca sesji dla komputera przy użyciu identyfikatora URI
New-PSSession -ConnectionURI https://management.exchangelabs.com/Management
To polecenie tworzy obiekty PSSession , które łączą się z komputerem określonym przez identyfikator URI zamiast nazwy komputera.
Przykład 11: Twórca opcję sesji
$so = New-PSSessionOption -SkipCACheck
New-PSSession -ConnectionUri https://management.exchangelabs.com/Management -SessionOption $so -Credential Server01\Admin01
W tym przykładzie pokazano, jak utworzyć obiekt opcji sesji i użyć parametru SessionOption .
Pierwsze polecenie używa New-PSSessionOption
polecenia cmdlet do utworzenia opcji sesji. Zapisuje wynikowy obiekt SessionOption w zmiennej $so
.
Drugie polecenie używa opcji w nowej sesji. Polecenie używa New-PSSession
polecenia cmdlet do utworzenia nowej sesji. Wartość parametru SessionOption to obiekt SessionOption w zmiennej $so
.
Przykład 12: Twórca sesji przy użyciu protokołu SSH
New-PSSession -HostName UserA@LinuxServer01
W tym przykładzie pokazano, jak utworzyć nową usługę PSSession 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 13: Twórca sesji przy użyciu protokołu SSH i określ port i klucz uwierzytelniania użytkownika
New-PSSession -HostName UserA@LinuxServer01:22 -KeyFilePath c:\<path>\userAKey_rsa
W tym przykładzie pokazano, jak utworzyć usługę PSSession przy użyciu protokołu Secure Shell (SSH). Używa parametru Port do określenia portu do użycia i parametru KeyFilePath w celu określenia klucza RSA używanego do identyfikowania i uwierzytelniania użytkownika na komputerze zdalnym.
Przykład 14: Twórca wielu sesji przy użyciu protokołu SSH
$sshConnections = @(
@{
HostName = 'WinServer1'
UserName = 'domain\userA'
KeyFilePath = 'c:\users\UserA\id_rsa'
}
@{
HostName = 'UserB@LinuxServer5'
KeyFilePath = 'c:\UserB\<path>\id_rsa'
}
)
New-PSSession -SSHConnection $sshConnections
W tym przykładzie pokazano, jak utworzyć wiele sesji przy użyciu protokołu Secure Shell (SSH) i zestawu parametrów SSHConnection . Parametr SSHConnection przyjmuje tablicę tabel skrótów, które zawierają informacje o połączeniu dla każdej sesji. Należy pamiętać, że ten przykład wymaga, aby docelowe komputery zdalne miały skonfigurowany protokół SSH do obsługi uwierzytelniania użytkowników opartego na kluczach.
Parametry
-AllowRedirection
Wskazuje, że to polecenie cmdlet zezwala na przekierowanie tego połączenia do alternatywnego identyfikatora URI (Uniform Resource Identifier).
W przypadku użycia parametru ConnectionURI zdalne miejsce docelowe może zwrócić instrukcję przekierowania 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 New-PSSessionOption
MaximumRedirection polecenia cmdlet lub ustaw właściwość MaximumConnectionRedirectionCount zmiennej preferencji $PSSessionOption. 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 do wybierania odbiornika w celu 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:
Default
Basic
Credssp
Digest
Kerberos
Negotiate
NegotiateWithImplicitCredential
Wartość domyślna to Default
.
Aby uzyskać więcej informacji na temat wartości tego parametru, zobacz AuthenticationMechanism Enumeration (Wyliczenie AuthenticationMechanism).
Przestroga
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
na dysku programu PowerShell Cert:
.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ComputerName
Określa tablicę nazw komputerów. To polecenie cmdlet tworzy trwałe połączenie (PSSession) z określonym komputerem. Jeśli wprowadzisz wiele nazw komputerów, New-PSSession
tworzy wiele obiektów PSSession , po jednym dla każdego komputera. Wartością domyślną jest komputer lokalny.
Wpisz nazwę NetBIOS, adres IP lub w pełni kwalifikowaną nazwę domeny co najmniej jednego komputera zdalnego. Aby określić komputer lokalny, wpisz nazwę komputera, localhost
lub kropkę (.
). Jeśli komputer znajduje się w innej domenie niż użytkownik, wymagana jest w pełni kwalifikowana nazwa domeny.
Nazwę komputera można również przekazać potokiem w cudzysłowie do New-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.
Aby uwzględnić komputer lokalny w wartości parametru ComputerName, uruchom Windows PowerShell przy użyciu opcji Uruchom jako administrator.
Type: | String[] |
Aliases: | Cn |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ConfigurationName
Określa konfigurację sesji, która jest używana dla nowej sesji PSSession.
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
.
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
https. Aby użyć domyślnych portów komunikacji zdalnej programu PowerShell, określ port 5985
protokołu HTTP lub 5986
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: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ContainerId
Określa tablicę identyfikatorów kontenerów. To polecenie cmdlet uruchamia interaktywną sesję z każdym z określonych kontenerów. docker ps
Użyj polecenia , aby uzyskać listę identyfikatorów kontenerów. Aby uzyskać więcej informacji, zobacz pomoc dotyczącą polecenia docker ps .
Type: | String[] |
Position: | Named |
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 secureString , zobacz Jak bezpieczny jest securestring?.
Type: | PSCredential |
Position: | Named |
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 kropkę (.
), localhost
lub nazwę komputera lokalnego.
Domyślnie to polecenie cmdlet tworzy sesje sprzężenia zwrotnego 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ż włączyć w sesji sprzężenia zwrotnego przy użyciu CredSSP
wartości parametru uwierzytelniania , który deleguje poświadczenia sesji do innych komputerów.
Aby chronić komputer przed złośliwym dostępem, rozłączone sesje sprzężenia zwrotnego, które mają tokeny interakcyjne, które są tworzone przy użyciu parametru EnableNetworkAccess , można ponownie połączyć tylko z komputera, na którym utworzono sesję. Rozłączone sesje korzystające z uwierzytelniania CredSSP można ponownie połączyć z innymi komputerami. Aby uzyskać więcej informacji, zobacz Disconnect-PSSession
.
Ten parametr został wprowadzony w programie PowerShell 3.0.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-HostName
Określa tablicę nazw komputerów 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 został wprowadzony w programie PowerShell 6.0.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
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 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ę psSession.
Możesz użyć nazwy, aby odwoływać się do psSession podczas używania innych poleceń cmdlet, takich jak Get-PSSession
i Enter-PSSession
. Nazwa nie musi być unikatowa dla komputera ani bieżącej sesji.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Port
Określa port sieciowy na komputerze zdalnym używanym do tego połączenia. 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
, który jest portem Usługi WinRM dla protokołu HTTPS.
Przed użyciem innego portu należy skonfigurować odbiornik Usługi WinRM na komputerze zdalnym do nasłuchiwania na tym porcie. Użyj następujących poleceń, aby skonfigurować odbiornik:
winrm delete winrm/config/listener?Address=*+Transport=HTTP
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. Ustawienie alternatywnego portu może uniemożliwić uruchomienie polecenia na wszystkich komputerach.
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 tablicę obiektów PSSession używanych przez to polecenie cmdlet jako model dla nowej usługi PSSession. Ten parametr tworzy nowe obiekty PSSession , które mają te same właściwości co określone obiekty PSSession .
Wprowadź zmienną zawierającą obiekty PSSession lub polecenie, które tworzy lub pobiera obiekty PSSession, takie jak New-PSSession
polecenie lub .Get-PSSession
Wynikowe obiekty PSSession mają taką samą nazwę komputera, nazwę aplikacji, identyfikator połączenia, port, nazwę konfiguracji, limit ograniczenia przepustowości i wartość Secure Sockets Layer (SSL), ale mają inną nazwę wyświetlaną, identyfikator i identyfikator wystąpienia (GUID).
Type: | PSSession[] |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-SessionOption
Określa 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, które zawierają 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 |
-SSHConnection
Ten parametr przyjmuje tablicę tabel skrótów, w której każda tabela skrótów zawiera co najmniej jeden parametr połączenia wymagany do ustanowienia połączenia secure Shell (SSH) (HostName, Port, UserName, KeyFilePath).
Parametry połączenia w formie skrótu są takie same jak zdefiniowane dla zestawu parametrów SSHHost .
Parametr SSHConnection jest przydatny do tworzenia wielu sesji, w których każda sesja wymaga różnych informacji o połączeniu.
Ten parametr został wprowadzony w programie PowerShell 6.0.
Type: | Hashtable[] |
Position: | Named |
Default value: | None |
Required: | True |
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 w obiekcie docelowym zgodnie z definicją w pliku 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.
Type: | String |
Position: | Named |
Default value: | powershell |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ThrottleLimit
Określa maksymalną liczbę współbieżnych połączeń, które można ustanowić, aby uruchomić to polecenie.
Jeśli pominiesz ten parametr lub wprowadź wartość 0
(zero), zostanie użyta wartość domyślna , 32
.
Limit ograniczania dotyczy tylko bieżącego polecenia, a nie sesji lub komputera.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
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 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, można podać ścieżkę pliku klucza za pośrednictwem parametru KeyFilePath i nie zostanie wyświetlony 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 kluczach, a 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.
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 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 oferuje dodatkową ochronę, 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 |
-UseWindowsPowerShell
Tworzy zdalne połączenie z nowym Windows PowerShell przestrzenią uruchomieniową w systemie lokalnym.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-VMId
Określa tablicę identyfikatorów maszyn wirtualnych. To polecenie cmdlet uruchamia sesję interaktywną z każdą z określonych maszyn wirtualnych. Aby wyświetlić dostępne maszyny wirtualne, użyj następującego polecenia:
Get-VM | Select-Object -Property Name, ID
Type: | Guid[] |
Aliases: | VMGuid |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-VMName
Określa tablicę nazw maszyn wirtualnych. To polecenie cmdlet uruchamia sesję interaktywną z każdą z określonych maszyn wirtualnych. Aby wyświetlić dostępne maszyny wirtualne, użyj Get-VM
polecenia cmdlet .
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Dane wejściowe
System.String, System.URI, System.Management.Automation.Runspaces.PSSession
Możesz potokować ciąg, identyfikator URI lub obiekt sesji do tego polecenia cmdlet.
Dane wyjściowe
Uwagi
- To polecenie cmdlet używa infrastruktury komunikacji zdalnej programu PowerShell. Aby użyć tego polecenia cmdlet, komputer lokalny i wszystkie komputery zdalne muszą być skonfigurowane na potrzeby komunikacji zdalnej programu PowerShell. Aby uzyskać więcej informacji, zobacz about_Remote_Requirements.
- Aby utworzyć serwer PSSession na komputerze lokalnym, uruchom program PowerShell z opcją Uruchom jako administrator .
- Po zakończeniu pracy z programem PSSession użyj
Remove-PSSession
polecenia cmdlet , aby usunąć plik PSSession i zwolnić jego zasoby. - Zestawy parametrów HostName i SSHConnection zostały dołączone do programu PowerShell 6.0. Dodano je 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ędą działać na tych platformach, na których zainstalowano i skonfigurowano program PowerShell oraz protokół SSH. Jest to oddzielone od poprzedniej komunikacji równorzędnej tylko dla 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 przydziały oparte na usłudze WinRM, opcje sesji, niestandardowa konfiguracja punktu końcowego i funkcje rozłączania/ponownego nawiązywania połączenia nie są obsługiwane. Aby uzyskać więcej informacji na temat konfigurowania komunikacji zdalnej SSH programu PowerShell, zobacz Komunikacja zdalna programu PowerShell za pośrednictwem protokołu SSH.
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> |
Aby uzyskać więcej informacji na temat ssh_config
plików, zobacz ssh_config(5).