Initial commit: IT Nexus Web-App
This commit is contained in:
72
agent-cs/update-now.ps1
Normal file
72
agent-cs/update-now.ps1
Normal file
@@ -0,0 +1,72 @@
|
||||
# IT Nexus Agent — Sofort-Update auf neues EXE (als Admin ausführen)
|
||||
$newExe = "$PSScriptRoot\bin\Release\net8.0-windows\IT-Nexus-Agent.exe"
|
||||
$svcExe = "C:\ProgramData\IT Nexus Agent\IT-Nexus-Agent.exe"
|
||||
$pfExe = "C:\Program Files\IT Nexus Agent\IT-Nexus-Agent.exe"
|
||||
$svcName = "IT Nexus Agent"
|
||||
|
||||
Write-Host "IT Nexus Agent — Update-Script" -ForegroundColor Cyan
|
||||
Write-Host "Neue EXE: $newExe" -ForegroundColor Gray
|
||||
|
||||
if (-not (Test-Path $newExe)) {
|
||||
Write-Host "FEHLER: Release-EXE nicht gefunden. Erst bauen!" -ForegroundColor Red
|
||||
Read-Host; exit 1
|
||||
}
|
||||
|
||||
# 1. Tray/Dashboard-Prozesse beenden
|
||||
Write-Host "1. Stoppe Dashboard-Prozesse..." -ForegroundColor Yellow
|
||||
Get-Process -Name "IT-Nexus-Agent" -ErrorAction SilentlyContinue | Stop-Process -Force
|
||||
Start-Sleep -Milliseconds 800
|
||||
|
||||
# 2. Service stoppen
|
||||
Write-Host "2. Stoppe Windows Service..." -ForegroundColor Yellow
|
||||
net stop $svcName 2>$null
|
||||
Start-Sleep -Seconds 2
|
||||
|
||||
# 3. EXE an beiden Orten ersetzen
|
||||
Write-Host "3. Kopiere neue EXE..." -ForegroundColor Yellow
|
||||
$deps = @("IT-Nexus-Agent.dll","IT-Nexus-Agent.runtimeconfig.json",
|
||||
"IT-Nexus-Agent.deps.json","Newtonsoft.Json.dll",
|
||||
"System.Management.dll","System.ServiceProcess.ServiceController.dll")
|
||||
|
||||
foreach ($dest in @($svcExe, $pfExe)) {
|
||||
if (Test-Path (Split-Path $dest)) {
|
||||
Copy-Item $newExe $dest -Force
|
||||
foreach ($d in $deps) {
|
||||
$src = Join-Path (Split-Path $newExe) $d
|
||||
if (Test-Path $src) { Copy-Item $src (Split-Path $dest) -Force }
|
||||
}
|
||||
Write-Host " OK: $dest" -ForegroundColor Green
|
||||
}
|
||||
}
|
||||
|
||||
# 4. Service-Binary-Pfad aktualisieren (falls nötig)
|
||||
$regPath = (sc.exe qc $svcName 2>$null | Select-String "BINARY_PATH").ToString().Trim()
|
||||
Write-Host "4. Aktueller Service-Pfad: $regPath" -ForegroundColor Gray
|
||||
|
||||
# Wenn Service auf ProgramData zeigt → auf Program Files umlenken
|
||||
if ($regPath -like "*ProgramData*") {
|
||||
Write-Host " Migriere Service-Pfad zu Program Files..." -ForegroundColor Yellow
|
||||
sc.exe delete $svcName 2>$null
|
||||
Start-Sleep -Milliseconds 500
|
||||
sc.exe create $svcName binPath= "`"$pfExe`"" start= auto DisplayName= "IT Nexus Agent" 2>$null
|
||||
sc.exe description $svcName "Cereda Systems IT Nexus Monitoring Agent" 2>$null
|
||||
sc.exe failure $svcName reset= 60 actions= restart/5000/restart/10000/restart/30000 2>$null
|
||||
}
|
||||
|
||||
# 5. Service starten
|
||||
Write-Host "5. Starte Windows Service..." -ForegroundColor Yellow
|
||||
net start $svcName 2>$null
|
||||
Start-Sleep -Seconds 3
|
||||
|
||||
$svc = Get-Service -Name $svcName -ErrorAction SilentlyContinue
|
||||
if ($svc.Status -eq "Running") {
|
||||
Write-Host ""
|
||||
Write-Host "Update erfolgreich! Service laeuft." -ForegroundColor Green
|
||||
Write-Host "Naechster Check-in in max. 60 Sekunden." -ForegroundColor Gray
|
||||
} else {
|
||||
Write-Host "WARNUNG: Service nicht gestartet. Status: $($svc.Status)" -ForegroundColor Red
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "Druecke Enter zum Schliessen..."
|
||||
Read-Host
|
||||
Reference in New Issue
Block a user