Rename scripts to include estudio and update RustDesk download URL
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
5dd709e5a2
commit
b5c093ad83
@@ -0,0 +1,101 @@
|
||||
# ScoutIT Remote Support (RustDesk) - Standalone Install Script
|
||||
$ErrorActionPreference = 'SilentlyContinue'
|
||||
|
||||
# ── Config ────────────────────────────────────────────────────────────────────
|
||||
$rustdeskMsi = 'estudio-scoutit-remotesupport.msi'
|
||||
$rustdeskDl = 'https://scoutit.help/estudio-rust'
|
||||
$rustdeskInstallDir = 'C:\Program Files\ScoutIT-RemoteSupport'
|
||||
$rustdeskService = 'ScoutIT-RemoteSupport'
|
||||
|
||||
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
|
||||
|
||||
# ── Check if already installed ────────────────────────────────────────────────
|
||||
$svcCheck = Get-Service -Name $rustdeskService -ErrorAction SilentlyContinue
|
||||
if ($null -ne $svcCheck) {
|
||||
Write-Host "ScoutIT Remote Support is already installed. Exiting."
|
||||
exit 0
|
||||
}
|
||||
|
||||
# ── Download ──────────────────────────────────────────────────────────────────
|
||||
$msiPath = "$env:TMP\$rustdeskMsi"
|
||||
Write-Host "Downloading ScoutIT Remote Support client..."
|
||||
Try {
|
||||
Invoke-WebRequest -Uri $rustdeskDl -OutFile $msiPath
|
||||
}
|
||||
Catch {
|
||||
Write-Error "Download failed: $($_.Exception.Message)"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# ── Silent MSI install ────────────────────────────────────────────────────────
|
||||
Write-Host "Installing ScoutIT Remote Support client silently..."
|
||||
Try {
|
||||
Start-Process -FilePath "msiexec.exe" `
|
||||
-ArgumentList "/i `"$msiPath`" /qn /norestart CREATEDESKTOPSHORTCUTS=`"N`" INSTALLPRINTER=`"N`"" `
|
||||
-Wait
|
||||
Start-Sleep -Seconds 10
|
||||
}
|
||||
Catch {
|
||||
Write-Error "MSI install failed: $($_.Exception.Message)"
|
||||
exit 1
|
||||
}
|
||||
Finally {
|
||||
if (Test-Path $msiPath) { Remove-Item -Path $msiPath -Force }
|
||||
}
|
||||
|
||||
# ── Locate the installed exe ──────────────────────────────────────────────────
|
||||
$rustdeskExe = "$rustdeskInstallDir\$($rustdeskMsi -replace '\.msi$', '.exe')"
|
||||
if (-not (Test-Path $rustdeskExe)) {
|
||||
Write-Host "Searching for RustDesk exe in Program Files..."
|
||||
$found = Get-ChildItem 'C:\Program Files' -Recurse -Filter '*.exe' -ErrorAction SilentlyContinue |
|
||||
Where-Object { $_.Name -match 'rustdesk|scoutit|remotesupport' } |
|
||||
Select-Object -First 1
|
||||
if ($found) {
|
||||
$rustdeskExe = $found.FullName
|
||||
Write-Host "Found exe at: $rustdeskExe"
|
||||
} else {
|
||||
Write-Error "Could not locate RustDesk exe after install."
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
||||
$exeDir = Split-Path $rustdeskExe
|
||||
|
||||
# ── Install service if not present ────────────────────────────────────────────
|
||||
$svc = Get-Service -Name $rustdeskService -ErrorAction SilentlyContinue
|
||||
if ($null -eq $svc) {
|
||||
Write-Host "Registering ScoutIT Remote Support service..."
|
||||
Start-Process -FilePath $rustdeskExe -ArgumentList '--install-service' -Wait
|
||||
Start-Sleep -Seconds 20
|
||||
$svc = Get-Service -Name $rustdeskService -ErrorAction SilentlyContinue
|
||||
}
|
||||
|
||||
# ── Ensure service is running ─────────────────────────────────────────────────
|
||||
if ($null -ne $svc) {
|
||||
$attempts = 0
|
||||
while ($svc.Status -ne 'Running' -and $attempts -lt 5) {
|
||||
Write-Host "Starting ScoutIT Remote Support service (attempt $($attempts + 1))..."
|
||||
Start-Service -Name $rustdeskService -ErrorAction SilentlyContinue
|
||||
Start-Sleep -Seconds 5
|
||||
$svc.Refresh()
|
||||
$attempts++
|
||||
}
|
||||
if ($svc.Status -eq 'Running') {
|
||||
Write-Host "ScoutIT Remote Support service is running."
|
||||
} else {
|
||||
Write-Warning "Service did not reach Running state after $attempts attempts."
|
||||
}
|
||||
} else {
|
||||
Write-Warning "Service '$rustdeskService' not found after install."
|
||||
}
|
||||
|
||||
# ── Output RustDesk ID ────────────────────────────────────────────────────────
|
||||
Push-Location $exeDir
|
||||
$rustdeskId = & $rustdeskExe --get-id 2>&1
|
||||
Pop-Location
|
||||
|
||||
Write-Output "................................................."
|
||||
Write-Output "ScoutIT Remote Support ID: $rustdeskId"
|
||||
Write-Output "................................................."
|
||||
|
||||
exit 0
|
||||
Reference in New Issue
Block a user