Jean-Sébastien DUCHENE Blog's

Actualité, Tips, Articles sur l'ensemble des Technologies Microsoft (Microsoft Intune, ConfigMgr, Microsoft Defender, Microsoft Purview, Microsoft Azure, Windows...)

J’ai plusieurs labs de machines virtuelles hébergés dans Microsoft Azure. Comme je les arrête dès que je ne m’en sers pas, les adresses IP publiques changent systématiquement. Dès que je les allume, je dois systématiquement retélécharger les fichiers RDP à partir du portail Azure. Fatigué de toujours retélécharger ces fichiers, j’ai cherché à savoir si Royal TS s’interconnectait directement à Microsoft Azure pour générer des connexions sur les machines virtuelles. Malheureusement, ce très bon outil de gestion des connexions, ne le fait pas et il n’existe aucun plugin ou extensions le permettant. En cherchant sur Internet, je suis tombé sur le projet Ryan Hoffman permettant via un script PowerShell de générer un document avec toutes les machines virtuelles.

Aujourd’hui ce script ne fonctionne que pour des machines virtuelles ASM. Vous devez comme moi utiliser Azure Resource Manager (ARM) pour générer les machines virtuelles ce qui rend le script obsolète. J’ai décidé de passer une petite heure pour le revoir et compléter.

Il génère donc un document Royal TS à partir des abonnements Azure pour des machines virtuelles Windows uniquement (à date).

Parmi les prérequis nécessaires :

  • PowerShell 5.1
  • Import-Module RoyalDocument.PowerShell
  • Import-Module AzureRM.Compute
  • Import-Module AzureRM.Network
  • Les droits sur les abonnements/subscriptions

Basiquement, il :

  • Liste tous les abonnements et recherche les VMs et leurs adresses IP publiques
  • Créé un document Royal TS
  • Recrée la hiérarchie de dossiers sur la base des abonnements Azure
  • Crée un identifiant générique
  • Crée une connexion RDP pour chaque VM ayant une adresse IP publique
  • Lie l’identifiant générique à chaque connexion RDP créé

Ce qu’il ne fait pas :

  • Gérer Azure Bastion
  • Gérer les VMs Linux avec SSH
  • Gérer les VMs sans adresse IP publique
  • Gérer différentss identifiants de connexion selon la machine virtuelle ou des groupes de VMs
  • Gérer la personnalisation du port RDP. J'ai mis le port 3389 par défaut mais il est possible de le changer dans le script. Je n’ai pas poussé le script jusqu’à chercher une règle RDP dans les NSG afin d’en récupérer le port RDP.
  • Gérer toute une série d’exceptions et de scénarios auxquels je n’ai pas pensé
  • Etc

Bien entendu, il y a la place pour de l’évolution et de l’amélioration pour ceux qui seraient intéressés.

En pratique, vous pouvez :

  • Récupérer le script
  • Changer les variables essentielles (chemin du fichier, port, nom du document, etc.)
  • Créer un lien Windows que vous mettez sur votre bureau et qui pointe sur le script PowerShell dans un dossier dédié en exécutant la commande : C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -command "& '<chemin vers le script> \AzureToRoyalTS.PS1'

Lors de l’exécution, ce sont les informations que vous obtenez :

 

Le script génère un fichier qui, une fois ouvert, comprend toutes les machines virtuelles ayant une adresse IP :

 

Télécharger AzureToRoyalTS

Facebook Like