• PSA: Windows router-printer pipeline broke due to dynamic IP power surge resets

    From Maria Sophia@mariasophia@comprehension.com to alt.comp.os.windows-10,alt.comp.periphs.printers,comp.os.microsoft.windows on Tue Apr 7 18:55:24 2026
    From Newsgroup: alt.comp.os.windows-10

    PSA:
    Windows router-printer pipeline broke due to dynamic IP power surge resets

    Tax day is coming up so I usually file the extension by mail since you
    can't file the extension electronically w/o giving your life away to a
    private company that the IRS contracts out to (as far as I'm aware).

    I try to print.
    Nothing happens.

    Drat. What happened, most likely, from months in the past was:
    a. I set up a new router about half a year ago & printing was fine
    b. Then we had a ton of PG&E power outages plus voltage surges all winter
    c. The printer ended up on a different IP address than the router gave it

    The solution was simple.
    1. Create a new port for the venerable HP LaserJet 2100 tn
    Add-PrinterPort -Name "192.168.0.25" -PrinterHostAddress "192.168.0.25"

    2. Map the existing HP LaserJet2100tn printer to the new port
    Set-Printer -Name "HP LaserJet 2100 Series PCL 5" -PortName "192.168.0.25"

    3. Restart the print spooler to clear any stuck jobs
    Restart-Service spooler

    The debug is where the work lies.

    DATE: 2026-04-07
    ISSUE: HP LaserJet 2100tn offline after power surge (IP changed).
    PRINTER MAC: 00-10-83-15-f2-ad
    NEW FIXED IP: 192.168.0.25

    COMMANDS USED:
    1. Identify: Get-Printer | Select-Object Name, PortName
    2. Create Port: Add-PrinterPort -Name "192.168.0.25" -PrinterHostAddress "192.168.0.25"
    3. Map Port: Set-Printer -Name "HP LaserJet 2100 Series PCL 5" -PortName "192.168.0.25"
    4. Clear Spooler: net stop spooler; del /Q /F /S "%systemroot%\System32\Spool\Printers\*.*"; net start spooler

    ROUTER FIX: Added DHCP Reservation (Advanced > Setup > LAN Setup)
    1. Put paper in feed tray & turn on HP LaserJet 2100tn
    2. Press big & small button at some time to print the test page
    HP JetSend Address of 192.168.0.25
    3. ping 192.168.0.25
    4. wmic printer get name, portname
    C:\> wmic printer get name, portname
    Node - A
    ERROR:
    Description = Generic failure
    Huh? Let's try powershell instead.
    PS:> Get-Printer | Select-Object Name, PortName

    Oh wait. The spooler is down. Let's fix that unrelated problem first.
    Taskbar > menu > hardware > printer > spooler.lnk
    C:\Windows\System32\schtasks.exe /run /TN "task spooler"
    %comspec% /c start "" c:\data\sys\batch\spooler.bat
    type c:\data\sys\batch\spooler.bat
    @echo off
    REM 20231223 spooler.bat v0.1 starts & stops the Windows print spooler
    REM using admin-only commands suggested by Andy Burns & VanguardLH
    REM in Usenet thread Message-ID: <um4j5t$1vls9$1@news.samoylyk.net>
    REM A taskbar bat shortcut will be more complex as it will likely require
    REM creating a new scheduled task as suggested by Zaidy036 in that thread
    REM
    call sc query | findstr /i spooler
    if %ERRORLEVEL% == 0 goto :Stop?
    :Start?
    set /p user_input="Spooler is not running. Start it?"
    if %user_input%==y net start spooler
    goto :Icon
    :Stop?
    set /p user_input="Spooler is running. Stop it?"
    if %user_input%==y net stop spooler
    :Icon
    echo "Change shortcut icon color (red/green) depending on outcome"
    exit 0

    sc query spooler

    SERVICE_NAME: spooler
    TYPE : 110 WIN32_OWN_PROCESS (interactive)
    STATE : 4 RUNNING
    (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
    WIN32_EXIT_CODE : 0 (0x0)
    SERVICE_EXIT_CODE : 0 (0x0)
    CHECKPOINT : 0x0
    WAIT_HINT : 0x0

    Verify the Windows Port Mapping (Again)
    PS C:\Windows\system32> Get-Printer | Select-Object Name, PortName
    Name PortName
    ---- --------
    Microsoft Print to PDF PORTPROMPT:
    HP LaserJet 2100 Series PCL 5 192.168.1.225

    Hmmm.... That's interesting.
    Printer IP from Configuration Page: 192.168.0.25
    Windows PortName: 192.168.1.225

    This likely happened because the printer grabbed a new IP from the
    router after one of those lovely PG&E power cycles in California.

    Create a new standard TCP/IP port for the current printer IP:
    Add-PrinterPort -Name "192.168.0.25" -PrinterHostAddress "192.168.0.25"

    Re-map the Printer to the New Port
    Set-Printer -Name "HP LaserJet 2100 Series PCL 5" -PortName "192.168.0.25"

    Verify the change by running the check command again:
    PS C:\Windows\system32> Get-Printer -Name "HP LaserJet 2100 Series PCL 5" | Select-Object Name, PortName
    Name PortName
    ---- --------
    HP LaserJet 2100 Series PCL 5 192.168.0.25

    Now when I printed, it printed something from long ago.
    Drat. There's always something to add steps to a clean process.
    net stop spooler
    del /Q /F /S "%systemroot%\System32\Spool\Printers\*.*"
    Get-PrintJob -PrinterName "HP LaserJet 2100 Series PCL 5"

    This output a clean-slate test:
    "Clean slate test" | Out-Printer -Name "HP LaserJet 2100 Series PCL 5"

    Voila!
    Printing again.

    What happened?
    Dunno, but I suspect when both the router and printer lose power
    when power returns, the router and printer both reboot but at
    different rates so there's a race to grab an IP address.

    The printer reboots faster than the router can fully initialize
    its "memory" of which device had which IP.

    The Assignment: The printer asks for an IP.
    The router, having "forgotten" the old assignment
    (or because its DHCP table was cleared/corrupted by the surge),
    hands out the first available address in its pool.

    But the Windows 10 PC is still "configured" to send data to the old
    address. Since nothing is there, the print spooler chokes & crashes.

    It isn't a "glitch" in the sense of broken hardware.
    It's just the two devices failing to coordinate their names
    after a traumatic restart caused by multiple PG&E outages.

    But wasn't the printer IP address set to static?
    arp -a 192.168.0.25
    Interface: 192.168.1.22 --- 0x7
    Internet Address Physical Address Type
    192.168.0.25 00-10-83-15-f2-ad dynamic

    Ah. When I got the new router, I forgot to set it to static.
    My bad. We don't want a LAN Ethernet printer on a dynamic IP address.

    Log into the router
    Set the printer IP Address to static in the router config: 192.168.0.25
    Note the printer shows up with a Host Name of NPI15F2AD
    NPI is Network Printer Interface & 15F2AD is the latter half of the MAC.

    Let's test a fake PG&E power surge:
    arp -d 192.168.0.25
    ping 192.168.0.25
    Pinging 192.168.0.25 with 32 bytes of data:
    Reply from 192.168.0.25: bytes=32 time=6ms TTL=60
    Reply from 192.168.0.25: bytes=32 time=2ms TTL=60
    Reply from 192.168.0.25: bytes=32 time=2ms TTL=60
    Reply from 192.168.0.25: bytes=32 time=2ms TTL=60
    Ping statistics for 192.168.0.25:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
    Approximate round trip times in milli-seconds:
    Minimum = 2ms, Maximum = 6ms, Average = 3ms

    Now go visit every other PC in the home to reset the Windows port.
    1. Create the new port on each and every Windows PC in the home
    Add-PrinterPort -Name "192.168.0.25" -PrinterHostAddress "192.168.0.25"
    2. Map the existing printer to the new port
    Set-Printer -Name "HP LaserJet 2100 Series PCL 5" -PortName "192.168.0.25"
    3. Restart the printer spooler to clear any stuck jobs
    Restart-Service spooler

    Print the extension, and then worry about taxes in October. :)
    --
    On Usenet, people discuss their unique relationships with their computers.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Maria Sophia@mariasophia@comprehension.com to alt.comp.os.windows-10,alt.comp.periphs.printers,comp.os.microsoft.windows on Tue Apr 7 19:16:07 2026
    From Newsgroup: alt.comp.os.windows-10

    Maria Sophia wrote:
    COMMANDS USED:
    1. Identify: Get-Printer | Select-Object Name, PortName
    2. Create Port: Add-PrinterPort -Name "192.168.0.25" -PrinterHostAddress "192.168.0.25"
    3. Map Port: Set-Printer -Name "HP LaserJet 2100 Series PCL 5" -PortName "192.168.0.25"
    4. Clear Spooler: net stop spooler; del /Q /F /S "%systemroot%\System32\Spool\Printers\*.*"; net start spooler

    Remember when it was a big deal to pay twice as much for a printer
    in order to get more than the default 8MB of memory and to add the
    internal JetDirect card bolted to the side in the HP "tn" series?

    One important command is to press the big and small printer buttons simultaneously to print out the HP LaserJet 2100 series Self-Test
    configuration which not only shows the IP address it currently has,
    but also interesting details for such an ancient printer (circa 1998).

    The test page shows
    24 Mbytes of total memory
    19990105 firmware date code
    44382 pages printed

    Given these machines can go hundreds of thousands of pages in their
    lifetime, it seems that at 44,000 pages, it's barely broken in.

    I refill the HP 96A (C4096A) toner cartridge myself, where I got a solder
    kit a decade or more ago to burn a penny-sized hole in the toner cartridge.

    I've had, oh, I don't know, maybe a dozen refills in the past 25 years.
    I never cleaned out the waste toner though, so I probably should do that.

    In my humble opinion, the way to go with a home printer is
    1. Get a black-and-white laser printer that is built like a tank
    2. Archive the drivers (because HP & Microsoft no longer make that easy)
    3. Make sure the toner is user-replaceable with Amazon-bought powder

    About the only thing that could have been improved in the past 25 years
    is I could have added a Wi-Fi connection method, but otherwise, nothing
    new has happened in printers since my HP 2100 TN was born back in 1999.
    --- Synchronet 3.21f-Linux NewsLink 1.2