We have several printers configured on a Windows Server 2016 Print Server. Those printers are pushed via GPO Preferences to users. When users that have laptops start out docked/wired, they can print to their printers fine, but if they undock and switch to Wifi in the office, all these printers go Offline on the Windows 10 client. Restarting the Print Spooler service on the client resolves the issue. How can I resolve this so users do not need to restart the Print Spooler service every time they switch from Wired to Wireless?
Ideally Windows will detect network changes and seamless transition.
I'm guessing that the users are seeing the server as offline when they go to print.
The reason this has occurred is due to the security token for the user being no longer valid and the print server is blocking the connection. Restart of the client print system resets the tokens and the print system on the server lets them back in.
I don't know why the transition is not seamless but what you are reporring is due to the security token between the server and client.
Just automate the restart task with task scheduler using a GPO.
<?xml version="1.0" encoding="UTF-16"?> <Task version="1.4" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task"> <RegistrationInfo> <Date>2021-11-23T12:39:50.3789779</Date> <Author></Author> <Description>Restart the print spool service on network change.</Description> <URI>\Prnt Spool Refresh</URI> </RegistrationInfo> <Triggers> <EventTrigger> <Enabled>true</Enabled> <Subscription><QueryList><Query Id="0" Path="Microsoft-Windows-NetworkProfile/Operational"><Select Path="Microsoft-Windows-NetworkProfile/Operational">*[System[Provider[@Name='Microsoft-Windows-NetworkProfile'] and EventID=10000]]</Select></Query></QueryList></Subscription> </EventTrigger> </Triggers> <Principals> <Principal id="Author"> <UserId>Someone</UserId> <LogonType>S4U</LogonType> <RunLevel>HighestAvailable</RunLevel> </Principal> </Principals> <Settings> <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy> <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries> <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries> <AllowHardTerminate>true</AllowHardTerminate> <StartWhenAvailable>false</StartWhenAvailable> <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable> <IdleSettings> <StopOnIdleEnd>true</StopOnIdleEnd> <RestartOnIdle>false</RestartOnIdle> </IdleSettings> <AllowStartOnDemand>true</AllowStartOnDemand> <Enabled>true</Enabled> <Hidden>false</Hidden> <RunOnlyIfIdle>false</RunOnlyIfIdle> <DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession> <UseUnifiedSchedulingEngine>true</UseUnifiedSchedulingEngine> <WakeToRun>false</WakeToRun> <ExecutionTimeLimit>PT1H</ExecutionTimeLimit> <Priority>7</Priority> </Settings> <Actions Context="Author"> <Exec> <Command>\\yourlocation\Rspool.bat</Command> </Exec> </Actions> </Task>
@echo off NET STOP SPOOLER NET START SPOOLER
I was able to successfully implement a GPO that creates a Task on Win10 workstations that will restart the Print Spooler when there is an Event 4004 "Network state Change Event" in the Microsoft/Windows/NetworkProfile log. That appears to work, but not sure why I would need this and was hoping the undock transition would be seamless. My wired and wireless DHCP scopes are different and the laptops will get a new IP. If I boot up a laptop on wireless, everything works fine, and transition to wired works fine. It's the transition from wired to wireless that breaks and needs a Print Spooler restart.