Phase 2 Migration: Complete PC consolidation and fixes
## Phase 2 Migration Complete Successfully migrated all 286 active PCs from pc table to machines table. ### Migration Scripts Added/Updated: - **Phase 1.0**: Added ensure_all_machinetypes.sql (machinetypes 15-20) - **Phase 1.5**: Added migrate_equipment_ips_to_communications.sql - **Phase 2**: Updated 01_migrate_pcs_to_machines.sql for duplicate handling - **Phase 2**: Updated 08_update_schema_for_api.sql (rename pcid→machineid) - **Phase 2 Fixes**: Added FIX_migrate_remaining_pcs.sql (60 unmigrated PCs) - **Phase 2 Fixes**: Added FIX_pc_machine_types.sql ### Network Devices View Updated: - **CREATE_vw_network_devices_with_fqdn.sql**: Complete rewrite for Phase 2 - Infrastructure devices (IDF, Server, Switch, Camera, Access Point) query machines table - Printers remain in separate printers table (has fqdn column) - UNION approach: machines (machinetypeid 15-19) + printers table ### Documentation Added: - DATA_MIGRATION_EXPLAINED.md - Full migration architecture - PRODUCTION_MIGRATION_PLAN.md - Production deployment plan - VIEWS_MIGRATION_ANALYSIS.md - Views requiring updates - PRINTER_INSTALLER_FIX_2025-11-20.md - Printer installer fixes - SCHEMA_COMPARISON_REPORT_2025-11-20.md - Phase 2 schema comparison ### ASP Files Updated: - api_printers.asp - Printer API fixes - displaynotifications.asp - UI improvements - install_printer.asp - Installer fixes - v2/api_printers.asp - V2 API updates - v2/install_printer.asp - V2 installer updates ### Migration Results (DEV): - Total machines: 523 (237 equipment + 286 PCs) - Communications: 1,309 - Warranties: 212 - Machine relationships: 201 - PC migration: 286/286 ✓ - Duplicate PCs removed: 166 duplicates cleaned ### Key Achievements: ✓ All 286 active PCs migrated to machines table ✓ Network devices view updated for Phase 2 architecture ✓ pc_to_machine_id_mapping table populated (286 entries) ✓ Duplicate PC records cleaned (452→286) ✓ Schema updates for API compatibility (pcid→machineid) ### Next Steps: - Update PHP Dashboard API for Phase 2 schema (CRITICAL - see POWERSHELL_API_PHASE2_ISSUES.md) - Update PowerShell scripts for Phase 2 schema - Test Update-PC-CompleteAsset-Silent.bat - Production deployment planning 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -156,75 +156,21 @@ Else
|
||||
Response.Write(" echo ERROR: Could not download installer" & vbCrLf)
|
||||
Response.Write(")" & vbCrLf)
|
||||
Else
|
||||
' No installer - use universal driver
|
||||
Dim driverName, driverInf
|
||||
|
||||
Select Case UCase(printer("vendor"))
|
||||
Case "HP"
|
||||
driverName = "HP Universal Printing PCL 6"
|
||||
driverInf = "hpcu255u.inf"
|
||||
Case "XEROX"
|
||||
driverName = "Xerox Global Print Driver PCL6"
|
||||
driverInf = "xeroxgpd.inf"
|
||||
Case "HID"
|
||||
driverName = "HP Universal Printing PCL 6"
|
||||
driverInf = "hpcu255u.inf"
|
||||
Case Else
|
||||
driverName = "Generic / Text Only"
|
||||
driverInf = ""
|
||||
End Select
|
||||
|
||||
Response.Write("echo Using universal driver: " & driverName & vbCrLf)
|
||||
' No specific installer - use universal PrinterInstaller.exe
|
||||
Response.Write("echo Using universal printer installer..." & vbCrLf)
|
||||
Response.Write("echo." & vbCrLf)
|
||||
|
||||
' Generate PowerShell script to install printer
|
||||
Response.Write("powershell -NoProfile -ExecutionPolicy Bypass -Command """ & vbCrLf)
|
||||
Response.Write(" Write-Host 'Installing printer with universal driver...' -ForegroundColor Cyan;" & vbCrLf)
|
||||
Response.Write(" " & vbCrLf)
|
||||
Response.Write(" $printerName = '" & Replace(printer("name"), "'", "''") & "';" & vbCrLf)
|
||||
Response.Write(" $address = '" & Replace(printer("address"), "'", "''") & "';" & vbCrLf)
|
||||
Response.Write(" $driverName = '" & Replace(driverName, "'", "''") & "';" & vbCrLf)
|
||||
Response.Write(" $portName = 'IP_' + $address;" & vbCrLf)
|
||||
Response.Write(" " & vbCrLf)
|
||||
|
||||
' Check if driver is installed
|
||||
If driverInf <> "" Then
|
||||
Response.Write(" # Check if driver exists" & vbCrLf)
|
||||
Response.Write(" $driver = Get-PrinterDriver -Name $driverName -ErrorAction SilentlyContinue;" & vbCrLf)
|
||||
Response.Write(" if (-not $driver) {" & vbCrLf)
|
||||
Response.Write(" Write-Host 'ERROR: Universal driver not found!' -ForegroundColor Red;" & vbCrLf)
|
||||
Response.Write(" Write-Host 'Please install ' $driverName ' from Windows Update or driver package' -ForegroundColor Yellow;" & vbCrLf)
|
||||
Response.Write(" exit 1;" & vbCrLf)
|
||||
Response.Write(" }" & vbCrLf)
|
||||
Response.Write(" " & vbCrLf)
|
||||
End If
|
||||
|
||||
' Create port
|
||||
Response.Write(" # Create TCP/IP port" & vbCrLf)
|
||||
Response.Write(" $port = Get-PrinterPort -Name $portName -ErrorAction SilentlyContinue;" & vbCrLf)
|
||||
Response.Write(" if (-not $port) {" & vbCrLf)
|
||||
Response.Write(" Write-Host 'Creating printer port...' -ForegroundColor Yellow;" & vbCrLf)
|
||||
Response.Write(" Add-PrinterPort -Name $portName -PrinterHostAddress $address -ErrorAction Stop;" & vbCrLf)
|
||||
Response.Write(" Write-Host 'Port created successfully' -ForegroundColor Green;" & vbCrLf)
|
||||
Response.Write(" } else {" & vbCrLf)
|
||||
Response.Write(" Write-Host 'Port already exists' -ForegroundColor Green;" & vbCrLf)
|
||||
Response.Write(" }" & vbCrLf)
|
||||
Response.Write(" " & vbCrLf)
|
||||
|
||||
' Add printer
|
||||
Response.Write(" # Add printer" & vbCrLf)
|
||||
Response.Write(" $existingPrinter = Get-Printer -Name $printerName -ErrorAction SilentlyContinue;" & vbCrLf)
|
||||
Response.Write(" if (-not $existingPrinter) {" & vbCrLf)
|
||||
Response.Write(" Write-Host 'Adding printer...' -ForegroundColor Yellow;" & vbCrLf)
|
||||
Response.Write(" Add-Printer -Name $printerName -DriverName $driverName -PortName $portName -ErrorAction Stop;" & vbCrLf)
|
||||
Response.Write(" Write-Host 'Printer installed successfully!' -ForegroundColor Green;" & vbCrLf)
|
||||
Response.Write(" } else {" & vbCrLf)
|
||||
Response.Write(" Write-Host 'Printer already exists' -ForegroundColor Green;" & vbCrLf)
|
||||
Response.Write(" }" & vbCrLf)
|
||||
Response.Write("""" & vbCrLf)
|
||||
Response.Write("" & vbCrLf)
|
||||
Response.Write("if %ERRORLEVEL% neq 0 (" & vbCrLf)
|
||||
Response.Write(" echo ERROR: Failed to install printer" & vbCrLf)
|
||||
Response.Write("echo Downloading PrinterInstaller.exe..." & vbCrLf)
|
||||
Response.Write("powershell -NoProfile -Command """ & _
|
||||
"$ProgressPreference = 'SilentlyContinue'; " & _
|
||||
"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; " & _
|
||||
"Invoke-WebRequest -Uri 'https://tsgwp00525.rd.ds.ge.com/shopdb/installers/PrinterInstaller.exe' " & _
|
||||
"-OutFile '%TEMP%\PrinterInstaller.exe' -UseBasicParsing -UseDefaultCredentials""" & vbCrLf)
|
||||
Response.Write("if exist ""%TEMP%\PrinterInstaller.exe"" (" & vbCrLf)
|
||||
Response.Write(" echo Running installer..." & vbCrLf)
|
||||
Response.Write(" ""%TEMP%\PrinterInstaller.exe"" ""/PRINTER=" & printer("standardname") & """" & vbCrLf)
|
||||
Response.Write(" del ""%TEMP%\PrinterInstaller.exe"" 2>nul" & vbCrLf)
|
||||
Response.Write(") else (" & vbCrLf)
|
||||
Response.Write(" echo ERROR: Could not download PrinterInstaller.exe" & vbCrLf)
|
||||
Response.Write(")" & vbCrLf)
|
||||
End If
|
||||
|
||||
|
||||
Reference in New Issue
Block a user