This post has become quite popular – so I've updated it with a bit more detail, plus some people's experiences from the comments. If you find it useful then please leave a comment – or, even better, if I've saved you time and money then donate a bit to cover my hosting costs.
You may find, as I have done recently, that a network printer installed on a Windows Vista starts suddenly showing as Offline even when other machines on the network can access it fine. I originally thought it would be an IP address issue, but it turned out not to be anything to do with that. In fact, the solution was far simpler – but also slightly strange…
It turns out that Windows Vista automatically enables SNMP support for networked printers, and if it can't get a response to a SNMP message then it assumes the printer is offline. SNMP stands for Simple Network Management Protocol and is a way of getting information from network devices (such as routers, servers and printers), mainly for the purposes of finding out if there are any problems with the devices. A number of networked printers implement SNMP, and will respond to SNMP queries with information, but some don't. My printer (a fairly old Lexmark T640) is one of the ones that doesn't implement it – so of course Vista will never get a response to a SNMP message. The result of which is that the printer will start showing as offline at a seemingly random time because Vista has just sent a SNMP message to it, and it hasn't responded.
Thankfully there is a simple way to fix this – and it just involves telling Vista not to try and communicate with the printer via SNMP. Simply right-click on the printer in the Printers window, choose the Ports tab, and select Configure Port. At the bottom you will see a checkbox saying something like SNMP Status Enable. Untick that, and the printer should start showing as online again.
That should be it…but here are a few other tips/observations from people who've commented on this post:
-
This has been found to work on a variety of versions of Windows including
-
Windows Vista
-
Windows 7
-
Windows 8
-
Windows Server 2003
-
Windows Server 2008
-
Windows Server 2012
-
-
You could need to be logged in as an administrator before you can change the SNMP status
-
If you're running Windows 8 then this could be the problem instead (thanksGompo)
-
If you find that this solves it for a bit but it keeps going offline again then editing the registry at HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlPrintand adding a new DWORD called SNMPLegacy with the value 1 and restarting may solve it (thanks Coxy)
-
The issue can be caused even when the printer does support SNMP, but somehow the SNMP communications aren't getting through – for example, due to a firewall or port configuration issue somewhere on the network (thanks Jonathan)
-
Setting the SNMP 'group name' to "public" can also help (thanks PP)