From bb25bb48da5167ee9927233f383643e64e93d73d Mon Sep 17 00:00:00 2001 From: dinger1986 Date: Wed, 30 Aug 2023 13:49:15 +0100 Subject: [PATCH] Create _index.en.md --- .../Tactical RMM/_index.en.md | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 content/self-host/Client Deployment/3rd Integrations/Tactical RMM/_index.en.md diff --git a/content/self-host/Client Deployment/3rd Integrations/Tactical RMM/_index.en.md b/content/self-host/Client Deployment/3rd Integrations/Tactical RMM/_index.en.md new file mode 100644 index 0000000..36ab0ae --- /dev/null +++ b/content/self-host/Client Deployment/3rd Integrations/Tactical RMM/_index.en.md @@ -0,0 +1,87 @@ +--- +title: Tactical RMM +weight: 100 +--- + +## To install Rustdesk and use it with Tactical RMM you need to the the following. + +1. Install your own Tactical RMM Server, following their [official docs](https://docs.tacticalrmm.com/) and open ports. +2. Create the following scripts (all are powershell). +3. Create a [URL Action](https://docs.tacticalrmm.com/functions/url_actions/). +4. Create [custom fields](https://docs.tacticalrmm.com/functions/custom_fields/) for the RustDesk ID and password. +5. Create [collector tasks](https://docs.tacticalrmm.com/functions/automated_tasks/#collector-tasks). + +## Install Script Replace IPADDRESS and KEY +``` +$ErrorActionPreference= 'silentlycontinue' + +If (!(Test-Path c:\Temp)) { + New-Item -ItemType Directory -Force -Path c:\Temp > null +} + +cd c:\Temp + +powershell Invoke-WebRequest "https://github.com/rustdesk/rustdesk/releases/download/1.2.2/rustdesk-1.2.2-x86_64.exe" -Outfile "rustdesk.exe" +Start-Process .\rustdesk.exe --silent-install -wait + +$ServiceName = 'Rustdesk' +$arrService = Get-Service -Name $ServiceName -ErrorAction SilentlyContinue + +if ($arrService -eq $null) +{ + Start-Sleep -seconds 20 +} + +while ($arrService.Status -ne 'Running') +{ + Start-Service $ServiceName + Start-Sleep -seconds 5 + $arrService.Refresh() +} +net stop rustdesk + +$username = ((Get-WMIObject -ClassName Win32_ComputerSystem).Username).Split('\')[1] +Remove-Item C:\Users\$username\AppData\Roaming\RustDesk\config\RustDesk2.toml +New-Item C:\Users\$username\AppData\Roaming\RustDesk\config\RustDesk2.toml +Set-Content C:\Users\$username\AppData\Roaming\RustDesk\config\RustDesk2.toml "rendezvous_server = 'IPADDRESS' `nnat_type = 1`nserial = 0`n`n[options]`ncustom-rendezvous-server = 'IPADDRESS'`nkey = 'KEY='`nrelay-server = 'IPADDRESS'`napi-server = 'https://IPADDRESS'" +Remove-Item C:\Windows\ServiceProfiles\LocalService\AppData\Roaming\RustDesk\config\RustDesk2.toml +New-Item C:\Windows\ServiceProfiles\LocalService\AppData\Roaming\RustDesk\config\RustDesk2.toml +Set-Content C:\Windows\ServiceProfiles\LocalService\AppData\Roaming\RustDesk\config\RustDesk2.toml "rendezvous_server = 'IPADDRESS' `nnat_type = 1`nserial = 0`n`n[options]`ncustom-rendezvous-server = 'IPADDRESS'`nkey = 'KEY='`nrelay-server = 'IPADDRESS'`napi-server = 'https://IPADDRESS'" + +net start rustdesk +``` + +## RustDesk Get ID (Collector Script needs Custom Agent Field) + +``` +$ErrorActionPreference= 'silentlycontinue' + +cd $env:ProgramFiles\RustDesk\ +.\RustDesk.exe --get-id | out-host +``` + +## RustDesk Set and Get Password (Collector Script needs Custom Agent Field) +``` +$ErrorActionPreference= 'silentlycontinue' + +net stop rustdesk > null +$ProcessActive = Get-Process rustdesk -ErrorAction SilentlyContinue +if($ProcessActive -ne $null) +{ +stop-process -ProcessName rustdesk -Force +} + +$rustdesk_pw = (-join ((65..90) + (97..122) | Get-Random -Count 12 | % {[char]$_})) +Start-Process "$env:ProgramFiles\RustDesk\RustDesk.exe" "--password $rustdesk_pw" -wait +Write-Output $rustdesk_pw + +net start rustdesk > null + +``` +## RustDesk URL Action +``` +rustdesk://connection/new/{{agent.rustdeskid}}?password={{agent.rustdeskpwd}} + ``` +## Add Custom Agent Fields +`rustdeskid Type = Text`
+`rustdeskpwd Type = Text`