Bonjour,
Question d'un gros nul en PS.
Est-il réellement impossible de "composer" le paramètre d'un cmdlet ?

Ceci fonctionne comme attendu
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
$PrinterS = @( ("1", "Drivers1"), 
	("2", "Drivers2") ) 
foreach ( $printer in $PrinterS)
	{write-host "Printer"$Printer[0]" : Divers "$Printer[1]
	$printername="Printer  + $Printer[0]
	Add-Printer -Name $printername -DriverName $Printer[1] -PortName "LPT1:" -Shared -ShareName $printername  –Published}
Alors que ceci génère une erreur au niveau du paramètre -Name et -Sharename de Add-Printer
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
$PrinterS = @( ("1", "Drivers1"), 
	("2", "Drivers2") ) 
foreach ( $printer in $PrinterS)
	{write-host "Printer"$Printer[0]" : Divers "$Printer[1]
	Add-Printer -Name "Printer"$Printer[0] -DriverName $Printer[1] -PortName "LPT1:" -Shared -ShareName "Printer"$Printer[0] –Published}
"Printer"$Printer[0] est interprété bizarrement. A priori "Printer 1 Drivers1[0]" pour la première occurrence, ce qui fait que "1 Drivers1[0]" sont des paramètres inconnus.
"Printer$Printer[0]" ne marche pas mieux : interprété litéralement comme Printer$Printer[0]"

Merci

EDIT
Je donne les deux solutions proposées par @ericlm128 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Add-Printer -Name ("Printer"+ $Printer[0]) -DriverName $Printer[1] -PortName "LPT1:" -Shared -ShareName ("Printer"+ $Printer[0]) –Published}
ou bien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Add-Printer -Name "Printer$($Printer[0])" -DriverName $Printer[1] -PortName "LPT1:" -Shared -ShareName "Printer$($Printer[0])" –Published}
l'utilisation de $() permettant l'exécution de commande à l'intérieur d'une chaîne avec double cote ".