• Digitální příslušenství
  • Server
  • Digitální život
  • Zásady ochrany osobních údajů
  • Kontaktujte nás
  1. Domov
  2. Článek
  3. Správa virtuálních počítačů Windows pomocí PowerShell Direct...

Správa virtuálních počítačů Windows pomocí PowerShell Direct...

Rsdaa 12/02/2022 1846

Automatizace a správa virtuálních strojů pomocí prostředí PowerShell

05/02/20167 minut ke čtení

V tomto článku

Pomocí PowerShell Direct můžete spustit libovolný PowerShell ve virtuálním počítači s Windows 10 nebo Windows Server 2016 z hostitele Hyper-V bez ohledu na konfiguraci sítě nebo nastavení vzdálené správy.

Zde je několik způsobů, jak spustit PowerShell Direct:

Požadavky

Požadavky na operační systém:

Hostitel: Windows 10, Windows Server 2016 nebo novější se systémem Hyper-V.Guest/Virtual Machine: Windows 10, Windows Server 2016 nebo novější.

Pokud spravujete starší virtuální počítače, použijte Virtual Machine Connection (VMConnect) nebo nakonfigurujte virtuální síť pro virtuální počítač.

Požadavky na konfiguraci:

Virtuální počítač musí být spuštěn lokálně na hostiteli. Virtuální počítač musí být zapnutý a spuštěný s alespoň jedním nakonfigurovaným uživatelským profilem. Musíte být přihlášeni k hostitelskému počítači jako správce Hyper-V. Musíte zadat platná pověření uživatele pro virtuální počítač.

Vytvoření a ukončení interaktivní relace prostředí PowerShell

Nejjednodušší způsob, jak spouštět příkazy prostředí PowerShell ve virtuálním počítači, je spustit interaktivní relaci.

Když se relace spustí, příkazy, které zadáte, se spustí na virtuálním počítači, jako byste je zadali přímo do relace PowerShellu na samotném virtuálním počítači.

Zahájení interaktivní relace:

Na hostiteli Hyper-V otevřete PowerShell jako správce.

Spusťte jeden z následujících příkazů a vytvořte interaktivní relaci pomocí názvu virtuálního počítače nebo GUID:

Enter-PSSession -VMName Enter-PSSession -VMId

Po zobrazení výzvy zadejte přihlašovací údaje pro virtuální počítač.

Spouštějte příkazy na svém virtuálním počítači.

Měli byste vidět VMName jako předponu pro výzvu PowerShellu, jak je znázorněno:

[VMName]: PS C:\>

Na vašem virtuálním počítači bude spuštěn jakýkoli příkaz. Chcete-li to otestovat, můžete spustit příkaz ipconfig nebo hostname, abyste se ujistili, že tyto příkazy běží na virtuálním počítači.

Až budete hotovi, spusťte následující příkaz a zavřete relaci:

Exit-PSSession

Poznámka: Pokud se vaše relace nepřipojí, podívejte se na řešení problémů s možnými příčinami.

Další informace o těchto rutinách naleznete v části Enter-PSSession a Exit-PSSession.

Spuštění skriptu nebo příkazu pomocí Invoke-Command

PowerShell Direct s Invoke-Command je ideální pro situace, kdy potřebujete spustit jeden příkaz nebo jeden skript na virtuálním počítači, ale nepotřebujete pokračovat v interakci. s virtuálním strojem za tímto bodem.

Spuštění jednoho příkazu:

Na hostiteli Hyper-V otevřete PowerShell jako správce.

Spusťte jeden z následujících příkazů a vytvořte relaci pomocí názvu virtuálního počítače nebo GUID:

Invoke-Command -VMName-ScriptBlock { command } Invoke-Command -VMId-ScriptBlock { command }

Po zobrazení výzvy zadejte přihlašovací údaje pro virtuální počítač.

Příkaz se spustí na virtuálním počítači, pokud je výstup na konzoli, vytiskne se na vaší konzoli. Připojení bude automaticky ukončeno, jakmile se příkaz spustí.

Spuštění skriptu:

Na hostiteli Hyper-V otevřete PowerShell jako správce.

Spusťte jeden z následujících příkazů a vytvořte relaci pomocí názvu virtuálního počítače nebo GUID:

Invoke-Command -VMName-FilePath C:\host\script_path\script.ps1 Invoke-Command -VMId-FilePath C:\host\script_path\script.ps1

Po zobrazení výzvy zadejte přihlašovací údaje pro virtuální počítač.

Skript se spustí na virtuálním počítači. Připojení bude automaticky ukončeno, jakmile bude příkaz spuštěn.

Další informace o této rutině naleznete v tématu Invoke-Command.

Kopírování souborů pomocí New-PSSession a Copy-Item

Poznámka: PowerShell Direct podporuje trvalé relace pouze v sestaveních Windows 14280 a novějších

Trvalé relace PowerShellu jsou neuvěřitelně užitečné při psaní skriptů, které koordinují akce na jednom nebo více vzdálených počítačích. Po vytvoření přetrvávají trvalé relace na pozadí, dokud se nerozhodnete je smazat. To znamená, že na stejnou relaci můžete odkazovat znovu a znovu. s Invoke-Command nebo Enter-PSSession bez předávání přihlašovacích údajů.

Na základě stejného tokenu jsou relace udržovány ve stavu. Protože přetrvávající relace přetrvávají, všechny proměnné vytvořené v relaci nebo předané relaci budou zachovány během několika volání. Pro práci s trvalými relacemi je k dispozici řada nástrojů. V tomto příkladu použijeme New-PSSession a Copy-Item k přesunu dat z hostitele na virtuální stroj az virtuálního stroje na hostitele.

Chcete-li vytvořit relaci a poté zkopírovat soubory:

Na hostiteli Hyper-V otevřete PowerShell jako správce.

Spusťte jeden z následujících příkazů a vytvořte trvalou relaci PowerShellu na virtuálním počítači pomocí New-PSSession.

$s = New-PSSession -VMName-Credential (Get-Credential)$s = New-PSSession -VMId-Credential (Get-Credential)

Po zobrazení výzvy poskytněte přihlašovací údaje pro virtuální počítač.

Upozornění: V sestaveních před 14500 se vyskytuje chyba. Pokud nejsou pověření výslovně specifikována pomocí příznaku -Credential, služba v hostovi se zhroutí a bude nutné ji restartovat. Pokud narazíte na tento problém, jsou k dispozici pokyny k řešení tady.

Zkopírujte soubor do virtuálního počítače.

Chcete-li zkopírovat C:\cesta_hostitele\data.txt do virtuálního počítače z hostitelského počítače, spusťte:

Kopírovat-položku -ToSession $s -Cesta C:\cesta_hostitele\data.txt -Cíl C:\cesta_hostitele\Zkopírujte soubor z virtuálního počítače (na hostitele).

Pro zkopírování C:\cesta_hostitele\data. txt na hostitele z virtuálního počítače, spusťte:

Copy-Item -FromSession $s -Path C:\guest_path\data.txt -Cíl C:\host_path\Zastavte trvalou relaci pomocí Remove-PSSession.Remove-PSSession $s

Odstraňování problémů

Tam je malá sada běžných chybových zpráv, které se objevují prostřednictvím PowerShell Direct. Zde jsou nejčastější, některé příčiny a nástroje pro diagnostiku problémů.

Parametry -VMName nebo -VMID neexistují

Problém: Enter-PSSession, Invoke-Command nebo New-PSSession nemají parametr -VMName nebo -VMId.

Možné příčiny: Nejpravděpodobnějším problémem je, že váš hostitelský operační systém nepodporuje PowerShell Direct.

Sestavení systému Windows můžete zkontrolovat spuštěním následujícího příkazu:

[System.Environment]::OSVersion.Version

Pokud používáte podporované sestavení, je také možné, že vaše verze PowerShell nespouští PowerShell Direct. Pro PowerShell Direct a JEA musí být hlavní verze 5 nebo novější.

Svoji verzi PowerShellu můžete zkontrolovat spuštěním následujícího příkazu:

$PSVersionTable.PSVersion

Chyba: Vzdálená relace mohla skončit

Poznámka: U Enter-PSSession mezi sestaveními hostitele 10240 a 12400 jsou všechny níže uvedené chyby hlášeny jako „Vzdálená relace mohla být ukončena“.

Chybová zpráva:

Enter-PSSession: Došlo k chybě, kterou Windows PowerShell nedokáže zpracovat. Vzdálená relace mohla být ukončena.

Možné příčiny:

Virtuální počítač existuje, ale neběží. Hostující operační systém nepodporuje PowerShell Direct (viz požadavky) PowerShell zatím není v hostovi k dispozici Operační systém nedokončil spouštění Operační systém nelze správně zavéstNěkterá událost doby spouštění vyžaduje vstup uživatele

Ke kontrole, které virtuální počítače běží na hostiteli, můžete použít rutinu Get-VM.

Chybová zpráva:

New-PSSession : Došlo k chybě, kterou Windows PowerShell nedokáže zpracovat. Vzdálená relace mohla být ukončena.

Možné příčiny:

Jeden z důvodů uvedených výše -- všechny jsou stejně použitelné pro chybu New-PSSessionA v aktuálních sestaveních, kde musí být pověření explicitně předáno pomocí -Credential. Když k tomu dojde, celá služba se zasekne v hostujícím operačním systému a je třeba ji restartovat. Můžete zkontrolovat, zda je relace stále dostupná pomocí Enter-PSSession.

Chcete-li vyřešit problém s pověřením, přihlaste se k virtuálnímu počítači pomocí VMConnect, otevřete PowerShell a restartujte službu vmicvmsession pomocí následujícího prostředí PowerShell:

Restart-Service -Name vmicvmsession

Chyba: Sadu parametrů nelze vyřešit

Chybová zpráva:

Enter-PSSession : Sadu parametrů nelze vyřešit pomocí zadaných pojmenovaných parametrů.

Možné příčiny:

-RunAsAdministrator není podporován při připojování k virtuálním počítačům.

Při připojování ke kontejneru systému Windows umožňuje příznak -RunAsAdministrator připojení správce bez explicitních pověření. Protože virtuální počítače nedávají hostiteli předpokládaný administrátorský přístup, musíte pověření zadat explicitně.

Pověření správce lze předat virtuálnímu počítači pomocí parametru -Credential nebo jejich ručním zadáním na výzvu.

Chyba: Pověření je neplatné.

Chybová zpráva:

Enter-PSSession: Pověření je neplatné.

Možné příčiny:

Nepodařilo se ověřit přihlašovací údaje hostaZadané přihlašovací údaje byly nesprávné.V hostu nejsou žádné uživatelské účty (OS se předtím nespustil)Pokud se připojujete jako správce:Administrátor nebyl nastaven jako aktivní uživatel.Další informace naleznete zde.< h3>Chyba: Vstupní parametr VMName nelze přeložit na žádný virtuální počítač.

Chybová zpráva:

Enter-PSSession : Vstupní parametr VMName nelze přeložit na žádný virtuální počítač.

Možné příčiny:

Nejste správce Hyper-V. Virtuální počítač neexistuje.

Pomocí rutiny Get-VM můžete zkontrolovat, zda přihlašovací údaje, které používáte, mají roli správce Hyper-V a zjistit, které virtuální počítače jsou běží lokálně na hostiteli a nabootuje se.

Ukázky a uživatelské příručky

PowerShell Direct podporuje JEA (Just Enough Administration). Vyzkoušejte to v této uživatelské příručce.

Prohlédněte si ukázky na GitHubu.


PREV: Proč aplikace Plex nemůže najít můj Plex Media Server nebo se k němu připojit?

NEXT: Staňte se procesním serverem | ABC Legal

Populární články

Žhavé články

Navigační seznamy

Zpět na začátek