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 későbbi verziójú 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
Követelmények
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álja a Virtuálisgép-kapcsolatot (VMConnect), vagy konfiguráljon egy virtuális hálózatot a virtuális géphez.
Konfigurációs követelmények:
- A virtuális gépnek helyileg kell futnia az adott gazdagépen.
- A virtuális gépet be kell kapcsolni, és legalább egy konfigurált felhasználói profillal kell futtatni.
- A számítógépre mint 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 rendszergazdaként a PowerShellt.
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>
Adja meg a virtuális gép hitelesítő adatait, amikor a rendszer kéri.
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 parancsfuttatások a virtuális gépen fognak futni. A teszteléshez futtathatja
ipconfig
vagyhostname
ellenőrizheti, hogy ezek a parancsok 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, nézze meg a hibaelhárítást a lehetséges okokért.
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 ideális olyan helyzetekhez, 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 rendszergazdaként a PowerShellt.
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 }
Adja meg a virtuális gép hitelesítő adatait, amikor a rendszer kéri.
A parancs a virtuális gépen lesz végrehajtva, ha a konzol kimenete van, az a konzolra lesz nyomtatva. A parancs futtatása után a rendszer automatikusan bezárja a kapcsolatot.
Szkript futtatása:
A Hyper-V gazdagépen nyissa meg rendszergazdaként a PowerShellt.
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.ps1
Adja meg a virtuális gép hitelesítő adatait, amikor a rendszer kéri.
A szkript a virtuális gépen lesz végrehajtva. A parancs futtatása után a rendszer automatikusan bezárja a kapcsolatot.
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 Invoke-Command
vagy Enter-PSSession
használatával anélkül, hogy hitelesítő adatokat kellene átadnia.
Ugyanígy, 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. Számos eszköz áll rendelkezésre az állandó munkamenetek működéséhez. Ebben a példában New-PSSession és Copy-Item használatával helyezünk át adatokat 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 rendszergazdaként a PowerShellt.
Futtassa az alábbi parancsok egyikét, hogy létrehozzon egy állandó PowerShell-munkamenetet a virtuális géppel a
New-PSSession
használatával.$s = New-PSSession -VMName <VMName> -Credential (Get-Credential) $s = New-PSSession -VMId <VMId> -Credential (Get-Credential)
Adja meg a virtuális gép hitelesítő adatait, amikor a rendszer kéri.
Figyelmeztetés
Az 14500 előtti buildekben hiba történt. Ha a hitelesítő adatok nincsenek explicit módon megadva jelölővel
-Credential
, a vendég szolgáltatása összeomlik, és újra kell indítani. Ha ezt a problémát tapasztalja, az „Hiba: Lehetséges, hogy egy távoli munkamenet véget ért” című szakaszban talál átmeneti megoldást.Másolja a fájlt a virtuális gépre.
A gazdagépről a virtuális gépre való másoláshoz futtassa a
C:\host_path\data.txt
parancsot.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).
Annak érdekében, hogy
C:\guest_path\data.txt
a virtuális gépről a gazdagépre másolhassa, futtassa a következő parancsot: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 Directben néhány gyakori hibaüzenet jelenik 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 PowerShell Directet nem támogatja a gazdagép operációs rendszere.
A Windows-buildet az alábbi parancs futtatásával ellenőrizheti:
[System.Environment]::OSVersion.Version
Ha támogatott buildet futtat, az is lehetséges, hogy a PowerShell-verzió nem futtatja 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:
A Enter-PSSession esetében a gazdagép-buildek 10240 és 12400 között minden hiba az alábbi üzenet alatt jelent meg: "A 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ég operációs rendszerben
- 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 fent felsorolt okok egyike – mind egyformán alkalmazhatók a
New-PSSession
- Hiba az aktuális buildekben, ahol a hitelesítő adatokat explicit módon kell átadni
-Credential
. Ha ez történik, 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ő adatok problémájának 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-lel:
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éterekkel.
Lehetséges okok:
-RunAsAdministrator
virtuális gépekhez való csatlakozáskor nem támogatott.Windows-tárolóhoz való csatlakozáskor a jelző engedélyezi a
-RunAsAdministrator
rendszergazdai 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épnek, explicit módon meg kell adnia a hitelesítő adatokat.
A rendszergazdai hitelesítő adatok átadhatók a virtuális gépnek a -Credential
paraméterrel, vagy ha a rendszer kéri, manuálisan adja meg őket.
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 még 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éséről és letiltásról.
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őrizheti, 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.