Agent v2.8.0 tauscht beim Start automatisch den geteilten Bootstrap-Key gegen einen individuellen Per-Device-Key (POST /api/monitoring/enroll, idempotent). Checkin/Announcements-Poll/Setup-Download/WS-Agent-Verbindungen validieren den Key jetzt gegen den jeweiligen Hostname — ein gestohlener Key kann sich nicht mehr als anderer Agent ausgeben (manuell verifiziert). Alte Agents mit dem geteilten Key funktionieren während der Übergangsphase weiter (validateAgentKey() akzeptiert beides), damit der Rollout die Fleet nicht abrupt bricht — Migration läuft über den bestehenden Staged-Rollout (Test → Pilot → Produktion). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
95 lines
3.6 KiB
Plaintext
95 lines
3.6 KiB
Plaintext
#define MyAppName "IT Nexus Agent"
|
|
#define MyAppVersion "2.8.0"
|
|
#define MyAppPublisher "Cereda Systems GmbH"
|
|
#define MyAppURL "https://it-nexus.cereda-systems.de"
|
|
#define MyAppExeName "IT-Nexus-Agent.exe"
|
|
#define MyAppGUID "B3F7A2C1-4E8D-4F2A-9B1C-7D3E5F6A8B2C"
|
|
|
|
[Setup]
|
|
AppId={{{#MyAppGUID}}
|
|
AppName={#MyAppName}
|
|
AppVersion={#MyAppVersion}
|
|
AppVerName={#MyAppName} {#MyAppVersion}
|
|
AppPublisher={#MyAppPublisher}
|
|
AppPublisherURL={#MyAppURL}
|
|
AppSupportURL={#MyAppURL}
|
|
AppUpdatesURL={#MyAppURL}
|
|
DefaultDirName={autopf}\{#MyAppName}
|
|
DefaultGroupName={#MyAppName}
|
|
DisableProgramGroupPage=yes
|
|
DisableWelcomePage=no
|
|
OutputDir=..\installer
|
|
OutputBaseFilename=IT-Nexus-Agent-Setup-v{#MyAppVersion}
|
|
SetupIconFile=icon.ico
|
|
Compression=lzma2/max
|
|
SolidCompression=yes
|
|
WizardStyle=modern
|
|
WizardResizable=no
|
|
PrivilegesRequired=admin
|
|
MinVersion=10.0.17763
|
|
ArchitecturesInstallIn64BitMode=x64
|
|
UninstallDisplayIcon={app}\{#MyAppExeName}
|
|
UninstallDisplayName={#MyAppName} {#MyAppVersion}
|
|
VersionInfoVersion={#MyAppVersion}
|
|
VersionInfoCompany={#MyAppPublisher}
|
|
VersionInfoDescription={#MyAppName}
|
|
CloseApplications=yes
|
|
CloseApplicationsFilter=IT-Nexus-Agent.exe
|
|
|
|
[Languages]
|
|
Name: "german"; MessagesFile: "compiler:Languages\German.isl"
|
|
|
|
[Files]
|
|
Source: "publish\IT-Nexus-Agent.exe"; DestDir: "{app}"; Flags: ignoreversion
|
|
Source: "icon.ico"; DestDir: "{app}"; Flags: ignoreversion
|
|
Source: "config.template.json"; DestDir: "{commonappdata}\IT Nexus Agent"; DestName: "config.json"; Flags: onlyifdoesntexist uninsneveruninstall
|
|
|
|
[Icons]
|
|
; Kein Start-Menü-Icon und kein Desktop-Icon — Agent läuft unsichtbar im Hintergrund
|
|
|
|
[Registry]
|
|
; Kein Autostart-Eintrag — Dashboard wird NICHT automatisch gestartet
|
|
|
|
[Run]
|
|
Filename: "{app}\{#MyAppExeName}"; Parameters: "--install"; Flags: runhidden waituntilterminated; StatusMsg: "Installiere Windows Service..."
|
|
|
|
[UninstallRun]
|
|
Filename: "{app}\{#MyAppExeName}"; Parameters: "--uninstall"; Flags: runhidden waituntilterminated
|
|
|
|
[UninstallDelete]
|
|
Type: files; Name: "{commonappdata}\IT Nexus Agent\status.json"
|
|
Type: files; Name: "{commonappdata}\IT Nexus Agent\agent.log"
|
|
|
|
[Code]
|
|
procedure CurStepChanged(CurStep: TSetupStep);
|
|
var
|
|
ResultCode: Integer;
|
|
AppData: String;
|
|
begin
|
|
if CurStep = ssInstall then begin
|
|
// Service stoppen (neue Architektur)
|
|
Exec('net.exe', 'stop "IT Nexus Agent"', '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
|
|
Sleep(1500);
|
|
|
|
// Verwaiste Prozesse hart killen (überlebt Service-Stop manchmal, z.B. Consent/Capture-Helper)
|
|
Exec('taskkill.exe', '/F /IM IT-Nexus-Agent.exe /T', '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
|
|
Sleep(1000);
|
|
|
|
// Reste eines laufenden Self-Update-Zyklus entfernen (update.cmd + heruntergeladener Installer)
|
|
AppData := ExpandConstant('{commonappdata}\IT Nexus Agent');
|
|
if FileExists(AppData + '\update.cmd') then
|
|
DeleteFile(AppData + '\update.cmd');
|
|
if FileExists(AppData + '\IT-Nexus-Agent-Setup-Update.exe') then
|
|
DeleteFile(AppData + '\IT-Nexus-Agent-Setup-Update.exe');
|
|
|
|
// Alte Scheduled Tasks (v1.x PowerShell-Agent + RDP-Helper-Reste) entfernen
|
|
Exec('schtasks.exe', '/delete /tn "IT Nexus Agent" /f', '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
|
|
Exec('schtasks.exe', '/delete /tn "IT Nexus Agent Watcher" /f', '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
|
|
Exec('schtasks.exe', '/delete /tn "ITNexusAgent" /f', '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
|
|
Exec('schtasks.exe', '/delete /tn "ITNexusAgentWatcher" /f', '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
|
|
// Autostart-Eintrag aus vorheriger Version entfernen (falls vorhanden)
|
|
RegDeleteValue(HKCU, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run', 'IT Nexus Agent');
|
|
Sleep(1500);
|
|
end;
|
|
end;
|