param( [Parameter(Mandatory=$true)][int]$CUSTOMER_ID, [Parameter(Mandatory=$true)][string]$INTEGRATOR_ID, [Parameter(Mandatory=$false)][string]$AGENT_FILENAME="EmberkomAteraAgentSetup.msi", [Parameter(Mandatory=$false)][switch]$FORCE ) ## 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 } Else { $INSTALL = $true ; $PreviousInstall = $false } If ( $FORCE ) { $INSTALL = $true } If ( $INSTALL ) { ## Uninstall if $FORCE is true If ( $PreviousInstall ) { LogMsg "Uninstalling previously installed agent" $UninstallScript = Download-File -URL 'https://dev.emberkom.com/emberkom/management-scripts/raw/branch/master/Uninstall-AteraAgent.bat' Try { Start-Process "cmd.exe" -ArgumentList "/c ""${UninstallScript}""" -Wait } Catch { LogErr $_.Exception.Message } Try { Remove-Item $UninstallScript -Force } Catch { LogErr $_.Exception.Message } } ## Download agent installer Download-File -URL 'https://dev.emberkom.com/emberkom/management-scripts/raw/branch/master/resources/AteraAgentSetup.msi' -File "${AGENT_INSTALLER}" ## Install the agent LogMsg "Installing Atera agent" Try { Start-Process "msiexec.exe" -ArgumentList "/i ""${AGENT_INSTALLER}"" /qn /norestart INTEGRATORLOGIN=${INTEGRATOR_ID} COMPANYID=${CUSTOMER_ID}" -Wait } Catch { LogErr $_.Exception.Message } ## Delete the agent installer LogMsg "Deleting ""${AGENT_INSTALLER}""" Try { Remove-Item $AGENT_INSTALLER -Force } Catch { LogErr $_.Exception.Message } } Else { LogMsg "Atera agent is already installed on this endpoint." }