I threw this together for my org to get some easy remote support tools in place. Just wanted to post it here if someone else found it useful or could do a better job 😉
Evaluation Code:
#REQUIRES -Version 2.0
<#
.SYNOPSIS
This Test script checks to see if Chrome is installed
.DESCRIPTION
This script queries the installed files for 32 and 64bit software
and returns 0 if product is installed or 1 if not
.Notes
File Name :ChromeRemoteDesktop_Install_Test.ps1
Author :Automox
Prerequisite :PowerShell V2 over win7 and upper
#>
#Handle Exit Codes:
trap { $host.ui.WriteErrorLine($_.Exception); exit 90 }
function ChromeRemoteDesktop_Install_Test {
[array]$key = Get-UninstallRegistryKey -SoftwareName "Chrome Remote Desktop Host"
$alreadyInstalled = $false
$version = '80.0.3987.18'
if ($key.Count -ne 0) {
$key | ForEach-Object {
if ($_.DisplayVersion -eq $version) {
$alreadyInstalled = $true
}
}
}
$packageArgs = @{
packageName = 'chrome-remote-desktop-host'
fileType = 'msi'
url = 'https://dl.google.com/dl/edgedl/chrome-remote-desktop/chromeremotedesktophost.msi'
checksum = '83730b9919ad2dd3a41a5d2af1cfeeee7f3cad04a557a70b8de7549233c3a243'
checksumType = 'sha256'
silentArgs = '/qn /norestart'
validExitCodes = @(0)
softwareName = 'Chrome Remote Desktop Host'
}
if ($alreadyInstalled) {
#Application Found, Automox can handle the updates!
exit 0
} else {
# Application is not installed! Run Remediation Script to install it.
exit 1
}
}
ChromeRemoteDesktop_Install_Test
Remediation code:
#REQUIRES -Version 2.0
<#
.SYNOPSIS
This script allows an admin to install Google chrome remote desktop.
.DESCRIPTION
This script downloads the installer into C:\ProgramData\amagent, executes it silently, and cleans up.
This is an example script that has been tested to work on Win10 and Win7.
This script may not work on all systems. Modify to fit your needs
.NOTES
File Name :Chrome_Install.ps1
Author :Automox
Prerequisite :PowerShell V2 over win7 and upper
#>
#Handle Exit codes:
trap { $host.ui.WriteErrorLine($_.Exception); exit 90 }
function ChromeRemote_Install
{
<#
.SYNOPSIS
This function Installs the latest version of Chrome on Windows.
This Remediation Script will run as scheduled when the associated Evaluation is Non-Compliant.
.DESCRIPTION
This function download and installs the latest version of Chrome on Windows.
This script downloads the latest Chrome installer to C:\ProgramData\amagent.
After execution, files are cleaned up..
The temporary working directory will be cleaned up after execution.
Output can be viewed in the agent log (C:\ProgramData\amagent\amagent.log).
Or in the Automox Activity Log in the Reports section..
.EXAMPLE
Chrome_Install
.NOTES
#>
#User can Change the settings in this block
$saveFilePath = "$PSScriptRoot\chromeremotedesktophost.msi"
$url = "https://dl.google.com/dl/edgedl/chrome-remote-desktop/chromeremotedesktophost.msi"
# Clean up pre-existing installer files in the same location
if (Test-Path -Path "$saveFilePath") {
Remove-Item -force "$saveFilePath" -ErrorAction SilentlyContinue
}
# Download the ChromeRemoteDestkop installer file.
$downloader = (new-object System.Net.WebClient)
Try {
$downloader.DownloadFile("$url", "$saveFilePath")
Write-Output "ChromeRemoteDesktop Installer download finished..."
}
Catch {
Write-Output "File download failed. Check URL [$url] and try again."
exit 90
}
# Start Installation
Try {
$process = Start-Process -FilePath "$saveFilePath" -ArgumentList "/qn /norestart" -Wait -PassThru -ErrorAction Stop;
Write-Output "Chrome Installion Finished..."
}
Catch { $Exception = $error[0].Exception.Message + "`nAt Line " + $error[0].InvocationInfo.ScriptLineNumber
Write-Output $Exception
exit 90
}
# Avoid error while deleting the installer as process of installation is in progress.
# Wait till installer finished its process completed.
do {
if ((Get-Content $saveFilePath)) {
Write-Output "Installer complete...cleaning up installation files"
Remove-Item -force "$saveFilePath" -ErrorAction SilentlyContinue
exit $process.ExitCode
} else {
Write-Output "Waiting for Installer File Unlock"
}
$fileunlocked = 1
} Until ($fileunlocked)
}
ChromeRemote_Install