From eaf0afa2b59835a8170e0a58995e86b5da5203c7 Mon Sep 17 00:00:00 2001 From: David Yoder Date: Mon, 17 Oct 2022 13:22:41 -0400 Subject: [PATCH] upgrade to msi install and local config --- Install-ESETManagementAgent.ps1 | 37 ++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/Install-ESETManagementAgent.ps1 b/Install-ESETManagementAgent.ps1 index 39b21c2..20f0ba6 100644 --- a/Install-ESETManagementAgent.ps1 +++ b/Install-ESETManagementAgent.ps1 @@ -1,27 +1,30 @@ -param( - [Parameter(Mandatory=$true)][string]$URL -) +# NOTE: The $CONFIG variable must be set by the calling script -# 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 +# Create temp directory +$TEMPDIR = '{0}eset-protect-deployment' -f (GetTempPath) +LogMsg "Creating: ${TEMPDIR}" +Try { New-Item -Path $TEMPDIR -ItemType Directory -Force -ErrorAction Stop } +Catch { LogErr $_.Exception.Message ; Exit } + +# Write $CONFIG to install_config.ini +Try { $CONFIG | Out-File -FilePath "${TEMPDIR}\install_config.ini" -Force -ErrorAction Stop } +Catch { LogMsg "Cannot write configuration file! This script will exit." ; LogErr $_.Exception.Message ; Exit } + +# Get bitness of endpoint and set $AGENTNAME +If ( Is64bit ) { $AGENTNAME = "agent_x64.msi" } Else { $AGENTNAME = "agent_x86.msi" } # Download the installer -$INSTALLER = '{0}epi_win_live_installer.exe' -f (GetTempPath) -LogMsg "Downloading ESET Management Agent live installer" -Try { Invoke-WebRequest -Uri $URL -UseBasicParsing -OutFile $INSTALLER } -Catch { LogErr $_.Exception.Message } +$INSTALLER = "${TEMPDIR}\${AGENTNAME}" +$URL = 'https://download.eset.com/com/eset/apps/business/era/agent/latest/{0}' -f $AGENTNAME +LogMsg "Downloading ESET Management Agent" +Download-File -URL $URL -File $INSTALLER # Install the app LogMsg "Installing ESET Management Agent from ""${INSTALLER}""" -Try { Start-Process "${INSTALLER}" -ArgumentList "--silent --accepteula" -Wait } +Try { Start-Process "msiexec.exe" -ArgumentList "/i ${INSTALLER} /qn /norestart" -Wait } Catch { LogErr $_.Exception.Message } # Delete the installer -LogMsg "Deleting downloaded installer ""${INSTALLER}""" -Try { Remove-Item -Path $INSTALLER -Force -ErrorAction SilentlyContinue } +LogMsg "Deleting temp directory and its contents" +Try { Remove-Item -Path $TEMPDIR -Recurse -Force -ErrorAction SilentlyContinue } Catch { LogErr $_.Exception.Message } - -# Delete this script -Remove-Item $MyInvocation.MyCommand.Path -Force