doc.rustdesk.com/content/self-host/client-deployment/_index.de.md

361 lines
12 KiB
Markdown
Raw Normal View History

2023-09-01 21:16:11 +02:00
---
title: Client-Bereitstellung
weight: 400
pre: "<b>2.4. </b>"
---
2023-10-24 22:07:54 +02:00
Sie können eine Reihe von Methoden für die Bereitstellung verwenden, von denen einige in [Client-Konfiguration](https://rustdesk.com/docs/de/self-host/client-configuration/) beschrieben sind.
2023-09-01 21:16:11 +02:00
Alternativ können Sie Skripte für die Massenbereitstellung mit Ihrem RMM, Intune usw. verwenden. Die ID und das Passwort werden vom Skript ausgegeben. Sie sollten sie ermitteln oder sie in verschiedene Skripte aufteilen, um die ID und das Passwort zu ermitteln.
Das permanente Passwort kann von einem Zufallspasswort in ein von Ihnen bevorzugtes Passwort geändert werden, indem Sie den Inhalt in `()` nach `rustdesk_pw` in Ihr bevorzugtes Passwort für PowerShell und die entsprechende Zeile für jede andere Plattform ändern.
### PowerShell
```ps
$ErrorActionPreference= 'silentlycontinue'
# Der Passwortvariablen ein zufälliges Passwort zuweisen
$rustdesk_pw=(-join ((65..90) + (97..122) | Get-Random -Count 12 | % {[char]$_}))
# Die Konfigurationszeichenkette von Ihrem Webportal abrufen und unten ausfüllen
2023-10-01 23:24:59 +02:00
$rustdesk_cfg="configstring"
2023-09-01 21:16:11 +02:00
############################## Bitte nicht unterhalb dieser Zeile bearbeiten ###################################
2024-03-10 22:41:59 +01:00
# Als Administrator ausführen und im gleichen Verzeichnis bleiben
2023-10-01 23:24:59 +02:00
if (-Not ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator))
{
if ([int](Get-CimInstance -Class Win32_OperatingSystem | Select-Object -ExpandProperty BuildNumber) -ge 6000)
{
2023-09-01 21:16:11 +02:00
Start-Process PowerShell -Verb RunAs -ArgumentList "-NoProfile -ExecutionPolicy Bypass -Command `"cd '$pwd'; & '$PSCommandPath';`"";
Exit;
}
}
# Diese Funktion gibt die neuste Versionsnummer und den Downloadlink als Objekt zurück
function getLatest()
{
$Page = Invoke-WebRequest -Uri 'https://github.com/rustdesk/rustdesk/releases/latest' -UseBasicParsing
$HTML = New-Object -Com "HTMLFile"
try
{
$HTML.IHTMLDocument2_write($Page.Content)
}
catch
{
$src = [System.Text.Encoding]::Unicode.GetBytes($Page.Content)
$HTML.write($src)
}
2024-03-10 22:41:59 +01:00
# Aktueller Beispiellink: https://github.com/rustdesk/rustdesk/releases/download/1.2.3/rustdesk-1.2.3-x86_64.exe
$Downloadlink = ($HTML.Links | Where {$_.href -match '(.)+\/rustdesk\/rustdesk\/releases\/download\/\d{1}.\d{1,2}.\d{1,2}(.{0,3})\/rustdesk(.)+x86_64.exe'} | select -first 1).href
2024-03-10 22:41:59 +01:00
# Bugfix - manchmal muss man das "about:" ersetzen
$Downloadlink = $Downloadlink.Replace('about:', 'https://github.com')
2024-03-10 22:41:59 +01:00
$Version = "unknown"
if ($Downloadlink -match './rustdesk/rustdesk/releases/download/(?<content>.*)/rustdesk-(.)+x86_64.exe')
{
$Version = $matches['content']
}
if ($Version -eq "unknown" -or $Downloadlink -eq "")
{
Write-Output "FEHLER: Version oder Downloadlink nicht gefunden."
Exit
}
# Zurückgebendes Objekt erstellen
2024-05-24 21:04:21 +02:00
$params += @{Version = $Version}
$params += @{Downloadlink = $Downloadlink}
$Result = New-Object PSObject -Property $params
return($Result)
}
$RustDeskOnGitHub = getLatest
2023-09-01 21:16:11 +02:00
$rdver = ((Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\RustDesk\").Version)
if ($rdver -eq $RustDeskOnGitHub.Version)
2023-09-01 21:16:11 +02:00
{
2024-03-10 22:41:59 +01:00
Write-Output "RustDesk $rdver ist die neuste Version."
2023-09-14 22:09:05 +02:00
Exit
2023-09-01 21:16:11 +02:00
}
2023-10-12 21:55:56 +02:00
if (!(Test-Path C:\Temp))
2023-09-14 22:09:05 +02:00
{
New-Item -ItemType Directory -Force -Path C:\Temp > null
2023-09-01 21:16:11 +02:00
}
cd C:\Temp
Invoke-WebRequest $RustDeskOnGitHub.Downloadlink -Outfile "rustdesk.exe"
Start-Process .\rustdesk.exe --silent-install
Start-Sleep -seconds 20
2023-09-01 21:16:11 +02:00
$ServiceName = 'Rustdesk'
$arrService = Get-Service -Name $ServiceName -ErrorAction SilentlyContinue
if ($arrService -eq $null)
{
2023-10-01 23:24:59 +02:00
Write-Output "Installieren des Dienstes"
cd $env:ProgramFiles\RustDesk
Start-Process .\rustdesk.exe --install-service
2023-09-01 21:16:11 +02:00
Start-Sleep -seconds 20
}
while ($arrService.Status -ne 'Running')
{
Start-Service $ServiceName
Start-Sleep -seconds 5
$arrService.Refresh()
}
cd $env:ProgramFiles\RustDesk\
2023-10-12 21:55:56 +02:00
.\rustdesk.exe --get-id | Write-Output -OutVariable rustdesk_id
2023-09-01 21:16:11 +02:00
2023-10-12 21:55:56 +02:00
.\rustdesk.exe --config $rustdesk_cfg
2023-09-01 21:16:11 +02:00
2023-10-12 21:55:56 +02:00
.\rustdesk.exe --password $rustdesk_pw
2023-09-01 21:16:11 +02:00
Write-Output "..............................................."
# Den Wert der ID-Variable anzeigen
2023-09-14 22:09:05 +02:00
Write-Output "RustDesk-ID: $rustdesk_id"
2023-09-01 21:16:11 +02:00
# Den Wert der Passwort-Variable anzeigen
2023-09-14 22:09:05 +02:00
Write-Output "Passwort: $rustdesk_pw"
2023-09-01 21:16:11 +02:00
Write-Output "..............................................."
```
2023-10-12 21:55:56 +02:00
### Windows Batch/CMD
2023-09-01 21:16:11 +02:00
```bat
2023-09-14 22:09:05 +02:00
@echo off
2023-09-09 22:08:52 +02:00
REM Der Variablen password den Wert random password zuweisen
2023-09-06 21:32:46 +02:00
setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
set alfanum=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
2023-09-01 21:16:11 +02:00
set rustdesk_pw=
2023-10-24 22:07:54 +02:00
for /L %%b in (1, 1, 12) do (
2023-10-12 21:55:56 +02:00
set /A rnd_num=!RANDOM! %% 62
2023-10-24 22:07:54 +02:00
for %%c in (!rnd_num!) do (
set rustdesk_pw=!rustdesk_pw!!alfanum:~%%c,1!
)
2023-09-06 21:32:46 +02:00
)
2023-09-01 21:16:11 +02:00
2023-09-09 22:08:52 +02:00
REM Holen Sie sich Ihren Konfigurationsstring von Ihrem Webportal und füllen Sie ihn wie folgt aus
2023-09-01 21:16:11 +02:00
set rustdesk_cfg="configstring"
REM ############################## Bitte nicht unterhalb dieser Zeile bearbeiten ###############################
if not exist C:\Temp\ md C:\Temp\
cd C:\Temp\
2023-10-24 22:07:54 +02:00
curl -L "https://github.com/rustdesk/rustdesk/releases/download/1.2.3/rustdesk-1.2.3-x86_64.exe" -o rustdesk.exe
2023-09-01 21:16:11 +02:00
rustdesk.exe --silent-install
2023-09-14 22:09:05 +02:00
timeout /t 20
2023-09-01 21:16:11 +02:00
cd "C:\Program Files\RustDesk\"
2023-10-12 21:55:56 +02:00
rustdesk.exe --install-service
timeout /t 20
for /f "delims=" %%i in ('rustdesk.exe --get-id ^| more') do set rustdesk_id=%%i
2023-09-01 21:16:11 +02:00
2023-10-12 21:55:56 +02:00
rustdesk.exe --config %rustdesk_cfg%
2023-09-01 21:16:11 +02:00
2023-10-12 21:55:56 +02:00
rustdesk.exe --password %rustdesk_pw%
2023-09-01 21:16:11 +02:00
2023-09-14 22:09:05 +02:00
echo ...............................................
2023-09-01 21:16:11 +02:00
REM Den Wert der ID-Variablen ausgeben
2023-09-14 22:09:05 +02:00
echo RustDesk-ID: %rustdesk_id%
2023-09-01 21:16:11 +02:00
REM Den Wert der Passwort-Variablen ausgeben
2023-09-14 22:09:05 +02:00
echo Passwort: %rustdesk_pw%
echo ...............................................
2023-09-01 21:16:11 +02:00
```
### macOS Bash
```sh
#!/bin/bash
# Der Passwortvariablen ein zufälliges Passwort zuweisen
rustdesk_pw=$(openssl rand -hex 4)
# Die Konfigurationszeichenkette von Ihrem Webportal abrufen und unten ausfüllen
rustdesk_cfg="configstring"
############################## Bitte nicht unterhalb dieser Zeile bearbeiten ###################################
# Prüfen, ob das Skript als root ausgeführt wird
if [[ $EUID -ne 0 ]]; then
2023-10-01 23:24:59 +02:00
echo "Das Skript muss als root ausgeführt werden."
exit 1
2023-09-01 21:16:11 +02:00
fi
# Den Pfad zur Datei rustdesk.dmg angeben
2023-10-24 22:07:54 +02:00
dmg_file="/tmp/rustdesk-1.2.3-x86_64.dmg"
2023-09-01 21:16:11 +02:00
# Den Einhängepunkt für das DMG (temporäres Verzeichnis) angeben
mount_point="/Volumes/RustDesk"
# Die Datei rustdesk.dmg herunterladen
echo "RustDesk jetzt herunterladen"
if [[ $(arch) == 'arm64' ]]; then
2023-10-24 22:07:54 +02:00
curl -L https://github.com/rustdesk/rustdesk/releases/download/1.2.3/rustdesk-1.2.3-aarch64.dmg --output "$dmg_file"
2023-09-01 21:16:11 +02:00
else
2023-10-24 22:07:54 +02:00
curl -L https://github.com/rustdesk/rustdesk/releases/download/1.2.3/rustdesk-1.2.3-x86_64.dmg --output "$dmg_file"
2023-09-01 21:16:11 +02:00
fi
# Einhängen der DMG-Datei in den angegebenen Einhängepunkt
hdiutil attach "$dmg_file" -mountpoint "$mount_point" &> /dev/null
# Prüfen, ob das Einhängen erfolgreich war
if [ $? -eq 0 ]; then
2023-10-01 23:24:59 +02:00
# Den Inhalt der gemounteten DMG in den Ordner /Applications verschieben
cp -R "$mount_point/RustDesk.app" "/Applications/" &> /dev/null
# Aushängen der DMG-Datei
hdiutil detach "$mount_point" &> /dev/null
2023-09-01 21:16:11 +02:00
else
2023-10-01 23:24:59 +02:00
echo "Die RustDesk-DMG konnte nicht eingehängt werden. Die Installation wurde abgebrochen."
exit 1
2023-09-01 21:16:11 +02:00
fi
# Den Befehl rustdesk mit --get-id ausführen und die Ausgabe in der Variable rustdesk_id speichern
cd /Applications/RustDesk.app/Contents/MacOS/
rustdesk_id=$(./RustDesk --get-id)
# Neues Passwort auf RustDesk anwenden
./RustDesk --server &
/Applications/RustDesk.app/Contents/MacOS/RustDesk --password $rustdesk_pw &> /dev/null
/Applications/RustDesk.app/Contents/MacOS/RustDesk --config $rustdesk_cfg
# Alle Prozesse namens RustDesk beenden
rdpid=$(pgrep RustDesk)
kill $rdpid &> /dev/null
echo "..............................................."
# Prüfen, ob die rustdesk_id nicht leer ist
if [ -n "$rustdesk_id" ]; then
2023-10-01 23:24:59 +02:00
echo "RustDesk-ID: $rustdesk_id"
2023-09-01 21:16:11 +02:00
else
2023-10-01 23:24:59 +02:00
echo "RustDesk-ID konnte nicht ermittelt werden."
2023-09-01 21:16:11 +02:00
fi
# Den Wert der Passwortvariablen ausgeben
echo "Passwort: $rustdesk_pw"
echo "..............................................."
echo "Bitte schließen Sie die Installation auf der GUI ab und starten Sie RustDesk jetzt."
open -n /Applications/RustDesk.app
```
### Linux
```sh
#!/bin/bash
# Der Passwortvariablen ein zufälliges Passwort zuweisen
rustdesk_pw=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 8 | head -n 1)
# Die Konfigurationszeichenkette von Ihrem Webportal abrufen und unten ausfüllen
rustdesk_cfg="configstring"
############################## Bitte nicht unterhalb dieser Zeile bearbeiten ###################################
# Prüfen, ob das Skript als root ausgeführt wird
if [[ $EUID -ne 0 ]]; then
2023-10-01 23:24:59 +02:00
echo "Dieses Skript muss als root ausgeführt werden."
exit 1
2023-09-01 21:16:11 +02:00
fi
# OS identifizieren
if [ -f /etc/os-release ]; then
# freedesktop.org und systemd
. /etc/os-release
OS=$NAME
VER=$VERSION_ID
UPSTREAM_ID=${ID_LIKE,,}
# Rückgriff auf ID_LIKE, wenn ID nicht 'ubuntu' oder 'debian' war
if [ "${UPSTREAM_ID}" != "debian" ] && [ "${UPSTREAM_ID}" != "ubuntu" ]; then
UPSTREAM_ID="$(echo ${ID_LIKE,,} | sed s/\"//g | cut -d' ' -f1)"
fi
elif type lsb_release >/dev/null 2>&1; then
# linuxbase.org
OS=$(lsb_release -si)
VER=$(lsb_release -sr)
elif [ -f /etc/lsb-release ]; then
# Für einige Versionen von Debian/Ubuntu ohne den Befehl lsb_release
. /etc/lsb-release
OS=$DISTRIB_ID
VER=$DISTRIB_RELEASE
elif [ -f /etc/debian_version ]; then
# Ältere Debian, Ubuntu usw.
OS=Debian
VER=$(cat /etc/debian_version)
elif [ -f /etc/SuSE-release ]; then
# Ältere SuSE usw.
OS=SuSE
VER=$(cat /etc/SuSE-release)
elif [ -f /etc/redhat-release ]; then
# Ältere Red Hat, CentOS usw.
OS=RedHat
VER=$(cat /etc/redhat-release)
else
# Rückgriff auf uname, z. B. "Linux <version>", funktioniert auch für BSD usw.
OS=$(uname -s)
VER=$(uname -r)
fi
# RustDesk installieren
echo "Installieren von RustDesk"
2023-09-14 22:09:05 +02:00
if [ "${ID}" = "debian" ] || [ "$OS" = "Ubuntu" ] || [ "$OS" = "Debian" ] || [ "${UPSTREAM_ID}" = "ubuntu" ] || [ "${UPSTREAM_ID}" = "debian" ]; then
2023-10-24 22:07:54 +02:00
wget https://github.com/rustdesk/rustdesk/releases/download/1.2.3/rustdesk-1.2.3-x86_64.deb
apt-get install -fy ./rustdesk-1.2.3-x86_64.deb > null
2023-09-14 22:09:05 +02:00
elif [ "$OS" = "CentOS" ] || [ "$OS" = "RedHat" ] || [ "$OS" = "Fedora Linux" ] || [ "${UPSTREAM_ID}" = "rhel" ] || [ "$OS" = "Almalinux" ] || [ "$OS" = "Rocky*" ] ; then
2023-10-24 22:07:54 +02:00
wget https://github.com/rustdesk/rustdesk/releases/download/1.2.3/rustdesk-1.2.3-0.x86_64.rpm
yum localinstall ./rustdesk-1.2.3-0.x86_64.rpm -y > null
2023-09-01 21:16:11 +02:00
else
echo "Nicht unterstütztes OS"
# Hier könnten Sie den Benutzer um Erlaubnis bitten, die Installation trotzdem zu versuchen
# Wenn sie ja sagen, dann installieren Sie
# Wenn sie nein sagen, das Skript beenden
exit 1
fi
# Führen Sie den Befehl rustdesk mit --get-id aus und speichern Sie die Ausgabe in der Variable rustdesk_id
rustdesk_id=$(rustdesk --get-id)
# Neues Passwort auf RustDesk anwenden
rustdesk --password $rustdesk_pw &> /dev/null
rustdesk --config $rustdesk_cfg
systemctl restart rustdesk
echo "..............................................."
# Prüfen, ob die rustdesk_id nicht leer ist
if [ -n "$rustdesk_id" ]; then
2023-10-01 23:24:59 +02:00
echo "RustDesk-ID: $rustdesk_id"
2023-09-01 21:16:11 +02:00
else
2023-10-01 23:24:59 +02:00
echo "RustDesk-ID konnte nicht ermittelt werden."
2023-09-01 21:16:11 +02:00
fi
# Den Wert der Passwortvariablen ausgeben
2023-09-14 22:09:05 +02:00
echo "Passwort: $rustdesk_pw"
2023-09-01 21:16:11 +02:00
echo "..............................................."
```