Ce face Enter-PSSession
Enter-PSSession te conectează interactiv la un singur computer: comenzile pe care le scrii rulează acolo, ca și cum ai sta la tastatura lui. Promptul se schimbă și arată numele computerului, de exemplu [SRV-IASI01]: PS C:\Users\ana\Documents>. Sesiunea se închide cu Exit-PSSession sau exit. Poți avea o singură sesiune interactivă odată; pentru comenzi pe mai multe computere folosești Invoke-Command.
Pe Windows, conexiunea cu -ComputerName folosește WinRM (porturile 5985 pentru HTTP și 5986 pentru HTTPS). Computerul țintă trebuie să aibă remoting activat: rulezi o dată Enable-PSRemoting într-o sesiune de administrator (pe Windows Server 2012 și mai nou e activat implicit). Contul tău trebuie să fie în grupul Administrators sau Remote Management Users de pe țintă. Fără -ConfigurationName ajungi pe endpoint-ul implicit Microsoft.PowerShell, adică Windows PowerShell; Enable-PSRemoting rulat în PowerShell 7 creează un endpoint pentru acea versiune, pe care îl alegi cu -ConfigurationName (vezi numele cu Get-PSSessionConfiguration pe țintă).
Din PowerShell 6.0, parametrul -HostName (cu -UserName, -KeyFilePath, -Port) deschide sesiunea prin SSH și merge între Windows, Linux și macOS; ținta trebuie să aibă configurat un subsistem PowerShell în sshd. Remoting-ul prin WinRM nu este suportat pe Linux și macOS. Enter-PSSession este gândit pentru lucru interactiv, nu pentru scripturi sau funcții. Alias: etsn.
Parametri
| Parametru | Descriere |
|---|---|
-ComputerName |
Numele (NetBIOS, FQDN) sau adresa IP a computerului; conexiune prin WinRM. Pentru o adresă IP ai nevoie de -Credential și de HTTPS sau de lista TrustedHosts. |
-Credential |
Contul cu care te conectezi, de exemplu EXEMPLU\ana; parola se cere la conectare. |
-Session |
O sesiune existentă, creată cu New-PSSession; după exit rămâne deschisă. |
-ConfigurationName |
Endpoint-ul de pe țintă (implicit Microsoft.PowerShell); la SSH, subsistemul. |
-UseSSL / -Port |
Conexiune HTTPS, respectiv alt port decât cel implicit. |
-HostName |
Computerul pentru SSH, opțional sub forma utilizator@gazda:port. Din PowerShell 6.0. |
-UserName |
Utilizatorul SSH (implicit, cel conectat local). Din PowerShell 6.0. |
-KeyFilePath |
Cheia privată SSH pentru autentificare fără parolă. Din PowerShell 6.0. |
-SSHTransport |
Forțează conexiunea prin SSH. Din PowerShell 6.0. |
Ce returnează
Nimic; schimbă sesiunea interactivă curentă cu cea de pe computerul țintă.
Exemple
Exemplul 1: Sesiune interactivă pe un server Windows
Fiecare comandă rulează pe SRV-IASI01; promptul arată numele serverului până la exit.
Enter-PSSession -ComputerName SRV-IASI01
hostname
Get-Service -Name Spooler
exit
Ieșire în terminal
[SRV-IASI01]: PS C:\Users\ana\Documents> hostname
SRV-IASI01
[SRV-IASI01]: PS C:\Users\ana\Documents> Get-Service -Name Spooler
Status Name DisplayName
------ ---- -----------
Running Spooler Print Spooler
[SRV-IASI01]: PS C:\Users\ana\Documents> exit
Exemplul 2: Sesiune prin SSH pe un server Linux
Utilizatorul este dat în -HostName; dacă serverul acceptă parole, ssh o cere, altfel se folosește cheia SSH.
Enter-PSSession -HostName ana@srv-cluj.exemplu.ro
$PSVersionTable.PSVersion.ToString()
Exit-PSSession
Ieșire în terminal
ana@srv-cluj.exemplu.ro's password:
[srv-cluj.exemplu.ro]: PS /home/ana> $PSVersionTable.PSVersion.ToString()
7.5.4
[srv-cluj.exemplu.ro]: PS /home/ana> Exit-PSSession
Greșeli frecvente
- Pui
Enter-PSSessionîntr-un script și aștepți ca liniile următoare să ruleze pe server: ele rulează local; în scripturi foloseșteInvoke-Command. - Te conectezi la o adresă IP și primești eroare de autentificare: cu WinRM, IP-ul cere
-Credentialși HTTPS sau adăugarea în TrustedHosts. - Te miri că în sesiune ai Windows PowerShell 5.1, nu PowerShell 7: endpoint-ul implicit este
Microsoft.PowerShell; alege endpoint-ul PowerShell 7 cu-ConfigurationName. - Aștepți ca funcțiile din profilul tău local să existe în sesiune: se încarcă profilul de pe computerul țintă, nu cel local.
Comenzi înrudite
Invoke-Command: Rulează comenzi sau scripturi pe unul sau mai multe computere deodată și aduce înapoi rezultatele, inclusiv erorile.Get-Service: Listează serviciile Windows, pornite și oprite, cu starea, numele scurt și numele afișat; există doar pe Windows.PowerShell pe macOS și Linux: Cum instalezi și pornești PowerShell 7 (pwsh) pe macOS și Linux și ce se comportă diferit față de Windows: aliasuri, majuscule, căi.