Création d'un Script à partir des Assistants VMM et des Pages de propriétés

 

S'applique à: System Center 2012 R2 Virtual Machine Manager, System Center 2012 - Virtual Machine Manager

Pour vous aider à commencer à écrire des scripts, dans System Center 2012 – Virtual Machine Manager vous pouvez générer un script lorsque vous exécutez un Assistant ou mise à jour des propriétés dans la console VMM. Vous pouvez utiliser la Afficher le Script bouton sur le Résumé page de chaque Assistant dans la console VMM ou propriétés page pour afficher l'ensemble des applets de commande qui s'exécute lorsque vous cliquez sur Terminer à la fin de l'Assistant ou OK lors de la mise à jour des propriétés. Vous pouvez modifier les commandes nécessaires et puis enregistrez le fichier avec une extension .ps1, qui l'identifie comme un script Windows PowerShell.

Modifier le Script généré

Plus les scripts générés utilisent le paramètre ID des applets de commande pour identifier des objets spécifiques sur lesquels ils auront des actions. Étant donné que ce code est spécifique à cet objet, vous pouvez souhaiter autoriser votre script accepter des paramètres ou utilisez un Get pour obtenir un objet à rendre votre script disponible pour une utilisation avec d'autres objets.

Ajout d'une applet de commande Get à un Script généré

Lorsque vous apportez une modification à une valeur de propriété, le script généré utilise un ID pour obtenir l'objet à modifier. Par exemple, le script suivant est généré lorsque vous modifiez le nom et la description pour un réseau logique :

$logicalNetwork = Get-SCLogicalNetwork -ID "7a858ed4-b8d2-4ac8-9dbe-6e6a4388c1e7"
Set-SCLogicalNetwork -Name "Backend" -Description "Backend logical network for Seattle" -LogicalNetwork $logicalNetwork -RunAsynchronously

Pour que ce script utile dans des environnements supplémentaires, vous pouvez remplacer le paramètre ID where clause. Exemple :

$logicalNetwork = @(Get-SCLogicalNetwork | where { $_.Name -like "LogicalNet*" })
Set-SCLogicalNetwork -Name "Backend" -Description "Backend logical network for Seattle" -LogicalNetwork $logicalNetwork[0] -RunAsynchronously

Désormais, la première commande récupère tous les réseaux logiques qui ont un nom qui commence par « LogicalNet » et les place dans un tableau. La deuxième commande modifie le premier réseau logique dans le tableau, la mise à jour de son nom de « Principal ».

Ajout de paramètres à un Script généré

Une autre façon de rendre un script généré plus accessible consiste à définir des paramètres dans le script. Paramètres de script fonctionnent comme des paramètres de fonction. Les valeurs de paramètre sont disponibles pour toutes les commandes dans le script. Lorsque vous exécutez le script, les utilisateurs de script taper les paramètres après le nom du script.

Pour ajouter des paramètres à un script, utilisez l'instruction Param. L'instruction Param doit être la première instruction dans le script à l'exception des commentaires. L'exemple suivant montre le script généré ci-dessus modifié afin que le nom d'un réseau logique existant et un nouveau nom pour le réseau logique peuvent être désignées et ajouter une description, lorsque le script est exécuté.

Param(
   [parameter(Mandatory=$true)]
   [String] $LogicalNetwork = $(throw "A name for an existing logical network is required."),

   [parameter(Mandatory=$true)]
   [String] $NewName = $(throw "A new name for the logical network is required."),

   [parameter(Mandatory=$false)]
   [String] $Description
   )
Set-SCLogicalNetwork -Name $NewName -Description $Description -LogicalNetwork $LogicalNetwork -RunAsynchronously

Lorsque vous exécutez ce script, vous devez fournir le nom d'un réseau logique existant et un nouveau nom pour le réseau logique. Fournir une description est facultative. Par exemple si ce script est enregistré en tant que « UpdateLogicalNetworkName.ps1 », vous devez taper ce qui suit à l'invite de commandes : .\UpdateLogicalNetworkName.ps1 -LogicalNetwork "LogicalNetwork01" -NewName "Backend" -Description "Backend logical network for Seattle." Si vous ne fournissez pas les valeurs pour LogicalNetwork et NewName, vous serez invité pour eux.

Pour plus d'informations sur l'écriture de scripts Windows PowerShell, consultez about_Scripts.