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
}