Header image
Jean-René DANIS


Script d'installation silencieuse pour Adobe Reader X (10.0.0)

Voici un script qui permet d'installer Adobe Reader X (10.0.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 : "AdbeRdr1000_fr_FR.msi /passive /norestart"

Prérequis

Avoir déjà installé Powershell.

Principe

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

1- AdbeRdr1000_fr_FR.msi téléchargé sur le site d'Adobe : http://www.adobe.com/
2- install.bat : décrit ci-dessous
3- installation-silencieuse-Adobe-Reader-X-10.0.0.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 X (10.0.0)
@echo JEAN-RENE DANIS 21/11/10
@echo ....................................

powershell.exe .\installation-silencieuse-Adobe-Reader-X-10.0.0.ps1

 

 

installation-silencieuse-Adobe-Reader-X-10.0.0 Version pdf en couleur ici

 

# Script d'installation sans assistance pour le logiciel :
# Adobe Reader X (Adobe Reader 10.0.0)
# Avant de procédé à l'installation : désinstallation de la version 9.X si elle existe
# écrit par Jean-René DANIS le 19/11/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 : testé
# Windows 7 32bits : pas testé
# Windows 7 64bits : testé
#
# historique des mise à jours :
#
# le 19/11/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\AdobeReader1000.PS1.log"
$fichierLogunMSI = "$dossierLog\AdobeReader9x.uninstallmsi.log"
$fichierLogMSI = "$dossierLog\AdobeReader1000.installmsi.log"

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

##Variables
$scriptDir = Get-Location
$MSItoProcess = "AdbeRdr1000_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 anciennes versions anterieurs d'Adobe Reader 9.x si elle existe
##
"Verification de la présence d'Adobe Reader 9.x" >> $fichierLog
switch ($Archi){
"32 bits" {$Adobe9xInstFold = "hklm:\software\adobe\Acrobat Reader\9.0\Installer"; break}
"64 bits" {$Adobe9xInstFold = "hklm:\software\Wow6432Node\adobe\Acrobat Reader\9.0\Installer"; break}
}
If ( (Test-Path $Adobe9xInstFold) -eq $True){
$Adobe9xRegInst = Get-ItemProperty $Adobe9xInstFold
$Guid = $Adobe9xRegInst.ENU_GUID
Write-host "Une version anterieur d'Adobe Reader 9.x existe $Guid dans $Adobe9xInstFold"
"Une version anterieur d'Adobe Reader 9.x existe $Guid dans $Adobe9xInstFold" >> $fichierLog

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

##
## Desinstallation des versions anterieurs d'Adobe Reader 10.x si elle existe
## sauf la 10.0.0 : {AC76BA86-7AD7-1036-7B44-AA0000000001}
##
"Verification de la présence de Acrobat Reader 10.x" >> $fichierLog
switch ($Archi){
"32 bits" {$AdobeInstFold = "hklm:\software\adobe\Acrobat Reader\10.0\Installer"; break}
"64 bits" {$AdobeInstFold = "hklm:\software\Wow6432Node\adobe\Acrobat Reader\10.0\Installer"; break}
}
If ( (Test-Path $AdobeInstFold) -eq $True){
$AdobeRegInst = Get-ItemProperty $AdobeInstFold
$Guid = $AdobeRegInst.ENU_GUID
if ( $Guid -eq "{AC76BA86-7AD7-1036-7B44-AA0000000001}"){
"La version d'Adobe Reader 10.0.0 $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 d'Adobe Reader 10.x existe $Guid dans $AdobeInstFold"
"Une version anterieur d'Adobe Reader 10.x 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 d'Adobe Reader X (Adobe Reader 10.0.0) à partir de $MSItoProcess"
"Installation d'Adobe Reader X (Adobe Reader 10.0.0) à partir de $MSItoProcess" >> $fichierLog
$parameters = " /passive /norestart /i $MSItoProcess /li $fichierLogMSI"
$installStatement = [System.Diagnostics.Process]::Start( "msiexec", $parameters )
$installStatement.WaitForExit()

##
## Personnalisation registre
##
Write-host "Personnalisation d'Adobe Reader X (Adobe Reader 10.0.0)"
"Personnalisation d'Adobe Reader X (Adobe Reader 10.0.0)" >> $fichierLog
switch ($Archi){
## ce parametre n'est pas dans Wow6432Node
"32 bits" {$CleAdobe = "HKLM:\SOFTWARE\Adobe\Acrobat Reader\10.0\AdobeViewer"; break}
"64 bits" {$CleAdobe = "HKLM:\SOFTWARE\Adobe\Acrobat Reader\10.0\AdobeViewer"; break}
}
if (Test-Path $CleAdobe)
{
"La clé de registre $CleAdobe existe déjà, suppression de cette clé." >> $fichierLog
Remove-Item $CleAdobe
}
if ((Test-Path $CleAdobe) -eq $False)
{
"creation de la clé $CleAdobe" >> $fichierLog
md "HKLM:\SOFTWARE\Adobe" -ErrorAction SilentlyContinue
md "HKLM:\SOFTWARE\Adobe\Acrobat Reader" -ErrorAction SilentlyContinue
md "HKLM:\SOFTWARE\Adobe\Acrobat Reader\10.0" -ErrorAction SilentlyContinue
md "HKLM:\SOFTWARE\Adobe\Acrobat Reader\10.0\AdobeViewer"
}
if (Test-Path $CleAdobe)
{
"La clé de registre $CleAdobe a été créé." >> $fichierLog
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." >> $fichierLog
$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." >> $fichierLog
}

}else
{
"ERREUR => La valeur 'EULA' n'a pas été créée." >> $fichierLog
}

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." >> $fichierLog
$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." >> $fichierLog
}

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

##
## Suppression d'un raccourci dans le bureau de tous les utilisateurs
##
Write-host "Suppression du raccourci d'Adobe Reader X (Adobe Reader 10.0.0) du burreau"
"Suppression du raccourci d'Adobe Reader X (Adobe Reader 10.0.0) du burreau" >> $fichierLog
$RaccourciASuprr = "Adobe Reader X.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