Casanier, mais fenêtre ouverte sur le monde entier
Template pour déployé un fichier .EXE en GPO
Template pour déployé un fichier .EXE en GPO

Template pour déployé un fichier .EXE en GPO

Voici la Template que j’utilise pour pouvoir faire un déploiement d’une APPS en .exe

### Variables
# Chemin UNC vers le partage qui contient l'exécutable
$SharedFolder = "\\SRV\logiciels gpo\DWGTRUEVIEWER"

# Chemin vers le dossier temporaire local sur le poste
$LocalFolder = "C:\TEMP"

# Nom de l'exécutable
$ExeName = "DWGTrueViewer.exe"

# Argument(s) à associer à l'exécutable
$ExeArgument = "-q"

# Si le chemin réseau vers l'exécutable est valide, on continue
if(Test-Path "$SharedFolder\$ExeName"){

  # Créer le dossier temporaire en local et copier l'exécutable sur le poste
  New-Item -ItemType Directory -Path "$LocalFolder" -ErrorAction SilentlyContinue
  Copy-Item "$SharedFolder\$ExeName" "$LocalFolder" -Force

  # Si l'on trouve bien l'exécutable en local, on lance l'installation
  if(Test-Path "$LocalFolder\$ExeName"){
    Start-Process -Wait -FilePath "$LocalFolder\$ExeName" -ArgumentList "$ExeArgument"
  }

  # On supprime l'exécutable à la fin de l'installation
  Remove-Item "$LocalFolder\$ExeName"
}
# Version cible de l'exécutable (obtenue sur une installation manuelle)
$ExeVersion = "31.0.154.0"

# Chemin vers l'exécutable une fois l'installation terminée
$ExeInstallPath = "C:\Program Files\Autodesk\DWG TrueView 2025 - French\dwgviewr.exe"

# Le logiciel est-il déjà installé dans la bonne version ?
$InstalledVersion = (Get-ItemProperty -Path "C:\Program Files\Autodesk\DWG TrueView 2025 - French\dwgviewr.exe" -ErrorAction SilentlyContinue).VersionInfo.FileVersion

if(($InstalledVersion -eq $null) -or ($InstalledVersion -ne $null -and $InstalledVersion -ne $ExeVersion)){

  # Si $InstalledVersion n'est pas null et que la version est différente : c'est qu'il faut faire une mise à jour
   if($InstalledVersion -ne $null){ 
      Write-Output "Le logiciel va être mis à jour : $InstalledVersion -> $ExeVersion"
   }

      # Si le chemin réseau vers l'exécutable est valide, on continue
   if(Test-Path "$SharedFolder\$ExeName"){

        # Créer le dossier temporaire en local et copier l'exécutable sur le poste
     New-Item -ItemType Directory -Path "$LocalFolder" -ErrorAction SilentlyContinue
     Copy-Item "$SharedFolder\$ExeName" "$LocalFolder" -Force

      # Si l'on trouve bien l'exécutable en local, on lance l'installation
     if(Test-Path "$LocalFolder\$ExeName"){
        Start-Process -Wait -FilePath "$LocalFolder\$ExeName" -ArgumentList "$ExeArgument"
     }

     # On supprime l'exécutable à la fin de l'installation
     Remove-Item "$LocalFolder\$ExeName"

   }else{

     Write-Warning "L'exécutable ($ExeName) est introuvable sur le partage !"
   }
}else{
   Write-Output "Le logiciel est déjà installé dans la bonne version !"
}

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *