Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De functie Opdracht uitvoeren maakt gebruik van de VM-agent (virtuele machine) om PowerShell-scripts uit te voeren binnen een Azure Windows-VM. U kunt deze scripts gebruiken voor algemeen machine- of toepassingsbeheer. Ze kunnen u helpen om snel problemen met vm-toegang en netwerkproblemen vast te stellen en op te lossen en de VIRTUELE machine weer in een goede staat te krijgen.
Vergoedingen
U hebt op meerdere manieren toegang tot uw virtuele machines. Voer opdracht uit om scripts op uw virtuele machines op afstand uit te voeren met behulp van de VM-agent. U gebruikt De opdracht Uitvoeren via de Azure-portal, REST API of PowerShell voor Windows-VM's.
Deze mogelijkheid is handig in alle scenario's waarin u een script wilt uitvoeren binnen een virtuele machine. Het is een van de enige manieren om problemen op te lossen met een virtuele machine waarop de RDP- of SSH-poort niet is geopend vanwege een onjuiste configuratie van netwerk- of beheerdersgebruikers.
Vereisten
Ondersteunde Windows-besturingssystemen
| Versie van besturingssysteem | x64 | ARM64 |
|---|---|---|
| Windows 10 | Ondersteund | Ondersteund |
| Windows 11 | Ondersteund | Ondersteund |
| Windows Server 2016 | Ondersteund | Ondersteund |
| Windows Server 2016 Core | Ondersteund | Ondersteund |
| Windows Server 2019 | Ondersteund | Ondersteund |
| Windows Server 2019 Core | Ondersteund | Ondersteund |
| Windows Server 2022 | Ondersteund | Ondersteund |
| Windows Server 2022 Core | Ondersteund | Ondersteund |
| Windows Server 2022 Azure Edition | Ondersteund | Ondersteund |
| Windows Server 2025 | Ondersteund | Ondersteund |
| Windows Server 2025 Core | Ondersteund | Ondersteund |
| Windows Server 2025 Azure Edition | Ondersteund | Ondersteund |
Beperkingen
De volgende beperkingen zijn van toepassing wanneer u de Uitvoeropdracht gebruikt:
- De uitvoer is beperkt tot de laatste 4096 bytes.
- De minimale tijd voor het uitvoeren van een script is ongeveer 20 seconden.
- Scripts worden als Systeem uitgevoerd op Windows.
- Er kan één script tegelijk worden uitgevoerd.
- Scripts die om informatie vragen (interactieve modus) worden niet ondersteund.
- U kunt een actief script niet annuleren.
- De maximale tijd voor het uitvoeren van een script is 90 minuten. Daarna treedt een time-out op.
- Uitgaande connectiviteit van de VM is vereist om de resultaten van het script te retourneren.
- Het is niet raadzaam om een script uit te voeren waardoor de VM-agent wordt gestopt of bijgewerkt. Hierdoor kan de extensie een overgangsstatus hebben, wat leidt tot een time-out.
Notitie
Om correct te kunnen functioneren, vereist De opdracht Uitvoeren vereist connectiviteit (poort 443) naar openbare IP-adressen van Azure. Als de extensie geen toegang heeft tot deze eindpunten, worden de scripts mogelijk uitgevoerd, maar worden de resultaten niet geretourneerd. Als u verkeer op de virtuele machine blokkeert, kunt u servicetags gebruiken om verkeer naar openbare IP-adressen van Azure toe te staan met behulp van de AzureCloud tag.
De functie Opdracht uitvoeren werkt niet als de status van de VM-agent NIET GEREED is. Controleer de agentstatus in de eigenschappen van de VM in Azure Portal.
Beschikbare opdrachten
In deze tabel ziet u de lijst met opdrachten die beschikbaar zijn voor Windows-VM's. U kunt de opdracht RunPowerShellScript gebruiken om een aangepast script uit te voeren dat u wilt. Wanneer u de Azure CLI of PowerShell gebruikt om een opdracht uit te voeren, moet de waarde die u opgeeft voor de --command-id of -CommandId parameter een van de volgende vermelde waarden zijn. Wanneer u een waarde opgeeft die geen beschikbare opdracht is, wordt deze fout weergegeven:
The entity was not found in this Azure location
Beschikbare opdrachten
| CommandID | Beschrijving | Meer informatie |
|---|---|---|
| RunPowerShellScript | Een PowerShell-script uitvoeren | |
| DisableNLA | Hiermee schakelt u Verificatie op netwerkniveau (NLA) uit. U moet de virtuele machine opnieuw opstarten nadat het script is voltooid om de wijziging van kracht te laten worden. Het script zelf start de VM niet opnieuw op. | readme |
| DisableWindowsUpdate | Schakel automatische updates uit via Windows Update. | readme |
| EnableAdminAccount | Controleert of het lokale beheerdersaccount is uitgeschakeld en indien wel, schakelt het dan in. | readme |
| EnableEMS | Schakel EMS (Emergency Management Services) in om seriële consoleverbindingen mogelijk te maken in scenario's voor probleemoplossing. | readme |
| EnableRemotePS | Schakel externe PowerShell in. | readme |
| EnableWindowsUpdate | Schakel automatische updates in via Windows Update. | readme |
| IMDSCertCheck | Controleert de IMDS-status en analyseert vervolgens geïnstalleerde certificaten waarop IMDS afhankelijk is. Als dit ontbreekt, worden aanvullende details en risicobeperkingsstappen weergegeven. | readme |
| IPConfig | Geeft gedetailleerde informatie weer voor het IP-adres, subnetmasker en de standaardgateway voor elke adapter die is gebonden aan TCP/IP. Raadpleeg Scripts uitvoeren voor het gebruik ervan | readme |
| RDPSettings | Controleert registerinstellingen en domeinbeleidsinstellingen. Hiermee worden beleidsacties voorgesteld als de computer deel uitmaakt van een domein of de instellingen wijzigt in standaardwaarden. | readme |
| ResetRDPCert | Hiermee verwijdert u het SSL-certificaat dat is gekoppeld aan de RDP-listener en herstelt u de standaardbeveiliging van de RDP-listener. Gebruik dit script als u problemen met het certificaat ziet. | readme |
| SetRDPPort | Hiermee stelt u het standaardpoortnummer of het door de gebruiker opgegeven poortnummer in voor extern bureaublad-verbindingen. Hiermee schakelt u een firewallregel in voor binnenkomende toegang tot de poort. | readme |
| Windows Activation Validation | Controleert de huidige Windows-licentiestatus (geactiveerd of niet) en er wordt een waarschuwing gegenereerd als de machine niet is geactiveerd. | readme |
| WindowsGhostedNicValidationScript | Dit script scant het Windows-register voor netwerkadapters in PCI- en VMBUS-bussen, vergelijkt deze met momenteel actieve netwerkadapters en identificeert spook-NIC's. Handig voor het oplossen van netwerkproblemen of het opschonen van oude NIC's. | readme |
| WindowsUpgradeAssessmentValidation | Dit script is ontworpen om de gereedheid van een Windows-machine (client of server) te evalueren voor een in-place besturingssysteemupgrade, met speciale overwegingen voor virtuele Azure-machines. Het evalueert de versie van het besturingssysteem, ondersteunde upgradepaden, systeemschijfruimte en Azure-beveiligingsfuncties, zoals Vertrouwd starten, Beveiligd opstarten en vTPM. | readme |
Toegang tot Opdracht uitvoeren beperken
Voor het weergeven van de uitvoeringsopdrachten of het weergeven van de details van een opdracht is de Microsoft.Compute/locations/runCommands/read machtiging op abonnementsniveau vereist. De ingebouwde lezerrol en hogere niveaus hebben deze machtiging.
Voor het uitvoeren van een opdracht is de Microsoft.Compute/virtualMachines/runCommand/action machtiging vereist. De rol Inzender voor virtuele machines en hogere niveaus hebben deze machtiging.
U kunt een van de ingebouwde rollen gebruiken of een aangepaste rol maken om de opdracht Uitvoeren te gebruiken.
Run-opdrachten gebruiken
Notitie
- Parameterwaarden kunnen alleen tekenreekstype zijn en het script is verantwoordelijk voor het converteren ervan naar andere typen, indien nodig.
- Afhankelijk van welke modaliteit wordt gebruikt om uit te voeren, zijn er mogelijk escape-bewerkingen nodig. Als u bijvoorbeeld de opdracht uitvoert in een PowerShell-sessie, moet het pad naar het scriptbestand aanhalingstekens bevatten.
- De ingebouwde opdrachten kunnen niet worden bewerkt.
Ga naar een virtuele machine in Azure Portal en selecteer opdracht Uitvoeren in het linkermenu onder Bewerkingen. U ziet een lijst met de beschikbare opdrachten die op de VIRTUELE machine moeten worden uitgevoerd.
Kies een opdracht die u wilt uitvoeren. Sommige opdrachten hebben mogelijk optionele of vereiste invoerparameters. Voor deze opdrachten worden de parameters weergegeven als tekstvelden om de invoerwaarden op te geven. Voor elke opdracht kunt u het script weergeven dat wordt uitgevoerd door het weergavescript uit te vouwen. RunPowerShellScript verschilt van de andere opdrachten, omdat u hiermee uw eigen aangepaste script kunt opgeven.
Nadat u de opdracht hebt gekozen, selecteert u Uitvoeren om het script uit te voeren. Nadat het script is voltooid, worden de uitvoer en eventuele fouten in het uitvoervenster geretourneerd. In de volgende schermopname ziet u een voorbeeld van uitvoer van het uitvoeren van de RDPSettings-opdracht .
Windows-probleemoplossing voor opdracht Uitvoeren van actie
Raadpleeg het logboekbestand Run Run run van RunCommandExtension meestal in de volgende map als u problemen met de actieuitvoering voor Windows-omgevingen wilt oplossen: C:\WindowsAzure\Logs\Plugins\Microsoft.CPlat.Core.RunCommandWindows\<version>\RunCommandExtension.log voor meer informatie.
Bekende problemen
De opdrachtextensie Voor het uitvoeren van acties kan mogelijk niet worden uitgevoerd in uw Windows-omgeving als de opdracht gereserveerde tekens bevat. Voorbeeld:
Als het
&symbool wordt doorgegeven in de parameter van uw opdracht, zoals het onderstaande PowerShell-script, kan dit mislukken.$paramm='abc&jj' Invoke-AzVMRunCommand -ResourceGroupName AzureCloudService1 -Name test -CommandId 'RunPowerShellScript' -ScriptPath C:\data\228332902\PostAppConfig.ps1 -Parameter @{"Prefix" = $paramm}Gebruik het
^teken om het in het argument te escapen&, zoals$paramm='abc^&jj'De opdrachtextensie Uitvoeren kan ook niet worden uitgevoerd als de opdracht die moet worden uitgevoerd '\n' in het pad bevat, omdat deze wordt behandeld als een nieuwe regel. Bevat bijvoorbeeld
C:\Windows\notepad.exehet\nbestandspad. Overweeg om te\nvervangen door\Nin uw pad.Zorg ervoor dat u geen aangepaste instelling in de registersleutel
HKLM\SOFTWARE\Microsoft\Command Processor\AutoRunhebt (hier wordt beschreven). Dit kan worden geactiveerd tijdens de installatie van de RunCommand-extensie of het inschakelen van fasen en een fout veroorzaken zoals 'XYZ wordt niet herkend als een interne of externe opdracht, beveiligbaar programma of batchbestand'.
Opdracht Actie uitvoeren verwijderen
Raadpleeg de onderstaande stappen voor Azure PowerShell en CLI als u de windows-extensie voor het uitvoeren van acties wilt verwijderen:
Vervang rgname en vmname door de relevante resourcegroepnaam en de naam van de virtuele machine in de volgende verwijderingsvoorbeelden.
Invoke-AzVMRunCommand -ResourceGroupName 'rgname' -VMName 'vmname' -CommandId 'RemoveRunCommandWindowsExtension'
Notitie
Wanneer u een opdracht uitvoeren opnieuw toepast, wordt de extensie automatisch geïnstalleerd. U kunt de opdracht voor het verwijderen van extensies gebruiken om eventuele problemen met betrekking tot de extensie op te lossen.