Friday, March 28, 2014

My printer drivers are corrupt

I hate dealing with printers. I know a lot of system administrators feel the same way. We recently started to see an increase in printer related calls. Some of them turned out to be a real pain to fix. Almost as if the driver was corrupted. It had to be a system issue because our users are not administrators. We either push the printer out or they add it from the print server. Not much for them to mess up.

We had one printer related issue that took the team too long to fix, so I found myself in the middle of it. Not just fixing the problem but also calming down the customer. Although we mostly had her fixed, someone else on the same printer had just broken. The issue they had was the advanced options to their Xerox printer were not available. They could not change paper trays or print dual-sided. The types of issues that IT often does not see as a big deal but it is very important to the customer that it works.

I walked over to a third office where everything was working. I checked the driver and it was the same as the others. I then printed a test page from all three of them. Not only was the driver the same, it was even the same version number. But something very important jumped out to me. The list of dependent files only printed out from the computer that was working correctly. So it looked like they were missing all the additional printer driver files. 

I delete the printer and reconnected again for good measure and the test print was the same. I pulled up the printer management tool and tried to delete the driver, but it said it was in use. Access denied. Disconnected the printer and rebooted for good measure. It was still a problem. I finally got it removed by restarting the spooler and deleting the driver as fast as I could. It took me 5 attempts, but I got it. Connected to the printer and everything was working correctly. Did the same on the first broken user and it fixed them too.

Now I have a sure fire fix to the problem. It looks like IT witchcraft though. Stop spooler, start spooler, and delete driver. Repeat as needed. Sometimes it works the first time but most of the time it takes a few attempts. The user is usually sitting there with me.

Over the next few days, I fix a few more this same way. I want to dig into it deeper but printer drivers only break when someone need to print. The one day I had 3 break all within 10 minutes of each other near the end of the day. It was getting clear that we need to understand the issue better.

That very next day, one of the earlier users broke again. This time I made a copy of the spooler folder before the fix and after the fix. It turned out all the missing files were still there. Checksums were the same too. There goes the idea that the drivers are corrupt. For some reason Windows has the driver files but does not know it.

Edit: I was able to write a script to help with this issue:

Monday, March 03, 2014

Over the last 10 years

Interim Director of Information Systems and Learning Resources 02/2013 to present
Developer/Systems Analyst II 07/2006 to 02/2013
Workstation specialist 2003 to 07/2006

Proposed and implemented a 4-5 year equipment refresh policy. Architected and implemented a virtual desktop solution to reduce expenses. Implemented Server 2012R2 deduplication and storage spaces to extend the life of existing storage equipment and to acquire new storage at reasonable prices. Repurposed existing hardware for our backup plan to include full workstation backups for the entire college. Backup and disaster recovery systems were revised for better reliability and security.

Serve on the Leadership Council (2013-Current), Clinic Implementation Committee (2005-Current), Joint Privacy and Information Security Workgroup (2013-Current), End-User Device Security Team (2010-Current). Recipient of the Chancellor Council Silver Award of Excellence in 2012 for my role in the electronic dental record implementation.

Before serving as the Director, I filled many roles within Information Systems. As a Systems Administrator I architected, deployed, and administered Active Directory, extensive Group Policy Objects, DNS, DHCP, SQL Server clusters and availability groups, Hyper-V virtualization clusters, terminal servers, clinic system applications, fileservers and related share structures. Acquired and deployed into production entry level enterprise SAN for SQL and Hyper-V.

Owned the mission critical applications and systems. Served as the only database administrator managing vendor and internal databases. Handled system upgrades from Server 2003, to 2008R2, to 2012/2012R2 across our infrastructure. Executed the SQL cluster upgrades and hardware refreshes to our clinic systems from SQL Server 2000, to 2005, to 2008, to 2012. Implemented SQL Reporting Services (SSRS) and laid the foundation for a future data warehouse implementation.

Performed the initial implementation of Active Directory as a disaster recovery solution in 2004. Managed the migration of our users, computers, group policies, servers, and custom applications to another university domain in 2011. Assisted with the analysis, implementation, and ongoing support for a replacement clinic system in 2005 and for the digital record modules of that system in 2012. Implemented secure prescription printing solution. Performed the server side management and clinical integration of a MiPacs digital radiography system.

As a Developer, I work mostly with PowerShell, SQL, .Net, and aspx. My implementation of SSRS for reporting was to complement our clinic system. Worked closely with the business manager to define and implement the financial reports they required. Significant effort was also put into implementing grading, insurance, and research reports for the various areas of the college.

Developed other applications that interacted with the clinic system to increase user productivity. Many of my add-ons were used by the vendor at other sites or the features were integrated directly into the product. Some of those enhancements include a calendar style schedule for the clinicians, inventory management for the central dispensary, chart management for the records clerks, and a streamlined patient check in dashboard used by reception.

Wrote the design documents and was the project manager for a biomonitoring application we outsourced to Dell. Developed a DRM video player to protect human cadaver videos. Wrote an electronic insurance integration component for an internal clinic application. Built CD/DVD splash screens. Wrote USB activity auditing processes and various other odds and ends as solutions to issues the college was facing.

As a Workstation Specialist, I migrated us from XP to Windows 7 starting in fall of 2009. I assisted in setting up the imaging server and helped craft our master images. I am a strong advocate for least privileges so I spearheaded the effort to remove administrator rights from our users. I was able to leverage my developer experience to resolve issues applications had with either Windows 7 or restricted access. I now direct my own team on our Windows 8 and Virtual Desktop deployments.