En regardant dans le SDK de SCCM on trouve des trucs sympa… on doit donc pouvoir faire encore plus court:
Function UpdateClient {(New-Object -ComObject CPApplet.cpAppletMgr).GetClientActions() | ForEach-Object { Write-Host "Starting ConfigMgr action: $($_.Name)" $_.PerformAction()}}
et on peut jouer cela à distance si WinRM est activé, en couplant ça avec une routine du type “foreach” avec un csv et un scriptblock, le tout en silencieux, en une seule ligne. Il suffit alors de créer u fichier csv avec le nom des machines (une par ligne) et de le placer dans le chemin indiqué au One-Liner ci dessous
foreach ($Computer in Get-Content C:\temp\ClientFix.csv) {Invoke-Command -ComputerName $Computer -ScriptBlock {{(New-Object -ComObject CPApplet.cpAppletMgr).GetClientActions() | ForEach-Object {$_.PerformAction()}}}}
je suis fier de moi
sur ce… bonne nuit, faudra que je valide que tout fonctionne demain matin