Install the Azure Virtual Machine Agent in offline mode
The Azure Virtual Machine Agent (VM Agent) provides useful features, such as local administrator password reset and script pushing. This article shows you how to install the VM Agent for an offline Windows virtual machine (VM).
When to use the VM Agent in offline mode
Install the VM Agent in offline mode in the following scenarios:
- The deployed Azure VM doesn't have the VM Agent installed or the agent isn't working.
- You forgot the administrator password for the VM or you can't access the VM.
How to install the VM Agent in offline mode
Use the following steps to install the VM Agent in offline mode.
Step 1: Attach the OS disk of the VM to another VM as a data disk
Take a snapshot for the OS disk of the affected VM, create a disk from the snapshot, and then attach the disk to a troubleshoot VM. For more information, see Troubleshoot a Windows VM by attaching the OS disk to a recovery VM using the Azure portal. For the classic VM, delete the VM and keep the OS disk, and then attach the OS disk to the troubleshoot VM.
Connect to the troubleshooter VM. Open Computer management > Disk management. Confirm that the OS disk is online and that drive letters are assigned to the disk partitions.
Step 2: Modify the OS disk to install the Azure VM Agent
Make a remote desktop connection to the troubleshooter VM.
In the troubleshooter VM, browse to the OS disk that you attached, open the \windows\system32\config folder. Copy all of the files in this folder as a backup, in case a rollback is required.
Start the Registry Editor (regedit.exe).
Select the HKEY_LOCAL_MACHINE key. On the menu, select File > Load Hive:
Browse to the \windows\system32\config\SYSTEM folder on the OS disk that you attached. For the name of the hive, enter BROKENSYSTEM. The new registry hive is displayed under the HKEY_LOCAL_MACHINE key.
Browse to the \windows\system32\config\SOFTWARE folder on the OS disk that you attached. For the name of the hive software, enter BROKENSOFTWARE.
If the Attached OS disk has the VM agent installed, perform a backup of the current configuration. If it does not have VM agent installed, move to the next step.
Rename the \windowsazure folder to \windowsazure.old.
Export the following registries:
Use the existing files on the troubleshooter VM as a repository for the VM Agent installation. Complete the following steps:
From the troubleshooter VM, export the following subkeys in registry format (.reg):
Edit the registry files. In each file, change the entry value SYSTEM to BROKENSYSTEM (as shown in the following images) and save the file. Remember the ImagePath of the current VM agent. We will need to copy the corresponding folder to the attached OS disk.
Import the registry files into the repository by double-clicking each registry file.
Confirm that the following two subkeys are successfully imported into the BROKENSYSTEM hive:
Copy the installation folder of the current VM Agent to the attached OS disk:
On the OS disk that you attached, create a folder named WindowsAzure in the root path.
Go to C:\WindowsAzure on the troubleshooter VM, look for any folder with the name C:\WindowsAzure\GuestAgent_X.X.XXXX.XXX. Copy the GuestAgent folder that has latest version number from C:\WindowsAzure to the WindowsAzure folder in the attached OS disk. If you are not sure which folder should be copied, copy all GuestAgent folders. The following image shows an example of the GuestAgent folder that is copied to the attached OS disk.
Select BROKENSYSTEM. From the menu, select File > Unload Hive.
Select BROKENSOFTWARE. From the menu, select File > Unload Hive.
Detach the OS disk, and then change the OS disk for the affected VM. For the classic VM, create a new VM by using the repaired OS disk.
Access the VM. Notice that the RdAgent is running and the logs are being generated.
If you created the VM by using the Resource Manager deployment model, you're done.
Use the ProvisionGuestAgent property for classic VMs
Classic VMs will be retired on March 1, 2023.
If you use IaaS resources from ASM, please complete your migration by March 1, 2023. We encourage you to make the switch sooner to take advantage of the many feature enhancements in Azure Resource Manager.
For more information, see Migrate your IaaS resources to Azure Resource Manager by March 1, 2023.
If you created the VM by using the classic model, use the Azure PowerShell module to update the ProvisionGuestAgent property. The property informs Azure that the VM has the VM Agent installed.
To set the ProvisionGuestAgent property, run the following commands in Azure PowerShell:
$vm = Get-AzureVM –ServiceName <cloud service name> –Name <VM name> $vm.VM.ProvisionGuestAgent = $true Update-AzureVM –Name <VM name> –VM $vm.VM –ServiceName <cloud service name>
Then run the
Get-AzureVM command. Notice that the GuestAgentStatus property is now populated with data:
Get-AzureVM –ServiceName <cloud service name> –Name <VM name> GuestAgentStatus:Microsoft.WindowsAzure.Commands.ServiceManagement.Model.PersistentVMModel.GuestAgentStatus