Installazione di Google Earth Pro tramite Group Policy

Se si desira installare in modo automatizzato Google Earth Pro utilizzando le Group Policy è necessario utilizzare il pacchetto d’installazione che permette l’avvio dell’installazione silente scaricabile dal seguente link https://support.google.com/earth/answer/168344.

Tale pacchetto d’installazione non prevede l’aggiornamento automatico (al contrario del pacchetto disponibile al seguente Versioni di Earth – Google Earth, ma tramite l’opzione d’installazione OMAHA=1 è possibile avviare l’installazione in modo silente e questo permette di automatizzare l’installazione tramite Group Policy anche se non è disponibile un pacchetto msi.

Infatti è possibile automatizzare l’istallazione tramite uno script PowerShell che controlla se Google Earth Pro è già stato installato e in caso contrario procede all’installazione, lo script potrà essere avviato tramite un’operazione pianifica e il tutto gestito tramite le Group Policy Preferences utilizzando l’approccio che avevo descritto nel dettaglio nel post Automazione operazioni su client Active Directory tramite scripts: considerazioni e hardening facendo anche considerazioni sugli aspetti di sicurezza di cui è necessario tenere conto. 

Di seguito un esempio di script PowerShell che gestisce l’istallazione della versione 7.3.6.9345 di Google Earth Pro con il prerequisito che il pacchetto d’installazione googleearthprowin-7.3.6-x64.exe sia presente nella stessa directory dello script PowerShell.

#Requires -RunAsAdministrator

# Impostazioni Costanti
$ProductName = “Google Earth Pro”
$ProductVersion = “7.3.6.9345”
$LogFileName = “Install-GoogleEarthPro-736.log”
$SetupFileName = “googleearthprowin-7.3.6-x64.exe”
$SetupArgs = “OMAHA=1”

# Impostazioni Variabili per file/path Package Installazione
$PathFileInstallationPackage = Join-Path ($PSScriptRoot) ($InstallationPackageFileName)
$PathFolderInstallationPackageExtract = Join-Path ($PSScriptRoot) ($InstallationPackageExtractFolderName)

# Impostazioni Variabili per file/path Setup
$PathFolderSetup = Join-Path ($PathFolderInstallationPackageExtract) ($InstallationPackageExtractSubFolderName)
$PathFileSetup = Join-Path ($PathFolderSetup) ($SetupFileName)

# Impostazioni Variabili
$PathFileSetup = Join-Path ($PSScriptRoot) ($SetupFileName)
$PathFileLog = Join-Path ($PSScriptRoot) ($LogFileName)
$Message = “”


Try {

  # Verifica prodotto installato
  $Message = “Verifica installazione $ProductName Versione $ProductVersion”
  Write-Host $Message -ForegroundColor Green
  (Get-Date).ToString(“yyyy-MM-dd HH:mm:ss”) + ” ” + $Message | Out-File $PathFileLog

  $ProductInstalled = Get-WmiObject -Class Win32_Product | Where Name -eq $ProductName | Where Version -eq $ProductVersion

  If (($ProductInstalled).Count -eq 0)
  {
    # Avvio Installazione
    $Message = “Avvio installazione $ProductName versione $ProductVersion.”
    Write-Host $Message -ForegroundColor Blue
    (Get-Date).ToString(“yyyy-MM-dd HH:mm:ss”) + ” ” + $Message | Out-File $PathFileLog -append

    Write-Host $PathFileSetup
    Start-Process -FilePath $PathFileSetup -ArgumentList $SetupArgs -Wait

    $Message = “Installazione $ProductName versione $ProductVersion completata.”
    Write-Host $Message -ForegroundColor Green
    (Get-Date).ToString(“yyyy-MM-dd HH:mm:ss”) + ” ” + $Message | Out-File $PathFileLog -append
  }
  Else
  {
    $Message = “$ProductName versione $ProductVersion è già installato!”
    Write-Host $Message -ForegroundColor Yellow
    (Get-Date).ToString(“yyyy-MM-dd HH:mm:ss”) + ” ” + $Message | Out-File $PathFileLog -append
  }
}
Catch{
  $Message = “Errore: $_”
  Write-Host $Message -ForegroundColor Red
  (Get-Date).ToString(“yyyy-MM-dd HH:mm:ss”) + ” ” + $Message | Out-File $PathFileLog -append
}