2 votes

Comment puis-je passer plusieurs arguments à Set-AzureRmVMCustomScriptExtension ?

Le cmdlet Azure pour ajouter une extension script personnalisée à une VM nommée. Set-AzureRmVMCustomScriptExtension a un -Argument qui indique qu'il accepte une chaîne de caractères, mais ne donne aucun exemple de sa mise en œuvre. Bien qu'il soit indiqué qu'il peut accepter plusieurs arguments, il semble que ce soit pour un seul argument.

Je dois passer plusieurs arguments, mais je ne trouve pas la syntaxe correcte pour le faire.

Exemple :

$arg1 = "mysitename"
$arg2 = "c:/mydirectorytocreate"

-Argument "$arg1,$arg2"

Comment puis-je passer plusieurs arguments à Set-AzureRmVMCustomScriptExtension afin de pouvoir transmettre ces valeurs au script qui en a besoin (par exemple, transmettre un nom de site IIS et un chemin d'accès au répertoire comme deux valeurs distinctes).

4voto

Matt Points 32326

Il existe un exemple d'utilisation d'arguments multiples à partir de ce blog :

Set-AzureVMCustomScriptExtension -VM $x -ContainerName 'test' -FileName 'script1.ps1','script2.ps1','script3.ps1' -Run 'script1.ps1' -Argument 'arg1 arg2' 
      | Update-AzureVM  

Si ce code snipett fonctionne réellement, cela signifie que vous devez passe une chaîne de caractères délimitée par des espaces pour vos arguments. Veillez simplement à conserver vos guillemets pour que les variables se développent correctement.

0voto

woter324 Points 622

Je ne sais pas s'il y a une différence entre la version ASM (classique) et ARM de cette cmdlet mais pour moi, j'ai dû procéder ainsi (paramètres manquants pour plus de clarté) :

$arguments = "-arg1 'foo' -arg2 'bar' -arg3 'cat'"

Set-AzureRmVMCustomScriptExtension `
    -Argument $Arguments `
    -Run "SomeScript.ps1"

SomeScript.ps1 ressemblerait à quelque chose comme :

param
(
    [string]$arg1,
    [string]$arg2,
    [string]$arg3
)

function SomeFunction
{
    Write-Host $arg1
    Write-Host $arg2
    Write-Host $arg3

    #Do something here...
}
SomeFunction -arg1 $arg1 -arg2 $arg2 -arg3 $arg3 #Call the function from within SomeScript.ps1

Si vous pouviez réellement voir la sortie de Write-Host lorsqu'il est exécuté à partir d'une extension script personnalisée, il en résulterait une sortie de :

foo
bar
cat

HTH.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X