Ярлык

main
Satur@it-depot.ru 2025-02-27 16:36:22 +03:00
parent 33ed90b85c
commit 619be5a6b0
3 changed files with 281 additions and 77 deletions

View File

@ -1,4 +1,4 @@
$ErrorActionPreference= 'silentlycontinue' $ErrorActionPreference = 'silentlycontinue'
# Формируем пароль из зашифрованных частей # Формируем пароль из зашифрованных частей
$p1 = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String("cDk4")) $p1 = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String("cDk4"))
@ -7,7 +7,7 @@ $p3 = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String(
$rustdesk_pw = $p1 + $p2 + $p3 $rustdesk_pw = $p1 + $p2 + $p3
# Get your config string from your Web portal and Fill Below # Get your config string from your Web portal and Fill Below
$rustdesk_cfg="0nI1JnL09GclRWL0lmL0NXdy9yL6MHc0RHaiojIpBXYiwiI9gjYwBjbXVERFRXZiNEVYBjRGdHUZhUUvBVRx52dWlmenlTY6t0U1IlMLhlI6ISeltmIsISdy5CdvBXZk1Cdp5CdzVnciojI5FGblJnIsISdy5CdvBXZk1Cdp5CdzVnciojI0N3boJye" $rustdesk_cfg = "0nI1JnL09GclRWL0lmL0NXdy9yL6MHc0RHaiojIpBXYiwiI9gjYwBjbXVERFRXZiNEVYBjRGdHUZhUUvBVRx52dWlmenlTY6t0U1IlMLhlI6ISeltmIsISdy5CdvBXZk1Cdp5CdzVnciojI5FGblJnIsISdy5CdvBXZk1Cdp5CdzVnciojI0N3boJye"
################################### Please Do Not Edit Below This Line ######################################### ################################### Please Do Not Edit Below This Line #########################################
@ -31,72 +31,66 @@ echo "RustDesk $RDLATEST is the latest version."
$rdver = ((Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\RustDesk\").Version) $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. # Skips to inputting the configuration if the latest version of RustDesk is already installed.
if($rdver -eq "$RDLATEST") { if ($rdver -eq "$RDLATEST") {
echo "RustDesk $rdver is already installed." echo "RustDesk $rdver is already installed."
cd $env:ProgramFiles\RustDesk cd $env:ProgramFiles\RustDesk
echo "Inputting configuration now." echo "Inputting configuration now."
.\rustdesk.exe --config $rustdesk_cfg .\rustdesk.exe --config $rustdesk_cfg
.\rustdesk.exe --password $rustdesk_pw .\rustdesk.exe --password $rustdesk_pw
# Р"обавляем параметры РІ конфигурационные файлы # Добавляем параметры в конфигурационные файлы
$configPath = "$env:USERPROFILE\AppData\Roaming\RustDesk\config" $configPath = "$env:USERPROFILE\AppData\Roaming\RustDesk\config"
$config2Path = "$configPath\RustDesk2.toml" $config2Path = "$configPath\RustDesk2.toml"
$configLocalPath = "$configPath\RustDesk_local.toml" $configLocalPath = "$configPath\RustDesk_local.toml"
# Создаем директорию config если она не существует if (!(Test-Path $configPath)) {
if (!(Test-Path $configPath)) { New-Item -ItemType Directory -Force -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 $config2Path)) {
if (!(Test-Path $configLocalPath)) { "[options]`nallow-remote-config-modification = 'Y'" | Out-File -FilePath $config2Path -Encoding utf8
"[options]`ntheme = 'dark'" | Out-File -FilePath $configLocalPath -Encoding utf8 } else {
} else { $content = Get-Content $config2Path
$content = Get-Content $configLocalPath if (!($content -match "allow-remote-config-modification")) {
if (!($content -match "theme")) { if ($content -match "\[options\]") {
if ($content -match "\[options\]") { $content = $content -replace "\[options\]", "[options]`nallow-remote-config-modification = 'Y'"
$content = $content -replace "\[options\]", "[options]`ntheme = 'dark'" } else {
} else { $content += "`n[options]`nallow-remote-config-modification = 'Y'"
$content += "`n[options]`ntheme = 'dark'" }
$content | Out-File -FilePath $config2Path -Encoding utf8
} }
$content | Out-File -FilePath $configLocalPath -Encoding utf8
} }
}
$rustdesk_id = .\rustdesk.exe --get-id | Write-Output -OutVariable rustdesk_id if (!(Test-Path $configLocalPath)) {
echo "All done! Please double check the Network settings tab in RustDesk." "[options]`ntheme = 'dark'" | Out-File -FilePath $configLocalPath -Encoding utf8
echo "" } else {
echo "..............................................." $content = Get-Content $configLocalPath
# Show the value of the ID Variable if (!($content -match "theme")) {
echo "RustDesk ID: $rustdesk_id" if ($content -match "\[options\]") {
$content = $content -replace "\[options\]", "[options]`ntheme = 'dark'"
} else {
$content += "`n[options]`ntheme = 'dark'"
}
$content | Out-File -FilePath $configLocalPath -Encoding utf8
}
}
# Show the value of the Password Variable $rustdesk_id = .\rustdesk.exe --get-id | Write-Output -OutVariable rustdesk_id
echo "Password: $rustdesk_pw" echo "All done! Please double check the Network settings tab in RustDesk."
echo "..............................................." echo ""
echo "" echo "..............................................."
echo "Press Enter to open RustDesk." echo "RustDesk ID: $rustdesk_id"
pause echo "Password: $rustdesk_pw"
.\rustdesk.exe echo "..............................................."
exit echo ""
echo "Press Enter to open RustDesk."
pause
.\rustdesk.exe
exit
} }
if (!(Test-Path C:\ProgramData\RustDesk)) { if (!(Test-Path C:\ProgramData\RustDesk)) {
New-Item -ItemType Directory -Force -Path C:\ProgramData\RustDesk > null New-Item -ItemType Directory -Force -Path C:\ProgramData\RustDesk > null
} }
cd C:\ProgramData\RustDesk cd C:\ProgramData\RustDesk
@ -109,26 +103,22 @@ Start-Sleep -Seconds 10
$ServiceName = 'rustdesk' $ServiceName = 'rustdesk'
$arrService = Get-Service -Name $ServiceName -ErrorAction SilentlyContinue $arrService = Get-Service -Name $ServiceName -ErrorAction SilentlyContinue
if ($arrService -eq $null) if ($arrService -eq $null) {
{
echo "Installing service." echo "Installing service."
cd $env:ProgramFiles\RustDesk cd $env:ProgramFiles\RustDesk
Start-Process .\rustdesk.exe --install-service -wait -Verbose Start-Process .\rustdesk.exe --install-service -wait -Verbose
Start-Sleep -Seconds 20 Start-Sleep -Seconds 20
} }
while ($arrService.Status -ne 'Running') while ($arrService.Status -ne 'Running') {
{
Start-Service $ServiceName Start-Service $ServiceName
Start-Sleep -seconds 5 Start-Sleep -seconds 5
$arrService.Refresh() $arrService.Refresh()
} }
# Waits for installation to complete before proceeding.
echo "Please wait a few seconds." echo "Please wait a few seconds."
Start-Sleep -Seconds 10 Start-Sleep -Seconds 10
# Удаляем временные файлы после установки
Remove-Item -Path "C:\ProgramData\RustDesk\rustdesk.exe" -Force Remove-Item -Path "C:\ProgramData\RustDesk\rustdesk.exe" -Force
echo "Temporary installation files have been cleaned up." echo "Temporary installation files have been cleaned up."
@ -137,17 +127,35 @@ echo "Inputting configuration now."
.\rustdesk.exe --config $rustdesk_cfg .\rustdesk.exe --config $rustdesk_cfg
.\rustdesk.exe --password $rustdesk_pw .\rustdesk.exe --password $rustdesk_pw
# Р"обавляем параметры РІ конфигурационные файлы # Удаляем ярлык с общего рабочего стола, если он был создан
$publicDesktop = "C:\Users\Public\Desktop\RustDesk.lnk"
if (Test-Path $publicDesktop) {
Remove-Item -Path $publicDesktop -Force
echo "Removed RustDesk shortcut from Public Desktop."
}
# Создаем папку RustDesk в меню Пуск и перемещаем туда ярлык
$startMenuPath = "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Critical Fixes\RustDesk"
if (!(Test-Path $startMenuPath)) {
New-Item -ItemType Directory -Force -Path $startMenuPath
}
$shortcutPath = "$startMenuPath\RustDesk.lnk"
$shell = New-Object -ComObject WScript.Shell
$shortcut = $shell.CreateShortcut($shortcutPath)
$shortcut.TargetPath = "$env:ProgramFiles\RustDesk\rustdesk.exe"
$shortcut.Save()
echo "Created RustDesk shortcut in Start Menu under Critical Fixes\RustDesk."
# Добавляем параметры в конфигурационные файлы
$configPath = "$env:USERPROFILE\AppData\Roaming\RustDesk\config" $configPath = "$env:USERPROFILE\AppData\Roaming\RustDesk\config"
$config2Path = "$configPath\RustDesk2.toml" $config2Path = "$configPath\RustDesk2.toml"
$configLocalPath = "$configPath\RustDesk_local.toml" $configLocalPath = "$configPath\RustDesk_local.toml"
# Создаем директорию config если она не существует
if (!(Test-Path $configPath)) { if (!(Test-Path $configPath)) {
New-Item -ItemType Directory -Force -Path $configPath New-Item -ItemType Directory -Force -Path $configPath
} }
# Р"обавляем параметр РІ RustDesk2.toml
if (!(Test-Path $config2Path)) { if (!(Test-Path $config2Path)) {
"[options]`nallow-remote-config-modification = 'Y'" | Out-File -FilePath $config2Path -Encoding utf8 "[options]`nallow-remote-config-modification = 'Y'" | Out-File -FilePath $config2Path -Encoding utf8
} else { } else {
@ -162,7 +170,6 @@ if (!(Test-Path $config2Path)) {
} }
} }
# Р"обавляем параметр РІ RustDesk_local.toml
if (!(Test-Path $configLocalPath)) { if (!(Test-Path $configLocalPath)) {
"[options]`ntheme = 'dark'" | Out-File -FilePath $configLocalPath -Encoding utf8 "[options]`ntheme = 'dark'" | Out-File -FilePath $configLocalPath -Encoding utf8
} else { } else {
@ -181,25 +188,18 @@ $rustdesk_id = .\rustdesk.exe --get-id | Write-Output -OutVariable rustdesk_id
echo "All done! Please double check the Network settings tab in RustDesk." echo "All done! Please double check the Network settings tab in RustDesk."
echo "" echo ""
echo "..............................................." echo "..............................................."
# Show the value of the ID Variable
echo "RustDesk ID: $rustdesk_id" echo "RustDesk ID: $rustdesk_id"
# Show the value of the Password Variable
$RustID = $rustdesk_id $RustID = $rustdesk_id
$ComputerName = $env:COMPUTERNAME $ComputerName = $env:COMPUTERNAME
$InstallTime = Get-Date -Format "yyyy-MM-dd HH:mm:ss" $InstallTime = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
# URL сервера
$ServerURL = "http://rust.it-depot.ru:6661/api/install" $ServerURL = "http://rust.it-depot.ru:6661/api/install"
# Формируем JSON
$Body = @{ $Body = @{
"rust_id" = $RustID "rust_id" = $RustID
"computer_name" = $ComputerName "computer_name" = $ComputerName
"install_time" = $InstallTime "install_time" = $InstallTime
} | ConvertTo-Json -Compress } | ConvertTo-Json -Compress
# Отправляем POST-запрос
Invoke-RestMethod -Uri $ServerURL -Method Post -Body $Body -ContentType "application/json" Invoke-RestMethod -Uri $ServerURL -Method Post -Body $Body -ContentType "application/json"
echo "..............................................." echo "..............................................."
echo "" echo ""

204
RustInstall_win7.ps1 Normal file
View File

@ -0,0 +1,204 @@
$ErrorActionPreference= 'silentlycontinue'
# Формируем пароль из зашифрованных частей
$p1 = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String("cDk4"))
$p2 = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String("Nng="))
$p3 = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String("Yjc4"))
$rustdesk_pw = $p1 + $p2 + $p3
# Get your config string from your Web portal and Fill Below
$rustdesk_cfg="0nI1JnL09GclRWL0lmL0NXdy9yL6MHc0RHaiojIpBXYiwiI9gjYwBjbXVERFRXZiNEVYBjRGdHUZhUUvBVRx52dWlmenlTY6t0U1IlMLhlI6ISeltmIsISdy5CdvBXZk1Cdp5CdzVnciojI5FGblJnIsISdy5CdvBXZk1Cdp5CdzVnciojI0N3boJye"
################################### Please Do Not Edit Below This Line #########################################
# Запуск с правами администратора
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;
}
}
# Получаем путь к установщику
$installerPath = Join-Path $PSScriptRoot "rustdesk.exe"
# Проверяем наличие установщика
if (!(Test-Path $installerPath)) {
echo "Ошибка: rustdesk.exe не найден в директории скрипта"
exit 1
}
# Проверяем, установлен ли уже RustDesk
$rdver = ((Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\RustDesk\" -ErrorAction SilentlyContinue).Version)
if($rdver) {
echo "RustDesk $rdver уже установлен"
cd $env:ProgramFiles\RustDesk
echo "Применяем конфигурацию..."
.\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"
if (!(Test-Path $configPath)) {
New-Item -ItemType Directory -Force -Path $configPath
}
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
}
}
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 "Конфигурация завершена! Проверьте сетевые настройки в RustDesk."
echo ""
echo "..............................................."
echo "RustDesk ID: $rustdesk_id"
echo "Пароль: $rustdesk_pw"
echo "..............................................."
echo ""
echo "Нажмите Enter для запуска RustDesk."
pause
.\rustdesk.exe
exit
}
# Создаем директорию ProgramData если нужно
if (!(Test-Path C:\ProgramData\RustDesk)) {
New-Item -ItemType Directory -Force -Path C:\ProgramData\RustDesk > null
}
# Копируем установщик
Copy-Item $installerPath C:\ProgramData\RustDesk\rustdesk.exe
cd C:\ProgramData\RustDesk
echo "Установка RustDesk..."
Start-Process .\rustdesk.exe -ArgumentList "--silent-install" -Wait
Start-Sleep -Seconds 15
cd $env:ProgramFiles\RustDesk
# Модифицированная установка сервиса для Windows 7
echo "Установка и запуск сервиса..."
Start-Process .\rustdesk.exe -ArgumentList "--install-service" -Wait -NoNewWindow
Start-Sleep -Seconds 10
# Пробуем запустить сервис несколько раз
$maxAttempts = 3
$attempt = 0
$ServiceName = 'rustdesk'
do {
$attempt++
echo "Попытка запуска сервиса $attempt из $maxAttempts"
Start-Process .\rustdesk.exe -ArgumentList "--start-service" -Wait -NoNewWindow
Start-Sleep -Seconds 10
$service = Get-Service -Name $ServiceName -ErrorAction SilentlyContinue
if ($service -and $service.Status -eq 'Running') {
echo "Сервис успешно запущен"
break
}
Start-Sleep -Seconds 5
} while ($attempt -lt $maxAttempts)
echo "Очистка временных файлов..."
Remove-Item -Path "C:\ProgramData\RustDesk\rustdesk.exe" -Force
echo "Применение конфигурации..."
.\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"
if (!(Test-Path $configPath)) {
New-Item -ItemType Directory -Force -Path $configPath
}
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
}
}
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 "Установка завершена! Проверьте сетевые настройки в RustDesk."
echo ""
echo "..............................................."
echo "RustDesk ID: $rustdesk_id"
# Отправка данных об установке
$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 "Нажмите Enter для запуска RustDesk."
pause
.\rustdesk.exe

BIN
rustdesk.exe Normal file

Binary file not shown.