mirror of
https://github.com/techahold/rustdeskinstall.git
synced 2025-05-12 15:11:11 +02:00
1. Added a check for the latest version of RustDesk. 2. Added a check to see if the latest version of RustDesk is installed and if yes, to skip right to update the configuration. 3. Fixed the script not adding the configuration because it was not waiting for the installation to complete. 4. Fixed ID and PW not displaying. 5. Added an option to close the script and open RustDesk automatically.
105 lines
3.7 KiB
PowerShell
105 lines
3.7 KiB
PowerShell
$ErrorActionPreference= 'silentlycontinue'
|
|
|
|
# Assign the value random password to the password variable
|
|
$rustdesk_pw=(-join ((65..90) + (97..122) | Get-Random -Count 12 | % {[char]$_}))
|
|
|
|
# Get your config string from your Web portal and Fill Below
|
|
$rustdesk_cfg="secure-string"
|
|
|
|
################################### Please Do Not Edit Below This Line #########################################
|
|
|
|
# Run as administrator and stays in the current directory
|
|
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) {
|
|
Start-Process PowerShell -Verb RunAs -ArgumentList "-NoProfile -ExecutionPolicy Bypass -Command `"cd '$pwd'; & '$PSCommandPath';`"";
|
|
Exit;
|
|
}
|
|
}
|
|
|
|
# Checks for the latest version of RustDesk
|
|
$url = 'https://www.github.com//rustdesk/rustdesk/releases/latest'
|
|
$request = [System.Net.WebRequest]::Create($url)
|
|
$response = $request.GetResponse()
|
|
$realTagUrl = $response.ResponseUri.OriginalString
|
|
$RDLATEST = $realTagUrl.split('/')[-1].Trim('v')
|
|
echo "RustDesk $RDLATEST is the latest version."
|
|
|
|
# Checks the version of RustDesk installed.
|
|
$rdver = ((Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\RustDesk\").Version)
|
|
|
|
# Skips to inputting the configuration if the latest version of RustDesk is already installed.
|
|
if($rdver -eq "$RDLATEST") {
|
|
echo "RustDesk $rdver is already installed."
|
|
cd $env:ProgramFiles\RustDesk
|
|
echo "Inputting configuration now."
|
|
.\rustdesk.exe --config $rustdesk_cfg
|
|
.\rustdesk.exe --password $rustdesk_pw
|
|
$rustdesk_id = .\rustdesk.exe --get-id | Write-Output -OutVariable rustdesk_id
|
|
echo "All done! Please double check the Network settings tab in RustDesk."
|
|
echo ""
|
|
echo "..............................................."
|
|
# Show the value of the ID Variable
|
|
echo "RustDesk ID: $rustdesk_id"
|
|
|
|
# Show the value of the Password Variable
|
|
echo "Password: $rustdesk_pw"
|
|
echo "..............................................."
|
|
echo ""
|
|
echo "Press Enter to open RustDesk."
|
|
pause
|
|
.\rustdesk.exe
|
|
exit
|
|
}
|
|
|
|
if (!(Test-Path C:\Temp)) {
|
|
New-Item -ItemType Directory -Force -Path C:\Temp > null
|
|
}
|
|
|
|
cd C:\Temp
|
|
echo "Downloading RustDesk version $RDLATEST."
|
|
powershell Invoke-WebRequest "https://github.com/rustdesk/rustdesk/releases/download/$RDLATEST/rustdesk-$RDLATEST-x86_64.exe" -Outfile "rustdesk.exe"
|
|
echo "Installing RustDesk version $RDLATEST."
|
|
Start-Process .\rustdesk.exe --silent-install
|
|
Start-Sleep -Seconds 10
|
|
|
|
$ServiceName = 'rustdesk'
|
|
$arrService = Get-Service -Name $ServiceName -ErrorAction SilentlyContinue
|
|
|
|
if ($arrService -eq $null)
|
|
{
|
|
echo "Installing service."
|
|
cd $env:ProgramFiles\RustDesk
|
|
Start-Process .\rustdesk.exe --install-service -wait -Verbose
|
|
Start-Sleep -Seconds 20
|
|
}
|
|
|
|
while ($arrService.Status -ne 'Running')
|
|
{
|
|
Start-Service $ServiceName
|
|
Start-Sleep -seconds 5
|
|
$arrService.Refresh()
|
|
}
|
|
|
|
# Waits for installation to complete before proceeding.
|
|
echo "Please wait a few seconds."
|
|
Start-Sleep -Seconds 10
|
|
|
|
cd $env:ProgramFiles\RustDesk
|
|
echo "Inputting configuration now."
|
|
.\rustdesk.exe --config $rustdesk_cfg
|
|
.\rustdesk.exe --password $rustdesk_pw
|
|
$rustdesk_id = .\rustdesk.exe --get-id | Write-Output -OutVariable rustdesk_id
|
|
echo "All done! Please double check the Network settings tab in RustDesk."
|
|
echo ""
|
|
echo "..............................................."
|
|
# Show the value of the ID Variable
|
|
echo "RustDesk ID: $rustdesk_id"
|
|
|
|
# Show the value of the Password Variable
|
|
echo "Password: $rustdesk_pw"
|
|
echo "..............................................."
|
|
echo ""
|
|
echo "Press Enter to open RustDesk."
|
|
pause
|
|
.\rustdesk.exe
|