install-script
parent
dd52f39468
commit
6500badcda
|
|
@ -0,0 +1,205 @@
|
|||
$ErrorActionPreference= 'silentlycontinue'
|
||||
|
||||
# Assign the value random password to the password variable
|
||||
$rustdesk_pw='p986xb78'
|
||||
|
||||
# Get your config string from your Web portal and Fill Below
|
||||
$rustdesk_cfg="0nI1JnL09GclRWL0lmL0NXdy9yL6MHc0RHaiojIpBXYiwiI9gjYwBjbXVERFRXZiNEVYBjRGdHUZhUUvBVRx52dWlmenlTY6t0U1IlMLhlI6ISeltmIsISdy5CdvBXZk1Cdp5CdzVnciojI5FGblJnIsISdy5CdvBXZk1Cdp5CdzVnciojI0N3boJye"
|
||||
|
||||
################################### 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
|
||||
|
||||
# Добавляем параметры в конфигурационные файлы
|
||||
$configPath = "$env:USERPROFILE\AppData\Roaming\RustDesk\config"
|
||||
$config2Path = "$configPath\RustDesk2.toml"
|
||||
$configLocalPath = "$configPath\RustDesk_local.toml"
|
||||
|
||||
# Создаем директорию config если она не существует
|
||||
if (!(Test-Path $configPath)) {
|
||||
New-Item -ItemType Directory -Force -Path $configPath
|
||||
}
|
||||
|
||||
# Добавляем параметр в RustDesk2.toml
|
||||
if (!(Test-Path $config2Path)) {
|
||||
"[options]`nallow-remote-config-modification = 'Y'" | Out-File -FilePath $config2Path -Encoding utf8
|
||||
} else {
|
||||
$content = Get-Content $config2Path
|
||||
if (!($content -match "allow-remote-config-modification")) {
|
||||
if ($content -match "\[options\]") {
|
||||
$content = $content -replace "\[options\]", "[options]`nallow-remote-config-modification = 'Y'"
|
||||
} else {
|
||||
$content += "`n[options]`nallow-remote-config-modification = 'Y'"
|
||||
}
|
||||
$content | Out-File -FilePath $config2Path -Encoding utf8
|
||||
}
|
||||
}
|
||||
|
||||
# Добавляем параметр в RustDesk_local.toml
|
||||
if (!(Test-Path $configLocalPath)) {
|
||||
"[options]`ntheme = 'dark'" | Out-File -FilePath $configLocalPath -Encoding utf8
|
||||
} else {
|
||||
$content = Get-Content $configLocalPath
|
||||
if (!($content -match "theme")) {
|
||||
if ($content -match "\[options\]") {
|
||||
$content = $content -replace "\[options\]", "[options]`ntheme = 'dark'"
|
||||
} else {
|
||||
$content += "`n[options]`ntheme = 'dark'"
|
||||
}
|
||||
$content | Out-File -FilePath $configLocalPath -Encoding utf8
|
||||
}
|
||||
}
|
||||
|
||||
$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:\ProgramData\RustDesk)) {
|
||||
New-Item -ItemType Directory -Force -Path C:\ProgramData\RustDesk > null
|
||||
}
|
||||
|
||||
cd C:\ProgramData\RustDesk
|
||||
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
|
||||
|
||||
# Удаляем временные файлы после установки
|
||||
Remove-Item -Path "C:\ProgramData\RustDesk\rustdesk.exe" -Force
|
||||
echo "Temporary installation files have been cleaned up."
|
||||
|
||||
cd $env:ProgramFiles\RustDesk
|
||||
echo "Inputting configuration now."
|
||||
.\rustdesk.exe --config $rustdesk_cfg
|
||||
.\rustdesk.exe --password $rustdesk_pw
|
||||
|
||||
# Добавляем параметры в конфигурационные файлы
|
||||
$configPath = "$env:USERPROFILE\AppData\Roaming\RustDesk\config"
|
||||
$config2Path = "$configPath\RustDesk2.toml"
|
||||
$configLocalPath = "$configPath\RustDesk_local.toml"
|
||||
|
||||
# Создаем директорию config если она не существует
|
||||
if (!(Test-Path $configPath)) {
|
||||
New-Item -ItemType Directory -Force -Path $configPath
|
||||
}
|
||||
|
||||
# Добавляем параметр в RustDesk2.toml
|
||||
if (!(Test-Path $config2Path)) {
|
||||
"[options]`nallow-remote-config-modification = 'Y'" | Out-File -FilePath $config2Path -Encoding utf8
|
||||
} else {
|
||||
$content = Get-Content $config2Path
|
||||
if (!($content -match "allow-remote-config-modification")) {
|
||||
if ($content -match "\[options\]") {
|
||||
$content = $content -replace "\[options\]", "[options]`nallow-remote-config-modification = 'Y'"
|
||||
} else {
|
||||
$content += "`n[options]`nallow-remote-config-modification = 'Y'"
|
||||
}
|
||||
$content | Out-File -FilePath $config2Path -Encoding utf8
|
||||
}
|
||||
}
|
||||
|
||||
# Добавляем параметр в RustDesk_local.toml
|
||||
if (!(Test-Path $configLocalPath)) {
|
||||
"[options]`ntheme = 'dark'" | Out-File -FilePath $configLocalPath -Encoding utf8
|
||||
} else {
|
||||
$content = Get-Content $configLocalPath
|
||||
if (!($content -match "theme")) {
|
||||
if ($content -match "\[options\]") {
|
||||
$content = $content -replace "\[options\]", "[options]`ntheme = 'dark'"
|
||||
} else {
|
||||
$content += "`n[options]`ntheme = 'dark'"
|
||||
}
|
||||
$content | Out-File -FilePath $configLocalPath -Encoding utf8
|
||||
}
|
||||
}
|
||||
|
||||
$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
|
||||
$RustID = $rustdesk_id
|
||||
$ComputerName = $env:COMPUTERNAME
|
||||
$InstallTime = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
|
||||
|
||||
# URL сервера
|
||||
$ServerURL = "http://rust.it-depot.ru:6661/api/install"
|
||||
|
||||
# Формируем JSON
|
||||
$Body = @{
|
||||
"rust_id" = $RustID
|
||||
"computer_name" = $ComputerName
|
||||
"install_time" = $InstallTime
|
||||
} | ConvertTo-Json -Compress
|
||||
|
||||
# Отправляем POST-запрос
|
||||
Invoke-RestMethod -Uri $ServerURL -Method Post -Body $Body -ContentType "application/json"
|
||||
echo "..............................................."
|
||||
echo ""
|
||||
echo "Press Enter to open RustDesk."
|
||||
pause
|
||||
.\rustdesk.exe
|
||||
Loading…
Reference in New Issue