Header image
Jean-René DANIS


Script d'installation silencieuse pour Adobe Reader 9.4.0

Voici un script qui permet d'installer Adobe Reader 9.4.0 sans assistance en powershell.

Ce script désinstalle préalablement la version 9.x d'Adobe reader si elle est déjà installée.

Ligne de commande : "AdbeRdr940_fr_FR.msi /passive /norestart"

Prérequis

Avoir déjà installé Powershell.

Principe

Mettre les 3 fichiers suivants dans le même dossier :

1- AdbeRdr940_fr_FR.msi téléchargé sur le site d'Adobe : http://www.adobe.com/
2- install.bat : décrit ci-dessous
3- install.ps1 : décrit ci-dessous

Pour installer Adobe Reader 9.4.0 de manière silencieuse : double cliquer sur install.bat

Détail des scripts nécessaires

install.bat

 

cls
@echo OFF
@echo ....................................
@echo INSTALLATION DE Adobe reader 9.4.0
@echo JEAN-RENE DANIS 11/11/10
@echo ....................................

powershell.exe .\install.ps1

 

 

install.ps1Version pdf en couleur ici

 

# Script d'installation sans assistance pour le logiciel :
# Adobe Reader 9.4.0
# écrit par Jean-René DANIS le 25/10/2010
# www.jrdanis.com
#
# pré-requis : rien
#
# valable pour les systèmes d'exploitations suivants :
# Windows XP 32bits : pas testé
# Windows Vista 32bits et 64bits : pas testé
# Windows 7 32bits : pas testé
#
# historique des mise à jours :
#
# le 25/10/2010 : création

##Emplacement du fichier log
$dossierLog = "C:\install\log"
##Creation du dossier pour le fichier log
$dossierACreer = $dossierLog
If ((test-path $dossierACreer) -ne $TRUE)
{
New-Item -type directory -Path $dossierACreer
}
##Fichier Log
$fichierLog = "$dossierLog\adberdr940.PS1.log"
$fichierLogunMSI = "$dossierLog\adberdr940.uninstallmsi.log"
$fichierLogMSI = "$dossierLog\adberdr940.installmsi.log"

$heureDebut = Get-Date
"Début : $heureDebut" >> $fichierLog

##Variables
$scriptDir = Get-Location
$MSItoProcess = "AdbeRdr940_fr_FR.msi"
$ProgExist = $False

##Architecture
$Archi = (Get-WmiObject -class Win32_OperatingSystem).OSArchitecture
switch ($Archi){
## cas de Win7 64bits
"64 bits" {"Archi 64 bits" >> $fichierLog; break}
"32 bits" {"Archi 32 bits" >> $fichierLog; break}
## cas de XP 32bits
"" {$Archi = "32 bits" ;"Archi 32 bits (XP)" >> $fichierLog; break}
}

##
## Desinstallation des versions anterieurs 9.x
##
"Verification de la présence de Acrobat Reader 9.x" >> $fichierLog
switch ($Archi){
"32 bits" {$AdobeInstFold = "hklm:\software\adobe\Acrobat Reader\9.0\Installer"; break}
"64 bits" {$AdobeInstFold = "hklm:\software\Wow6432Node\adobe\Acrobat Reader\9.0\Installer"; break}
}
If ( (Test-Path $AdobeInstFold) -eq $True){
$AdobeRegInst = Get-ItemProperty $AdobeInstFold
$Guid = $AdobeRegInst.ENU_GUID
if ( $Guid -eq "{AC76BA86-7AD7-1036-7B44-A94000000001}"){
"La version $Guid est déjà installée, désinstaller la manuellement avant de pouvoir la réinstaller." >> $fichierLog
$ProgExist = $True
}
Else{
Write-host "Une version anterieur existe $Guid dans $AdobeInstFold"
"Une version anterieur existe $Guid dans $AdobeInstFold" >> $fichierLog

$parameters = "/passive /norestart /x $Guid /li $fichierLogunMSI"
$uninstallStatement = [System.Diagnostics.Process]::Start( "msiexec", $parameters )
$uninstallStatement.WaitForExit()
Write-host "Desinstallation de $Guid en cours..."
"Desinstallation de $Guid en cours..." >> $fichierLog
}
}
Else
{
Write-host "Pas d'ancienne version dèja installé."
"Pas d'ancienne version dèja installé." >> $fichierLog
}

##
## Installation de la nouvelle version
##
If( $ProgExist -eq $False){
cd $scriptDir
Write-host "Installation de $MSItoProcess"
"Installation de $MSItoProcess" >> $fichierLog
$parameters = " /passive /norestart /i $MSItoProcess /li $fichierLogMSI"
$installStatement = [System.Diagnostics.Process]::Start( "msiexec", $parameters )
$installStatement.WaitForExit()

##
## Personnalisation registre
##
switch ($Archi){
## ce parametre n'est pas dans Wow6432Node
"32 bits" {$CleAdobe = "HKLM:\SOFTWARE\Adobe\Acrobat Reader\9.0\AdobeViewer"; break}
"64 bits" {$CleAdobe = "HKLM:\SOFTWARE\Adobe\Acrobat Reader\9.0\AdobeViewer"; break}
}
if (Test-Path $CleAdobe)
{
"La clé de registre $CleAdobe existe déjà, suppression de cette clé."
Remove-Item $CleAdobe
}
if ((Test-Path $CleAdobe) -eq $False)
{
Write-host "creation de la clé"
md "HKLM:\SOFTWARE\Adobe" -ErrorAction SilentlyContinue
md "HKLM:\SOFTWARE\Adobe\Acrobat Reader" -ErrorAction SilentlyContinue
md "HKLM:\SOFTWARE\Adobe\Acrobat Reader\9.0" -ErrorAction SilentlyContinue
md "HKLM:\SOFTWARE\Adobe\Acrobat Reader\9.0\AdobeViewer"
}
if (Test-Path $CleAdobe)
{
"La clé de registre $CleAdobe existe."
New-ItemProperty $CleAdobe -Name "EULA" -Value 1 -PropertyType "DWord"
Get-ItemProperty $CleAdobe "EULA" -ErrorAction SilentlyContinue | Out-Null
if ($? -eq "True")
{
"La valeur 'EULA' a été créée."
$VerifValeur = (Get-ItemProperty $CleAdobe "EULA")."EULA"
if ($VerifValeur -eq 1)
{
"La valeur 'EULA' est réglée à 1." >> $fichierLog
}else
{
"ERREUR => La valeur 'EULA' n'est pas réglée à 1 mais à $VerifValeur."
}

}else
{
"ERREUR => La valeur 'EULA' n'a pas été créée."
}
"La clé de registre $CleAdobe existe."
New-ItemProperty $CleAdobe -Name "Launched" -Value 1 -PropertyType "DWord"
Get-ItemProperty $CleAdobe "Launched" -ErrorAction SilentlyContinue | Out-Null
if ($? -eq "True")
{
"La valeur 'Launched' a été créée."
$VerifValeur = (Get-ItemProperty $CleAdobe "Launched")."Launched"
if ($VerifValeur -eq 1)
{
"La valeur 'Launched' est réglée à 1." >> $fichierLog
}else
{
"ERREUR => La valeur 'Launched' n'est pas réglée à 1 mais à $VerifValeur."
}

}else
{
"ERREUR => La valeur 'Launched' n'a pas été créée."
}
}else
{
"ERREUR => La clé de registre $CleAdobe n'existe pas."
}

##
## Suppression des entrées dans le registre
##

$EmplValeurASuprr = "HKLM:\software\Microsoft\windows\currentversion\run"
$NomValeurASuprr = "AdobeAAMUpdater-1.0"
"Liste des valeurs de $EmplValeurASuprr" >> $fichierLog
Get-ItemProperty -path $EmplValeurASuprr >> $fichierLog

$NomValeurASuprr = "AdobeAAMUpdater-1.0"
"Suppression de $NomValeurASuprr dans $EmplValeurASuprr" >> $fichierLog
remove-itemproperty -path $EmplValeurASuprr -name $NomValeurASuprr

$NomValeurASuprr = "Adobe ARM"
"Suppression de $NomValeurASuprr dans $EmplValeurASuprr" >> $fichierLog
remove-itemproperty -path $EmplValeurASuprr -name $NomValeurASuprr

$NomValeurASuprr = "Adobe Reader Speed Launcher"
"Suppression de $NomValeurASuprr dans $EmplValeurASuprr" >> $fichierLog
remove-itemproperty -path $EmplValeurASuprr -name $NomValeurASuprr

"Liste des nouvelles valeurs de $EmplValeurASuprr" >> $fichierLog
Get-ItemProperty -path $EmplValeurASuprr >> $fichierLog

##
## Suppression d'un raccourci dans le bureau de tous les utilisateurs
##

$RaccourciASuprr = "Adobe Reader 9.lnk"
$BureauAllUser = (get-itemproperty -path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" -name "Common Desktop")."Common Desktop"
$FichierASuppr = $BureauAllUser + "\" + $RaccourciASuprr
"Liste des fichiers dans $FichierASuppr" >> $fichierLog
Get-ChildItem -path $BureauAllUser >> $fichierLog
"Suppression de $RaccourciASuprr dans $FichierASuppr" >> $fichierLog
Remove-Item -path $FichierASuppr
"Liste des fichiers aprés la suppression dans $FichierASuppr" >> $fichierLog
Get-ChildItem -path $BureauAllUser >> $fichierLog


}
Else{
"Le programme existe déjà, il ne sera pas réinstallé." >> $fichierLog
}

 

$heureFin = Get-Date
"Fin : $heureFin" >> $fichierLog