J'ai des problèmes pour passer un tableau au script PowerShell en tant que paramètre de CMD. Voici un exemple du code PS:Passer un tableau en tant que paramètre de CMD à PowerShell pose des problèmes
[CmdletBinding()]
Param(
[string[]]$serverArray,
)
$serviceName = 'service1'
function getState {
Process {
$serverArray
foreach ($server in $serverArray) {
$servState = (Get-WmiObject Win32_Service -ComputerName $server -Filter "name='$serviceName'").State
}
}
getState
Comment j'appelle script CMD:
powershell -file .\script.ps1 -serverArray Server1,Server2
Je reçois une erreur, car $serverArray
n'est pas passé un tableau:
Server1,Server2 Get-WmiObject : The RPC server is unavailable. (Exception from HRESULT: 0x800706BA) At C:\script.ps1:58 char:29 + $servState = (Get-WmiObject <<<< Win32_Service -ComputerName $server -Filter "name='$serviceName'").State + CategoryInfo : InvalidOperation: (:) [Get-WmiObject], COMException + FullyQualifiedErrorId : GetWMICOMException,Microsoft.PowerShell.Commands.GetWmiObjectCommand
Si Je cours la même commande à partir d'une fenêtre PowerShell cela fonctionne parce que le script accepte $serverArray
comme un tableau:
.\script.ps1 -serverArray Server1,Server2
Server1 Server2
'-file' ->' -command' – PetSerAl
S'il vous plaît assurez-vous de test exécuter votre code [mcve] pour vous assurer qu'il doe sn't introduire des erreurs supplémentaires comme la virgule de fin parasite dans votre définition de paramètre et le crochet de fermeture manquant de votre fonction. –