Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A PowerShell Direct használatával tetszőleges PowerShellt futtathat Windows 10 vagy újabb, illetve Windows Server 2016 vagy újabb rendszerű virtuális gépen a Hyper-V gazdagépről. A PowerShell Direct használata a hálózati konfigurációtól és a távfelügyeleti beállításoktól függetlenül.
A PowerShell Direct futtatásának néhány módja:
- Interaktív munkamenetként a Enter-PSSession parancsmag használatával
- Önállóan használható szakaszként egyetlen parancs vagy szkript végrehajtásához a Invoke-Command parancsmaggal
- Állandó munkamenetként (14280-as és újabb build) a New-PSSession, a Copy-Item és a Remove-PSSession parancsmagok használatával
Requirements
Az operációs rendszer követelményei:
- Gazdagép: Hyper-V-t futtató Windows 10, Windows Server 2016 vagy újabb.
- Vendég/virtuális gép: Windows 10, Windows Server 2016 vagy újabb.
Ha régebbi virtuális gépeket kezel, használjon virtuálisgép-kapcsolatot (VMConnect) vagy csatlakozzon hálózati kapcsolaton keresztül.
Konfigurációs követelmények:
- A virtuális gépnek helyileg kell futnia a gazdagépen.
- A virtuális gépet be kell kapcsolni, és legalább egy konfigurált felhasználói profillal kell futtatni.
- A gazdagépre Hyper-V rendszergazdaként kell bejelentkeznie.
- Érvényes felhasználói hitelesítő adatokat kell megadnia a virtuális géphez.
Interaktív PowerShell-munkamenet létrehozása és kilépése
A PowerShell-parancsok virtuális gépen való futtatásának legegyszerűbb módja egy interaktív munkamenet indítása.
A munkamenet indításakor a beírt parancsok ugyanúgy futnak a virtuális gépen, mintha közvetlenül beírta őket egy PowerShell-munkamenetbe a virtuális gépen.
Interaktív munkamenet indítása:
A Hyper-V gazdagépen nyissa meg a PowerShellt rendszergazdaként.
Futtassa az alábbi parancsok egyikét egy interaktív munkamenet létrehozásához a virtuális gép nevével vagy GUID-jának használatával:
Enter-PSSession -VMName <VMName> Enter-PSSession -VMId <VMId>Amikor a rendszer kéri, adja meg a virtuális gép hitelesítő adatait.
Parancsok futtatása a virtuális gépen. A PowerShell-parancssor előtagjaként a virtuálisgép-nevet kell látnia a következő módon:
[VMName]: PS C:\>A futtatott parancsok végrehajtása a virtuális gépen történik. A teszteléshez futtassa a
ipconfigvagy ahostnameparancsot, hogy meggyőződjön arról, ezek a parancsok valóban futnak-e a virtuális gépen.Ha végzett, futtassa a következő parancsot a munkamenet bezárásához:
Exit-PSSession
Megjegyzés:
Ha a munkamenet nem csatlakozik, tekintse meg a lehetséges okok hibaelhárítását .
További információ ezekről a parancsmagokról: Enter-PSSession and Exit-PSSession.
Szkript vagy parancs futtatása Invoke-Command
A PowerShell Direct és a Invoke-Command olyan helyzetekhez ideális, amikor egy parancsot vagy egy szkriptet kell futtatnia egy virtuális gépen, de nem kell tovább használnia a virtuális gépet ezen a ponton túl.
Egyetlen parancs futtatásához:
A Hyper-V gazdagépen nyissa meg a PowerShellt rendszergazdaként.
Futtassa az alábbi parancsok egyikét egy munkamenet létrehozásához a virtuális gép nevének vagy GUID-jának használatával:
Invoke-Command -VMName <VMName> -ScriptBlock { command } Invoke-Command -VMId <VMId> -ScriptBlock { command }Amikor a rendszer kéri, adja meg a virtuális gép hitelesítő adatait.
A parancs a virtuális gépen fut. Ha a parancs kimenetet hoz létre, a konzolon láthatja. A parancs futtatásakor a kapcsolat automatikusan bezárul.
Szkript futtatása:
A Hyper-V gazdagépen nyissa meg a PowerShellt rendszergazdaként.
Futtassa az alábbi parancsok egyikét egy munkamenet létrehozásához a virtuális gép nevének vagy GUID-jának használatával:
Invoke-Command -VMName <VMName> -FilePath C:\host\script_path\script.ps1 Invoke-Command -VMId <VMId> -FilePath C:\host\script_path\script.ps1Amikor a rendszer kéri, adja meg a virtuális gép hitelesítő adatait.
A szkript a virtuális gépen fut. A parancs futtatásakor a kapcsolat automatikusan bezárul.
A parancsmaggal kapcsolatos további információkért lásd: Invoke-Command.
Fájlok másolása New-PSSession és Copy-Item
Megjegyzés:
A PowerShell Direct csak az állandó munkameneteket támogatja a Windows 14280-as és újabb buildjeiben
Az állandó PowerShell-munkamenetek hihetetlenül hasznosak olyan szkriptek írásakor, amelyek egy vagy több távoli gépen koordinálják a műveleteket. A létrehozás után állandó munkamenetek léteznek a háttérben, amíg el nem dönti, hogy törli őket. Ez azt jelenti, hogy újra és újra hivatkozhat ugyanarra a munkamenetre hitelesítő adatok átadásával Invoke-Command vagy Enter-PSSession anélkül.
Ugyanezzel a jogkivonattal a munkamenetek állapotot tartanak. Mivel az állandó munkamenetek továbbra is megmaradnak, a munkamenetben létrehozott vagy egy munkamenetnek átadott változók több hívás során is megmaradnak. Az állandó munkamenetek használatához számos eszköz használható. Ebben a példában a New-PSSession és Copy-Item parancsokat használja az adatok áthelyezésére a gazdagépről egy virtuális gépre, illetve egy virtuális gépről a gazdagépre.
Munkamenet létrehozásához másolja a fájlokat:
A Hyper-V gazdagépen nyissa meg a PowerShellt rendszergazdaként.
Futtassa az alábbi parancsok egyikét egy állandó PowerShell-munkamenet létrehozásához a virtuális gépen a következő paranccsal
New-PSSession: .$s = New-PSSession -VMName <VMName> -Credential (Get-Credential) $s = New-PSSession -VMId <VMId> -Credential (Get-Credential)Amikor a rendszer kéri, adja meg a virtuális gép hitelesítő adatait.
Figyelmeztetés
Az 14500 előtti buildekben hiba történt. Ha nem ad meg explicit módon hitelesítő adatokat a
-Credentialjelölővel, a vendégszolgáltatás összeomlik, és újra kell indítani. Ha ezt a problémát tapasztalja, olvassa el a Hiba: Lehetséges, hogy egy távoli munkamenet véget ért részt a megoldási útmutatóért.Másolja a fájlt a virtuális gépre.
A gazdagépről a virtuális gépre való másoláshoz
C:\host_path\data.txtfuttassa a következőt:Copy-Item -ToSession $s -Path C:\host_path\data.txt -Destination C:\guest_path\Fájl másolása a virtuális gépről (a gazdagépre).
A virtuális gépről a gazdagépre való másoláshoz
C:\guest_path\data.txtfuttassa a következőt:Copy-Item -FromSession $s -Path C:\guest_path\data.txt -Destination C:\host_path\Állítsa le az állandó munkamenetet a következő használatával
Remove-PSSession: .Remove-PSSession $s
Hibaelhárítás
A PowerShell Direct néhány gyakori hibaüzenetet jelenít meg. A következő szakaszok a leggyakoribb hibaüzeneteket, néhány okot és a problémák diagnosztizálását szolgáló eszközöket ismertetik.
-VMName vagy -VMID paraméterek nem léteznek
Probléma:
Enter-PSSession, Invoke-Command, vagy New-PSSession nem rendelkezik -VMName vagy -VMId paraméterrel.
Lehetséges okok:
A legvalószínűbb probléma az, hogy a gazdagép operációs rendszere nem támogatja a PowerShell Directet.
A Windows-buildet az alábbi parancs futtatásával ellenőrizheti:
[System.Environment]::OSVersion.Version
Ha támogatott buildet futtat, előfordulhat, hogy a PowerShell verziója nem támogatja a PowerShell Directet. A PowerShell Direct és a JEA esetében a főverziónak 5 vagy újabbnak kell lennie.
A PowerShell-verzió buildjének ellenőrzéséhez futtassa a következő parancsot:
$PSVersionTable.PSVersion
Hiba: Lehet, hogy egy távoli munkamenet véget ért
Megjegyzés:
Az 10240-as és 12400-as gazdagép buildjei közötti Enter-PSSession során minden hiba úgy jelentkezik, mint "Távoli munkamenet lehet, hogy véget ért".
Hibaüzenet:
Enter-PSSession: Hiba történt, amelyet a Windows PowerShell nem tud kezelni. Lehet, hogy egy távoli munkamenet véget ért.
Lehetséges okok:
- A virtuális gép létezik, de nem fut.
- A vendég operációs rendszer nem támogatja a PowerShell Directet. Lásd a követelményeket.
- A PowerShell még nem érhető el a vendégben
- Az operációs rendszer még nem fejezte be a rendszerindítást
- Az operációs rendszer nem tud megfelelően elindulni
- Néhány rendszerindítási idő eseményhez felhasználói bevitel szükséges
A Get-VM parancsmaggal ellenőrizheti, hogy mely virtuális gépek futnak a gazdagépen.
Hibaüzenet:
New-PSSession: Hiba történt, amelyet a Windows PowerShell nem tud kezelni. Lehet, hogy egy távoli munkamenet véget ért.
Lehetséges okok:
- A korábban felsorolt okok egyike – mindegyik vonatkozik a
New-PSSession-ra. - Hiba az aktuális verziókban, ahol a
-Credentialhasználatával explicit módon meg kell adnia a hitelesítő adatokat. Ha ez a hiba jelentkezik, a teljes szolgáltatás lefagy a vendég operációs rendszerben, és újra kell indítani. Ellenőrizheti, hogy a munkamenet továbbra is elérhető-e az Enter-PSSession használatával.
A hitelesítő adatokkal kapcsolatos probléma megoldásához jelentkezzen be a virtuális gépre a VMConnect használatával, nyissa meg a PowerShellt, és indítsa újra a vmicvmsession szolgáltatást a következő PowerShell-paranccsal:
Restart-Service -Name vmicvmsession
Hiba: A paraméterkészlet nem oldható fel
Hibaüzenet:
Enter-PSSession: A paraméterkészlet nem oldható fel a megadott elnevezett paraméterek használatával.
Lehetséges okok:
Virtuális gépekhez való csatlakozáskor nem használható
-RunAsAdministrator.Windows-tárolóhoz való csatlakozáskor a jelző engedélyezi a
-RunAsAdministratorrendszergazdai kapcsolatokat explicit hitelesítő adatok nélkül. Mivel a virtuális gépek nem biztosítanak hallgatólagos rendszergazdai hozzáférést a gazdagép számára, ezért explicit módon meg kell adnia a hitelesítő adatokat.
A paraméterrel rendszergazdai hitelesítő adatokat adhat át a -Credential virtuális gépnek, vagy manuálisan is megadhatja őket, amikor a rendszer kéri.
Hiba: A hitelesítő adatok érvénytelenek
Hibaüzenet:
Enter-PSSession: A hitelesítő adatok érvénytelenek.
Lehetséges okok:
- A vendég hitelesítő adatai nem érvényesíthetők
- A megadott hitelesítő adatok helytelenek voltak.
- Nincsenek felhasználói fiókok a vendégben (az operációs rendszer korábban nem indult el)
- Ha rendszergazdaként csatlakozik: A rendszergazda nincs aktív felhasználóként beállítva. További információ: A beépített rendszergazdai fiók engedélyezése és letiltása.
Hiba: A bemeneti VMName paraméter nem oldható fel egyetlen virtuális gépre sem.
Hibaüzenet:
Enter-PSSession: A bemeneti VMName paraméter nem oldható fel egyetlen virtuális gépre sem.
Lehetséges okok:
- Ön nem Hyper-V rendszergazda.
- A virtuális gép nem létezik.
A Get-VM parancsmaggal ellenőrizze, hogy a használt hitelesítő adatok rendelkeznek-e a Hyper-V rendszergazdai szerepkörrel, és hogy mely virtuális gépek futnak helyileg a gazdagépen, és melyek indulnak el.
Minták és felhasználói útmutatók
A PowerShell Direct támogatja a Just Enough Administration (JEA) használatát.
Minták megtekintése a GitHubon.