Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La fonctionnalité Run Command utilise l’agent de machine virtuelle pour exécuter des scripts PowerShell au sein d’une machine virtuelle Windows Azure. Vous pouvez utiliser ces scripts pour la gestion générale des ordinateurs ou des applications. Ils peuvent vous aider à diagnostiquer et corriger rapidement les problèmes de réseau et d’accès aux machines virtuelles et à rétablir l’état de la machine virtuelle.
Avantages
Vous pouvez accéder à vos machines virtuelles de plusieurs façons. Run Command peut exécuter à distance des scripts sur vos machines virtuelles à l’aide de l’agent de machine virtuelle. Vous utilisez Run Command par le biais du Portail Azure, de l’API REST ou de PowerShell pour machines virtuelles Windows.
Cette fonctionnalité est utile dans tous les scénarios où vous souhaitez exécuter un script sur une machine virtuelle. C’est l’une des seules manières de détecter et de corriger un problème sur une machine virtuelle qui n’a pas de port RDP ou SSH ouvert en raison d’une configuration incorrecte du réseau ou de l’utilisateur administratif.
Prérequis
Systèmes d’exploitation Windows pris en charge
| Version du système d'exploitation | x64 | ARM64 |
|---|---|---|
| Windows 10 | Pris en charge | Pris en charge |
| Windows 11 | Pris en charge | Pris en charge |
| Windows Server 2016 | Pris en charge | Pris en charge |
| Windows Server 2016 Core | Pris en charge | Pris en charge |
| Windows Server 2019 | Pris en charge | Pris en charge |
| Windows Server 2019 Core | Pris en charge | Pris en charge |
| Windows Server 2022 | Pris en charge | Pris en charge |
| Windows Server 2022 Core | Pris en charge | Pris en charge |
| Windows Server 2022 Azure Edition | Pris en charge | Pris en charge |
| Windows Server 2025 | Pris en charge | Pris en charge |
| Windows Server 2025 Core | Pris en charge | Pris en charge |
| Windows Server 2025 Azure Edition | Pris en charge | Pris en charge |
Restrictions
Les restrictions suivantes s’appliquent lorsque vous utilisez Run Command :
- La sortie est limitée aux derniers 4 096 octets.
- La durée minimale d’exécution d’un script est d’environ 20 secondes.
- Les scripts s’exécutent en tant que système sous Windows.
- Vous ne pouvez exécuter qu’un script à la fois.
- Les scripts qui demandent des informations (mode interactif) ne sont pas pris en charge.
- Vous ne pouvez pas annuler un script en cours d’exécution.
- La durée maximale d’exécution d’un script est de 90 minutes. Le script expire après ce délai.
- Une connectivité sortante à partir de la machine virtuelle est nécessaire pour retourner les résultats du script.
- Il n’est pas recommandé d’exécuter un script qui provoquera l’arrêt ou la mise à jour de l’agent de machine virtuelle. Cela peut maintenir l’extension dans un état de transition, ce qui peut entraîner une expiration du délai d’attente.
Remarque
Pour fonctionner correctement, Run Command a besoin d’une connectivité (port 443) aux IP publiques Azure. Si l’extension n’a pas accès à ces points de terminaison, il se peut que les scripts s’exécutent correctement, mais qu’ils ne retournent pas les résultats. Si vous bloquez le trafic sur la machine virtuelle, vous pouvez utiliser des balises de service pour autoriser le trafic à destination des IP publiques Azure en utilisant la balise AzureCloud.
La fonctionnalité Exécuter la commande ne fonctionne pas si l’état de l’agent de machine virtuelle n’est PAS PRÊT. Vérifiez l’état de l’agent dans les propriétés de la machine virtuelle dans le portail Azure.
Commandes disponibles
Ce tableau affiche la liste des commandes disponibles pour les machines virtuelles Windows. Vous pouvez utiliser la commande RunPowerShellScript pour exécuter n’importe quel script personnalisé de votre choix. Quand vous utilisez Azure CLI ou PowerShell pour exécuter une commande, la valeur que vous fournissez pour le paramètre --command-id ou -CommandId doit être l’une des valeurs listées ci-dessous. Quand vous spécifiez une valeur qui n’est pas une commande disponible, vous recevez cette erreur :
The entity was not found in this Azure location
Commandes disponibles
| CommandID | Description | Informations supplémentaires |
|---|---|---|
| RunPowerShellScript | Exécute un script PowerShell. | |
| DisableNLA | Désactive l’authentification au niveau du réseau. Vous devez redémarrer la machine virtuelle une fois le script terminé pour que la modification prenne effet. Le script lui-même ne redémarre pas la machine virtuelle. | readme |
| DisableWindowsUpdate | Désactivez les mises à jour automatiques via Windows Update. | readme |
| EnableAdminAccount | Vérifie si le compte d’administrateur local est désactivé, et le cas échéant l’active. | readme |
| EnableEMS | Activez les services de gestion des urgences (EMS) pour autoriser la connexion de la console série dans les scénarios de résolution des problèmes. | readme |
| EnableRemotePS | Activez PowerShell à distance. | readme |
| EnableWindowsUpdate | Activer les mises à jour automatiques via Windows Update. | readme |
| IMDSCertCheck | Vérifie la santé de l'IMDS, puis analyse les certificats actuellement installés dont dépend l'IMDS. S’il est manquant, affiche des détails supplémentaires et des étapes d’atténuation. | readme |
| IPConfig | Affiche des informations détaillées sur l’adresse IP, le masque de sous-réseau et la passerelle par défaut pour chaque adaptateur lié à TCP/IP. Pour une utilisation, reportez-vous à Exécuter des scripts | readme |
| RDPSettings | Vérifie les paramètres du registre et les paramètres de la stratégie de domaine. Suggère des actions de stratégie si l’ordinateur fait partie d’un domaine ou modifie les paramètres en valeurs par défaut. | readme |
| ResetRDPCert | Supprime le certificat SSL lié à l’écouteur RDP et restaure la sécurité de l’écouteur RDP par défaut. Utilisez ce script si vous rencontrez des problèmes avec le certificat. | readme |
| SetRDPPort | Définit le numéro de port par défaut ou spécifié par l’utilisateur pour les connexions Bureau à distance. Active la règle de pare-feu pour l’accès entrant au port. | readme |
| WindowsActivationValidation | Vérifie l’état actuel de la licence Windows (activé ou non) et l’alerte est générée si la machine n’est pas activée. | readme |
| WindowsGhostedNicValidationScript | Ce script analyse le Registre Windows pour les cartes réseau sur les bus PCI et VMBUS, les compare aux cartes réseau actuellement actives et identifie les NICs fantômes. Utile pour résoudre les problèmes réseau ou nettoyer les anciennes cartes réseau. | readme |
| WindowsUpgradeAssessmentValidation | Ce script est conçu pour évaluer la préparation d’une machine Windows (client ou serveur) pour une mise à niveau sur place du système d’exploitation, avec des considérations spéciales pour les machines virtuelles Azure. Il évalue la version du système d’exploitation, les chemins de mise à niveau pris en charge, l’espace disque système et les fonctionnalités de sécurité Azure telles que Le lancement approuvé, le démarrage sécurisé et vTPM. | readme |
Limitation de l’accès à la commande Run
Le listage des commandes d’exécution ou l’affichage des détails d’une commande nécessite l’autorisation Microsoft.Compute/locations/runCommands/read au niveau de l’abonnement. Le rôle intégré Lecteur et les niveaux supérieurs disposent de cette autorisation.
L’exécution d’une commande nécessite l’autorisation Microsoft.Compute/virtualMachines/runCommand/action. Le rôle Contributeur de machines virtuelles et les niveaux supérieurs disposent de cette autorisation.
Vous pouvez utiliser un des rôles intégrés ou créer un rôle personnalisé afin d’exécuter Run Command.
Utilisation des commandes d’exécution
Remarque
- Les valeurs de paramètre peuvent être de type chaîne uniquement et le script est chargé de les convertir en d’autres types si nécessaire.
- En fonction de la modalité utilisée pour l'exécution, il peut être nécessaire de procéder à des échappements. Par exemple, si vous exécutez la commande dans une session PowerShell, le chemin d'accès au fichier script doit être entre guillemets.
- Les commandes intégrées ne sont pas modifiables.
Accédez à une machine virtuelle dans le Portail Azure et sélectionnez Run command dans le menu de gauche sous Opérations. Une liste des commandes pouvant s’exécuter sur la machine virtuelle s’affiche.
Choisissez une commande à exécuter. Certaines des commandes peuvent avoir des paramètres d’entrée facultatifs ou obligatoires. Pour ces commandes, les paramètres sont présentés en tant que champs de texte vous permettant de fournir les valeurs d’entrée. Pour chaque commande, vous pouvez voir le script en cours d’exécution en développant Afficher le script. La commande RunPowerShellScript est différente des autres commandes, car elle vous permet de fournir votre propre script personnalisé.
Une fois que vous avez choisi la commande, sélectionnez Exécuter pour exécuter le script. Une fois le script terminé, il renvoie la sortie et toutes les erreurs dans la fenêtre de sortie. La capture d’écran suivante montre un exemple de sortie de l’exécution de la commande RDPSettings.
Résolution des problèmes rencontrés avec Action Run Command dans Windows
Pour résoudre des problèmes rencontrés avec Action Run Command dans les environnements Windows, examinez les détails du fichier journal RunCommandExtension, qui se trouve généralement dans le répertoire suivant : C:\WindowsAzure\Logs\Plugins\Microsoft.CPlat.Core.RunCommandWindows\<version>\RunCommandExtension.log
Problèmes connus
L’extension Action Run Command peut échouer à s’exécuter dans votre environnement Windows si la commande contient des caractères réservés. Exemple :
Si le symbole
&est passé dans le paramètre de la commande, comme dans le script PowerShell ci-dessous, l’exécution peut échouer.$paramm='abc&jj' Invoke-AzVMRunCommand -ResourceGroupName AzureCloudService1 -Name test -CommandId 'RunPowerShellScript' -ScriptPath C:\data\228332902\PostAppConfig.ps1 -Parameter @{"Prefix" = $paramm}Utilisez le caractère
^pour placer&en échappement dans l’argument. Par exemple :$paramm='abc^&jj'L’extension Run Command peut également ne pas s’exécuter si la commande à exécuter contient « \n » dans le chemin. Dans ce cas, elle sera traitée comme une nouvelle ligne. Par exemple,
C:\Windows\notepad.execontient\ndans le chemin du fichier. Prévoyez de remplacer\npar\Ndans le chemin.Vérifiez que vous n’avez pas de paramètre personnalisé dans la de clé de Registre
HKLM\SOFTWARE\Microsoft\Command Processor\AutoRun(détaillée ici). Cela peut se déclencher pendant l’installation de l’extension RunCommand ou activer des phases et provoquer une erreur telle que « XYZ n’est pas reconnu comme une commande interne ou externe, un programme opérable ou un fichier batch ».
Suppression de l’extension Run Command orientée action
Si vous devez supprimer l’extension Windows Action Run Command, reportez-vous aux étapes ci-dessous pour la procédure avec Azure PowerShell et l’interface CLI :
Dans les exemples de suppression suivants, remplacez rgname et vmname par le nom de votre groupe de ressources et celui de votre machine virtuelle, respectivement.
Invoke-AzVMRunCommand -ResourceGroupName 'rgname' -VMName 'vmname' -CommandId 'RemoveRunCommandWindowsExtension'
Remarque
Lorsque vous appliquez à nouveau Run Command, l’extension est installée automatiquement. Vous pouvez utiliser la commande de suppression d’extension pour résoudre les problèmes liés à l’extension.
Étapes suivantes
Pour en savoir plus sur les autres méthodes pour exécuter à distance des commandes et des scripts dans votre machine virtuelle, consultez Exécuter des scripts dans votre machine virtuelle Windows.