Exemples de scripts lors du déploiement sur plusieurs ordinateurs
Vous trouverez ci-dessous une série de scripts que les administrateurs informatiques qui peuvent être utiles aux administrateurs informatiques pour gérer l’application GoTo. Ces exemples de scripts facilitent les tâches qui ne sont pas exécutées automatiquement par les installateurs, les stratégies de groupe ou autres. Les administrateurs informatiques peuvent les intégrer manuellement dans leurs scripts s’ils ont besoin d’effectuer ces tâches.
Désinstaller GoTo app installation par utilisateur (Windows)
Ce script peut être utilisé pour désinstaller GoTo app pour l'utilisateur actuel. Elle fonctionne uniquement sur les installations par utilisateur. Elle doit être exécutée à partir du contexte utilisateur pour chaque profil utilisateur, pour laquelle l'application doit être désinstallée.
<# .SYNOPSIS This script checks if the GoTo app is installed for the current user and, if so, uninstalls it silently. .DESCRIPTION The script checks if the app is running and stops it if so. It then reads the uninstall command line from the "QuietUninstallString" entry under the "Uninstall" key for the GoTo app and executes it. #> $ErrorActionPreference = "Stop" Function Stop-App { Param ( [Parameter(Mandatory)][String]$AppName ) # Close the app, if running. $AppProcesses = Get-Process -Name $AppName -ErrorAction SilentlyContinue if ($AppProcesses) { Write-Host "Stopping $AppName app..." Stop-Process -Name $AppName -Force # Wait a bit Start-Sleep -Seconds 5 } else { Write-Host "$AppName app is not running" } # Check that the app is not still running $AppProcesses = Get-Process -Name $AppName -ErrorAction SilentlyContinue if ($AppProcesses) { Write-Host "$AppName app is still running, aborting" Exit 1 } } # Make sure the GoTo app is not running Stop-App -AppName GoTo # Read the QuietUninstallString try { $UninstStr = Get-ItemPropertyValue -LiteralPath "HKCU:\Software\Microsoft\Windows\CurrentVersion\Uninstall\b5746384-3503-4fbf-824a-0a42d1bd0639" -Name "QuietUninstallString" } catch { $UninstStr = $null } if ($UninstStr) { # Optionally, preserve the user profile # $UninstStr = "$UninstStr --KeepProfile" Write-Host "Found GoTo app installed, uninstalling using command: $UninstStr" # Uninstall app $Process = Start-Process -FilePath "$Env:ComSpec" -ArgumentList "/c $UninstStr" -PassThru $Process.WaitForExit() Write-Host "Done" } else { Write-Host "GoTo app is not installed" }
Nettoyer les profils d'utilisateur (Windows et Mac)
Ce script peut être utilisé pour nettoyer le profil utilisateur utilisé par GoTo app après l'installation de l'application. Les éléments de profil utilisateur à nettoyer sont les mêmes que GoTo app a été installé par machine ou par utilisateur, mais normalement ce script est utile après la désinstallation par machine. En effet, la désinstallation du MSI pour l'installation par machine n'efface pas les profils d'utilisateur, tandis que la désinstallation par utilisateur efface le profil utilisateur dans le cadre de la désinstallation.
Le script doit être exécuté à partir du contexte utilisateur pour chaque utilisateur, pour lequel le profil doit être nettoyé.
Windows
REM Delete the app registry key REG DELETE HKEY_CURRENT_USER\Software\LogMeInInc\GoTo /f REM Delete the auto-start setting REG DELETE HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run /v GoTo /f REM Delete the app data folder RMDIR /S /Q "%APPDATA%\GoTo"
Mac
# Delete the plist rm -f ~/Library/Preferences/com.logmein.goto.plist # Delete the app data folder rm -rf ~/Library/Application\ Support/GoTo
Définir ou supprimer le paramètre de registre lancé automatiquement (Windows)
Ces scripts peuvent être utilisés pour définir ou supprimer le paramètre de registre lancé automatiquement utilisé pour démarrer automatiquement GoTo app quand l'utilisateur se connecte. Le script fonctionne pour les installations par poste et par application, mais le paramètre de registre automatique de démarrage est lui-même dans le registre des utilisateurs (HKCU).
Le script doit être exécuté à partir du contexte utilisateur pour chaque profil utilisateur, pour lequel le paramètre de démarrage automatique doit être défini ou retiré.
Pour définir le paramètre de démarrage automatique, procédez comme suit:
<# .SYNOPSIS This script sets the auto-start registry setting used to automatically start the GoTo app when the user logs in. .DESCRIPTION The script checks the installation folder of the app, in both HKLM and HKCU (it works for both per-machine and per-user app installations). It then sets a "GoTo" entry under the "Run" key for the current user. #> $ErrorActionPreference = "Stop" # Read the InstallLocation. Try both HKLM and HKCU try { $instLoc = Get-ItemPropertyValue -LiteralPath "HKLM:\Software\LogMeInInc\GoTo\ElectronInstallDetails" -Name "InstallLocation" } catch { try { $instLoc = Get-ItemPropertyValue -LiteralPath "HKCU:\Software\LogMeInInc\GoTo\ElectronInstallDetails" -Name "InstallLocation" } catch { $instLoc = $null } } if ($instLoc -ne $null) { Write-Host "Found GoTo app installed at: $instLoc" # Set the auto-start registry setting $regValue = Join-Path -Path $instLoc -ChildPath "GoTo.exe" -Resolve Write-Host "Setting auto-start registry setting to value: $regValue" Set-ItemProperty -LiteralPath "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run" -Name "GoTo" -Value $regValue -Type String Write-Host "Done" } else { Write-Host "GoTo app is not installed" }
Pour supprimer le paramètre de registre de démarrage automatique:
REM Delete the auto-start setting REG DELETE HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run /v GoTo /f
Désinstaller GoTo MSI versions 3.17 et inférieures (Windows)
Ce script peut être utilisé pour désinstaller GoTo MSI versions 3.17 et inférieures, qui est déconseillé.
Elle détecte et désinstalle les deux MSI Machine et User, mais requiert des exigences différentes pour le contexte d'exécution de ce script pour les deux types MSI. Veuillez lire la description du script pour plus de détails.
<# .SYNOPSIS This script uninstalls all MSI versions of the GoTo/GoToConnect app versions 3.17 and below. .DESCRIPTION The script checks if the app is running and stops it if so. It then checks for MSI packages with the UpgradeCode used by MSI versions 3.17 and below and uninstalls them. The Machine MSI requires admin privileges to be uninstalled, so run this script from an admin account in order to uninstall the Machine MSI. Since the User MSI is installed on the user level, this script should be run in the user context that has the User MSI installed. #> $ErrorActionPreference = "Stop" # This is the UpgradeCode for: # - MSI versions 3.17 and below, both the User and Machine MSI installers # - MSI versions 3.18 and above, only the MSI for per-machine installation $UpgradeCode = "{147165DC-20D5-5870-9653-1A02A52D396F}" # MSI versions below this one will be uninstalled $UninstallVersionsBelow = [System.Version]::Parse("3.18") Function Stop-App { Param ( [Parameter(Mandatory)][String]$AppName ) # Close the app, if running. $AppProcesses = Get-Process -Name $AppName -ErrorAction SilentlyContinue if ($AppProcesses) { Write-Host "Stopping $AppName app..." Stop-Process -Name $AppName -Force # Wait a bit Start-Sleep -Seconds 5 } else { Write-Host "$AppName app is not running" } # Check that the app is not still running $AppProcesses = Get-Process -Name $AppName -ErrorAction SilentlyContinue if ($AppProcesses) { Write-Host "$AppName app is still running, aborting" Exit 1 } } # The app was called GoToConnect in older versions. Make sure both the GoTo and GoToConnect apps are not running Stop-App -AppName GoTo Stop-App -AppName GoToConnect $AllProps = Get-CimInstance -Class Win32_Property # Get an array of product codes with the matching upgrade code $ProductCodes = @(($AllProps | Where-Object {$_.Property -eq "UpgradeCode" -and $_.Value -eq $UpgradeCode}).ProductCode) if (!$ProductCodes) { Write-Host "No installed MSIs found with the specified UpgradeCode $UpgradeCode" } else { Write-Host "Found $($ProductCodes.Length) MSI(s) installed with the specified UpgradeCode $UpgradeCode`n" foreach ($ProductCode in $ProductCodes) { # Obtain the ProductName and ProductVersion of the current ProductCode $ProductName = ($AllProps | Where-Object {$_.Property -eq "ProductName" -and $_.ProductCode -eq $ProductCode}).Value $ProductVersion = ($AllProps | Where-Object {$_.Property -eq "ProductVersion" -and $_.ProductCode -eq $ProductCode}).Value Write-Host "ProductName: $ProductName ProductVersion: $ProductVersion ProductCode: $ProductCode" try { $ProductVersionParsed = [System.Version]::Parse($ProductVersion) if ($ProductVersionParsed -lt $UninstallVersionsBelow) { Write-Host "`tProductVersion below threshold, uninstalling..." # Start msiexec.exe to uninstall the current ProductCode $MSIArguments = @( "/x" $ProductCode "/qn" "/norestart" ) $Process = Start-Process "msiexec.exe" -ArgumentList $MSIArguments -Wait -NoNewWindow -PassThru # Check exit code from msiexec.exe if ($Process.ExitCode -eq 0) { Write-Host "`tCompleted." } else { Write-Host "`tFailed to uninstall - msiexec.exe exit code $($Process.ExitCode)." } } else { Write-Host "`tProductVersion too high, not uninstalling" } } catch { Write-Host "`tUnable to parse ProductVersion '$ProductVersion'" } } }