81 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			PowerShell
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			PowerShell
		
	
	
	
	
	
# gretsky https://discord.com/channels/736478043522072608/744281869499105290/890953042332094514
 | 
						|
 | 
						|
$ErrorActionPreference = "SilentlyContinue"
 | 
						|
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
 | 
						|
 | 
						|
$env:COMPUTERNAME
 | 
						|
 | 
						|
$install = $NULL
 | 
						|
$serviceName = 'tacticalagent'
 | 
						|
$rmmURI = 'https://INSTALL_SCRIPT_LOCATION/rmm.ps1'
 | 
						|
$headers = @{
 | 
						|
	'X-API-KEY'    = 'YOURAPIKEY'
 | 
						|
	"Content-Type" = "application/json"
 | 
						|
}
 | 
						|
 | 
						|
$Model = (Get-WmiObject -Class win32_computersystem -ComputerName localhost).model
 | 
						|
if ($Model.toupper().contains('VIRTUAL') -Or ($Model.toupper().contains('PROLIANT')) -Or ($Model.toupper().contains('VMWARE'))) {
 | 
						|
	Write-Output 'Serveur'
 | 
						|
	$rmmURI = 'https://INSTALL_SCRIPT_LOCATION/rmm_server.ps1'
 | 
						|
}
 | 
						|
 | 
						|
$ChkReg = Test-Path 'HKLM:\SOFTWARE\TacticalRMM\'
 | 
						|
If ($ChkReg -eq $True) {
 | 
						|
	$regrmm = Get-ItemProperty -Path HKLM:\SOFTWARE\TacticalRMM\
 | 
						|
}
 | 
						|
else {
 | 
						|
	write-host "Installing, no registry entry"
 | 
						|
	Invoke-Expression ((new-object System.Net.WebClient).DownloadString($rmmURI))
 | 
						|
	Start-Sleep -s 60
 | 
						|
}
 | 
						|
 | 
						|
Try {
 | 
						|
	$rmmagents = Invoke-RestMethod -Method Patch -Headers $headers -uri "https://rmm-api.DOMAIN.COM/agents/listagents/"
 | 
						|
}
 | 
						|
Catch {
 | 
						|
	write-host "RMM down ???"
 | 
						|
	Start-Sleep -s 5
 | 
						|
	exit 1
 | 
						|
}
 | 
						|
 | 
						|
Foreach ($rmmagent in $rmmagents) {
 | 
						|
 | 
						|
	$hostname = $rmmagent.hostname
 | 
						|
	$agent_id = $rmmagent.agent_id
 | 
						|
	$agentpk = $rmmagent.id
 | 
						|
 | 
						|
	if ($hostname -eq $env:COMPUTERNAME) {
 | 
						|
 | 
						|
		if ($agent_id -eq $regrmm.agentid) {
 | 
						|
			Write-Host 'Not Duplicate!'
 | 
						|
			$install = "OK"
 | 
						|
			Start-Sleep -s 5
 | 
						|
		}
 | 
						|
		else {
 | 
						|
			write-host "delete" $agentpk			
 | 
						|
			$body = "{`"pk`":$agentpk}"
 | 
						|
			Invoke-RestMethod -Method DELETE -Headers $headers -body $body -uri "https://rmm-api.DOMAIN.COM/agents/uninstall/" 
 | 
						|
			Start-Sleep -s 5
 | 
						|
		}
 | 
						|
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
if ($install -eq $NULL) {
 | 
						|
 | 
						|
	If (Get-Service $serviceName -ErrorAction SilentlyContinue) {
 | 
						|
		write-host ('Tactical RMM Is Already Installed')
 | 
						|
		& 'C:\Program Files\TacticalAgent\unins000.exe' /VERYSILENT /SUPPRESSMSGBOXES /FORCECLOSEAPPLICATIONS
 | 
						|
		Start-Sleep -s 20	
 | 
						|
	}
 | 
						|
	Invoke-Expression ((new-object System.Net.WebClient).DownloadString($rmmURI))
 | 
						|
	Start-Sleep -s 30
 | 
						|
	exit 0
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
if ($install -eq "OK") {
 | 
						|
	write-host "OK!"
 | 
						|
	Start-Sleep -s 5
 | 
						|
	exit 0
 | 
						|
} |