Je suis donc très nouveau à Powershell et je suis presque certain que ce que je fais n'est pas le moyen le plus efficace de le faire. Mais je veux vraiment comprendre pourquoi ce que je fais ne fonctionne pas.Invoke-WmiMethod -ArgumentList n'accepte pas les variables?
Je suis en train de déclencher des actions du client Configuration Manager à l'aide Powershell en exécutant le code suivant:
Invoke-Command -ComputerName $ComputerName -ScriptBlock {
Invoke-WmiMethod -Namespace "Root\CCM" -Class SMS_Client -Name
TriggerSchedule -ArgumentList "{00000000-0000-0000-0000-000000000042}"
}
Cela fonctionne très bien. Mais je voulais être capable d'appeler une variable ou quelque chose où tous ces longs codes sont au lieu d'avoir à les mettre à chaque fois que je veux changer l'action du client. Alors, voici où j'ai commencé à jouer et j'étais incapable de faire quoi que ce soit au travail.
$ApplicationDeployment = '"{00000000-0000-0000-0000000000000042}"'
Invoke-Command -ComputerName $ComputerName -ScriptBlock {
Invoke-WmiMethod -Namespace "Root\CCM" -Class SMS_Client -Name
TriggerSchedule -ArgumentList $ApplicationDeployment
}
Cela me donne une erreur. J'ai aussi essayé ce qui suit:
$hash = @{"ApplicationDeployment" = "{00000000-0000-0000-0000-000000000042}"}
Invoke-Command -ComputerName $ComputerName -ScriptBlock {
Invoke-WmiMethod -Namespace "Root\CCM" -Class SMS_Client -Name
TriggerSchedule -ArgumentList $hash.'ApplicationDeployment'
}
et enfin
$Object = @{ApplicationDeployment = '{00000000-0000-0000-0000-000000000042}'}
Invoke-Command -ComputerName $ComputerName -ScriptBlock {
Invoke-WmiMethod -Namespace "Root\CCM" -Class SMS_Client -Name
TriggerSchedule -ArgumentList $Object.ApplicationDeployment
}
J'ai aussi essayé
$($ApplicationDeployment).ArgumentList
Mais cela donne la même erreur que tout le reste.
J'apprécierais vraiment une explication quant à pourquoi ceci ne fonctionne pas ... Merci d'avance.
Merci pour l'explication. – Ben