Cum se execută comenzile PowerShell pe calculatoarele de la distanță
Remedierea PowerShell vă permite să executați comenzi PowerShell sau să accesați toate sesiunile PowerShell pe sistemele Windows la distanță. Este similar cu SSH pentru a accesa terminale la distanță de pe alte sisteme de operare.
PowerShell este blocat în mod implicit, așa că va trebui să activați Remedierea PowerShell înainte de ao utiliza. Acest proces de configurare este un pic mai complex dacă utilizați un grup de lucru în locul unui domeniu - de exemplu, într-o rețea de domiciliu - dar vă vom trece prin el.
Activați redarea PowerShell pe PC-ul pe care doriți să îl accesați de la distanță
Primul pas este să activați PowerShell Remoting de pe PC-ul la care doriți să faceți conexiuni la distanță. Pe acest PC, va trebui să deschideți PowerShell cu privilegii administrative.
În Windows 10, apăsați Windows + X și apoi alegeți PowerShell (Admin) din meniul Power User.
În Windows 7 sau 8, apăsați Start, apoi tastați "powershell". Faceți clic dreapta pe rezultat și alegeți "Run as administrator".
În fereastra PowerShell, tastați următorul cmdlet (numele PowerShell pentru o comandă), apoi apăsați Enter:
Activați-PSRemoting -Force
Această comandă pornește serviciul WinRM, setându-l să pornească automat cu sistemul dvs. și creează o regulă de firewall care permite conexiunile primite. -Forta
o parte din cmdlet spune PowerShell pentru a efectua aceste acțiuni fără a vă solicita pentru fiecare pas.
Dacă PC-urile fac parte dintr-un domeniu, asta e tot ce trebuie să faceți. Puteți săriți mai departe pentru a vă testa conexiunea. Dacă computerele dvs. fac parte dintr-un grup de lucru - probabil că se află într-o rețea de domiciliu sau de afaceri de dimensiuni mici - aveți mai multă muncă de configurare.
Notă: Succesul dvs. în configurarea remoting într-un mediu de domeniu depinde în întregime de configurarea rețelei dvs. Eliminarea poate fi dezactivată - sau chiar activată - automat de politica de grup configurată de un administrator. De asemenea, este posibil să nu aveți permisiunile de care aveți nevoie pentru a rula PowerShell ca administrator. Ca întotdeauna, verificați-vă cu administratorii înainte de a încerca ceva de genul asta. S-ar putea să aibă motive întemeiate să nu permită practica, sau ar putea fi dispuși să-l pregătească pentru tine.
Configurați grupul de lucru
Dacă computerele nu se află pe un domeniu, trebuie să efectuați câțiva pași pentru a crea lucrurile. Ar fi trebuit să fi activat Remoting-ul pe PC-ul la care doriți să vă conectați, așa cum am descris în secțiunea anterioară.
Notă: Pentru ca PowerShell Remoting să funcționeze într-un mediu de lucru, trebuie să configurați rețeaua ca rețea privată, nu publică. Pentru mai multe despre diferența - și despre cum să vă schimbați într-o rețea privată dacă aveți deja o rețea publică înființată - consultați ghidul nostru pe rețele private vs. publice.
Apoi, trebuie să configurați setarea TrustedHosts atât pe PC-ul la care doriți să vă conectați și PC-ul (sau PC-urile) la care doriți să vă conectați, astfel încât computerele să se încreadă reciproc. Puteți face acest lucru într-unul din două moduri.
Dacă vă aflați într-o rețea de domiciliu în care doriți să continuați și aveți încredere în orice PC care se conectează de la distanță, puteți introduce următorul cmdlet în PowerShell (din nou, va trebui să îl executați ca Administrator).
Set-item wsman: \ localhost \ client \ trustedhosts *
Asteriscul este un simbol wildcard pentru toate PC-urile. Dacă, în schimb, doriți să restricționați computerele care se pot conecta, puteți înlocui asteriscul cu o listă de adrese IP sau nume de computer separate prin virgulă pentru PC-uri aprobate.
După ce executați comanda respectivă, va trebui să reporniți serviciul WinRM astfel încât noile setări să aibă efect. Tastați următorul cmdlet și apoi apăsați Enter:
Restart-Service WinRM
Și rețineți că va trebui să rulați cele două cmdleturi pe PC-ul la care doriți să vă conectați, precum și pe toate PC-urile la care doriți să vă conectați.
Testați conexiunea
Acum că ați instalat PC-urile pentru PowerShell Remoting, este timpul să testați conexiunea. Pe computerul pe care doriți să-l accesați, trimiteți următorul cmdlet în PowerShell (înlocuind "COMPUTER" cu numele sau adresa IP a PC-ului la distanță), apoi apăsați Enter:
Test-WsMan COMPUTER
Această comandă simplă testează dacă serviciul WinRM rulează pe computerul la distanță. Dacă se termină cu succes, veți vedea informații despre serviciul WinRM al computerului la distanță în fereastră, ceea ce înseamnă că WinRM este activat și PC-ul dvs. poate comunica. Dacă comanda eșuează, veți vedea în schimb un mesaj de eroare.
Executați un singur comandă la distanță
Pentru a rula o comandă pe sistemul la distanță, utilizați Invocați-comandă
cmdlet utilizând următoarea sintaxă:
Invocare-Comandă -ComputerName COMPUTER -ScriptBlock COMMAND -creditar USERNAME
"COMPUTER" reprezintă numele sau adresa IP a computerului la distanță. "COMMAND" este comanda pe care doriți să o executați. "USERNAME" este numele de utilizator pe care doriți să îl executați ca pe computerul la distanță. Vi se va solicita să introduceți o parolă pentru numele de utilizator.
Iată un exemplu. Vreau să văd conținutul directorului C: \ pe un computer la distanță cu adresa IP 10.0.0.22. Vreau să folosesc numele de utilizator "wjgle", așa că aș folosi următoarea comandă:
Invoke-Command -ComputerName 10.0.0.22 -BlockScript Get-ChildItem C: \ -credential wjgle
Porniți o sesiune la distanță
Dacă aveți mai multe cmdleturi pe care doriți să le executați pe computerul la distanță, în loc să introduceți în mod repetat cmdlet-ul Invoke-Command și adresa IP la distanță, puteți începe în schimb o sesiune la distanță. Doar tastați următorul cmdlet și apoi apăsați Enter:
Enter-PSSession -ComputerName COMPUTER -Utilizator cu caracter informativ
Din nou, înlocuiți "COMPUTER" cu numele sau adresa IP a PC-ului la distanță și înlocuiți "USER" cu numele contului de utilizator pe care doriți să-l invocați.
Modificarea dvs. promptă indică computerul la distanță la care sunteți conectat și puteți executa orice număr de cmdleturi PowerShell direct pe sistemul de la distanță.