Script di esempio per la distribuzione su più computer
Di seguito è riportata una raccolta di script che gli amministratori IT possono trovare utili nella gestione dell’app GoTo. Questi script di esempio facilitano le attività che non vengono eseguite automaticamente dagli installatori, dai criteri di gruppo o altro. Gli amministratori IT possono integrarli manualmente nei loro script se hanno bisogno di eseguire tali attività.
Disinstalla GoTo app installazione per utente (Windows)
Questo script può essere utilizzato per disinstallare la GoTo app per l'utente corrente. Funziona solo su installazioni per utente. Dovresti eseguire direttamente dal contesto dell’utente per ogni profilo utente, per cui l’app deve essere disinstallata.
<# .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" }
Impedisci i profili utente (Windows e Mac)
Questo script può essere utilizzato per cancellare il profilo utente usato dalla GoTo app dopo l'installazione dell'app. Gli elementi del profilo utente da cancellare sono gli stessi GoTo app è stato installato per computer o per utente, ma normalmente questo script è utile per essere vuoto dopo la disinstallazione per computer. Questo perché disinstallare il file MSI per l'installazione per computer non disconnetti i profili utente, mentre la disinstallazione per utente cancella il profilo utente come parte dell'installazione di disinstallazione.
Lo script dovrebbe essere eseguito direttamente dal contesto dell'utente per ciascun utente, per cui il profilo deve essere pulito.
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
Impostare o rimuovere l'impostazione di avvio automatico (Windows)
Questi script possono essere usati per impostare o rimuovere l'impostazione di avvio automatico da usare per avviare automaticamente la GoTo app quando l'utente esegue l'accesso. Lo script funziona sia per le installazioni per computer sia per le installazioni dell’app per utente, ma l’impostazione del registro di avvio automatico stessa è nel registro degli utenti (HKCU).
Lo script dovrebbe essere eseguito direttamente dal contesto dell’utente per ogni profilo utente, per cui è necessario impostare o rimuovere l’impostazione di avvio automatico.
Per impostare l'impostazione del registro di avvio automatico:
<# .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" }
Per rimuovere l'impostazione del registro di avvio automatico:
REM Delete the auto-start setting REG DELETE HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run /v GoTo /f
Disinstalla GoTo MSI versioni 3.17 e sotto (Windows)
Questo script può essere utilizzato per disinstallare la GoTo MSI versioni 3.17 e qui sotto, che sono deprecati.
Individua e disinstalla gli MSI per dispositivi e utenti, ma ci sono requisiti diversi per il contesto di esecuzione di questo script per entrambi i tipi MSI. Leggi la descrizione dello script per ulteriori dettagli.
<# .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'" } } }