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.
Partager