Bonjour la communauté,
Je dois déployer des mises à jour Office sur un ensemble de postes. Ces mises à jour sont aux formats CAB et EXE.
Pour le format CAB, j'ai réussi à faire un script PowerShell, avec une boucle Foreach et la commande Add-WindowsPackage, j'ai réussi à installer un lot de fichiers CAB.
Pour les maj au format EXE, je n'y parviens pas.
Ci-dessous le code de mon script,....qui ne fonctionne pas

Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Start-Transcript -Path "c:\Temp\InstallExeUpdates.txt" -Append
$StartDate=Get-Date -Format "dddd dd/MM/yyyy HH:mm:ss"
#Liste des maj au format EXE
$Updates=Get-ChildItem -Path C:\Temp -File *.exe | 
    Where-Object { $InstalledPatches -notcontains ( $_.BaseName -replace '^.*?\-(kb\d{7})\-.*$', '$1' )}
$Updates
$Process="C:\WINDOWS\system32\cmd.exe"
#$Arguments="/quiet /norestart"
if(-not $Updates ){
    Write-Host "already installed"
    #exit
    }
Foreach($Update in $Updates){
    Write-Host "$Update" #juste pour affichage de l'information
    $Install=Start-Process $Update -ArgumentList '/quiet', '/norestart'
    $Install.WaitForExit()
    #Move-Item -Path C:\Temp\$Update -Destination C:\Temp\Installed\$Update
    }
$EndDate=Get-Date -Format "dddd dd/MM/yyyy HH:mm:ss"
$Duration=((Get-Date $EndDate) - (Get-Date $StartDate)).ToString()
$Duration
Stop-Transcript


Message d'erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
Impossible d’appeler une méthode dans une expression Null.
Au caractère C:\Temp\InstallExeUpdates.ps1:16 : 5
+     $Install.WaitForExit()
+     ~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation : (:) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull

Merci infiniment pour toute aide....Je ne trouve plus la solution.