Virtuaalikoneen automaatio ja hallinta PowerShellin avulla
05/02/20167 minuuttia aikaa lukeaVoit käyttää PowerShell Directiä mielivaltaisen PowerShellin suorittamiseen Windows 10- tai Windows Server 2016 -virtuaalikoneessa Hyper-V-isännästäsi verkkomäärityksistä riippumatta. tai etähallinta-asetukset.
Tässä on joitakin tapoja, joilla voit suorittaa PowerShell Directin:
Käyttöjärjestelmävaatimukset:
Isäntä: Windows 10, Windows Server 2016 tai uudempi, jossa on Hyper-V.Guest/Virtual Machine: Windows 10, Windows Server 2016 tai uudempi.Jos hallitset vanhempia virtuaalikoneita, käytä Virtual Machine Connection (VMConnect) -sovellusta. tai määritä virtuaaliverkko virtuaalikoneen.
Määritysvaatimukset:
Virtuaalikoneen on oltava käynnissä paikallisesti isännässä.Virtuaalikoneen on oltava päällä ja käynnissä vähintään yhdellä määritetyllä käyttäjäprofiililla.Sinun on oltava kirjautuneena isäntätietokoneeseen Hyper-V-järjestelmänvalvojana.Sinun on toimitettava kelvolliset käyttäjätiedot virtuaalikoneen.Helppoin tapa suorittaa PowerShell-komentoja virtuaalikoneessa on aloittaa interaktiivinen istunto.
Kun istunto alkaa, kirjoittamasi komennot suoritetaan virtuaalikoneessa aivan kuin kirjoittaisit ne suoraan itse virtuaalikoneen PowerShell-istuntoon.
Vuorovaikutteisen istunnon aloittaminen:
Avaa PowerShell järjestelmänvalvojana Hyper-V-isännässä.
Suorita jokin seuraavista komennoista luodaksesi interaktiivisen istunnon virtuaalikoneen nimen tai GUID:n avulla:
Enter-PSSession -VMName Enter-PSSession -VMIdAnna virtuaalikoneen tunnistetiedot pyydettäessä.
Suorita komentoja virtuaalikoneellasi.Sinun pitäisi nähdä VMName PowerShell-kehotteen etuliitteenä kuvan mukaisesti:
[VMName]: PS C:\>Kaikki komennot suoritetaan virtuaalikoneellasi. Voit testata suorittamalla ipconfig- tai hostname-komennon varmistaaksesi, että nämä komennot ovat käynnissä virtuaalikoneessa.
Kun olet valmis, sulje istunto suorittamalla seuraava komento:
Exit-PSSessionHuomaa: Jos istuntosi ei muodosta yhteyttä, katso mahdolliset syyt vianetsinnästä.
Lisätietoja näistä cmdleteistä on kohdissa Enter-PSSession ja Exit-PSSession.
PowerShell Direct Invoke-Commandilla on täydellinen tilanteisiin, joissa sinun on suoritettava yksi komento tai yksi komento virtuaalikoneessa, mutta sinun ei tarvitse jatkaa vuorovaikutusta virtuaalikoneen kanssa sen jälkeen.
Yksittäisen komennon suorittaminen:
Avaa PowerShell järjestelmänvalvojana Hyper-V-isännässä.
Suorita jokin seuraavista komennoista luodaksesi istunnon käyttämällä virtuaalikoneen nimeä tai GUID-tunnusta:
Invoke-Command -VMName-ScriptBlock { komento } Invoke-Command -VMId-ScriptBlock { komento }Anna virtuaalikoneen tunnistetiedot pyydettäessä.
Komento suoritetaan virtuaalikoneessa. Jos konsoliin tulostetaan, se tulostetaan konsoliisi. Yhteys suljetaan automaattisesti heti, kun komento suoritetaan.
Skriptin suorittaminen:
Avaa PowerShell järjestelmänvalvojana Hyper-V-isännässä.
Suorita jokin seuraavista komennoista luodaksesi istunnon käyttämällä virtuaalikoneen nimeä tai GUID-tunnusta:
Invoke-Command -VMName-FilePath C:\host\script_path\script.ps1 Invoke-Command -VMId-FilePath C:\host\script_path\script.ps1Anna virtuaalikoneen tunnistetiedot pyydettäessä.
Komentosarja suoritetaan virtuaalikoneessa. Yhteys suljetaan automaattisesti heti, kun komento suoritetaan.
Lisätietoja tästä cmdletistä on kohdassa Invoke-Command.
Huomaa: PowerShell Direct tukee pysyviä istuntoja vain Windows-versioissa 14280 ja uudemmissa
Pysyvät PowerShell-istunnot ovat uskomattoman hyödyllisiä kirjoitettaessa komentosarjoja, jotka koordinoivat yhden tai useamman etäkoneen toimintoja. Kun pysyvät istunnot on luotu, ne ovat olemassa taustalla, kunnes päätät poistaa ne. Tämä tarkoittaa, että voit viitata samaan istuntoon yhä uudelleen ja uudelleen. Invoke-Commandilla tai Enter-PSSessionilla ilman valtuustietojen välittämistä.
Samalla tavalla istunnot ovat pitotilassa. Koska pysyvät istunnot jatkuvat, kaikki istunnossa luodut tai istuntoon välitetyt muuttujat säilyvät useissa kutsuissa. Pysyvien istuntojen kanssa työskentelemiseen on saatavilla useita työkaluja. Tässä esimerkissä käytämme New-PSSession- ja Copy-Item-komentoa tietojen siirtämiseen isännästä virtuaalikoneeseen ja virtuaalikoneesta isäntään.
Luo istunto ja kopioi tiedostot seuraavasti:
Avaa PowerShell järjestelmänvalvojana Hyper-V-isännässä.
Suorita jokin seuraavista komennoista luodaksesi pysyvä PowerShell-istunto virtuaalikoneeseen New-PSSessionilla.
$s = Uusi-PSSession -VMName-Credential (Get-Credential)$s = Uusi-PSSession -VMId-Credential (Get-Credential)Anna virtuaalikoneen tunnistetiedot pyydettäessä.
Varoitus: 14500:aa edeltävissä versioissa on virhe. Jos kirjautumistietoja ei ole erikseen määritetty -Credential-lipulla, vieraspalvelu kaatuu ja se on käynnistettävä uudelleen. Jos kohtaat tämän ongelman, kiertoohjeet ovat saatavilla. tässä.
Kopioi tiedosto virtuaalikoneeseen.Kopioi C:\host_path\data.txt virtuaalikoneeseen isäntäkoneesta suorittamalla:
Copy-Item -ToSession $s -Path C:\host_path\data.txt -Destination C:\vieraspolku\Kopioi tiedosto virtuaalikoneesta (isäntään).Kopioi C:\vieraspolku\data. txt isäntään virtuaalikoneesta, suorita:
Kopioi-kohde -Istunnosta $s -Path C:\vieraspolku\data.txt -Kohde C:\isäntäpolku\Pysäytä jatkuva istunto komennolla Remove-PSSession.Remove-PSSession $sSiellä ovat pieni joukko yleisiä virheilmoituksia, jotka ilmestyvät PowerShell Directin kautta. Tässä on yleisimmät, joitain syitä ja työkaluja ongelmien diagnosointiin.
Problem:Enter-PSSession-, Invoke-Command- tai New-PSSession-parametreilla ei ole -VMName- tai -VMId-parametria.
Mahdolliset syyt: Todennäköisin ongelma on, että isäntäkäyttöjärjestelmäsi ei tue PowerShell Directiä.
Voit tarkistaa Windows-koontiversiosi suorittamalla seuraavan komennon:
[System.Environment]::OSVersion.VersionJos käytät tuettua koontiversiota, on myös mahdollista, että PowerShell-versiosi ei suorita PowerShell Directiä. PowerShell Directin ja JEA:n pääversion on oltava 5 tai uudempi.
Voit tarkistaa PowerShell-versiosi koontiversion suorittamalla seuraavan komennon:
$PSVersionTable.PSVersionHuomaa: Enter-PSSession isäntäkoontiversioiden 10240 ja 12400 välillä kaikki alla olevat virheet ilmoitetaan "Etäistunto on saattanut päättyä".
Virheilmoitus:
Enter-PSSession : Tapahtui virhe, jota Windows PowerShell ei voi käsitellä. Etäistunto on saattanut päättyä.Mahdolliset syyt:
Virtuaalikone on olemassa, mutta se ei ole käynnissä. Vieras-käyttöjärjestelmä ei tue PowerShell Directiä (katso vaatimukset)PowerShell ei ole vielä saatavilla vierasversiossaKäyttöjärjestelmä ei ole vielä käynnistynytKäyttöjärjestelmä ei voi käynnistyä oikein Jotkin käynnistysaikatapahtumat tarvitsevat käyttäjän syötteenVoit käyttää Get-VM-cmdlet-komentoa tarkistaaksesi, mitkä virtuaalikoneet ovat käynnissä isännässä.
Virheilmoitus:
New-PSSession : Tapahtui virhe, jota Windows PowerShell ei voi käsitellä. Etäistunto on saattanut päättyä.Mahdolliset syyt:
Yksi edellä luetelluista syistä – ne kaikki soveltuvat yhtä lailla New-PSSessionA-virheeseen nykyisissä koontiversioissa, joissa valtuustiedot on nimenomaisesti välitettävä komennolla -Credential.Kun näin tapahtuu, koko palvelu roikkuu vieraskäyttöjärjestelmässä ja se on käynnistettävä uudelleen. Voit tarkistaa, onko istunto edelleen käytettävissä Enter-PSSessionilla.Voit kiertää kirjautumistietoongelman kirjautumalla virtuaalikoneeseen VMConnectilla, avaamalla PowerShell ja käynnistämällä vmicvmsession-palvelun uudelleen seuraavan PowerShellin avulla:
Restart-Service -Name vmicvmsessionVirheilmoitus:
Enter-PSSession : Parametrijoukkoa ei voida ratkaista määritettyjen nimettyjen parametrien avulla.Mahdolliset syyt:
-RunAsAdministratoria ei tueta, kun muodostetaan yhteys virtuaalikoneen.
Kun muodostat yhteyden Windows-säilöyn, -RunAsAdministrator-lippu sallii järjestelmänvalvojan yhteydet ilman nimenomaisia valtuustietoja.Koska virtuaalikoneet eivät anna isännälle oletettuja järjestelmänvalvojan käyttöoikeuksia, sinun on annettava tunnistetiedot erikseen.
Järjestelmänvalvojan tunnistetiedot voidaan välittää virtuaalikoneeseen -Credential-parametrilla tai syöttämällä ne manuaalisesti pyydettäessä.
Virheilmoitus:
Enter-PSSession : Valtuustiedot ovat virheelliset.Mahdolliset syyt:
Vierastunnuksia ei voitu vahvistaa. Annetut tunnistetiedot olivat virheelliset. Vierastilassa ei ole käyttäjätilejä (käyttöjärjestelmä ei ole käynnistynyt aiemmin)Jos muodostat yhteyden järjestelmänvalvojana: Järjestelmänvalvojaa ei ole asetettu aktiiviseksi käyttäjäksi.Lisätietoja täältä.< h3>Virhe: Syöte VMName-parametri ei ratkaise mitään virtuaalikonetta.Virheilmoitus:
Enter-PSSession : Syöte VMName-parametri ei ratkaise mitään virtuaalikoneita.Mahdolliset syyt:
Et ole Hyper-V-järjestelmänvalvoja. Virtuaalikonetta ei ole olemassa.Voit käyttää Get-VM-cmdlet-komentoa tarkistaaksesi, että käyttämilläsi tunnistetiedoilla on Hyper-V-järjestelmänvalvojan rooli ja mitkä virtuaalikoneet ovat toimii paikallisesti isännässä ja käynnistyy.
PowerShell Direct tukee JEA:ta (Just Enough Administration). Kokeile tätä käyttöopasta.
Katso näytteitä GitHubista.
PREV: Miksi Plex-sovellus ei löydä Plex Media Serveriäni tai muodosta yhteyttä siihen?