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: