# 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
|