Test and wait (up to 15 seconds) to be able to connect to the server to download installer, don't try and download if we can't connect.
83 lines
2.4 KiB
PowerShell
83 lines
2.4 KiB
PowerShell
# author: https://github.com/bradhawkins85
|
|
$innosetup = 'innosetupchange'
|
|
$api = '"apichange"'
|
|
$clientid = 'clientchange'
|
|
$siteid = 'sitechange'
|
|
$agenttype = '"atypechange"'
|
|
$power = powerchange
|
|
$rdp = rdpchange
|
|
$ping = pingchange
|
|
$auth = '"tokenchange"'
|
|
$downloadlink = 'downloadchange'
|
|
$apilink = $downloadlink.split('/')
|
|
|
|
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
|
|
|
|
$serviceName = 'tacticalagent'
|
|
If (Get-Service $serviceName -ErrorAction SilentlyContinue) {
|
|
write-host ('Tactical RMM Is Already Installed')
|
|
} Else {
|
|
$OutPath = $env:TMP
|
|
$output = $innosetup
|
|
|
|
$installArgs = @('-m install --api ', "$api", '--client-id', $clientid, '--site-id', $siteid, '--agent-type', "$agenttype", '--auth', "$auth")
|
|
|
|
if ($power) {
|
|
$installArgs += "--power"
|
|
}
|
|
|
|
if ($rdp) {
|
|
$installArgs += "--rdp"
|
|
}
|
|
|
|
if ($ping) {
|
|
$installArgs += "--ping"
|
|
}
|
|
|
|
Try
|
|
{
|
|
$DefenderStatus = Get-MpComputerStatus | select AntivirusEnabled
|
|
if ($DefenderStatus -match "True") {
|
|
Add-MpPreference -ExclusionPath 'C:\Program Files\TacticalAgent\*'
|
|
Add-MpPreference -ExclusionPath 'C:\Windows\Temp\winagent-v*.exe'
|
|
Add-MpPreference -ExclusionPath 'C:\Program Files\Mesh Agent\*'
|
|
Add-MpPreference -ExclusionPath 'C:\Windows\Temp\trmm*\*'
|
|
}
|
|
}
|
|
Catch {
|
|
# pass
|
|
}
|
|
|
|
$X = 0
|
|
do {
|
|
Write-Output "Waiting for network"
|
|
Start-Sleep -s 5
|
|
$X += 1
|
|
} until(($connectreult = Test-NetConnection $apilink[2] -Port 443 | ? { $_.TcpTestSucceeded }) -or $X -eq 3)
|
|
|
|
if ($connectreult.TcpTestSucceeded -eq $true){
|
|
Try
|
|
{
|
|
Invoke-WebRequest -Uri $downloadlink -OutFile $OutPath\$output
|
|
Start-Process -FilePath $OutPath\$output -ArgumentList ('/VERYSILENT /SUPPRESSMSGBOXES') -Wait
|
|
write-host ('Extracting...')
|
|
Start-Sleep -s 5
|
|
Start-Process -FilePath "C:\Program Files\TacticalAgent\tacticalrmm.exe" -ArgumentList $installArgs -Wait
|
|
exit 0
|
|
}
|
|
Catch
|
|
{
|
|
$ErrorMessage = $_.Exception.Message
|
|
$FailedItem = $_.Exception.ItemName
|
|
Write-Error -Message "$ErrorMessage $FailedItem"
|
|
exit 1
|
|
}
|
|
Finally
|
|
{
|
|
Remove-Item -Path $OutPath\$output
|
|
}
|
|
} else {
|
|
Write-Output "Unable to connect to server"
|
|
}
|
|
}
|