Ejemplos de scripts al implementar en varios ordenadores
A continuación, se muestran varios scripts que los administradores de TI pueden encontrar útiles para gestionar la aplicación GoTo. Estos scripts de ejemplo simplifican las tareas que los instaladores, las políticas de grupo u otros no realizan automáticamente. Los administradores de TI pueden integrarlos manualmente en sus scripts si deben realizar estas tareas.
Desinstalación GoTo app instalación por usuario (Windows)
Este script se puede usar para desinstalar el GoTo app para el usuario actual. Funciona solo en instalaciones por usuario. Debe ejecutarse desde el contexto de usuario de cada perfil de usuario para el que debe desinstalar la aplicación.
<# .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" }
Borrar los perfiles de usuarios (Windows y Mac)
Este script puede usarse para limpiar el perfil de usuario utilizado por la GoTo app una vez desinstalado la aplicación. Los elementos de los perfiles de usuario para limpiar son los mismos, independientemente de si GoTo app se ha instalado por máquina o por usuario, pero normalmente este script es útil para limpiar después de desinstalar la desinstalación por equipo. Esto se debe a que desinstala el MSI para la instalación por equipo no elimina los perfiles de usuario, mientras que la desinstalación por usuario borra el perfil de usuario como parte de la desinstalación.
El script debe ejecutarse desde el contexto del usuario de cada usuario para el que debe limpiarse el perfil.
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
Configurar o quitar el ajuste de inicio automático (Windows )
Estos scripts se pueden usar para configurar o quitar el ajuste de inicio automático que se utiliza para iniciar automáticamente la GoTo app cuando el usuario inicia sesión. El script funciona de las instalaciones por equipo y de la aplicación por usuario, pero el registro de inicio automático se configura en el registro de usuarios (HKCU).
El script debe ejecutarse desde el contexto del usuario de cada perfil de usuario, para el cual debe establecerse o eliminar el ajuste de inicio automático.
Para establecer la configuración del registro de inicio automático:
<# .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" }
Para quitar la configuración del registro de inicio automático:
REM Delete the auto-start setting REG DELETE HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run /v GoTo /f
Desinstalación GoTo MSI versiones 3.17 e inferiores (Windows)
Este script se puede usar para desinstalar el GoTo MSI las versiones 3.17 e inferioresque están obsoletos.
Se encuentra y desinstala los MSI de la máquina y de los usuarios, pero hay diferentes requisitos para el contexto de ejecución de este script para ambos tipos de MSI. Lea la descripción del script para obtener más información.
<# .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'" } } }