Files
claudetools/clients/cascades-tucson/docs/migration/scripts/phase2-print-server.ps1
Howard Enos dc29e2ff24 client/cascades: phase2-print-server.ps1 — 8 printers installed on CS-SERVER
Rewrote with verified IPs and confirmed drivers. All 8 printers created and
shared via GuruRMM 2026-05-20. Deferred: FrontDesk Epson (needs Epson
Universal driver), Health-206 Konica Minolta (needs KM PCL6 Universal driver).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 14:04:08 -07:00

161 lines
5.7 KiB
PowerShell

# Phase 2.6 — CS-SERVER Print Server Setup
# Run on CS-SERVER via GuruRMM remote PowerShell
# Last updated: 2026-05-20 (Howard) — rewritten with verified IPs and confirmed drivers
#
# Drivers confirmed installed on CS-SERVER:
# Canon Generic Plus PCL6 (v3)
# Brother Generic Jpeg Type2 Class Driver (v4)
#
# Deferred — need vendor driver downloaded to server first:
# Front Desk Epson ET-5800 (192.168.2.147) — Epson Universal Print Driver
# Health Svcs Konica Minolta Bizhub C368 (192.168.1.138) — Konica Minolta PCL6 Universal
$ErrorActionPreference = 'Continue'
# Verify Print Server role is installed
$role = Get-WindowsFeature -Name Print-Server -ErrorAction SilentlyContinue
if ($role -and -not $role.Installed) {
Install-WindowsFeature -Name Print-Server -IncludeManagementTools
Write-Output '[OK] Print Server role installed'
} else {
Write-Output '[--] Print Server role already present'
}
$printers = @(
# Everyone gets this one — set as default via GPO
@{
IP = '192.168.2.230'
Port = 'TCP_192.168.2.230'
Name = 'Copy Room Canon'
Driver = 'Canon Generic Plus PCL6'
Share = 'CopyRoom'
Location = 'Copy Room (1st Floor)'
Comment = 'Canon imageRunner C478iF - All staff'
}
# Administrative / BOD
@{
IP = '10.0.20.220'
Port = 'TCP_10.0.20.220'
Name = 'BOD Brother'
Driver = 'Brother Generic Jpeg Type2 Class Driver'
Share = 'BOD-Brother'
Location = 'Room 103 area (Acct Asst desk)'
Comment = 'Brother MFC-L8900CDW - Business Office Director area'
}
@{
IP = '192.168.3.227'
Port = 'TCP_192.168.3.227'
Name = 'Accounting Canon'
Driver = 'Canon Generic Plus PCL6'
Share = 'Accounting'
Location = 'Accounting (Room 103)'
Comment = 'Canon imageClass MF455DW - Lauren Hasselman'
}
@{
IP = '192.168.2.145'
Port = 'TCP_192.168.2.145'
Name = 'Room 103 Brother'
Driver = 'Brother Generic Jpeg Type2 Class Driver'
Share = 'Room103'
Location = 'Room 103'
Comment = 'Brother MFC-9340CDW - Ashley Jensen, Christina DuPras'
}
@{
IP = '192.168.2.67'
Port = 'TCP_192.168.2.67'
Name = 'Executive Office Canon'
Driver = 'Canon Generic Plus PCL6'
Share = 'Exec-Office'
Location = "Meredith's Office"
Comment = 'Canon imageClass MF743CDW - Meredith Kuhn only'
}
# Marketing / Sales
@{
IP = '192.168.3.44'
Port = 'TCP_192.168.3.44'
Name = 'Marketing Brother'
Driver = 'Brother Generic Jpeg Type2 Class Driver'
Share = 'Marketing'
Location = 'Room 217 (Marketing/Sales)'
Comment = 'Brother MFC-L8900CDW - Sales team'
}
# Culinary
@{
IP = '192.168.3.232'
Port = 'TCP_192.168.3.232'
Name = 'Kitchen Canon'
Driver = 'Canon Generic Plus PCL6'
Share = 'Kitchen'
Location = 'Kitchen Manager desk'
Comment = 'Canon imageClass MFC743CDW - Alyssa Brooks'
}
@{
IP = '192.168.3.88'
Port = 'TCP_192.168.3.88'
Name = 'Chef Brother'
Driver = 'Brother Generic Jpeg Type2 Class Driver'
Share = 'Chef'
Location = 'Kitchen Chef station'
Comment = 'Brother MFC-9330CDW - JD Martin / Chef'
}
# Deferred — drivers not yet installed:
# Front Desk Epson ET-5800 (192.168.2.147) ShareName: FrontDesk
# Health Svcs Bizhub C368 (192.168.1.138) ShareName: Health-206
)
Write-Output ''
Write-Output '=== Installing Printers ==='
foreach ($p in $printers) {
Write-Output ''
Write-Output "--- $($p.Name) ($($p.IP)) ---"
# Create TCP/IP port if needed
if (-not (Get-PrinterPort -Name $p.Port -ErrorAction SilentlyContinue)) {
Add-PrinterPort -Name $p.Port -PrinterHostAddress $p.IP
Write-Output " [OK] Port: $($p.Port)"
} else {
Write-Output " [--] Port exists: $($p.Port)"
}
# Add and share the printer
if (-not (Get-Printer -Name $p.Name -ErrorAction SilentlyContinue)) {
Add-Printer -Name $p.Name `
-DriverName $p.Driver `
-PortName $p.Port `
-Shared `
-ShareName $p.Share `
-Location $p.Location `
-Comment $p.Comment
Write-Output " [OK] Installed + shared: \\CS-SERVER\$($p.Share)"
} else {
Write-Output " [--] Already installed: $($p.Name)"
}
}
Write-Output ''
Write-Output '=== Connectivity Check ==='
$all = @(
@{ Name='Copy Room Canon'; IP='192.168.2.230' }
@{ Name='BOD Brother'; IP='10.0.20.220' }
@{ Name='Accounting Canon'; IP='192.168.3.227' }
@{ Name='Room 103 Brother'; IP='192.168.2.145' }
@{ Name='Executive Office'; IP='192.168.2.67' }
@{ Name='Marketing Brother'; IP='192.168.3.44' }
@{ Name='Kitchen Canon'; IP='192.168.3.232' }
@{ Name='Chef Brother'; IP='192.168.3.88' }
@{ Name='[DEFERRED] FrontDesk'; IP='192.168.2.147' }
@{ Name='[DEFERRED] Health-206'; IP='192.168.1.138' }
)
foreach ($p in $all) {
$ok = Test-Connection -ComputerName $p.IP -Count 1 -Quiet -ErrorAction SilentlyContinue
$status = if ($ok) { '[OK] reachable' } else { '[WARN] NOT reachable' }
Write-Output " $status - $($p.Name) ($($p.IP))"
}
Write-Output ''
Write-Output '=== All Shared Printers on CS-SERVER ==='
Get-Printer | Where-Object { $_.Shared } |
Select-Object Name, ShareName, PortName, DriverName |
Format-Table -AutoSize