Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Funkce Spustit příkaz používá agenta virtuálního počítače ke spouštění skriptů PowerShellu na virtuálním počítači Azure s Windows. Tyto skripty můžete použít k obecné správě počítačů nebo aplikací. Můžou vám pomoct rychle diagnostikovat a opravovat problémy s přístupem k virtuálním počítačům a sítí a získat virtuální počítač zpět do dobrého stavu.
Zaměstnanecké výhody
K virtuálním počítačům můžete přistupovat několika způsoby. Spuštěním příkazu můžete na virtuálních počítačích vzdáleně spouštět skripty pomocí agenta virtuálního počítače. Příkaz Spustit použijete prostřednictvím webu Azure Portal, rozhraní REST API nebo PowerShellu pro virtuální počítače s Windows.
Tato funkce je užitečná ve všech scénářích, ve kterých chcete spustit skript v rámci virtuálního počítače. Je to jeden z jediných způsobů řešení potíží a nápravy virtuálního počítače, který nemá otevřený port RDP nebo SSH kvůli nesprávné konfiguraci sítě nebo správce uživatele.
Požadavky
Podporované operační systémy Windows
| Verze operačního systému | x64 | ARM64 |
|---|---|---|
| Systém Windows 10 | Podporováno | Podporováno |
| Windows 11 | Podporováno | Podporováno |
| Windows Server 2016 | Podporováno | Podporováno |
| Windows Server 2016 Core | Podporováno | Podporováno |
| Windows Server 2019 | Podporováno | Podporováno |
| Windows Server 2019 Core | Podporováno | Podporováno |
| Windows Server 2022 | Podporováno | Podporováno |
| Windows Server 2022 Core | Podporováno | Podporováno |
| Windows Server 2022 Azure Edition | Podporováno | Podporováno |
| Windows Server 2025 | Podporováno | Podporováno |
| Windows Server 2025 Core | Podporováno | Podporováno |
| Windows Server 2025 Azure Edition | Podporováno | Podporováno |
Omezení
Při používání funkce Spustit příkaz platí následující omezení:
- Výstup je omezený na posledních 4 096 bajtů.
- Minimální doba potřebná ke spuštění skriptu je přibližně 20 sekund.
- Skripty se ve Windows spouštějí pod systémovým účtem.
- Najednou může být spuštěný pouze jeden skript.
- Skripty s výzvou k zadání informací (interaktivní režim) se nepodporují.
- Spuštěný skript není možné zrušit.
- Maximální doba spuštění skriptu je 90 minut. Po uplynutí této doby dojde k vypršení časového limitu skriptu.
- Pro vrácení výsledků skriptu se vyžaduje odchozí připojení z virtuálního počítače.
- Nedoporučuje se spouštět skript, který způsobí zastavení nebo aktualizaci agenta virtuálního počítače. To může rozšíření nechat v přechodném stavu, což vede k vypršení časového limitu.
Poznámka:
Ke správnému fungování vyžaduje spuštění příkazu připojení (port 443) k veřejným IP adresům Azure. Pokud rozšíření nemá přístup k těmto koncovým bodům, skripty se můžou úspěšně spustit, ale nevrací výsledky. Pokud blokujete provoz na virtuálním počítači, můžete pomocí značek služeb povolit provoz do veřejných IP adres Azure pomocí značky AzureCloud .
Funkce Spustit příkaz nefunguje, pokud není stav agenta virtuálního počítače připravený. Zkontrolujte stav agenta ve vlastnostech virtuálního počítače na webu Azure Portal.
Dostupné příkazy
Tato tabulka zobrazuje seznam příkazů dostupných pro virtuální počítače s Windows. Ke spuštění libovolného vlastního skriptu můžete použít příkaz RunPowerShellScript . Pokud ke spuštění příkazu používáte Azure CLI nebo PowerShell, hodnota, kterou zadáte pro --command-id daný parametr -CommandId , musí být jedna z následujících uvedených hodnot. Když zadáte hodnotu, která není dostupným příkazem, zobrazí se tato chyba:
The entity was not found in this Azure location
Dostupné příkazy
| CommandID | Popis | Další informace |
|---|---|---|
| RunPowerShellScript | Spustí skript PowerShellu. | |
| DisableNLA | Zakáže ověřování na úrovni sítě (NLA). Po dokončení skriptu je nutné virtuální počítač restartovat, aby se změna projevila. Samotný skript nerestartuje virtuální počítač. | readme |
| DisableWindowsUpdate | Zakažte automatické aktualizace prostřednictvím služby Windows Update. | readme |
| EnableAdminAccount | Zkontroluje, jestli je účet místního správce zakázaný a pokud ano. | readme |
| EnableEMS | Povolte službu EMS (Emergency Management Services), která umožňuje připojení sériové konzoly ve scénářích řešení potíží. | readme |
| EnableRemotePS | Povolení vzdáleného PowerShellu | readme |
| EnableWindowsUpdate | Povolte automatické aktualizace prostřednictvím služby Windows Update. | readme |
| IMDSCertCheck | Zkontroluje stav IMDS a pak analyzuje aktuálně nainstalované certifikáty, na které služba IMDS závisí. Pokud chybí, zobrazí se další podrobnosti a kroky pro zmírnění rizik. | readme |
| IpConfig | Zobrazuje podrobné informace o IP adrese, masce podsítě a výchozí bráně pro každý adaptér svázaný s protokolem TCP/IP. Informace o použití najdete v tématu Spouštění skriptů. | readme |
| RDPSettings | Zkontroluje nastavení registru a nastavení zásad domény. Navrhuje akce zásad, pokud je počítač součástí domény nebo upraví nastavení na výchozí hodnoty. | readme |
| ResetRDPCert | Odebere certifikát SSL svázaný s naslouchacím procesem RDP a obnoví zabezpečení naslouchacího procesu RDP jako výchozí. Tento skript použijte, pokud dojde k problémům s certifikátem. | readme |
| SetRDPPort | Nastaví výchozí nebo uživatelem zadané číslo portu pro připojení ke vzdálené ploše. Povolí pravidlo brány firewall pro příchozí přístup k portu. | readme |
| WindowsActivationValidation | Zkontroluje aktuální stav licence Windows (zda je aktivovaná nebo ne) a vygeneruje upozornění, pokud počítač není správně aktivován. | readme |
| WindowsGhostedNicValidationScript | Tento skript vyhledá v registru Windows síťové adaptéry na sběrnicích PCI a VMBUS, porovná je s aktuálně aktivními síťovými adaptéry a identifikuje stínové síťové karty. Užitečné při řešení potíží se sítí nebo čištění starých síťových adaptérů. | readme |
| WindowsUpgradeAssessmentValidation | Tento skript je navržený tak, aby posoudil připravenost počítače s Windows (klienta nebo serveru) na místní upgrade operačního systému s zvláštními aspekty pro virtuální počítače Azure. Vyhodnocuje verzi operačního systému, podporované cesty upgradu, systémové místo na disku a funkce zabezpečení Azure, jako je důvěryhodné spuštění, zabezpečené spouštění a virtuální počítač vTPM. | readme |
Omezení přístupu k funkci Spustit příkaz
Výpis příkazů spuštění nebo zobrazení podrobností příkazu vyžaduje Microsoft.Compute/locations/runCommands/read oprávnění na úrovni předplatného. Tato oprávnění mají předdefinovaná role Čtenář a vyšší úrovně.
Spuštění příkazu vyžaduje Microsoft.Compute/virtualMachines/runCommand/action oprávnění. Role Přispěvatel virtuálních počítačů a vyšší úrovně mají toto oprávnění.
Můžete použít některou z předdefinovaných rolí nebo vytvořit vlastní roli pro použití příkazu Spustit.
Použití příkazů Spustit
Poznámka:
- Hodnoty parametrů můžou být pouze typ řetězce a skript je v případě potřeby zodpovědný za jejich převod na jiné typy.
- V závislosti na tom, jaký způsob se používá ke spuštění, může být nutné provést určitý únik. Pokud například spouštíte příkaz v relaci PowerShellu, cesta k souboru skriptu bude muset obsahovat uvozovky.
- Předdefinované příkazy nelze upravovat.
Přejděte na virtuální počítač na webu Azure Portal a v části Operace vyberte příkaz Spustit z levé nabídky. Zobrazí se seznam dostupných příkazů pro spuštění na virtuálním počítači.
Zvolte příkaz, který chcete spustit. Některé příkazy můžou mít volitelné nebo povinné vstupní parametry. Pro tyto příkazy se parametry zobrazí jako textová pole, abyste mohli zadat vstupní hodnoty. Pro každý příkaz můžete zobrazit skript, který se spouští, rozbalením zobrazení skriptu. RunPowerShellScript se liší od ostatních příkazů, protože umožňuje zadat vlastní skript.
Po výběru příkazu vyberte Spustit a spusťte skript. Po dokončení skriptu vrátí výstup a případné chyby v okně výstupu. Následující snímek obrazovky ukazuje příklad výstupu spuštění příkazu RDPSettings .
Řešení potíží s Příkazem pro spuštění akce ve Windows
Při řešení potíží s příkazem pro spuštění akce pro prostředí Windows se podívejte na soubor protokolu RunCommandExtension , který se obvykle nachází v následujícím adresáři: C:\WindowsAzure\Logs\Plugins\Microsoft.CPlat.Core.RunCommandWindows\<version>\RunCommandExtension.log další podrobnosti.
Známé problémy
Pokud příkaz obsahuje rezervované znaky, může dojít k selhání spuštění rozšíření příkazu Spustit akci ve vašem prostředí Windows. Příklad:
&Pokud je symbol předán v parametru příkazu, jako je například následující skript PowerShellu, může selhat.$paramm='abc&jj' Invoke-AzVMRunCommand -ResourceGroupName AzureCloudService1 -Name test -CommandId 'RunPowerShellScript' -ScriptPath C:\data\228332902\PostAppConfig.ps1 -Parameter @{"Prefix" = $paramm}Použití znaku
^k řídicímu znaku&v argumentu, například$paramm='abc^&jj'Rozšíření Spustit příkaz může také selhat, pokud příkaz, který se má spustit, obsahuje v cestě "\n", protože bude považován za nový řádek. Například
C:\Windows\notepad.exeobsahuje\ncestu k souboru. Zvažte nahrazení\n\Nve vaší cestě.Ujistěte se, že v klíči
HKLM\SOFTWARE\Microsoft\Command Processor\AutoRunregistru nemáte žádné vlastní nastavení (zde podrobně). To se může aktivovat během instalace nebo povolení rozšíření RunCommand a způsobit chybu typu XYZ není rozpoznán jako interní nebo externí příkaz, operovatelný program nebo dávkový soubor.
Odebrání příkazu spustit akci
Pokud potřebujete odebrat rozšíření příkazu pro spuštění akce pro Windows, projděte si následující kroky pro Azure PowerShell a rozhraní příkazového řádku:
V následujících příkladech odebrání nahraďte název skupiny prostředků a název příslušné skupiny prostředků a název virtuálního počítače.
Invoke-AzVMRunCommand -ResourceGroupName 'rgname' -VMName 'vmname' -CommandId 'RemoveRunCommandWindowsExtension'
Poznámka:
Když znovu použijete příkaz Spustit, rozšíření se nainstaluje automaticky. K řešení jakýchkoli problémů souvisejících s rozšířením můžete použít příkaz pro odebrání rozšíření.
Další kroky
Další informace o dalších způsobech vzdáleného spouštění skriptů a příkazů na virtuálním počítači najdete v tématu Spouštění skriptů na virtuálním počítači s Windows.