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:
207
XeroxOfflineInstaller/README.md
Normal file
207
XeroxOfflineInstaller/README.md
Normal file
@@ -0,0 +1,207 @@
|
||||
# Xerox Universal Print Driver - Offline USB Installer
|
||||
|
||||
Standalone offline installer for Xerox Universal Print Driver for USB-connected printers.
|
||||
|
||||
## Overview
|
||||
|
||||
This installer packages the Xerox Global Print Driver PCL6 for offline installation on computers that need to connect Xerox printers via USB. No network or database connection is required.
|
||||
|
||||
**Designed for Windows 7+ systems with outdated root certificates.**
|
||||
|
||||
## Features
|
||||
|
||||
- **Offline Installation**: No network connection required
|
||||
- **USB Plug-and-Play**: After driver installation, connect printer via USB and Windows auto-detects
|
||||
- **Multi-Architecture**: Supports both 32-bit and 64-bit Windows
|
||||
- **Windows 7 Compatible**: Handles certificate trust issues on older systems
|
||||
- **Certificate Bypass**: Automatically installs driver certificate to trusted store
|
||||
- **Simple UI**: Welcome page → Install → Done
|
||||
|
||||
## Driver Information
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **Driver Name** | Xerox Global Print Driver PCL6 |
|
||||
| **Version** | 5.1055.3.0 |
|
||||
| **Architectures** | x64 and x32 |
|
||||
| **Connection** | USB |
|
||||
| **Min Windows** | Windows 7 SP1 |
|
||||
|
||||
## Windows 7 Certificate Handling
|
||||
|
||||
This installer addresses the "untrusted certificate" issue on Windows 7 systems that lack updated root certificates:
|
||||
|
||||
### What It Does
|
||||
|
||||
1. **Installs Certificate**: Extracts the Xerox signing certificate from the driver catalog (.cat) file and adds it to:
|
||||
- `TrustedPublisher` store - Trusts the driver publisher
|
||||
- `Root` store - Validates certificate chain
|
||||
|
||||
2. **Modifies Signing Policy**: Sets driver signing policy to "Warn" (not "Block") via registry:
|
||||
- `HKLM\SOFTWARE\Microsoft\Driver Signing`
|
||||
- `HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DriverSigning`
|
||||
|
||||
3. **Multiple Install Methods**: Tries several approaches for compatibility:
|
||||
- `pnputil /add-driver` (Windows 10+ syntax)
|
||||
- `pnputil -a` (Windows 7 syntax)
|
||||
- `rundll32 setupapi.dll,InstallHinfSection` (fallback)
|
||||
- `rundll32 printui.dll,PrintUIEntry` (driver registration)
|
||||
|
||||
## Project Structure
|
||||
|
||||
```
|
||||
OfflineInstaller/
|
||||
├── XeroxOfflineInstaller.iss # Main Inno Setup script
|
||||
├── README.md # This file
|
||||
├── gea-logo.ico # Application icon
|
||||
├── patrick.bmp # Wizard image (164x314px)
|
||||
├── patrick-sm.bmp # Small wizard image (55x58px)
|
||||
└── drivers/
|
||||
├── xerox_x64/ # 64-bit driver files
|
||||
│ └── UNIV_5.1055.3.0_PCL6_x64_Driver.inf/
|
||||
│ ├── x3UNIVX.inf # Main INF file
|
||||
│ └── x3UNIVx.cat # Certificate catalog
|
||||
└── xerox_x32/ # 32-bit driver files
|
||||
├── x3UNIVX.inf # Main INF file
|
||||
└── x3UNIVx.cat # Certificate catalog
|
||||
```
|
||||
|
||||
## Building the Installer
|
||||
|
||||
### Requirements
|
||||
- Windows machine with Inno Setup 6 installed
|
||||
- All files in this directory
|
||||
|
||||
### Steps
|
||||
1. Copy this folder to a Windows machine
|
||||
2. Open `XeroxOfflineInstaller.iss` in Inno Setup Compiler
|
||||
3. Press F9 to compile
|
||||
4. Output: `Output\XeroxOfflineInstaller.exe`
|
||||
|
||||
### Command Line Build
|
||||
```batch
|
||||
"C:\Program Files (x86)\Inno Setup 6\ISCC.exe" XeroxOfflineInstaller.iss
|
||||
```
|
||||
|
||||
## Running the Installer
|
||||
|
||||
1. Run `XeroxOfflineInstaller.exe` as **Administrator**
|
||||
2. Click Next on the Welcome page
|
||||
3. Watch installation progress:
|
||||
- Step 1: Installing certificate to trusted store
|
||||
- Step 2: Configuring driver signing policy
|
||||
- Step 3: Installing printer driver
|
||||
4. Press any key to close
|
||||
5. Connect your Xerox printer via USB
|
||||
6. Windows will automatically detect and configure the printer
|
||||
|
||||
## Silent Installation
|
||||
|
||||
```batch
|
||||
XeroxOfflineInstaller.exe /VERYSILENT /NORESTART
|
||||
```
|
||||
|
||||
## How It Works
|
||||
|
||||
1. **Extract**: Driver files extracted to temp folder
|
||||
2. **Certificate**: Installs signing certificate to trusted stores using `certutil`
|
||||
3. **Policy**: Sets driver signing to "Warn" mode via registry
|
||||
4. **pnputil**: Adds driver package to Windows driver store
|
||||
5. **PrintUI**: Registers driver with Windows Print Spooler
|
||||
6. **USB Detection**: When printer is connected, Windows matches it to installed driver
|
||||
|
||||
## Supported Printers
|
||||
|
||||
This universal driver supports most Xerox printers including:
|
||||
- Xerox AltaLink series
|
||||
- Xerox VersaLink series
|
||||
- Xerox WorkCentre series
|
||||
- And many more Xerox models
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### "Access Denied" Error
|
||||
- Run the installer as Administrator
|
||||
|
||||
### "Untrusted Certificate" Still Appears
|
||||
If Windows still shows a certificate warning after installation:
|
||||
1. Click **"Install this driver software anyway"**
|
||||
2. The driver will install and work normally
|
||||
3. This is expected on some Windows 7 configurations
|
||||
|
||||
### Driver Already Installed
|
||||
- The installer will detect this and skip installation
|
||||
- Your printer is ready to use
|
||||
|
||||
### Printer Not Detected After USB Connection
|
||||
1. Open Device Manager
|
||||
2. Look for any devices with warning icons
|
||||
3. Right-click → Update Driver → Browse my computer
|
||||
4. Select "Let me pick from a list"
|
||||
5. Choose "Xerox Global Print Driver PCL6"
|
||||
|
||||
### Verify Driver Installation (Windows 7)
|
||||
```cmd
|
||||
wmic printer driver list brief | findstr /i xerox
|
||||
```
|
||||
|
||||
### Verify Driver Installation (Windows 10+)
|
||||
```powershell
|
||||
Get-PrinterDriver -Name "Xerox Global Print Driver PCL6"
|
||||
```
|
||||
|
||||
### Verify Certificate Installation
|
||||
```cmd
|
||||
certutil -store TrustedPublisher
|
||||
```
|
||||
|
||||
## Differences from PrinterInstaller
|
||||
|
||||
| Feature | PrinterInstaller | OfflineInstaller |
|
||||
|---------|------------------|------------------|
|
||||
| Network Required | Yes (queries ShopDB) | No |
|
||||
| Connection Type | TCP/IP Network | USB |
|
||||
| Vendors | HP, Xerox | Xerox only |
|
||||
| Printer Selection | Database-driven list | N/A (driver only) |
|
||||
| Windows 7 Support | Limited | Full (cert bypass) |
|
||||
| Use Case | Network printers | USB printers |
|
||||
|
||||
## Technical Details
|
||||
|
||||
### Registry Keys Modified
|
||||
```
|
||||
HKLM\SOFTWARE\Microsoft\Driver Signing
|
||||
Policy = 1 (DWORD) - Warn instead of Block
|
||||
|
||||
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DriverSigning
|
||||
Policy = 1 (DWORD) - Warn instead of Block
|
||||
```
|
||||
|
||||
### Certificate Stores Used
|
||||
- `TrustedPublisher` - Machine-level trusted publishers
|
||||
- `Root` - Trusted root certification authorities
|
||||
|
||||
### Installation Methods (in order)
|
||||
1. `pnputil /add-driver <inf> /install` - Windows 10+
|
||||
2. `pnputil -a <inf>` - Windows 7
|
||||
3. `rundll32 setupapi.dll,InstallHinfSection` - Fallback
|
||||
4. `rundll32 printui.dll,PrintUIEntry /ia` - Driver registration
|
||||
|
||||
## Version History
|
||||
|
||||
### Version 1.1 (2025-12-23)
|
||||
- Added Windows 7 certificate bypass
|
||||
- Switched to batch script for better compatibility
|
||||
- Added certutil certificate installation
|
||||
- Added driver signing policy modification
|
||||
- Added fallback installation methods
|
||||
- Uses Windows 7 pnputil syntax (`-a` flag)
|
||||
|
||||
### Version 1.0 (2025-12-23)
|
||||
- Initial release
|
||||
- Xerox Global Print Driver PCL6 v5.1055.3.0
|
||||
- x64 and x32 support
|
||||
|
||||
---
|
||||
|
||||
**Internal use only - WJDT / GE Aerospace**
|
||||
199
XeroxOfflineInstaller/XeroxOfflineInstaller.iss
Normal file
199
XeroxOfflineInstaller/XeroxOfflineInstaller.iss
Normal file
@@ -0,0 +1,199 @@
|
||||
; Xerox Universal Print Driver - Offline USB Installer
|
||||
; Installs Xerox Global Print Driver for USB-connected printers
|
||||
; Supports Windows 7+ (includes certificate trust bypass for older systems)
|
||||
|
||||
[Setup]
|
||||
AppId={{8C4D5E62-6F3B-4E9C-AF2D-9B7E5F4E3C2B}}
|
||||
AppName=Xerox Universal Print Driver (USB)
|
||||
AppVersion=5.1055.3.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
|
||||
ArchitecturesInstallIn64BitMode=x64compatible
|
||||
OutputDir=.\Output
|
||||
OutputBaseFilename=XeroxOfflineInstaller
|
||||
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 install the Xerox Universal Print Driver for USB-connected printers.%n%nDriver: Xerox Global Print Driver PCL6 v5.1055.3.0%n%nAfter installation:%n1. Connect your Xerox printer via USB%n2. Windows will automatically detect and configure it%n%nClick Next to install the driver.
|
||||
|
||||
[Files]
|
||||
; Xerox Universal Print Driver x64
|
||||
Source: "drivers\xerox_x64\*"; DestDir: "{tmp}\xerox_drivers_x64"; Flags: ignoreversion recursesubdirs; Check: Is64BitInstallMode
|
||||
|
||||
; Xerox Universal Print Driver x32
|
||||
Source: "drivers\xerox_x32\*"; DestDir: "{tmp}\xerox_drivers_x32"; Flags: ignoreversion recursesubdirs; Check: not Is64BitInstallMode
|
||||
|
||||
[Code]
|
||||
procedure CurStepChanged(CurStep: TSetupStep);
|
||||
var
|
||||
BatchScript: String;
|
||||
TempScriptPath: String;
|
||||
ResultCode: Integer;
|
||||
IsX64: Boolean;
|
||||
XeroxDriverPath, XeroxDriverDir, TempDir: String;
|
||||
begin
|
||||
if CurStep = ssPostInstall then
|
||||
begin
|
||||
// Determine architecture and driver paths
|
||||
IsX64 := Is64BitInstallMode;
|
||||
TempDir := ExpandConstant('{tmp}');
|
||||
|
||||
if IsX64 then
|
||||
begin
|
||||
XeroxDriverPath := ExpandConstant('{tmp}\xerox_drivers_x64\UNIV_5.1055.3.0_PCL6_x64_Driver.inf\x3UNIVX.inf');
|
||||
XeroxDriverDir := ExpandConstant('{tmp}\xerox_drivers_x64\UNIV_5.1055.3.0_PCL6_x64_Driver.inf');
|
||||
end
|
||||
else
|
||||
begin
|
||||
XeroxDriverPath := ExpandConstant('{tmp}\xerox_drivers_x32\x3UNIVX.inf');
|
||||
XeroxDriverDir := ExpandConstant('{tmp}\xerox_drivers_x32');
|
||||
end;
|
||||
|
||||
// Build installation batch script
|
||||
BatchScript :=
|
||||
'@echo off' + #13#10 +
|
||||
'setlocal enabledelayedexpansion' + #13#10 +
|
||||
'' + #13#10 +
|
||||
'echo.' + #13#10 +
|
||||
'echo ========================================' + #13#10 +
|
||||
'echo Xerox Universal Print Driver Installer' + #13#10 +
|
||||
'echo ========================================' + #13#10 +
|
||||
'echo.' + #13#10 +
|
||||
'' + #13#10 +
|
||||
'set "DRIVER_NAME=Xerox Global Print Driver PCL6"' + #13#10 +
|
||||
'set "INF_FILE=' + XeroxDriverPath + '"' + #13#10 +
|
||||
'set "DRIVER_DIR=' + XeroxDriverDir + '"' + #13#10 +
|
||||
'set "CAT_FILE=%DRIVER_DIR%\x3UNIVx.cat"' + #13#10 +
|
||||
'' + #13#10 +
|
||||
'echo Step 1: Installing driver certificate to trusted store...' + #13#10 +
|
||||
'echo.' + #13#10 +
|
||||
'' + #13#10 +
|
||||
'REM Find the catalog file' + #13#10 +
|
||||
'if not exist "%CAT_FILE%" (' + #13#10 +
|
||||
' for %%f in ("%DRIVER_DIR%\*.cat") do (' + #13#10 +
|
||||
' set "CAT_FILE=%%f"' + #13#10 +
|
||||
' )' + #13#10 +
|
||||
')' + #13#10 +
|
||||
'' + #13#10 +
|
||||
'if exist "%CAT_FILE%" (' + #13#10 +
|
||||
' echo Catalog file: %CAT_FILE%' + #13#10 +
|
||||
' echo.' + #13#10 +
|
||||
'' + #13#10 +
|
||||
' REM Add catalog directly to TrustedPublisher store' + #13#10 +
|
||||
' REM This works! Adds as Certificate Trust List (CTL)' + #13#10 +
|
||||
' certutil -addstore TrustedPublisher "%CAT_FILE%" >nul 2>&1' + #13#10 +
|
||||
' if !errorlevel! equ 0 (' + #13#10 +
|
||||
' echo Certificate catalog added to TrustedPublisher store' + #13#10 +
|
||||
' ) else (' + #13#10 +
|
||||
' echo Note: certutil returned !errorlevel! - may already be installed' + #13#10 +
|
||||
' )' + #13#10 +
|
||||
') else (' + #13#10 +
|
||||
' echo WARNING: No catalog file found - continuing anyway...' + #13#10 +
|
||||
')' + #13#10 +
|
||||
'' + #13#10 +
|
||||
'echo.' + #13#10 +
|
||||
'echo Step 2: Disabling driver signature enforcement...' + #13#10 +
|
||||
'echo.' + #13#10 +
|
||||
'' + #13#10 +
|
||||
'REM Set driver signing policy to Ignore (0) - prevents "untrusted" dialogs' + #13#10 +
|
||||
'reg add "HKLM\SOFTWARE\Microsoft\Driver Signing" /v Policy /t REG_BINARY /d 00 /f >nul 2>&1' + #13#10 +
|
||||
'if !errorlevel! equ 0 (' + #13#10 +
|
||||
' echo Driver signing policy set to Ignore' + #13#10 +
|
||||
') else (' + #13#10 +
|
||||
' echo Note: Could not set driver signing policy' + #13#10 +
|
||||
')' + #13#10 +
|
||||
'' + #13#10 +
|
||||
'REM Also set via Group Policy registry key' + #13#10 +
|
||||
'reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Driver Signing" /v BehaviorOnFailedVerify /t REG_DWORD /d 0 /f >nul 2>&1' + #13#10 +
|
||||
'' + #13#10 +
|
||||
'echo.' + #13#10 +
|
||||
'echo Step 3: Installing printer driver...' + #13#10 +
|
||||
'echo.' + #13#10 +
|
||||
'' + #13#10 +
|
||||
'if not exist "%INF_FILE%" (' + #13#10 +
|
||||
' echo ERROR: INF file not found: %INF_FILE%' + #13#10 +
|
||||
' echo.' + #13#10 +
|
||||
' pause' + #13#10 +
|
||||
' exit /b 1' + #13#10 +
|
||||
')' + #13#10 +
|
||||
'echo INF file: %INF_FILE%' + #13#10 +
|
||||
'echo.' + #13#10 +
|
||||
'' + #13#10 +
|
||||
'echo Adding driver to Windows driver store...' + #13#10 +
|
||||
'echo.' + #13#10 +
|
||||
'' + #13#10 +
|
||||
'REM Try Windows 7 syntax first (works on all Windows versions)' + #13#10 +
|
||||
'REM -i = install on matching devices, -a = add driver package' + #13#10 +
|
||||
'pnputil -i -a "%INF_FILE%"' + #13#10 +
|
||||
'set PNPRESULT=!errorlevel!' + #13#10 +
|
||||
'' + #13#10 +
|
||||
'REM If Windows 7 syntax fails, try Windows 10+ syntax' + #13#10 +
|
||||
'if !PNPRESULT! neq 0 (' + #13#10 +
|
||||
' echo.' + #13#10 +
|
||||
' echo Trying alternative syntax...' + #13#10 +
|
||||
' pnputil /add-driver "%INF_FILE%" /install' + #13#10 +
|
||||
' set PNPRESULT=!errorlevel!' + #13#10 +
|
||||
')' + #13#10 +
|
||||
'' + #13#10 +
|
||||
'echo.' + #13#10 +
|
||||
'' + #13#10 +
|
||||
'if !PNPRESULT! equ 0 (' + #13#10 +
|
||||
' echo Driver added to store successfully' + #13#10 +
|
||||
') else if !PNPRESULT! equ 259 (' + #13#10 +
|
||||
' echo Driver already in store' + #13#10 +
|
||||
') else (' + #13#10 +
|
||||
' echo pnputil returned: !PNPRESULT!' + #13#10 +
|
||||
' echo Trying PrintUI method...' + #13#10 +
|
||||
' echo.' + #13#10 +
|
||||
' rundll32 printui.dll,PrintUIEntry /ia /m "%DRIVER_NAME%" /f "%INF_FILE%"' + #13#10 +
|
||||
')' + #13#10 +
|
||||
'' + #13#10 +
|
||||
'echo.' + #13#10 +
|
||||
'echo ========================================' + #13#10 +
|
||||
'echo.' + #13#10 +
|
||||
'echo Installation complete!' + #13#10 +
|
||||
'echo.' + #13#10 +
|
||||
'echo Driver: %DRIVER_NAME%' + #13#10 +
|
||||
'echo.' + #13#10 +
|
||||
'echo Next Steps:' + #13#10 +
|
||||
'echo 1. Connect your Xerox printer via USB' + #13#10 +
|
||||
'echo 2. Windows will automatically detect it' + #13#10 +
|
||||
'echo 3. Printer will appear in Devices and Printers' + #13#10 +
|
||||
'echo.' + #13#10 +
|
||||
'echo ========================================' + #13#10 +
|
||||
'echo.' + #13#10 +
|
||||
'pause';
|
||||
|
||||
// Save and execute batch script
|
||||
TempScriptPath := ExpandConstant('{tmp}\install_xerox_driver.bat');
|
||||
SaveStringToFile(TempScriptPath, BatchScript, False);
|
||||
|
||||
Exec('cmd.exe',
|
||||
'/c "' + TempScriptPath + '"',
|
||||
'', SW_SHOW, ewWaitUntilTerminated, ResultCode);
|
||||
|
||||
DeleteFile(TempScriptPath);
|
||||
end;
|
||||
end;
|
||||
|
||||
// Skip directory selection page
|
||||
function ShouldSkipPage(PageID: Integer): Boolean;
|
||||
begin
|
||||
Result := False;
|
||||
if PageID = wpSelectDir then
|
||||
Result := True;
|
||||
end;
|
||||
1
XeroxOfflineInstaller/drivers/xerox_x32/xUNIVX.tag
Normal file
1
XeroxOfflineInstaller/drivers/xerox_x32/xUNIVX.tag
Normal file
@@ -0,0 +1 @@
|
||||
5.1055.3.1
|
||||
1
XeroxOfflineInstaller/drivers/xerox_x32/xUNIVx08M.cfg
Normal file
1
XeroxOfflineInstaller/drivers/xerox_x32/xUNIVx08M.cfg
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
3769
XeroxOfflineInstaller/drivers/xerox_x32/xUNIVx08M.gpd
Normal file
3769
XeroxOfflineInstaller/drivers/xerox_x32/xUNIVx08M.gpd
Normal file
File diff suppressed because it is too large
Load Diff
51
XeroxOfflineInstaller/drivers/xerox_x32/xUNIVx08M.ini
Normal file
51
XeroxOfflineInstaller/drivers/xerox_x32/xUNIVx08M.ini
Normal file
@@ -0,0 +1,51 @@
|
||||
[OEMFiles]
|
||||
OEMConfigFile1=x3up08M.dll
|
||||
OEMDriverFile1=x3rpcl08M.dll
|
||||
|
||||
;
|
||||
;
|
||||
;
|
||||
|
||||
[ModelNames]
|
||||
; Important: This list must exactly match the model names in the INF file
|
||||
xModelName1="Xerox Global Print Driver PCL6"
|
||||
|
||||
xModelName2="Xerox GPD PCL6 V5.1055.3.0"
|
||||
|
||||
;
|
||||
;
|
||||
;
|
||||
|
||||
[ModelIds]
|
||||
; Note: This list is independent of the names in the INF
|
||||
xModelId1=Xerox Global Print Driver
|
||||
xModelVersion1=1
|
||||
|
||||
xModelId2=Xerox GPD
|
||||
xModelVersion2=1
|
||||
|
||||
;
|
||||
;
|
||||
;
|
||||
|
||||
[Defs]
|
||||
|
||||
xModelId=0
|
||||
|
||||
xProdUID=UNIV
|
||||
|
||||
xInstallCompleted=No
|
||||
|
||||
xColor=Monochrome
|
||||
|
||||
xPDL=PCLXL
|
||||
|
||||
xInbox=No
|
||||
|
||||
xFreeCP=No
|
||||
|
||||
xPrintProc=Yes
|
||||
|
||||
xResDll=X
|
||||
|
||||
xManufacturer="Xerox"
|
||||
BIN
XeroxOfflineInstaller/gea-logo.ico
Normal file
BIN
XeroxOfflineInstaller/gea-logo.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 9.4 KiB |
BIN
XeroxOfflineInstaller/patrick-sm.bmp
Normal file
BIN
XeroxOfflineInstaller/patrick-sm.bmp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 9.6 KiB |
BIN
XeroxOfflineInstaller/patrick.bmp
Normal file
BIN
XeroxOfflineInstaller/patrick.bmp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 151 KiB |
179
XeroxOfflineInstaller/test_certificate_install.bat
Normal file
179
XeroxOfflineInstaller/test_certificate_install.bat
Normal file
@@ -0,0 +1,179 @@
|
||||
@echo off
|
||||
REM Test script for Xerox driver installation
|
||||
REM Run as Administrator
|
||||
REM Tests the same commands used by XeroxOfflineInstaller.exe
|
||||
|
||||
setlocal enabledelayedexpansion
|
||||
|
||||
echo.
|
||||
echo ============================================
|
||||
echo Xerox Driver Installation Test Script
|
||||
echo Run as Administrator
|
||||
echo ============================================
|
||||
echo.
|
||||
|
||||
REM Set path to your driver folder (adjust as needed)
|
||||
set "DRIVER_DIR=C:\temp\xerox_drivers"
|
||||
set "CAT_FILE=%DRIVER_DIR%\x3UNIVx.cat"
|
||||
set "INF_FILE=%DRIVER_DIR%\x3UNIVX.inf"
|
||||
set "DRIVER_NAME=Xerox Global Print Driver PCL6"
|
||||
|
||||
echo Driver directory: %DRIVER_DIR%
|
||||
echo.
|
||||
|
||||
REM ============================================
|
||||
echo TEST 1: Check if files exist
|
||||
echo ============================================
|
||||
echo.
|
||||
|
||||
if exist "%CAT_FILE%" (
|
||||
echo [OK] Catalog file: %CAT_FILE%
|
||||
) else (
|
||||
echo [FAIL] Catalog file NOT found: %CAT_FILE%
|
||||
echo.
|
||||
echo Please copy Xerox driver files to %DRIVER_DIR%
|
||||
echo Required files: x3UNIVx.cat, x3UNIVX.inf, and all driver files
|
||||
echo.
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
if exist "%INF_FILE%" (
|
||||
echo [OK] INF file: %INF_FILE%
|
||||
) else (
|
||||
echo [FAIL] INF file NOT found: %INF_FILE%
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
echo.
|
||||
|
||||
REM ============================================
|
||||
echo TEST 2: Add catalog to TrustedPublisher store
|
||||
echo ============================================
|
||||
echo.
|
||||
echo Running: certutil -addstore TrustedPublisher "%CAT_FILE%"
|
||||
echo.
|
||||
certutil -addstore TrustedPublisher "%CAT_FILE%"
|
||||
set CERT_RESULT=!errorlevel!
|
||||
echo.
|
||||
echo Exit code: %CERT_RESULT%
|
||||
|
||||
if %CERT_RESULT% equ 0 (
|
||||
echo [OK] Certificate catalog added successfully
|
||||
) else (
|
||||
echo [INFO] certutil returned %CERT_RESULT% - may already be installed
|
||||
)
|
||||
|
||||
echo.
|
||||
|
||||
REM ============================================
|
||||
echo TEST 2b: Disable driver signature enforcement
|
||||
echo ============================================
|
||||
echo.
|
||||
|
||||
REM Method 1: Set policy to Ignore (0) via registry
|
||||
echo Setting driver signing policy to Ignore...
|
||||
reg add "HKLM\SOFTWARE\Microsoft\Driver Signing" /v Policy /t REG_BINARY /d 00 /f
|
||||
echo Exit code: %errorlevel%
|
||||
|
||||
REM Method 2: Disable via WMIC (Windows 7)
|
||||
echo.
|
||||
echo Disabling driver signing via Group Policy registry...
|
||||
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Driver Signing" /v BehaviorOnFailedVerify /t REG_DWORD /d 0 /f 2>nul
|
||||
echo Exit code: %errorlevel%
|
||||
|
||||
REM Method 3: Set Code Integrity policy
|
||||
echo.
|
||||
echo Setting Code Integrity policy...
|
||||
reg add "HKLM\SYSTEM\CurrentControlSet\Control\CI" /v UMCIDisabled /t REG_DWORD /d 1 /f 2>nul
|
||||
|
||||
echo.
|
||||
|
||||
REM ============================================
|
||||
echo TEST 3: Install driver with pnputil
|
||||
echo ============================================
|
||||
echo.
|
||||
|
||||
REM Try Windows 7 syntax first (works on all versions)
|
||||
echo Running: pnputil -i -a "%INF_FILE%"
|
||||
echo (-i = install, -a = add driver package)
|
||||
echo.
|
||||
pnputil -i -a "%INF_FILE%"
|
||||
set PNPRESULT=!errorlevel!
|
||||
echo.
|
||||
echo Exit code: %PNPRESULT%
|
||||
|
||||
REM If Windows 7 syntax fails, try Windows 10+ syntax
|
||||
if !PNPRESULT! neq 0 (
|
||||
echo.
|
||||
echo Trying Windows 10+ syntax...
|
||||
echo Running: pnputil /add-driver "%INF_FILE%" /install
|
||||
echo.
|
||||
pnputil /add-driver "%INF_FILE%" /install
|
||||
set PNPRESULT=!errorlevel!
|
||||
echo.
|
||||
echo Exit code: !PNPRESULT!
|
||||
)
|
||||
|
||||
echo.
|
||||
if !PNPRESULT! equ 0 (
|
||||
echo [OK] Driver added to store successfully
|
||||
) else if !PNPRESULT! equ 259 (
|
||||
echo [OK] Driver already in store
|
||||
) else (
|
||||
echo [WARN] pnputil returned !PNPRESULT! - check output above for details
|
||||
)
|
||||
|
||||
echo.
|
||||
|
||||
REM ============================================
|
||||
echo TEST 4: Verify driver installation
|
||||
echo ============================================
|
||||
echo.
|
||||
|
||||
echo Checking if driver is registered with print spooler...
|
||||
echo.
|
||||
|
||||
REM Try PowerShell method (Windows 10+)
|
||||
powershell -NoProfile -Command "Get-PrinterDriver -Name '%DRIVER_NAME%' -ErrorAction SilentlyContinue | Select-Object Name, PrinterEnvironment" 2>nul
|
||||
if %errorlevel% equ 0 (
|
||||
echo.
|
||||
echo [OK] Driver found via PowerShell
|
||||
) else (
|
||||
echo PowerShell check failed - trying wmic...
|
||||
wmic printer driver where "name like '%%Xerox%%'" get name 2>nul
|
||||
)
|
||||
|
||||
echo.
|
||||
|
||||
REM ============================================
|
||||
echo TEST 5: Check TrustedPublisher store
|
||||
echo ============================================
|
||||
echo.
|
||||
|
||||
echo Certificates/CTLs containing "Xerox" in TrustedPublisher:
|
||||
certutil -store TrustedPublisher | findstr /i "xerox"
|
||||
if %errorlevel% neq 0 (
|
||||
echo (No Xerox entries found - checking for Microsoft HW Publisher...)
|
||||
certutil -store TrustedPublisher | findstr /i "Microsoft Windows Hardware"
|
||||
)
|
||||
|
||||
echo.
|
||||
|
||||
REM ============================================
|
||||
echo SUMMARY
|
||||
echo ============================================
|
||||
echo.
|
||||
echo Results:
|
||||
echo - Certificate install (TEST 2): Exit code %CERT_RESULT%
|
||||
echo - Driver install (TEST 3): Exit code %PNPRESULT%
|
||||
echo.
|
||||
echo If both exit codes are 0 or 1, installation succeeded!
|
||||
echo.
|
||||
echo Next: Connect your Xerox printer via USB.
|
||||
echo Windows should automatically detect and configure it.
|
||||
echo.
|
||||
echo ============================================
|
||||
echo.
|
||||
pause
|
||||
Reference in New Issue
Block a user