Antwort

1

Wir könnten die Virtual Machine Extensions REST API verwenden, um das zu tun. Es funktioniert richtig für mich. Folgendes ist meine Detailtest-Info.

1.We müssen die authorization im Request-Header

Authorization:Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUz....... 
Content-Type:application/json 

2.Add die folgenden Informationen in der Anfrage Körper

{ 
    "properties": { 
    "publisher": "Microsoft.Compute", 
    "type": "VMAccessAgent", 
    "typeHandlerVersion": "2.0", 
    "autoUpgradeMinorVersion": true, 
    "settings": { 
     "UserName": "local admin" //your local admin 
    }, 
    "protectedSettings": { 
     "Password": "your reset passord" //match the password policy 
    } 
    }, 
    "location": "East Asia" 
} 
  1. Senden erhalten die http-Anfrage mit Fiddler.

enter image description here

4. Erfolgreich remote die VM mit Reset-Passwort.

Wir können auch unser lokales Administratorkennwort im Azure-Portal zurücksetzen.

enter image description here

+0

aus dem Screenshot sehe ich, dass Sie die Erweiterung namens tomtest verwenden, wo bekommen Sie diesen Namen? – Rossini

+0

Wir können den Namen der Erweiterung verwenden, wenn er nicht existiert, und dann wird er für uns neu erstellt. Und die http-Methode ist 'Put'. –

+0

Wenn es irgendwelche Bedenken zu diesem Thema gibt, können Sie sich gerne an mich wenden. –

0

Sie können auch die Azure .NET SDK verwenden, die für die create or update call einen Wrapper hat.

Ich habe versucht und stieß auf ein Problem, bei dem die Anforderung der VM-Erweiterung bestanden und erfolgreich installiert wurde, aber das Kennwort wurde nicht aktualisiert.

Nachdem ich Fiddler angeschlossen hatte, sah ich, dass meine dynamischen Objekte für settings und protectedSettings nicht ordnungsgemäß von der Bibliothek serialisiert wurden. Die Lösung bestand darin, stattdessen ein Wörterbuch an den Konstruktor VirtualMachineExtensions() zu übergeben.

Vorher:

proxy.VirtualMachineExtensions.BeginCreateOrUpdateWithHttpMessagesAsync(        
       "<resource group>", 
       "<vm name>", 
       "<you name it>", 
       new Microsoft.Azure.Management.Compute.Models.VirtualMachineExtension(
        location: "westus", 
        publisher: "Microsoft.Compute", 
        virtualMachineExtensionType: "VMAccessAgent", 
        typeHandlerVersion: "2.0", 
        autoUpgradeMinorVersion: true, 
        settings: new 
        { 
         UserName: "<username>" 
        }, 
        protectedSettings: new 
        { 
         Password: "<password>" 
        })); 

Nach:

proxy.VirtualMachineExtensions.BeginCreateOrUpdateWithHttpMessagesAsync(        
       "<resource group>", 
       "<vm name>", 
       "<you name it>", 
       new Microsoft.Azure.Management.Compute.Models.VirtualMachineExtension(
        location: "westus", 
        publisher: "Microsoft.Compute", 
        virtualMachineExtensionType: "VMAccessAgent", 
        typeHandlerVersion: "2.0", 
        autoUpgradeMinorVersion: true, 
        settings: new Dictionary<string, string>() 
        { 
         { "UserName", "<username>" } 
        }, 
        protectedSettings: new Dictionary<string, string>() 
        { 
         {"PassWord", "<password>" } 
        })); 
Verwandte Themen