104 lines
4.0 KiB
Plaintext
104 lines
4.0 KiB
Plaintext
#define MyAppName "IT Nexus Agent"
|
|
#define MyAppVersion "1.2.4"
|
|
#define MyAppPublisher "Cereda Systems GmbH"
|
|
#define MyAppURL "https://it-nexus.cereda-systems.de"
|
|
#define MyAppExeName "it-nexus-agent.ps1"
|
|
#define InstallDir "{commonappdata}\IT Nexus Agent"
|
|
|
|
[Setup]
|
|
AppId={{B3F7A2C1-4E8D-4F2A-9B1C-7D3E5F6A8B2C}
|
|
AppName={#MyAppName}
|
|
AppVersion={#MyAppVersion}
|
|
AppPublisher={#MyAppPublisher}
|
|
AppPublisherURL={#MyAppURL}
|
|
DefaultDirName={#InstallDir}
|
|
DisableDirPage=yes
|
|
DefaultGroupName={#MyAppName}
|
|
DisableProgramGroupPage=yes
|
|
OutputDir=..\dist
|
|
OutputBaseFilename=IT-Nexus-Agent-Setup-v{#MyAppVersion}
|
|
SetupIconFile=
|
|
Compression=lzma2/ultra64
|
|
SolidCompression=yes
|
|
WizardStyle=modern
|
|
WizardSizePercent=120
|
|
PrivilegesRequired=admin
|
|
UninstallDisplayName={#MyAppName}
|
|
UninstallDisplayIcon={app}\it-nexus-agent.ps1
|
|
CloseApplications=no
|
|
DisableWelcomePage=no
|
|
WizardImageFile=compiler:WizModernImage.bmp
|
|
WizardSmallImageFile=compiler:WizModernSmallImage.bmp
|
|
|
|
[Languages]
|
|
Name: "german"; MessagesFile: "compiler:Languages\German.isl"
|
|
|
|
[Files]
|
|
Source: "it-nexus-agent.ps1"; DestDir: "{app}"; Flags: ignoreversion
|
|
Source: "config.json.template"; DestDir: "{app}"; DestName: "config.json"; Flags: ignoreversion onlyifdoesntexist
|
|
|
|
[Run]
|
|
Filename: "powershell.exe"; Parameters: "-ExecutionPolicy Bypass -NonInteractive -Command ""Unregister-ScheduledTask -TaskName 'IT Nexus Agent' -Confirm:$false -ErrorAction SilentlyContinue; $a = New-ScheduledTaskAction -Execute 'powershell.exe' -Argument '-ExecutionPolicy Bypass -NonInteractive -WindowStyle Hidden -File \""{app}\it-nexus-agent.ps1\""'; $t = New-ScheduledTaskTrigger -RepetitionInterval (New-TimeSpan -Minutes 1) -Once -At (Get-Date); $s = New-ScheduledTaskSettingsSet -ExecutionTimeLimit (New-TimeSpan -Minutes 2) -MultipleInstances IgnoreNew -StartWhenAvailable; $p = New-ScheduledTaskPrincipal -UserId 'SYSTEM' -LogonType ServiceAccount -RunLevel Highest; Register-ScheduledTask -TaskName 'IT Nexus Agent' -Action $a -Trigger $t -Settings $s -Principal $p -Force; Start-ScheduledTask -TaskName 'IT Nexus Agent'"""; Flags: runhidden waituntilterminated; StatusMsg: "Registriere Windows Scheduled Task..."
|
|
|
|
[UninstallRun]
|
|
Filename: "powershell.exe"; Parameters: "-ExecutionPolicy Bypass -NonInteractive -Command ""Unregister-ScheduledTask -TaskName 'IT Nexus Agent' -Confirm:$false -ErrorAction SilentlyContinue"""; Flags: runhidden waituntilterminated
|
|
|
|
[Code]
|
|
var
|
|
ServerUrlPage: TInputQueryWizardPage;
|
|
AgentKeyPage: TInputQueryWizardPage;
|
|
|
|
procedure InitializeWizard;
|
|
begin
|
|
ServerUrlPage := CreateInputQueryPage(wpWelcome,
|
|
'Server-Konfiguration',
|
|
'Gib die IT Nexus Server-Adresse ein.',
|
|
'');
|
|
ServerUrlPage.Add('Server URL:', False);
|
|
ServerUrlPage.Values[0] := 'https://it-nexus.cereda-systems.de';
|
|
|
|
AgentKeyPage := CreateInputQueryPage(ServerUrlPage.ID,
|
|
'API Key',
|
|
'Gib den Agent API Key ein. Diesen findest du in den IT Nexus Einstellungen.',
|
|
'');
|
|
AgentKeyPage.Add('Agent API Key:', False);
|
|
AgentKeyPage.Values[0] := 'itx-4CPJPTHmCfdrL9D62WacCATEvuvULXcp7ECMpSaNUjsS344F6_L4Ug';
|
|
end;
|
|
|
|
function NextButtonClick(CurPageID: Integer): Boolean;
|
|
begin
|
|
Result := True;
|
|
if CurPageID = ServerUrlPage.ID then begin
|
|
if ServerUrlPage.Values[0] = '' then begin
|
|
MsgBox('Bitte gib eine Server URL ein.', mbError, MB_OK);
|
|
Result := False;
|
|
end;
|
|
end;
|
|
if CurPageID = AgentKeyPage.ID then begin
|
|
if AgentKeyPage.Values[0] = '' then begin
|
|
MsgBox('Bitte gib einen API Key ein.', mbError, MB_OK);
|
|
Result := False;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure CurStepChanged(CurStep: TSetupStep);
|
|
var
|
|
ConfigFile: string;
|
|
Config: TStringList;
|
|
begin
|
|
if CurStep = ssPostInstall then begin
|
|
ConfigFile := ExpandConstant('{app}\config.json');
|
|
Config := TStringList.Create;
|
|
try
|
|
Config.Add('{');
|
|
Config.Add(' "server_url": "' + ServerUrlPage.Values[0] + '",');
|
|
Config.Add(' "agent_key": "' + AgentKeyPage.Values[0] + '"');
|
|
Config.Add('}');
|
|
Config.SaveToFile(ConfigFile);
|
|
finally
|
|
Config.Free;
|
|
end;
|
|
end;
|
|
end;
|