Files
management-scripts/Install-AteraAgent.ps1
T
2022-09-06 11:41:06 -04:00

76 lines
3.8 KiB
PowerShell

param(
[Parameter(Mandatory=$false)][int]$CUSTOMER_ID=1,
[Parameter(Mandatory=$false)][string]$INTEGRATOR_ID,
[Parameter(Mandatory=$false)][string]$AGENT_FILENAME="AteraAgentSetup.msi",
[Parameter(Mandatory=$false)][switch]$FORCE
)
# Make sure $INTEGRATOR_ID exists, otherwise exit this script as an agent cannot be downloaded
#If ( ($INTEGRATOR_ID -eq $null) -or ($INTEGRATOR_ID -eq '') ) { Exit }
# Source the Tools.ps1 script
Function SourceTools
{ . $([Scriptblock]::Create((New-Object Net.WebClient).DownloadString('https://dev.emberkom.com/emberkom/management-scripts/raw/branch/master/Tools.ps1'))) }
. SourceTools
# Build the path for $AGENT_INSTALLER
$AGENT_INSTALLER = '{0}{1}' -f (GetTempPath), $AGENT_FILENAME
# Make sure we need to install the agent
If ( (Test-Path "${Env:ProgramFiles}\ATERA Networks\AteraAgent\AteraAgent.exe") -or (Test-Path "${Env:ProgramFiles(x86)}\ATERA Networks\AteraAgent\AteraAgent.exe") )
{ $INSTALL = $false ; $PreviousInstall = $true ; LogMsg "Atera agent is already installed on this endpoint" } Else { $INSTALL = $true ; $PreviousInstall = $false }
If ( $FORCE ) { $INSTALL = $true }
If ( $INSTALL ) {
# Uninstall if $FORCE is true
If ( $PreviousInstall ) {
LogMsg "Getting information from existing installation"
$ACCOUNT_ID = (Get-ItemPropertyValue -Path 'HKLM:SOFTWARE\ATERA Networks\AlphaAgent' -Name 'AccountId' -ErrorAction SilentlyContinue)
$AGENT_ID = (Get-ItemPropertyValue -Path 'HKLM:SOFTWARE\ATERA Networks\AlphaAgent' -Name 'AgentId' -ErrorAction SilentlyContinue)
$CUSTOMER_ID = (Get-ItemPropertyValue -Path 'HKLM:SOFTWARE\ATERA Networks\AlphaAgent' -Name 'CompanyId' -ErrorAction SilentlyContinue)
$INTEGRATOR_ID = (Get-ItemPropertyValue -Path 'HKLM:SOFTWARE\ATERA Networks\AlphaAgent' -Name 'IntegratorLogin' -ErrorAction SilentlyContinue)
LogMsg "AccountID : ${ACCOUNT_ID}"
LogMsg "AgentID : ${AGENT_ID}"
LogMsg "CustomerID : ${CUSTOMER_ID}"
LogMsg "IntegratorID: ${INTEGRATOR_ID}"
#Download and run the uninstall script
$UninstallScript = Download-File -URL 'https://dev.emberkom.com/emberkom/management-scripts/raw/branch/master/Uninstall-AteraAgent.ps1'
Try { Start-Process "powershell.exe" -ArgumentList "-ExecutionPolicy Bypass -Noninteractive -File ""${UninstallScript}""" -Wait }
Catch { LogErr $_.Exception.Message }
}
# Replace the '@' with '%40' - not sure why this is necessary, but it is
$INTEGRATOR_ID = $INTEGRATOR_ID.Replace('@','%40')
# Download agent installer
Download-File -URL "https://app.atera.com/GetAgent/Msi/?customerId=${CUSTOMER_ID}&integratorLogin=${INTEGRATOR_ID}" -File "${AGENT_INSTALLER}"
# Install the agent
LogMsg "Installing Atera agent from ""${AGENT_INSTALLER}"""
Try { Start-Process "msiexec.exe" -ArgumentList "/i ""${AGENT_INSTALLER}"" /qn /norestart" -Wait }
Catch { LogErr $_.Exception.Message }
# Delete the agent installer
LogMsg "Deleting ""${AGENT_INSTALLER}"""
Try { Remove-Item $AGENT_INSTALLER -Force }
Catch { LogErr $_.Exception.Message }
If ( $PreviousInstall -and $ACCOUNT_ID -and $AGENT_ID -and $CUSTOMER_ID) {
LogMsg "Restoring agent information from previous install"
LogMsg " - Stopping AteraAgent service"
Stop-Service -Name 'AteraAgent' -Force
LogMsg " - Restoring AgentID and AccountID from previous install"
Set-ItemProperty -Path 'HKLM:SOFTWARE\ATERA Networks\AlphaAgent' -Name 'AccountId' -Value $ACCOUNT_ID
Set-ItemProperty -Path 'HKLM:SOFTWARE\ATERA Networks\AlphaAgent' -Name 'AgentId' -Value $AGENT_ID
LogMsg " - Starting AteraAgent service"
Start-Service -Name 'AteraAgent'
}
}
# Delete this script
Remove-Item $MyInvocation.MyCommand.Path -Force