Gestionarea mașinilor virtuale cu ajutorul ferestrelor cu ajutorul funcțiilor powerhell direct, microsoft docs

În acest articol

Cu PowerShell Direct, aveți posibilitatea să executați un cod PowerShell arbitrar pe o mașină virtuală care rulează Windows10 sau Windows Vista Technical Preview de pe site-ul Hyper-V, indiferent de configurația rețelei și setările de control de la distanță.







Există mai multe modalități de a porni PowerShell Direct:

cerinţe

Cerințe privind sistemul de operare:

  • Nod: Windows10, Windows Vista Technical Preview2 sau mai târziu cu Hyper-V.
  • Guest / mașină virtuală: Windows10, Windows Server Technical Preview2 sau mai târziu.

Dacă executați o versiune anterioară a mașinilor virtuale, utilizați instrumentul "Conectare la o mașină virtuală" (VMConnect) sau configurați o rețea virtuală pentru această mașină.

Cerințe de configurare:

  • Mașina virtuală trebuie să funcționeze local pe nod.
  • Mașina virtuală trebuie să fie activată și să aibă cel puțin un profil de utilizator configurat.
  • Trebuie să vă conectați la contul de administrator Hyper-V de pe computerul gazdă.
  • Trebuie să specificați o acreditare de utilizator validă pentru mașina virtuală.

Creați și încheiați o sesiune interactivă PowerShell

Pentru a rula comenzile PowerShell pe o mașină virtuală, este mai ușor să începeți o sesiune interactivă.

Când porniți o sesiune, comenzile pe care le tastați sunt executate în mașina virtuală, ca și cum le-ați introdus direct în sesiunea PowerShell de pe mașina virtuală în sine.

Pornirea unei sesiuni interactive:

Pe site-ul Hyper-V, deschideți PowerShell ca administrator.

Rulați una dintre următoarele comenzi pentru a crea o sesiune interactivă utilizând numele sau indicația GUID:

Specificați acreditările pentru mașina virtuală atunci când se afișează interogarea corespunzătoare.

Rulați comenzile de pe mașina virtuală.

Pentru linia de comandă PowerShell, prefixul VMName trebuie afișat, după cum se arată mai jos:

Orice comandă executată rulează pe mașina virtuală. Pentru a verifica, puteți rula ipconfig sau numele de gazdă. Pentru a verifica dacă aceste comenzi rulează pe o mașină virtuală.

Când ați terminat, executați următoarea comandă pentru a închide sesiunea:

Notă. Dacă sesiunea nu se conectează, consultați Diagnosticarea pentru a determina cauzele posibile.

Pentru mai multe informații despre aceste cmdlet-uri, consultați Enter-PSSession și Exit-PSSession.

Pentru a executa un script sau o comandă utilizând cmdletul Invoke-Command

PowerShell Direct cu Invoke-Command este ideal pentru situațiile în care trebuie să executați o comandă sau un script într-o mașină virtuală, după care puteți opri interacțiunea cu mașina virtuală.

Rularea unei comenzi:

Pe site-ul Hyper-V, deschideți PowerShell ca administrator.

Rulați una dintre următoarele comenzi pentru a crea o sesiune utilizând numele sau GUID-ul mașinii virtuale:

Specificați acreditările pentru mașina virtuală atunci când se afișează interogarea corespunzătoare.

Comanda este executată pe o mașină virtuală. Dacă există ieșire, ele sunt transmise la consola dumneavoastră. Conexiunea va fi închisă automat după ce începe comanda.

Pe site-ul Hyper-V, deschideți PowerShell ca administrator.

Rulați una dintre următoarele comenzi pentru a crea o sesiune utilizând numele sau GUID-ul mașinii virtuale:

Specificați acreditările pentru mașina virtuală atunci când se afișează interogarea corespunzătoare.

Scriptul rulează pe mașina virtuală. Conexiunea va fi închisă automat după ce începe comanda.







Pentru mai multe informații despre acest cmdlet, consultați Invoke-Command.

Notă. În Builds 14280 și mai târziu, PowerShell Direct suportă numai sesiuni persistente.

Sesiunile PowerShell persistente sunt extrem de utile atunci când se scriu scenarii care coordonează acțiunile pentru unul sau mai multe computere la distanță. Odată create, sesiunile persistente sunt executate în fundal, până când decideți să le ștergeți. Acest lucru înseamnă că vă puteți referi la aceeași sesiune din nou și din nou folosind Invoke-Command sau Enter-PSSession fără a trimite acreditări.

Pe site-ul Hyper-V, deschideți PowerShell ca administrator.

Rulați una dintre următoarele comenzi pentru a crea o sesiune PowerShell persistentă pentru mașina virtuală folosind New-PSSession.

Specificați acreditările pentru mașina virtuală atunci când se afișează interogarea corespunzătoare.

avertisment:
În ansamblurile care preced 14500, există o eroare. În cazul în care acreditările nu sunt specificate explicit utilizând parametrul -Credențial. serviciul de oaspeți nu reușește și trebuie repornit. Dacă întâmpinați această problemă, consultați instrucțiunile de rezolvare a acesteia.

Copiați fișierul în mașina virtuală.

Pentru a copia C: \ host_path \ data.txt pe mașina virtuală de la computerul gazdă, executați următoarea comandă:

Copiați fișierul de pe mașina virtuală (la nod).

Pentru a copia C: \ guest_path \ data.txt într-un nod din mașina virtuală, executați următoarea comandă:

Opriți sesiunea persistentă cu Remove-PSSession.

diagnosticare

PowerShell Direct afișează un mic set de mesaje despre erorile obișnuite. Mai jos sunt cele mai frecvente erori, cauze posibile și instrumente de diagnosticare.

-VMName sau -VMID nu există

Problema.
Intră-PSSession. Invoke-Command sau New-PSSession nu au parametrul -VMName sau -VMId.

Motive posibile:
Cel mai probabil, problema este că PowerShell Direct nu este suportat de sistemul de operare al serverului mașinii virtuale.

Puteți verifica ansamblul Windows folosind următoarea comandă:

Dacă utilizați o construcție acceptată, este posibil ca versiunea dvs. PowerShell să nu utilizeze PowerShell Direct. Pentru PowerShell Direct și JEA, numărul versiunii principale este de 5 sau mai mare.

Puteți verifica versiunea PowerShell utilizând următoarea comandă:

Eroare: "Este posibil ca sesiunea de la distanță să fi fost oprită"

Notă.
Pentru procedura Enter-PSSession în ansamblurile de noduri 10240 până la 12400, toate erorile descrise mai jos sunt înregistrate ca "Probabil că sesiunea la distanță a fost terminată".

Mesaj de eroare:

  • Există o mașină virtuală, dar nu există.
  • Sistemul de invitați nu suportă PowerShell Direct (a se vedea cerințele).
  • Carcasa PowerShell nu este încă disponibilă pe mașina virtuală vizitată.
    • Sistemul de operare nu este încărcat.
    • Nu este posibilă încărcarea corectă a sistemului de operare.
    • La momentul încărcării, este necesară introducerea de către utilizator.

Puteți folosi cmdletul Get-VM. Pentru a afla care mașini virtuale rulează pe nod.

Mesaj de eroare:

  • Unul dintre motivele de mai sus, ele sunt toate aplicabile în mod egal pentru New-PSSession
  • A apărut o eroare în build-urile curente atunci când doriți să transferați în mod explicit acreditările folosind -Credential. Când se întâmplă acest lucru, întregul serviciu se blochează în sistemul de operare de pe mașina virtuală și trebuie repornit. Puteți verifica disponibilitatea sesiunii cu Enter-PSSession.

Pentru a rezolva această problemă cu acreditările, conectați-vă la mașina virtuală utilizând VMConnect, deschideți PowerShell și reporniți serviciul vmicvmsession utilizând următoarea comandă PowerShell:

Eroare: setul de parametri nu poate fi rezolvat

Mesaj de eroare:

-RunAsAdministrator nu este acceptat la conectarea la mașinile virtuale.

Steagul -RunAsAdministrator permite unui administrator să se conecteze la un container Windows fără acreditări explicite. Deoarece mașinile virtuale nu oferă acces administrativ implicit la gazdă, în acest caz, trebuie să furnizați în mod explicit acreditări.

Aveți posibilitatea să transferați acreditările administratorului la mașina virtuală utilizând opțiunea -Credențială sau manual când vi se solicită.

A apărut o eroare. Acreditări nevalide.

Mesaj de eroare:

  • Acreditările pentru mașina virtuală gazdă nu pot fi verificate.
    • Au fost oferite acreditări incorecte.
    • Conturile de utilizator nu sunt prezente pe mașina virtuală vizitată (sistemul de operare nu sa încărcat)
    • În cazul conectării ca administrator: administratorul nu a fost instalat ca utilizator activ. Pentru mai multe informații, faceți clic aici.

A apărut o eroare. Parametrul de intrare VMName nu este permis în nicio mașină virtuală.

Mesaj de eroare:

  • Nu sunteți un administrator Hyper-V.
  • O mașină virtuală nu există.

Exemple și ghiduri de utilizare

PowerShell Direct suportă JEA (administrarea doar suficientă). Pentru a evalua această funcție, utilizați acest ghid de utilizare.

Vedeți exemplele de pe site-ul GitHub.







Articole similare

Trimiteți-le prietenilor: