Initial commit: Inno Setup installer packages

Installer packages for GE manufacturing tools:
- BlueSSOFix: Blue SSO authentication fix
- HIDCardPrinter: HID card printer setup
- HPOfflineInstaller: HP printer offline installer
- MappedDrive: Network drive mapping
- PrinterInstaller: General printer installer
- ShopfloorConnect: Shopfloor connectivity tool
- XeroxOfflineInstaller: Xerox printer offline installer

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
cproudlock
2025-12-30 13:15:54 -05:00
commit 28541cd3ed
1175 changed files with 127441 additions and 0 deletions

190
BlueSSOFix/BlueSSOFix.iss Normal file
View File

@@ -0,0 +1,190 @@
; BlueSSOFix - GE Aerospace Blue SSO Certificate Fix Utility
; Automates certificate management and WiFi profile configuration for Blue SSO authentication
[Setup]
AppId={{9A8B7C6D-5E4F-3A2B-1C0D-9E8F7A6B5C4D}}
AppName=WJDT BlueSSOFix
AppVersion=1.0
AppPublisher=WJDT
AppPublisherURL=http://tsgwp00524.logon.ds.ge.com
AppSupportURL=http://tsgwp00524.logon.ds.ge.com
AppUpdatesURL=http://tsgwp00524.logon.ds.ge.com
CreateAppDir=no
ChangesAssociations=no
PrivilegesRequired=admin
OutputDir=.\Output
OutputBaseFilename=BlueSSOFix
SolidCompression=yes
WizardStyle=modern
SetupIconFile=gea-logo.ico
WizardImageFile=patrick.bmp
WizardSmallImageFile=patrick-sm.bmp
CreateUninstallRegKey=no
DisableWelcomePage=no
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
[Messages]
WelcomeLabel2=This utility will fix Blue SSO wireless authentication issues.%n%nThe installer will:%n- Uninstall and reinstall EAP-PEAP%n- Remove old BLUESSO WiFi profile%n- Install fresh BLUESSO WiFi profile%n- Clean expired certificates%n%nThis is useful when:%n- Blue SSO authentication fails%n- WiFi profile is corrupted%n- Certificate errors appear
[Files]
; Embed the EAP-PEAP installer
Source: "EAP-PEAP.msi"; DestDir: "{tmp}"; Flags: ignoreversion
; Embed the working BLUESSO.xml
Source: "BLUESSO.xml"; DestDir: "{tmp}"; Flags: ignoreversion
; Embed the bat files
Source: "BLUESSO Remove.bat"; DestDir: "{tmp}"; Flags: ignoreversion
Source: "BLUESSO Add Temp.bat"; DestDir: "{tmp}"; Flags: ignoreversion
[Code]
var
CurrentUsername: String;
procedure InitializeWizard();
begin
CurrentUsername := GetUserNameString;
end;
procedure CurStepChanged(CurStep: TSetupStep);
var
ResultCode: Integer;
ScriptPath: String;
PowerShellScript: String;
MsiPath: String;
XmlPath: String;
begin
if CurStep = ssInstall then
begin
MsiPath := ExpandConstant('{tmp}\EAP-PEAP.msi');
// Build PowerShell script with nice output
PowerShellScript :=
'$ErrorActionPreference = "Continue"' + #13#10 +
'Write-Host ""' + #13#10 +
'Write-Host "========================================" -ForegroundColor Cyan' + #13#10 +
'Write-Host " BlueSSOFix - Blue SSO Repair Tool" -ForegroundColor Cyan' + #13#10 +
'Write-Host "========================================" -ForegroundColor Cyan' + #13#10 +
'Write-Host ""' + #13#10 +
'Write-Host "Current User: ' + CurrentUsername + '" -ForegroundColor Gray' + #13#10 +
'Write-Host ""' + #13#10 +
'' + #13#10 +
'Write-Host "Step 1: Checking EAP-PEAP installation..." -ForegroundColor Yellow' + #13#10 +
'$peapInstalled = Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{ED5776D5-59B4-46B7-AF81-5F2D94D7C640}"' + #13#10 +
'if ($peapInstalled) {' + #13#10 +
' Write-Host " EAP-PEAP already installed" -ForegroundColor Green' + #13#10 +
'} else {' + #13#10 +
' Write-Host " Installing EAP-PEAP..." -ForegroundColor Yellow' + #13#10 +
' $msiPath = "' + MsiPath + '"' + #13#10 +
' $process = Start-Process -FilePath "msiexec.exe" -ArgumentList @("/i", "`"$msiPath`"", "/qn", "/norestart") -Wait -PassThru' + #13#10 +
' if ($process.ExitCode -eq 0) {' + #13#10 +
' Write-Host " EAP-PEAP installed successfully" -ForegroundColor Green' + #13#10 +
' Start-Sleep -Seconds 3' + #13#10 +
' } else {' + #13#10 +
' Write-Host " Installation failed with exit code: $($process.ExitCode)" -ForegroundColor Red' + #13#10 +
' exit $process.ExitCode' + #13#10 +
' }' + #13#10 +
'}' + #13#10 +
'Write-Host ""' + #13#10 +
'' + #13#10 +
'Write-Host "Step 2: Cleaning expired certificates..." -ForegroundColor Yellow' + #13#10 +
'try {' + #13#10 +
' $expiredCerts = Get-ChildItem -Path Cert:\CurrentUser\My | Where-Object { $_.NotAfter -lt (Get-Date) }' + #13#10 +
' if ($expiredCerts) {' + #13#10 +
' $removedCount = 0' + #13#10 +
' foreach ($cert in $expiredCerts) {' + #13#10 +
' try {' + #13#10 +
' Remove-Item -Path "Cert:\CurrentUser\My\$($cert.Thumbprint)" -Force -ErrorAction Stop' + #13#10 +
' $removedCount++' + #13#10 +
' } catch { }' + #13#10 +
' }' + #13#10 +
' Write-Host " Removed $removedCount expired certificates" -ForegroundColor Green' + #13#10 +
' } else {' + #13#10 +
' Write-Host " No expired certificates found" -ForegroundColor Green' + #13#10 +
' }' + #13#10 +
'} catch {' + #13#10 +
' Write-Host " Error: $_" -ForegroundColor Red' + #13#10 +
'}' + #13#10 +
'Write-Host ""' + #13#10 +
'' + #13#10 +
'Write-Host "========================================" -ForegroundColor Cyan' + #13#10 +
'Write-Host " Phase 1 Complete" -ForegroundColor Cyan' + #13#10 +
'Write-Host "========================================" -ForegroundColor Cyan' + #13#10 +
'Write-Host ""' + #13#10 +
'Write-Host "WiFi profile will be configured next..." -ForegroundColor Yellow' + #13#10 +
'Write-Host ""';
ScriptPath := ExpandConstant('{tmp}\BlueSSOFix.ps1');
SaveStringToFile(ScriptPath, PowerShellScript, False);
Exec('powershell.exe',
'-NoProfile -ExecutionPolicy Bypass -File "' + ScriptPath + '"',
'', SW_SHOW, ewWaitUntilTerminated, ResultCode);
DeleteFile(ScriptPath);
end;
if CurStep = ssPostInstall then
begin
// Build nice PowerShell script for WiFi configuration
XmlPath := ExpandConstant('{commonappdata}\BLUESSO.xml');
CopyFile(ExpandConstant('{tmp}\BLUESSO.xml'), XmlPath, False);
PowerShellScript :=
'Write-Host ""' + #13#10 +
'Write-Host "Step 3: Configuring WiFi profile..." -ForegroundColor Yellow' + #13#10 +
'Write-Host " Removing old BLUESSO profile..." -ForegroundColor Gray' + #13#10 +
'Write-Host ""';
ScriptPath := ExpandConstant('{tmp}\BlueSSOFix_WiFi.ps1');
SaveStringToFile(ScriptPath, PowerShellScript, False);
Exec('powershell.exe',
'-NoProfile -ExecutionPolicy Bypass -File "' + ScriptPath + '"',
'', SW_SHOW, ewWaitUntilTerminated, ResultCode);
DeleteFile(ScriptPath);
// Create scheduled task to run as current user (non-elevated)
Exec('cmd.exe',
'/c schtasks /create /tn "BlueSSOFix_WiFi" /tr "cmd.exe /c netsh wlan delete profile name=BLUESSO & netsh wlan add profile filename=' + XmlPath + '" /sc once /st 00:00 /ru "' + CurrentUsername + '" /f',
'', SW_HIDE, ewWaitUntilTerminated, ResultCode);
// Run the scheduled task immediately
Exec('cmd.exe',
'/c schtasks /run /tn "BlueSSOFix_WiFi"',
'', SW_HIDE, ewWaitUntilTerminated, ResultCode);
Sleep(2000);
// Delete the scheduled task
Exec('cmd.exe',
'/c schtasks /delete /tn "BlueSSOFix_WiFi" /f',
'', SW_HIDE, ewWaitUntilTerminated, ResultCode);
// Final success message
PowerShellScript :=
'Write-Host " WiFi profile configured successfully" -ForegroundColor Green' + #13#10 +
'Write-Host ""' + #13#10 +
'Write-Host "========================================" -ForegroundColor Cyan' + #13#10 +
'Write-Host " BlueSSOFix Complete!" -ForegroundColor Cyan' + #13#10 +
'Write-Host "========================================" -ForegroundColor Cyan' + #13#10 +
'Write-Host ""' + #13#10 +
'Write-Host "Summary:" -ForegroundColor White' + #13#10 +
'Write-Host " [OK] EAP-PEAP installed" -ForegroundColor Green' + #13#10 +
'Write-Host " [OK] BLUESSO WiFi profile configured" -ForegroundColor Green' + #13#10 +
'Write-Host " [OK] Expired certificates cleaned" -ForegroundColor Green' + #13#10 +
'Write-Host ""' + #13#10 +
'Write-Host "Press any key to continue..." -ForegroundColor Gray' + #13#10 +
'$null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")';
ScriptPath := ExpandConstant('{tmp}\BlueSSOFix_Complete.ps1');
SaveStringToFile(ScriptPath, PowerShellScript, False);
Exec('powershell.exe',
'-NoProfile -ExecutionPolicy Bypass -File "' + ScriptPath + '"',
'', SW_SHOW, ewWaitUntilTerminated, ResultCode);
DeleteFile(ScriptPath);
end;
end;