2017-05-11 2 views
1

Ich untersuche, wie ich Befehle remote auf einer neu bereitgestellten Windows-VM in Azure ausführen kann und ein paar grundlegende Fragen habe.Wie werden einfache benutzerdefinierte Befehle auf einer Azure-VM (7,8,10, Server) nach der Bereitstellung ausgeführt?

Es scheint, wie die ‚Custom Script Extension‘ ist die Antwort, aber nach der Dokumentation wird als nur für Server-Betriebssysteme angegeben:

https://docs.microsoft.com/en-us/azure/virtual-machines/windows/extensions-customscript

Das ist richtig Ich gehe davon aus? Und wenn ja, was ist mit Nicht-Server Windows OS?

Umzug auf, ich habe versucht, die benutzerdefinierte Script-Erweiterung für ein Windows Server 2016 Datacenter verwenden, basierend auf den MS-Tutorial an: https://docs.microsoft.com/en-us/azure/virtual-machines/scripts/virtual-machines-linux-cli-sample-create-vm-nginx?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json

war mein Ziel, einen neuen Windows-VM zu erstellen und ihn anweisen, einfach zu Erstellen Sie ein neues Verzeichnis nach der Bereitstellung.

CLI Schritte:

1. Create a resource group 
2. Create a new virtual machine (Server 2016 Datacentre) 
3. Finally, run the following command: 

az vm extension set --publisher Microsoft.Azure.Extensions --version 2.0 --name CustomScript --vm-name (nameOfMyVM) --resource-group (nameOfMyResourceGroup) --settings '{"commandToExecute":"powershell.exe md c:\testFolder"} '

Diese den Fehler zurückgibt:

Handler 'Microsoft.Azure.Extensions.CustomScript' has reported failure for VM Extension 'CustomScript' with terminal error code '1007' and error message: 'Install failed for plugin (name: Microsoft.Azure.Extensions.CustomScript, version 2.0.3) with exception The specified executable is not a valid application for this OS platform.' 

Sollten zusätzliche Schritte beteiligt waren, erfolgreich diese Aktion auf der VM zu erreichen?

Dank

Antwort

1

Wie 4c74356b41 sagte, Sie ein Linux-Script-Erweiterung verwenden, für Windows-Server, sollten wir verwenden CustomScriptExtension und die publisher ist Microsoft.Compute.

Wir CLI 2.0 verwenden können Erweiterung Fenster VM zu setzen, hier sind meine Schritte:
1.Erstellen eine JSON-Datei, wie folgt aus:

{ 
    "commandToExecute": "powershell.exe mkdir C:\\test321" 
} 

2.Verwenden Sie CLI einzustellen Erweiterung für Windows VM: wir können diesen Befehl Skript verwenden:

az vm extension set -n CustomScriptExtension --publisher Microsoft.Compute --version 1.8 --vm-name jasonvm --resource-group vmm --settings C:\Users\jason\Desktop\test\jasontest5.json 

Hier ist das Ergebnis:

C:\Users\jason>az vm extension set -n CustomScriptExtension --publisher Microsoft.Compute --version 1.8 --vm-name jasonvm --resource-group vmm --settings C:\Users\jason\Desktop\test\jasontest5.json 
{ 
    "autoUpgradeMinorVersion": true, 
    "forceUpdateTag": null, 
    "id": "/subscriptions/5384xxxx-xxxx-xxxx-xxxx-xxxxe29a7b15/resourceGroups/vmm/providers/Microsoft.Compute/virtualMachines/jasonvm/extensions/CustomScriptExtension", 
    "instanceView": null, 
    "location": "centralus", 
    "name": "CustomScriptExtension", 
    "protectedSettings": null, 
    "provisioningState": "Succeeded", 
    "publisher": "Microsoft.Compute", 
    "resourceGroup": "vmm", 
    "settings": { 
    "commandToExecute": "powershell.exe mkdir C:\\test321" 
    }, 
    "tags": null, 
    "type": "Microsoft.Compute/virtualMachines/extensions", 
    "typeHandlerVersion": "1.8", 
    "virtualMachineExtensionType": "CustomScriptExtension" 
} 

============== ============================
aktualisieren:

Wie David sagte, wir diesen Befehl ohne jSON-Datei verwenden können :

az vm extension set -n CustomScriptExtension --publisher Microsoft.Compute --version 1.8 --vm-name DVWinServerVMB --resource-group DVResourceGroup --settings "{'commandToExecute': 'powershell.exe md c:\\test'}" 
+1

Danke Jason, das hat den Trick gemacht! Und kann auch ohne JSON-Datei ausgeführt werden: az vm Erweiterung festgelegt -n CustomScriptExtension --publisher Microsoft.Compute --version 1.8 --vm-name DVWinServerVMB - Ressource-Gruppe DVResourceGroup - Einstellungen "{'commandToExecute':" powershell.exe md c: \\ test '} " – David

+0

Vielen Dank für Ihren Anteil, ich werde dies auf diese Antwort aktualisieren. –

+0

Danke! War mit diesem Problem bei der Installation und Erweiterung von Ansible beschäftigt. Nein, wo Sie über die Unterschiede in den Erweiterungen Bescheid wissen können, und Microsofts Dokumente sind zu diesem Thema schwer zu finden. Du bist ein Lebensretter – dsutherland

1

Sie eine Linux-Script-Erweiterung gegen Fenster VM verwenden, versuchen und erraten, wie erfolgreich das sein könnte? Dies ist der Link suchen:
https://docs.microsoft.com/en-us/azure/virtual-machines/windows/extensions-customscript?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json

Auch benutzerdefinierte Skript-Erweiterung ist der Weg zu gehen, oder Sie können DSC-Erweiterung verwenden, oder Azure Automation, je nach Komplexität dessen, was Sie tatsächlich benötigen.

Verwandte Themen