Udostępnij za pośrednictwem


Uruchamianie skryptów na maszynie wirtualnej z systemem Windows przy użyciu zarządzanej funkcji Uruchamianie poleceń

Dotyczy: ✔️ Maszyny wirtualne z systemem Windows — elastyczne zestawy skalowania ✔️

Ważne

Managed Run Command jest obecnie dostępne w Azure CLI, PowerShell i API. Plan rozwoju funkcji portalu znajduje się na liście działań.

Funkcja Uruchom polecenie używa agenta maszyny wirtualnej do wykonywania skryptów na maszynie wirtualnej platformy Azure z systemem Windows. Za pomocą tych skryptów można ogólnie zarządzać maszynami lub aplikacjami. Mogą one ułatwić szybkie diagnozowanie i korygowanie problemów z dostępem do maszyny wirtualnej i siecią oraz powrót maszyny wirtualnej do dobrego stanu.

Zaktualizowane zarządzane polecenie uruchamiania używa tego samego kanału agenta maszyny wirtualnej do wykonywania skryptów i zapewnia następujące poprawki w porównaniu do oryginalnego polecenia uruchamiania zorientowanego na akcję:

  • Obsługa zaktualizowanej funkcji "Run Command" poprzez szablon wdrożeniowy ARM
  • Równoległe wykonywanie wielu skryptów
  • Sekwencyjne wykonywanie skryptów
  • Przekroczono limit czasu skryptu określonego przez użytkownika
  • Obsługa długotrwałych skryptów (wykonywanych przez godziny/dni)
  • Przekazywanie tajnych informacji (parametrów, haseł) w bezpieczny sposób

Wymagania wstępne

Obsługiwane systemy operacyjne Windows

Wersja systemu operacyjnego x64 ARM64
Windows 10 Obsługiwane Obsługiwane
Windows 11 Obsługiwane Obsługiwane
Windows Server 2016 Obsługiwane Obsługiwane
Windows Server 2016 Core Obsługiwane Obsługiwane
Windows Server 2019 Obsługiwane Obsługiwane
Windows Server 2019 Core Obsługiwane Obsługiwane
Windows Server 2022 Obsługiwane Obsługiwane
Windows Server 2022 Core Obsługiwane Obsługiwane
Windows Server 2025 Obsługiwane Obsługiwane
Windows Server 2025 Core Obsługiwane Obsługiwane

Dostępne polecenia

Identyfikator polecenia Opis
Ipconfig Przedstawia szczegółowe informacje dotyczące adresu IP, maski podsieci i bramy domyślnej dla każdego adaptera związanego z TCP/IP. Aby uzyskać informacje o użyciu, zobacz Uruchamianie skryptów
WłączAktualizacjeWindows Włącz aktualizacje automatyczne za pośrednictwem usługi Windows Update.
WyłączWindowsUpdate Wyłącz aktualizacje automatyczne za pośrednictwem usługi Windows Update.
WłączKontoAdministratora Sprawdza, czy konto administratora lokalnego jest wyłączone, a jeśli tak jest włączone.
EnableEMS Aktywuj usługi zarządzania awaryjnego (EMS) w celu umożliwienia połączenia konsoli szeregowej w scenariuszach rozwiązywania problemów.
EnableRemotePS Włącz zdalny program PowerShell.
IMDSCertCheck Sprawdza kondycję usługi IMDS, a następnie analizuje obecnie zainstalowane certyfikaty, od których zależy usługa IMDS. Jeśli brakuje, zostaną wyświetlone dodatkowe szczegóły i kroki ograniczania ryzyka.
RDPSettings Sprawdza ustawienia rejestru i ustawienia zasad domeny. Sugeruje akcje zasad, jeśli maszyna jest częścią domeny lub modyfikuje ustawienia na wartości domyślne.
ResetRDPCert Usuwa certyfikat SSL powiązany z odbiornikiem RDP i przywraca domyślne zabezpieczenia odbiornika RDP. Użyj tego skryptu, jeśli wystąpią problemy z certyfikatem.
WeryfikacjaAktywacjiWindows Sprawdza bieżący stan licencji systemu Windows (aktywowany lub nie) i alert jest generowany, jeśli maszyna nie jest prawidłowo aktywowana.
SetRDPPort Ustawia domyślny lub określony przez użytkownika numer portu dla połączeń pulpitu zdalnego. Włącza regułę zapory dla dostępu przychodzącego do portu.
WyłączNLA Wyłącza uwierzytelnianie na poziomie sieci (NLA). Musisz ponownie uruchomić maszynę wirtualną po zakończeniu działania skryptu, aby zmiany zaczęły obowiązywać. Sam skrypt nie uruchamia ponownie maszyny wirtualnej. Ten skrypt umożliwia wyłączenie równoważenia obciążenia sieciowego, jeśli połączenia RDP kończą się niepowodzeniem z powodu błędu "Komputer zdalny, z którym próbujesz nawiązać połączenie, wymaga uwierzytelniania na poziomie sieci (NLA), ale nie można skontaktować się z kontrolerem domeny systemu Windows w celu wykonania równoważenia obciążenia sieciowego". lub błąd "Wystąpił błąd uwierzytelniania. Nie można skontaktować się z urzędem zabezpieczeń lokalnych". NlA to funkcja zabezpieczeń, która powinna być tymczasowo wyłączona, aby umożliwić pomyślne nawiązywanie połączeń RDP do momentu rozwiązania problemu z łącznością kontrolera domeny.

Uwaga

Powyższe identyfikatory poleceń mają zastosowanie do zarządzanych poleceń uruchamiania dla maszyn wirtualnych z systemem Windows. Można wyświetlić wszystkie identyfikatory poleceń przy użyciu polecenia "Get-AzVMRunCommandDocument -Location {RegionName}".

Ograniczanie dostępu do uruchamiania polecenia

Wyświetlenie listy poleceń lub szczegółów polecenia wymaga uprawnienia Microsoft.Compute/locations/runCommands/read na poziomie subskrypcji. Wbudowana rola Czytelnik oraz role o wyższym poziomie mają to uprawnienie.

Uruchomienie polecenia wymaga Microsoft.Compute/virtualMachines/runCommand/write uprawnienia. Rola Współautor maszyny wirtualnej i wyższe poziomy mają to uprawnienie.

Możesz użyć jednej z wbudowanych ról lub utworzyć rolę niestandardową, aby użyć polecenia Uruchom.

CLI platformy Azure

W poniższych przykładach użyto polecenia az vm run-command, aby uruchomić skrypt powłoki na maszynie wirtualnej platformy Azure z systemem Windows.

Wykonywanie skryptu przy użyciu maszyny wirtualnej

To polecenie dostarcza skrypt do maszyny wirtualnej, wykonuje go i zwraca przechwycone dane wyjściowe.

az vm run-command create --name "myRunCommand" --vm-name "myVM" --resource-group "myRG" --script "Write-Host Hello World!"

Wyświetlanie listy wszystkich wdrożonych zasobów RunCommand na maszynie wirtualnej

To polecenie zwraca pełną listę wcześniej wdrożonych poleceń uruchamiania wraz z ich właściwościami.

az vm run-command list --vm-name "myVM" --resource-group "myRG"

Uzyskiwanie stanu wykonania i wyników

To polecenie pobiera aktualny postęp wykonywania, w tym najnowsze dane wyjściowe, czas rozpoczęcia i zakończenia, kod wyjścia oraz końcowy stan procesu.

az vm run-command show --name "myRunCommand" --vm-name "myVM" --resource-group "myRG" --expand instanceView

Uwaga

Pola danych wyjściowych i błędów w programie instanceView są ograniczone do ostatnich 4 KB. Jeśli chcesz uzyskać dostęp do pełnych danych wyjściowych i danych błędów, masz możliwość przekazania tych danych do uzupełnialnych obiektów blob w magazynie, korzystając z parametrów -outputBlobUri i -errorBlobUri podczas wykonywania polecenia Run Command za pomocą Set-AzVMRunCommand lub Set-AzVMssRunCommand.

Usuń zasób RunCommand z maszyny wirtualnej

Usuń zasób RunCommand wcześniej wdrożony na maszynie wirtualnej. Jeśli wykonywanie skryptu jest nadal w toku, wykonanie zostanie zakończone.

az vm run-command delete --name "myRunCommand" --vm-name "myVM" --resource-group "myRG"

PowerShell

Wykonywanie skryptu przy użyciu maszyny wirtualnej

To polecenie dostarcza skrypt do maszyny wirtualnej, wykonuje go i zwraca przechwycone dane wyjściowe.

Set-AzVMRunCommand -ResourceGroupName "myRG" -VMName "myVM" -Location "EastUS" -RunCommandName "RunCommandName" –SourceScript "echo Hello World!"

Wykonywanie skryptu na maszynie wirtualnej przy użyciu parametru SourceScriptUri

OutputBlobUri i ErrorBlobUri są parametrami opcjonalnymi.

Set-AzVMRunCommand -ResourceGroupName "myRg" `
-VMName "myVM" `
-RunCommandName "RunCommandName" `
-SourceScriptUri “<SAS_URI_of_a_storage_blob_with_read_access_or_public_URI>" `
-OutputBlobUri “<SAS_URI_of_a_storage_append_blob_with_read_add_create_write_access>" `
-ErrorBlobUri “<SAS_URI_of_a_storage_append_blob_with_read_add_create_write_access>”

Wykonywanie długotrwałego polecenia uruchamiania na maszynie wirtualnej

Czas wykonywania powinien być dłuższy niż domyślny limit czasu wynoszący 90 minut. On powinien działać przez 100 minut (należy odwołać się do 6 000 sekund dla parametru -TimeoutInSecond), zakładając, że skrypt powinien działać tak długo. Po 100 minutach wykonanie skryptu powinno zostać zatrzymane.

Set-AzVMRunCommand -ResourceGroupName MyRG -VMName MyVM -RunCommandName MyRunCommand -Location EastUS2EUAP -SourceScriptUri <SourceScriptUri> -AsyncExecution -TimeoutInSecond 6000

Wyświetlanie listy wszystkich wdrożonych zasobów RunCommand na maszynie wirtualnej

To polecenie zwraca pełną listę wcześniej wdrożonych poleceń uruchamiania wraz z ich właściwościami.

Get-AzVMRunCommand -ResourceGroupName "myRG" -VMName "myVM"

Uzyskiwanie stanu wykonania i wyników

To polecenie pobiera aktualny postęp wykonywania, w tym najnowsze dane wyjściowe, czas rozpoczęcia i zakończenia, kod wyjścia oraz końcowy stan procesu.

Get-AzVMRunCommand -ResourceGroupName "myRG" -VMName "myVM" -RunCommandName "RunCommandName" -Expand InstanceView

Tworzenie lub aktualizowanie polecenia uruchamiania na maszynie wirtualnej przy użyciu identyfikatora SourceScriptUri (adres URL sygnatury dostępu współdzielonego obiektu blob magazynu)

Utwórz lub zaktualizuj polecenie Run na maszynie wirtualnej z systemem Windows przy użyciu adresu URL SAS obiektu blob magazynu zawierającego skrypt PowerShell. SourceScriptUri może to być pełny adres URL sygnatury dostępu współdzielonego lub publiczny adres URL obiektu blob magazynu.

Set-AzVMRunCommand -ResourceGroupName MyRG0 -VMName MyVMEE -RunCommandName MyRunCommand -Location EastUS2EUAP -SourceScriptUri <SourceScriptUri>

Uwaga

Sygnatura dostępu współdzielonego (SAS) musi zapewnić możliwość odczytu obiektu blob. Zalecany czas wygaśnięcia dla SAS URL to 24 godziny. Adresy URL sygnatur dostępu współdzielonego można wygenerować w portalu Azure, korzystając z opcji obiektu blob lub tokenu SAS przy użyciu polecenia New-AzStorageBlobSASToken. W przypadku generowania tokenu SAS przy użyciu New-AzStorageBlobSASToken, twój adres URL SAS = "podstawowy adres URL obiektu blob" + "?" + "token SAS z New-AzStorageBlobSASToken"

Pobieranie widoku instancji polecenia uruchomienia dla maszyny wirtualnej po utworzeniu lub zaktualizowaniu polecenia uruchomienia

Pobierz polecenie Run Command dla maszyny wirtualnej z widokiem instancji. Widok wystąpienia zawiera stan wykonywania polecenia uruchomienia (powodzenie, niepowodzenie itp.), kod zakończenia, standardowe dane wyjściowe i standardowy błąd wygenerowany przez wykonanie skryptu przy użyciu polecenia Uruchom. Niezerowy ExitCode wskazuje na nieudane wykonanie.

$x = Get-AzVMRunCommand -ResourceGroupName MyRG -VMName MyVM -RunCommandName MyRunCommand -Expand InstanceView
$x.InstanceView

Przykładowe dane wyjściowe

ExecutionState   : Succeeded
ExecutionMessage :
ExitCode         : 0
Output           :   
output       : uid=0(root) gid=0(root) groups=0(root)
                   HelloWorld

Error            :
StartTime        : 10/27/2022 9:10:52 PM
EndTime          : 10/27/2022 9:10:55 PM
Statuses         :

InstanceView.ExecutionState: status skryptu Run Command użytkownika. Zapoznaj się z tym stanem, aby dowiedzieć się, czy skrypt zakończył się pomyślnie, czy nie. ProvisioningState: Status ogólnego udostępniania rozszerzeń od początku do końca (czy platforma rozszerzeń była w stanie uruchomić skrypt Run Command).

Tworzenie lub aktualizowanie polecenia uruchamiania na maszynie wirtualnej przy użyciu skryptu ScriptLocalPath (plik skryptu lokalnego)

Utwórz lub zaktualizuj polecenie Uruchom na maszynie wirtualnej przy użyciu lokalnego pliku skryptu, który znajduje się na maszynie klienckiej, na której jest wykonywane polecenie cmdlet.

Set-AzVMRunCommand -ResourceGroupName MyRG0 -VMName MyVMEE -RunCommandName MyRunCommand -Location EastUS2EUAP -ScriptLocalPath "C:\MyScriptsDir\MyScript.ps1"

Tworzenie lub aktualizowanie polecenia uruchamiania na maszynie wirtualnej przy użyciu skryptu SourceScript (tekst skryptu)

Utwórz lub zaktualizuj polecenie Uruchom na maszynie wirtualnej przekazując zawartość skryptu bezpośrednio do parametru -SourceScript. Użyj ; do oddzielania wielu poleceń

Set-AzVMRunCommand -ResourceGroupName MyRG0 -VMName MyVML -RunCommandName MyRunCommand2 -Location EastUS2EUAP -SourceScript "id; echo HelloWorld"

Tworzenie lub aktualizowanie polecenia uruchamiania na maszynie wirtualnej przy użyciu identyfikatora SourceCommandId

Utwórz lub zaktualizuj polecenie Uruchom na maszynie wirtualnej przy użyciu istniejącego identyfikatora commandId. Dostępne identyfikatory poleceń można pobrać przy użyciu polecenia Get-AzVMRunCommandDocument.

Set-AzVMRunCommand -ResourceGroupName MyRG0 -VMName MyVMEE -RunCommandName MyRunCommand -Location EastUS2EUAP -SourceCommandId DisableWindowsUpdate

Tworzenie lub aktualizowanie polecenia uruchamiania na maszynie wirtualnej przy użyciu parametru OutputBlobUri, ErrorBlobUri w celu przesyłania strumieniowego standardowych danych wyjściowych i standardowych komunikatów o błędach do danych wyjściowych oraz uzupełnialnych obiektów blob błędów

Utwórz lub zaktualizuj polecenie uruchamiania na maszynie wirtualnej i przesyłaj strumieniowo standardowe dane wyjściowe oraz standardowe komunikaty o błędach do obiektów typu Append blob.

Set-AzVMRunCommand -ResourceGroupName MyRG0 -VMName MyVML -RunCommandName MyRunCommand3 -Location EastUS2EUAP -ScriptLocalPath "C:\MyScriptsDir\MyScript.ps1" -OutputBlobUri <OutPutBlobUrI> -ErrorBlobUri "ErrorBlobUri

Uwaga

Obiekty blob danych wyjściowych i błędów muszą być typu AppendBlob, a ich adresy URL sygnatury dostępu współdzielonego (SAS) muszą zapewniać dostęp do odczytu, dołączania, tworzenia i zapisu do obiektu blob. Zalecany czas wygaśnięcia dla SAS URL to 24 godziny. Jeśli obiekt blob danych wyjściowych lub blob błędu nie istnieje, zostanie utworzony obiekt blob typu AppendBlob. Adresy URL sygnatury dostępu współdzielonego można wygenerować w witrynie Azure Portal przy użyciu opcji obiektu blob lub tokenu SAS przy użyciu polecenia New-AzStorageBlobSASToken.

Tworzenie lub aktualizowanie polecenia uruchamiania na maszynie wirtualnej jako inny użytkownik przy użyciu parametrów RunAsUser i RunAsPassword

Utwórz lub zaktualizuj polecenie Uruchomienia na maszynie wirtualnej jako inny użytkownik, przy użyciu parametrów RunAsUser i RunAsPassword. Aby elementy RunA działały prawidłowo, skontaktuj się z administratorem maszyny wirtualnej i upewnij się, że użytkownik jest dodawany do maszyny wirtualnej, użytkownik ma dostęp do zasobów, do których uzyskuje dostęp za pomocą polecenia Uruchom (katalogi, pliki, sieć itp.), a w przypadku maszyny wirtualnej z systemem Windows usługa "Logowanie pomocnicze" jest uruchomiona na maszynie wirtualnej.

Set-AzVMRunCommand -ResourceGroupName MyRG0 -VMName MyVMEE -RunCommandName MyRunCommand -Location EastUS2EUAP -ScriptLocalPath "C:\MyScriptsDir\MyScript.ps1" -RunAsUser myusername -RunAsPassword mypassword

Tworzenie lub aktualizacja polecenia wykonania w zasobie skalowalnych zestawów maszyn wirtualnych przy użyciu SourceScriptUri (adres URL SAS obiektu blob magazynu)

Utwórz lub zaktualizuj polecenie Wykonaj w zasobie zestawów skalowania maszyn wirtualnych z systemem Windows, używając adresu URL SAS obiektu blob magazynu, który zawiera skrypt PowerShell.

Set-AzVmssVMRunCommand -ResourceGroupName MyRG0 -VMScaleSetName MyVMSS -InstanceId 0 -RunCommandName MyRunCommand -Location EastUS2EUAP -SourceScriptUri <SourceScriptUri>

Uwaga

Sygnatura dostępu współdzielonego (SAS) musi zapewnić możliwość odczytu obiektu blob. Sugerowany czas wygaśnięcia dla adresu URL sygnatury dostępu współdzielonego (SAS URL) to 24 godziny. Adresy URL sygnatur dostępu współdzielonego można wygenerować w witrynie Azure Portal przy użyciu opcji obiektu blob lub tokenu SAS przy użyciu polecenia New-AzStorageBlobSASToken. pl-PL: W przypadku generowania tokenu SAS przy użyciu New-AzStorageBlobSASToken, format adresu URL sygnatury dostępu współdzielonego to: podstawowy adres URL obiektu blob + "?" + token SAS z New-AzStorageBlobSASToken.

Tworzenie lub aktualizowanie polecenia uruchomienia w wystąpieniu maszyny wirtualnej przy użyciu parametru oraz chronionego parametru (publiczne i chronione parametry do skryptu)

Użyj parametru ProtectedParameter, aby przekazać wszelkie poufne dane wejściowe do skryptu, takiego jak hasła, klucze itp.

$PublicParametersArray = @([Microsoft.Azure.PowerShell.Cmdlets.Compute.Models.Api20210701.IRunCommandInputParameter]@{name='publicParam1';value='publicParam1value'},
>> [Microsoft.Azure.PowerShell.Cmdlets.Compute.Models.Api20210701.IRunCommandInputParameter]@{name='publicParam2';value='publicParam2value'})

$ProtectedParametersArray = @([Microsoft.Azure.PowerShell.Cmdlets.Compute.Models.Api20210701.IRunCommandInputParameter]@{name='secret1';value='secret1value'},
>> [Microsoft.Azure.PowerShell.Cmdlets.Compute.Models.Api20210701.IRunCommandInputParameter]@{name='secret2';value='secret2value'})

Set-AzVMRunCommand -ResourceGroupName MyRG0 -VMName MyVMEE -RunCommandName MyRunCommand -Location EastUS2EUAP -SourceScriptUri <SourceScriptUri> -Parameter $PublicParametersArray -ProtectedParameter $ProtectedParametersArray
  • Windows: Parametry i chronione parametry są przekazywane do skryptu jako argumenty i uruchamiane w następujący sposób — myscript.ps1 -publicParam1 publicParam1value -publicParam2 publicParam2value -secret1 secret1value -secret2 secret2value

  • Linux: Nazwane parametry i ich wartości są ustawione na konfigurację środowiska, która powinna być dostępna w skrypcie .sh. W przypadku argumentów bez nazw przekaż pusty ciąg jako nazwę wejściową. Argumenty bez nazw są przekazywane do skryptu i uruchamiane w następujący sposób : myscript.sh publicParam1value publicParam2value secret1value secret2value

Usuń zasób RunCommand z maszyny wirtualnej

Usuń zasób RunCommand wcześniej wdrożony na maszynie wirtualnej. Jeśli wykonywanie skryptu jest nadal w toku, wykonanie zostanie zakończone.

Remove-AzVMRunCommand -ResourceGroupName "myRG" -VMName "myVM" -RunCommandName "RunCommandName"

Interfejs API REST

Aby wdrożyć nowe polecenie Run Command, wykonaj polecenie PUT na maszynie wirtualnej bezpośrednio i określ unikatową nazwę wystąpienia Run Command.

PUT /subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Compute/virtualMachines/<vmName>/runcommands/<runCommandName>?api-version=2023-03-01
{ 
"location": "<location>", 
"properties": { 
    "source": { 
        "script": "Write-Host Hello World!", 
        "scriptUri": "<SAS URI of a storage blob with read access or public URI>",  
        "commandId": "<Id>"  
        }, 
    "parameters": [ 
        { 
            "name": "param1",
            "value": "value1" 
            }, 
        { 
            "name": "param2", 
            "value": "value2" 
            } 
        ], 
    "protectedParameters": [ 
        { 
            "name": "secret1", 
            "value": "value1" 
            }, 
        { 
            "name": "secret2", 
            "value": "value2" 
            } 
        ], 
    "runAsUser": "userName",
    "runAsPassword": "userPassword", 
    "timeoutInSeconds": 3600,
    "treatFailureAsDeploymentFailure": true,
    "outputBlobUri": "< SAS URI of a storage append blob with read, add, create, write access>", 
    "errorBlobUri": "< SAS URI of a storage append blob with read, add, create, write access >"  
    }
}

Uwagi

  • Możesz podać skrypt wbudowany, identyfikator URI skryptu lub wbudowany skrypt identyfikator polecenia jako źródło wejściowe. Identyfikator URI skryptu to albo identyfikator URI SAS obiektu blob w magazynie z dostępem do odczytu, albo publiczny identyfikator URI.
  • Tylko jeden typ danych wejściowych źródłowych jest obsługiwany dla jednego wykonywania polecenia.
  • Począwszy od wersji API 2023-03-01, można ustawić właściwość treatFailureAsDeploymentFailure na true, co spowoduje niepowodzenie wdrożenia, gdy w skrypcie wystąpi błąd. Jeśli ustawiono false, ProvisioningState będzie odzwierciedlać tylko to, czy polecenie run zostało uruchomione przez platformę rozszerzeń, czy nie. Nie wskazuje, czy skrypt zakończył się niepowodzeniem w przypadku błędów skryptu.
  • Polecenie Run obsługuje zapisywanie danych wyjściowych i błędów w obiektach blob usługi Storage przy użyciu parametrów outputBlobUri i errorBlobUri, które mogą służyć do przechowywania dużych danych wyjściowych skryptu. Użyj identyfikatora URI SAS dla dopisywalnych obiektów blob w magazynie z dostępem do odczytu, dodawania, tworzenia i zapisu. Obiekt blob powinien być typu AppendBlob. W przeciwnym razie zapisanie danych wyjściowych skryptu lub błędu do obiektu blob by się nie powiodło. Obiekt blob (zbiór danych) zostanie zastąpiony, jeśli już istnieje. Zostanie utworzony, jeśli nie istnieje.

Wyświetl listę aktywnych wystąpień Run Command na maszynie wirtualnej

GET /subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Compute/virtualMachines/<vmName>/runcommands?api-version=2023-03-01

Uzyskaj szczegóły danych wyjściowych dla określonego wdrożenia Run Command

GET /subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Compute/virtualMachines/<vmName>/runcommands/<runCommandName>?$expand=instanceView&api-version=2023-03-01

Usuń określone wdrożenie Run Command

Możesz również usunąć instancję "Uruchom polecenie".

DELETE /subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Compute/virtualMachines/<vmName>/runcommands/<runCommandName>?api-version=2023-03-01

Wdrażanie skryptów w uporządkowanej kolejności

Aby wdrożyć skrypty sekwencyjnie, użyj szablonu wdrożenia, określając relację dependsOn między skryptami sekwencyjnymi.

{ 
    "type": "Microsoft.Compute/virtualMachines/runCommands", 
    "name": "secondRunCommand", 
    "apiVersion": "2019-12-01", 
    "location": "[parameters('location')]", 
    "dependsOn": <full resourceID of the previous other Run Command>, 
    "properties": { 
        "source": {  
            "script": "Write-Host Hello World!"  
        }, 
        "timeoutInSeconds": 60  
    }
} 

Wykonaj sekwencyjnie wiele poleceń uruchamiania

Domyślnie w przypadku wdrożenia wielu zasobów RunCommand przy użyciu szablonu wdrożenia zostaną one wykonane jednocześnie na maszynie wirtualnej. Jeśli masz zależność od skryptów i preferowanej kolejności wykonywania, możesz użyć dependsOn właściwości , aby były uruchamiane sekwencyjnie.

W tym przykładzie polecenie secondRunCommand zostanie wykonane po polecenie firstRunCommand.

{
   "$schema":"https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
   "contentVersion":"1.0.0.0",
   "resources":[
      {
         "type":"Microsoft.Compute/virtualMachines/runCommands",
         "name":"[concat(parameters('vmName'),'/firstRunCommand')]",
         "apiVersion":"2023-03-01",
         "location":"[parameters('location')]",
         "dependsOn":[
            "[concat('Microsoft.Compute/virtualMachines/', parameters('vmName'))]"
         ],
         "properties":{
            "source":{
               "script":"Write-Host First: Hello World!"
            },
            "parameters":[
               {
                  "name":"param1",
                  "value":"value1"
               },
               {
                  "name":"param2",
                  "value":"value2"
               }
            ],
            "timeoutInSeconds":20
         }
      },
      {
         "type":"Microsoft.Compute/virtualMachines/runCommands",
         "name":"[concat(parameters('vmName'),'/secondRunCommand')]",
         "apiVersion":"2019-12-01",
         "location":"[parameters('location')]",
         "dependsOn":[
            "[concat('Microsoft.Compute/virtualMachines/', parameters('vmName'),'runcommands/firstRunCommand')]"
         ],
         "properties":{
            "source":{
               "scriptUri":"http://github.com/myscript.ps1"
            },
            "timeoutInSeconds":60
         }
      }
   ]
}

Następne kroki

Aby dowiedzieć się więcej o innych sposobach zdalnego uruchamiania skryptów i poleceń na maszynie wirtualnej, zobacz Uruchamianie skryptów na maszynie wirtualnej z systemem Windows.