Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Funktionen Kör kommando använder den virtuella datoragenten (VM) för att köra PowerShell-skript på en virtuell Azure Windows-dator. Du kan använda de här skripten till allmän hantering av datorer eller program. De kan hjälpa dig att snabbt diagnostisera och åtgärda problem med åtkomst till virtuella datorer och nätverk och få tillbaka den virtuella datorn till ett bra tillstånd.
Förmåner
Du kan komma åt dina virtuella datorer på flera sätt. Kör kommandot kan fjärrköra skript på dina virtuella datorer med hjälp av VM-agenten. Du använder Kör kommando via Azure Portal, REST API eller PowerShell för virtuella Windows-datorer.
Den här funktionen är användbar i alla scenarier där du vill köra ett skript på en virtuell dator. Det är ett av de enda sätten att felsöka och åtgärda en virtuell dator som inte har RDP- eller SSH-porten öppen på grund av felaktig nätverks- eller administratörskonfiguration.
Förutsättningar
Windows-operativsystem stöds
| OS-version | x64 | ARM64 |
|---|---|---|
| Windows 10 | Stöds | Stöds |
| Windows 11 | Stöds | Stöds |
| Windows Server 2016 | Stöds | Stöds |
| Windows Server 2016 Core | Stöds | Stöds |
| Windows Server 2019 | Stöds | Stöds |
| Windows Server 2019 Core | Stöds | Stöds |
| Windows Server 2022 | Stöds | Stöds |
| Windows Server 2022 Core | Stöds | Stöds |
| Windows Server 2022 Azure Edition | Stöds | Stöds |
| Windows Server 2025 | Stöds | Stöds |
| Windows Server 2025 Core | Stöds | Stöds |
| Windows Server 2025 Azure Edition | Stöds | Stöds |
Begränsningar
Följande begränsningar gäller när du använder Kör kommando:
- Utdata är begränsade till de senaste 4 096 bytena.
- Den minsta tiden för att köra ett skript är cirka 20 sekunder.
- Skript körs som system på Windows.
- Ett skript i taget kan köras.
- Skript som frågar efter information (interaktivt läge) stöds inte.
- Du kan inte avbryta ett skript som körs.
- Den maximala tiden som ett skript kan köras är 90 minuter. Efter det tar tidsgränsen slut.
- Utgående anslutning från den virtuella datorn krävs för att returnera resultatet av skriptet.
- Vi rekommenderar inte att du kör ett skript som gör att vm-agenten stoppas eller uppdateras. På så sätt kan tillägget vara i ett övergångstillstånd, vilket leder till en timeout.
Kommentar
Kör kommandot kräver anslutning (port 443) till offentliga IP-adresser i Azure för att fungera korrekt. Om tillägget inte har åtkomst till dessa slutpunkter kan skripten köras korrekt men inte returnera resultaten. Om du blockerar trafik på den virtuella datorn kan du använda tjänsttaggar för att tillåta trafik till offentliga IP-adresser i Azure med hjälp av taggen AzureCloud .
Funktionen Kör kommando fungerar inte om VM-agentens status inte är KLAR. Kontrollera agentstatusen i den virtuella datorns egenskaper i Azure Portal.
Tillgängliga kommandon
Den här tabellen visar listan över kommandon som är tillgängliga för virtuella Windows-datorer. Du kan använda RunPowerShellScript-kommandot för att köra alla anpassade skript som du vill. När du använder Azure CLI eller PowerShell för att köra ett kommando måste värdet som du anger för parametern --command-id eller -CommandId vara något av följande angivna värden. När du anger ett värde som inte är ett tillgängligt kommando får du följande fel:
The entity was not found in this Azure location
Tillgängliga kommandon
| CommandID | Beskrivning | Mer information |
|---|---|---|
| RunPowerShellScript | Kör ett PowerShell-skript | |
| IPConfig | Visar detaljerad information för IP-adressen, nätmasken och standard-gateway för varje nätverksadapter som är bunden till TCP/IP. Mer information om användning finns i Kör skript | readme |
| AktiveraWindowsUpdate | Aktivera automatiska uppdateringar via Windows Update. | readme |
| InaktiveraWindowsUpdate | Inaktivera automatiska uppdateringar via Windows Update. | readme |
| EnableAdminAccount | Kontrollerar om det lokala administratörskontot är inaktiverat och i så fall aktiverar det. | readme |
| EnableEMS | Aktivera Emergency Management Services (EMS) för att tillåta seriekonsolanslutning i felsökningsscenarier. | readme |
| EnableRemotePS | Aktivera fjärr-PowerShell. | readme |
| IMDSCertCheck | Kontrollerar IMDS Health och analyserar sedan för närvarande installerade certifikat som IMDS är beroende av. Om det saknas visas ytterligare information och åtgärdssteg. | readme |
| RDPSettings | Kontrollerar registerinställningar och domänprincipinställningar. Föreslår principåtgärder om datorn är en del av en domän eller ändrar inställningarna till standardvärden. | readme |
| ResetRDPCert | Tar bort SSL-certifikatet som är kopplat till RDP-lyssnaren och återställer RDP-lyssnarsäkerheten till standard. Använd det här skriptet om du ser några problem med certifikatet. | readme |
| WindowsActivationValidation | Kontrollerar den aktuella Windows-licensstatusen (aktiverad eller inte) och aviseringen genereras om datorn inte är egenskapsaktiverad. | readme |
| SetRDPPort | Anger standard- eller användar angivet portnummer för fjärrskrivbordsanslutningar. Aktiverar brandväggsregel för inkommande åtkomst till porten. | readme |
| DisableNLA | Inaktiverar autentisering på nätverksnivå (NLA). Du måste starta om den virtuella datorn när skriptet har slutförts för att ändringen ska börja gälla. Själva skriptet startar inte om den virtuella datorn. Du kan använda det här skriptet för att inaktivera NLA om RDP-anslutningar misslyckas med felet "Fjärrdatorn som du försöker ansluta till kräver autentisering på nätverksnivå (NLA), men windows-domänkontrollanten kan inte kontaktas för att utföra NLA. eller felet "Ett autentiseringsfel har uppstått. Det går inte att kontakta den lokala säkerhetsmyndigheten." NLA är en säkerhetsfunktion som endast bör inaktiveras tillfälligt för att RDP-anslutningar ska lyckas tills anslutningsproblemet för domänkontrollanten har lösts. | readme |
Azure CLI
Kommentar
Beroende på vilken modalitet som används för att köra, kan det behövas en del undflyende. Om du till exempel kör kommandot i en PowerShell-session måste sökvägen till skriptfilen ha citattecken.
I följande exempel används kommandot az vm run-command för att köra ett gränssnittsskript på en virtuell Azure Windows-dator.
# script.ps1
# param(
# [string]$arg1,
# [string]$arg2
# )
# Write-Host This is a sample script with parameters $arg1 and $arg2
az vm run-command invoke --command-id RunPowerShellScript --name win-vm -g my-resource-group \
--scripts @script.ps1 --parameters "arg1=somefoo" "arg2=somebar"
Azure Portal
Gå till en virtuell dator i Azure Portal och välj Kör kommando på den vänstra menyn under Åtgärder. Du ser en lista över de tillgängliga kommandon som ska köras på den virtuella datorn.
Välj ett kommando som ska köras. Vissa av kommandona kan ha valfria eller obligatoriska indataparametrar. För dessa kommandon visas parametrarna som textfält där du kan ange indatavärdena. För varje kommando kan du visa skriptet som körs genom att expandera Visa skript. RunPowerShellScript skiljer sig från de andra kommandona eftersom du kan ange ett eget anpassat skript.
Kommentar
De inbyggda kommandona kan inte redigeras.
När du har valt kommandot väljer du Kör för att köra skriptet. När skriptet har slutförts returneras utdata och eventuella fel i utdatafönstret. Följande skärmbild visar ett exempel på utdata från körning av KOMMANDOT RDPSettings .
PowerShell
I följande exempel används cmdleten Invoke-AzVMRunCommand för att köra ett PowerShell-skript på en virtuell Azure-dator. Cmdleten förväntar sig att skriptet som refereras i parametern -ScriptPath är lokalt där cmdleten körs.
Invoke-AzVMRunCommand -ResourceGroupName '<myResourceGroup>' -Name '<myVMName>' -CommandId 'RunPowerShellScript' -ScriptPath '<pathToScript>' -Parameter @{"arg1" = "var1";"arg2" = "var2"}
Kommentar
Parametervärden kan endast vara strängtyper och skriptet ansvarar för att konvertera dem till andra typer om det behövs.
Begränsa åtkomst till Run Command
För att visa körningskommandona eller visa information om ett kommando krävs behörigheten Microsoft.Compute/locations/runCommands/read på prenumerationsnivå. Den inbyggda rollen Läsare och högre nivåer har den här behörigheten.
Om du kör ett kommando krävs behörigheten Microsoft.Compute/virtualMachines/runCommand/action . Rollen Virtuell datordeltagare och högre nivåer har den här behörigheten.
Du kan använda någon av de inbyggda rollerna eller skapa en anpassad roll för att använda Kör kommando.
Windows-felsökning för Åtgärdskörningskommando
När du felsöker åtgärdskörningskommandot för Windows-miljöer läser du loggfilen RunCommandExtension som vanligtvis finns i följande katalog: C:\WindowsAzure\Logs\Plugins\Microsoft.CPlat.Core.RunCommandWindows\<version>\RunCommandExtension.log för mer information.
Kända problem
Kommandotillägget För åtgärdskörning kan inte köras i Windows-miljön om kommandot innehåller reserverade tecken. Till exempel:
Om symbolen
&skickas i parametern för kommandot, till exempel PowerShell-skriptet nedan, kan det misslyckas.$paramm='abc&jj' Invoke-AzVMRunCommand -ResourceGroupName AzureCloudService1 -Name test -CommandId 'RunPowerShellScript' -ScriptPath C:\data\228332902\PostAppConfig.ps1 -Parameter @{"Prefix" = $paramm}^Använd tecknet för att undvika&i argumentet, till exempel$paramm='abc^&jj'Kör kommandotillägget kan också misslyckas om kommandot som ska köras innehåller "\n" i sökvägen, eftersom det behandlas som en ny rad. Innehåller
C:\Windows\notepad.exe\ntill exempel i filsökvägen. Överväg att\nersätta med\Ni din sökväg.Kontrollera att du inte har någon anpassad inställning i registernyckeln
HKLM\SOFTWARE\Microsoft\Command Processor\AutoRun(beskrivs här). Detta kan utlösas under installationen av RunCommand-tillägget eller aktivera faser och orsaka ett fel som "XYZ identifieras inte som ett internt eller externt kommando, ett fungerande program eller en batchfil".
Borttagning av åtgärdskörningskommando
Om du behöver ta bort windows-tillägget för åtgärdskörningskommandot läser du stegen nedan för Azure PowerShell och CLI:
Ersätt rgname och vmname med ditt relevanta resursgruppsnamn och namn på den virtuella datorn i följande borttagningsexempel.
Invoke-AzVMRunCommand -ResourceGroupName 'rgname' -VMName 'vmname' -CommandId 'RemoveRunCommandWindowsExtension'
az vm run-command invoke --command-id RemoveRunCommandWindowsExtension --name vmname -g rgname
Kommentar
När du använder ett Kör-kommando igen installeras tillägget automatiskt. Du kan använda kommandot för borttagning av tillägg för att felsöka eventuella problem som rör tillägget.
Nästa steg
Mer information om andra sätt att fjärrköra skript och kommandon på den virtuella datorn finns i Köra skript på den virtuella Windows-datorn.