Installation de maj EXE par lots
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:
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:
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.