az vm repair

Note

This reference is part of the vm-repair extension for the Azure CLI (version 2.0.67 or higher). The extension will automatically install the first time you run an az vm repair command. Learn more about extensions.

Auto repair commands to fix VMs.

VM repair command will enable Azure users to self-repair non-bootable VMs by copying the source VM's OS disk and attaching it to a newly created repair VM.

Commands

Name Description Type Status
az vm repair create

Create a new repair VM and attach the source VM's copied OS disk as a data disk.

Extension GA
az vm repair list-scripts

List available scripts. Located https://github.com/Azure/repair-script-library.

Extension GA
az vm repair repair-and-restore

Repair and restore the VM.

Extension Preview
az vm repair reset-nic

Reset the network interface stack on the VM guest OS. https://docs.microsoft.com/en-us/troubleshoot/azure/virtual-machines/reset-network-interface.

Extension Preview
az vm repair restore

Replace source VM's OS disk with data disk from repair VM.

Extension GA
az vm repair run

Run verified scripts from GitHub on a VM. 'az vm repair list-scripts' to view available scripts.

Extension GA

az vm repair create

Create a new repair VM and attach the source VM's copied OS disk as a data disk.

az vm repair create --name
                    --resource-group
                    [--associate-public-ip]
                    [--copy-disk-name]
                    [--distro]
                    [--enable-nested]
                    [--repair-group-name]
                    [--repair-password]
                    [--repair-username]
                    [--repair-vm-name]
                    [--unlock-encrypted-vm]
                    [--yes]

Examples

Create a repair VM

az vm repair create -g MyResourceGroup -n myVM --verbose

Create a repair VM and set the VM authentication

az vm repair create -g MyResourceGroup -n myVM --repair-username username --repair-password password!234 --verbose

Create a repair VM of a specific distro or a specific URN could also be provided

az vm repair create -g MyResourceGroup -n myVM --distro 'rhel7|sles12|ubuntu20|centos6|oracle8|sles15'

Required Parameters

--name -n

The name of the Virtual Machine. You can configure the default using az configure --defaults vm=<name>.

--resource-group -g

Name of resource group. You can configure the default group using az configure --defaults group=<name>.

Optional Parameters

--associate-public-ip

Option to create repair vm with public ip.

default value: False
--copy-disk-name

Name of OS disk copy.

--distro

Option to create repair vm from a specific linux distro (rhel7|rhel8|suse12|ubuntu20|centos7|oracle7).

default value: ubuntu
--enable-nested

Enable nested hyperv.

default value: False
--repair-group-name

Name for new or existing resource group that will contain repair VM.

--repair-password

Admin password for the repair VM.

--repair-username

Admin username for repair VM.

--repair-vm-name

Name of repair VM.

--unlock-encrypted-vm

Option to auto-unlock encrypted VMs using current subscription auth.

default value: False
--yes

Option to skip prompt for associating public ip and confirm yes to it in no Tty mode.

default value: False
Global Parameters
--debug

Increase logging verbosity to show all debug logs.

--help -h

Show this help message and exit.

--only-show-errors

Only show errors, suppressing warnings.

--output -o

Output format.

accepted values: json, jsonc, none, table, tsv, yaml, yamlc
default value: json
--query

JMESPath query string. See http://jmespath.org/ for more information and examples.

--subscription

Name or ID of subscription. You can configure the default subscription using az account set -s NAME_OR_ID.

--verbose

Increase logging verbosity. Use --debug for full debug logs.

az vm repair list-scripts

List available scripts. Located https://github.com/Azure/repair-script-library.

az vm repair list-scripts [--preview]

Examples

List scripts

az vm repair list-scripts --verbose

List windows scripts only.

az vm repair list-scripts --query "[?starts_with(id, 'win')]"

List scripts with test in its description.

az vm repair list-scripts --query "[?contains(description, 'test')]"

List unverified script from your fork of https://github.com/Azure/repair-script-library

az vm repair list-scripts --preview "https://github.com/User/repair-script-library/blob/main/map.json"

Optional Parameters

--preview

URL of forked repair script library's map.json https://github.com/{user}/repair-script-library/blob/master/map.json.

Global Parameters
--debug

Increase logging verbosity to show all debug logs.

--help -h

Show this help message and exit.

--only-show-errors

Only show errors, suppressing warnings.

--output -o

Output format.

accepted values: json, jsonc, none, table, tsv, yaml, yamlc
default value: json
--query

JMESPath query string. See http://jmespath.org/ for more information and examples.

--subscription

Name or ID of subscription. You can configure the default subscription using az account set -s NAME_OR_ID.

--verbose

Increase logging verbosity. Use --debug for full debug logs.

az vm repair repair-and-restore

Preview

This command is in preview and under development. Reference and support levels: https://aka.ms/CLI_refstatus

Repair and restore the VM.

az vm repair repair-and-restore [--copy-disk-name]
                                [--ids]
                                [--name]
                                [--repair-group-name]
                                [--repair-password]
                                [--repair-username]
                                [--repair-vm-name]
                                [--resource-group]
                                [--subscription]

Examples

Repair and restore a VM.

az vm repair repair-and-restore --name vmrepairtest --resource-group MyResourceGroup --verbose

Optional Parameters

--copy-disk-name

Name of OS disk copy.

--ids

One or more resource IDs (space-delimited). It should be a complete resource ID containing all information of 'Resource Id' arguments. You should provide either --ids or other 'Resource Id' arguments.

--name -n

The name of the Virtual Machine. You can configure the default using az configure --defaults vm=<name>.

--repair-group-name

Name for new or existing resource group that will contain repair VM.

--repair-password

Admin password for the repair VM.

--repair-username

Admin username for repair VM.

--repair-vm-name

Name of repair VM.

--resource-group -g

Name of resource group. You can configure the default group using az configure --defaults group=<name>.

--subscription

Name or ID of subscription. You can configure the default subscription using az account set -s NAME_OR_ID.

Global Parameters
--debug

Increase logging verbosity to show all debug logs.

--help -h

Show this help message and exit.

--only-show-errors

Only show errors, suppressing warnings.

--output -o

Output format.

accepted values: json, jsonc, none, table, tsv, yaml, yamlc
default value: json
--query

JMESPath query string. See http://jmespath.org/ for more information and examples.

--subscription

Name or ID of subscription. You can configure the default subscription using az account set -s NAME_OR_ID.

--verbose

Increase logging verbosity. Use --debug for full debug logs.

az vm repair reset-nic

Preview

This command is in preview and under development. Reference and support levels: https://aka.ms/CLI_refstatus

az vm repair reset-nic [--ids]
                       [--name]
                       [--resource-group]
                       [--subscription]
                       [--yes]

Examples

Reset the VM guest NIC. Specify VM resource group and name.

az vm repair reset-nic -g MyResourceGroup -n MyVM --verbose

Reset the VM guest NIC. Specify subscription id, VM resource group and name.

az vm repair reset-nic -g MyResourceGroup -n MyVM --subscription mySub --verbose

Reset the VM guest NIC and auto-start the VM if it is not in running state.

az vm repair reset-nic -g MyResourceGroup -n MyVM --yes --verbose

Optional Parameters

--ids

One or more resource IDs (space-delimited). It should be a complete resource ID containing all information of 'Resource Id' arguments. You should provide either --ids or other 'Resource Id' arguments.

--name -n

The name of the Virtual Machine. You can configure the default using az configure --defaults vm=<name>.

--resource-group -g

Name of resource group. You can configure the default group using az configure --defaults group=<name>.

--subscription

Name or ID of subscription. You can configure the default subscription using az account set -s NAME_OR_ID.

--yes

Do not prompt for confirmation to start VM if it is not running.

default value: False
Global Parameters
--debug

Increase logging verbosity to show all debug logs.

--help -h

Show this help message and exit.

--only-show-errors

Only show errors, suppressing warnings.

--output -o

Output format.

accepted values: json, jsonc, none, table, tsv, yaml, yamlc
default value: json
--query

JMESPath query string. See http://jmespath.org/ for more information and examples.

--subscription

Name or ID of subscription. You can configure the default subscription using az account set -s NAME_OR_ID.

--verbose

Increase logging verbosity. Use --debug for full debug logs.

az vm repair restore

Replace source VM's OS disk with data disk from repair VM.

az vm repair restore [--disk-name]
                     [--ids]
                     [--name]
                     [--repair-vm-id]
                     [--resource-group]
                     [--subscription]
                     [--yes]

Examples

Restore from the repair VM, command will auto-search for repair-vm

az vm repair restore -g MyResourceGroup -n MyVM --verbose

Restore from the repair VM, specify the disk to restore

az vm repair restore -g MyResourceGroup -n MyVM --disk-name MyDiskCopy --verbose

Optional Parameters

--disk-name

Name of fixed data disk. Defaults to the first data disk in the repair VM.

--ids

One or more resource IDs (space-delimited). It should be a complete resource ID containing all information of 'Resource Id' arguments. You should provide either --ids or other 'Resource Id' arguments.

--name -n

The name of the Virtual Machine. You can configure the default using az configure --defaults vm=<name>.

--repair-vm-id

Repair VM resource id.

--resource-group -g

Name of resource group. You can configure the default group using az configure --defaults group=<name>.

--subscription

Name or ID of subscription. You can configure the default subscription using az account set -s NAME_OR_ID.

--yes

Deletes the repair resources without confirmation.

default value: False
Global Parameters
--debug

Increase logging verbosity to show all debug logs.

--help -h

Show this help message and exit.

--only-show-errors

Only show errors, suppressing warnings.

--output -o

Output format.

accepted values: json, jsonc, none, table, tsv, yaml, yamlc
default value: json
--query

JMESPath query string. See http://jmespath.org/ for more information and examples.

--subscription

Name or ID of subscription. You can configure the default subscription using az account set -s NAME_OR_ID.

--verbose

Increase logging verbosity. Use --debug for full debug logs.

az vm repair run

Run verified scripts from GitHub on a VM. 'az vm repair list-scripts' to view available scripts.

az vm repair run [--custom-script-file]
                 [--ids]
                 [--name]
                 [--parameters]
                 [--preview]
                 [--repair-vm-id]
                 [--resource-group]
                 [--run-id]
                 [--run-on-repair]
                 [--subscription]

Examples

Run the script with <run-id> directly on the VM.

az vm repair run -g MyResourceGroup -n MySourceWinVM --run-id win-hello-world --verbose

Run the script with <run-id> on the linked repair VM.

az vm repair run -g MyResourceGroup -n MySourceWinVM --run-id win-hello-world --run-on-repair --verbose

Run a script with parameters on the VM.

az vm repair run -g MyResourceGroup -n MySourceWinVM --run-id win-hello-world --parameters hello=hi world=earth --verbose

Run a local custom script on the VM.

az vm repair run -g MyResourceGroup -n MySourceWinVM --custom-script-file ./file.ps1 --verbose

Run unverified script from your fork of https://github.com/Azure/repair-script-library

az vm repair run -g MyResourceGroup -n MySourceWinVM --preview "https://github.com/User/repair-script-library/blob/main/map.json" --run-id test

Optional Parameters

--custom-script-file

Custom script file to run on VM. Script should be PowerShell for windows, Bash for Linux.

--ids

One or more resource IDs (space-delimited). It should be a complete resource ID containing all information of 'Resource Id' arguments. You should provide either --ids or other 'Resource Id' arguments.

--name -n

The name of the Virtual Machine. You can configure the default using az configure --defaults vm=<name>.

--parameters

Space-separated parameters in the format of '[name=]value'. Positional for bash scripts.

--preview

URL of forked repair script library's map.json https://github.com/{user}/repair-script-library/blob/master/map.json.

--repair-vm-id

Repair VM resource id.

--resource-group -g

Name of resource group. You can configure the default group using az configure --defaults group=<name>.

--run-id

Unique run id for run scripts.

--run-on-repair

Script will be run on the linked repair VM.

default value: False
--subscription

Name or ID of subscription. You can configure the default subscription using az account set -s NAME_OR_ID.

Global Parameters
--debug

Increase logging verbosity to show all debug logs.

--help -h

Show this help message and exit.

--only-show-errors

Only show errors, suppressing warnings.

--output -o

Output format.

accepted values: json, jsonc, none, table, tsv, yaml, yamlc
default value: json
--query

JMESPath query string. See http://jmespath.org/ for more information and examples.

--subscription

Name or ID of subscription. You can configure the default subscription using az account set -s NAME_OR_ID.

--verbose

Increase logging verbosity. Use --debug for full debug logs.