Some time back, I discovered that a Group Policy Preference that we had applied to a VMware View VDI pool was adding an additional 30 seconds of time staring at the blue spinning donut at each VDI desktop logon. The policy in question was a printer policy. Colleagues at other Higher Ed institutions confirmed that they had the same problem with GPP printer preferences. It has been reported that using the “Mandatory Printers” policy is faster, but this policy does not allow you to assign a default printer.
Enter good old VBScript…
The following script will install a defined network printer and set it as default. If the print share does not exist, an error will be returned. 95% of the code in this script was lifted from my own “KillAndExec.vbs” script from last year. There really is only two lines of new code in here. It is good having a code library to draw on, because it would have taken be days to generate this stuff from scratch. VBScript is so obtuse… so why do I keep using it? Hmmmm….
I preparation for my exit, I have been re-routing various routing bulk mail messages using “Procmail” recipes. While I was working on this, I got an email from a colleague who always requests read receipts for every message that he sends. Despite being asked to stop, messages continue to come in with read receipt requests. I thought “wouldn’t it be great if I could get procmail to just reject these messages outright?”
Consulting common references on Procmail was not helpful because they rely procmail having access to a full shell environment. My colleague Jim Lawson gave me the framework for a different solution which instead involves the use of the “:0fwc” construct to pipeline multiple procmail actions. Interesting is the use of the “appendmsg” command, for which I cannot find a reference anywhere. This work, though. Aggressive/Aggressive handling of read receipt requests achieved!
#Use ":0c:" below if you want to receive a copy of the original message instead of just rejecting it.
# Check to see if the message contains any of the following command read-receipt request headers:
# Prevent mail loops... mail loops are bad.
* ! ^X-Loop: firstname.lastname@example.org
| formail -pQUOTE: -k -r
BODY=`formail -I ""`
| formail -A"X-Loop: email@example.com"
-I"Subject: Rejected mail: Read Receipts not accepted by this account."
# scrape off the body
| formail -X ""
| appendmsg "Message rejected because it contains a read receipt request."
# put back the quoted body
| appendmsg $BODY
| sendmail -t
Things have really slowed down here in the Brain Corral. Projects and tasks have been rolling in faster than my ability to document them. I am sure all of my “fans” have been most disappointed by lack of updates. Well fans, sorry to be the bearer of bad news, but this likely will be my last post in the ‘ol corral. June 13th, 2014 will be my last day of employment at UVM, which will put me a two weeks shy of 14 years of employment in Catamount country.
It has been a long road, with much territory covered. When I started, I was the new “NetWare Guy”, responsible for Novell file and print services, and some antivirus management. Since then, I have plowed though:
- Two major directory service changes, and several upgrades (NetWare bindery to eDirectory, to Active Directory on Server 2003, and AD upgrades all the way though Server 2012 R2)
- four major file server upgrades (NetWare 4 standalone to Netware 6 failover clusters, to NetApp FAS270, to NetApp FAS3000 series, to native Windows 2008 R2 file services)
- three print server redeployments (Traditional NetWare to NDP, to monolithic Windows print services on Server 2003, to distributed print servers on Server 2008)
- four antivirus vendor changes, (McAfee, to Norton/Symantec, to ESET NOD32, to MS Forefront/SCEP)
- two terminal server projects (Citrix MetaFrame 1.8 to MS Terminal Services on Server 2008.
- a VDI deployment with several minor upgrades (VMware View 5.0, 5.1, 5.2, and 5.3… over it’s <2 year history, that's an upgrade every six months!)
- A SharePoint deployment with three major upgrades (STS 2 to WSS 3, to a 64-bit scale-out farm upgrade, to SPF 2010, and an incomplete 2013 Standard Edition upgrade)
- three Windows deployment technology changes with many version upgrades (Ghost to RIS, to BDD, which later became MDT/LiteTouch)
- a major deployment of VMware vSphere and vCenter, with many version upgrades (vCenter 2.5, 4.0, 4.1, 5.09, 5.1, 5.5). From it’s humble beginnings, vSphere now hosts over 90% of our non-research computing operating systems!
- four major changes in Windows enterprise patch management methods (SUS, WSUS, WSUS with Secunia CSI, SCCM 2012 with ADR and third party “Application packages” with supercedence rules). We went from full MS-only non-enforced patch management, to adding support for third party applications, to fully automated patch management.
- Two major whole disk encryption projects (PGP Whole Disk, followed by BitLocker with the “Microsoft BitLocker Administration and Management” add-on)
- Several Windows server management re-deployments (BigBrother to MOM 2, MOM 2005 (redeploy), SCOM 2007 (redeploy), SCOM 2007 R2 (upgrade), SCOM 2012 (redeploy), SCOM 2012 R2 (upgrade))
- …and other projects to numerous to detail (security initiatives, network protocol transitions, hosted server upgrade assistance, application deployment and upgrade assistance).
It has been a rocky road, full bumps and potholes. Fortunately, with the assistance of my truly excellent teammates, we have made this journey with very few significant breakdowns. Central IT has perhaps quintupled in size and importance over the past 14 years. I am proud to have been part of this explosive period in IT at UVM, and honored to have worked with such highly intelligent and motivated people.
I wish you all the very best of luck with all future endeavors, and hope that you will keep in touch, even though I will be on the west coast of America (not just the west coast of New England) at Stanford University.
-J. Greg Mackinnon | ETS Systems Architecture and Administration