Software Deployment – “Was that where we was supposed to went?”


This is a phrase that you never want to hear when discussing a completed remote software deployment project.

Photo by Robert Ashworth

Actually, due to its horrific grammar, this is a phrase that you never want to hear under ANY circumstance. Oh, and Yes, this is an actual quote.

No, the quote isn’t from Deadwood or any other show which depicts uneducated ignoramuses getting by in a cruel world.

Yes, that quote was spoken by a man in his mid thirties who happened to be 2 months away from getting his grubby hands on his Master Degree (from a reputable university).

Why yes, it was missing a freeway exit outside of King Of Prussia, Pennsylvania that prompted my then co-worker to utter the words “Was that where we was supposed to went?” How’d you know?

About 5 months ago I wrote about how happy I was with Dameware Mini Remote Control. While I am still very happy with the product I did break a deployment rule that I know well. Basically I screwed up.

What did I screw up? I will sum it up with another quote (this one is actually famous): “Plan your dive and dive your plan.” I learned this when I was getting certified for SCUBA. It basically means that we need to plan what we intend to do and then do what we actually planned.

I didn’t actually do the due diligence that I should have when helping a customer with rolling out Dameware and as a result I made the management of the application a little more labor intensive. You see, in Dameware Mini Remote Control there are two methods for storing Remote Control configurations on target systems. The default and, apparently, most common method is via the file DWRCS.INI located in the %WINDIR%\System32 directory. The other method which I should have pursued was to store all the configuration data in the Windows registry.

This decision was really bad because I already have a method for collecting the values of certain registry keys from target systems and storing the data in an Inventory database. I could have, with a simple SQL query, been able to view ALL the Dameware remote control configurations for ALL of the customer’s computers. 

The fix is not as bad as you may think, but it does require that I rebuild the Dameware Mini Remote Control agent (for future deployments) and make file modifications to all of the computers that currently have the previously deployed agent.

I can do this quietly so as to not disturb the end users but I despise doing anything to production computers that isn’t necessary. Deploying the agent with the correct* configuration in the first place would have been, ahem, much better. Needless to say, I am ready for the Windows Admin Drinking Game.

OK, so I did “dive my plan”, but diving a crappy plan still sucks. I should have taken more time with my decision. I should have anticipated that modifications to the configuration were inevitable. While we can’t necessarily anticipate WHICH configurations will be changed in any project we should know that SOME configurations will most assuredly be modified. Planning an efficient modification process is integral to any successful deployment.

So, when I fully realized my error I found myself muttering “Was that where we was supposed to went?” 

* – Correct configuration depends on time, money, quality and blood alcohol content.

Virtualizing the Desktop



Can I fit into this box
I’ve always been a fan of virtualization. I’ve been running computers in a virtual testing lab for several years now. But, as good as it was, it was never quite fast enough for me to run as my primary development workstation. That is, until now.
For the last month I’ve been running VMWare Fusion 3 on one of the new 27″ iMacs (with the i7 processor and 8 GB RAM.) Windows 7 running in a virtual machine on this computer is quite a bit faster than my previous workstation, which was starting to get long in the tooth. I’m certain that for the same amount of money I could have gotten a computer that would blow them both away. But, what I have now is fast enough and includes some benefits that a dedicated box doesn’t.
  1. Being able to rapidly shift between VMs. I have several VMs, each dedicated to a different project or purpose. These were all shoehorned into a single computer before, now all I need to do is put one to sleep and start up another. I can also, in a pinch, run two side by side. I try not to do this very often, because even with 8 GB of RAM, it sometimes pushes me to swapping.
  2. Sharing files between VMs is easy using MacFUSE and shared folders. This removes much of the need to run two VMs concurrently. 
  3. Sharing files and clipboard between the VMs and the host. I do my e-mail, browsing, and most of the administrative work on my Mac. Because of this, it was always a bit of a pain when I needed to share something between the Mac and my development workstation. Now, it’s a breeze with shared folders, drag and drop, and the shared clipboard. 
  4. Travelling is now much easier. I don’t travel much, but when I do it’s always been quite a bit of work to take my development workstation with me. It would usually entail creating a VM (only for emergencies, I try not to do much development on my five year-old laptop.) Now, though, it’s a breeze. I just need to copy the VMs to an external disk and away I go. Also, I can just start the VMs on a fast machine on the other end.
  5. Snapshots. Being able to take a snapshot, and to rollback is a great help. If I’m installing some software to experiment with, I can just take a snapshot before I install, and rollback after I’m done with it. No need to worry about anything left behind (particularly spyware, which sometimes gets bundled.) I have my VMs set to create an auto-protect snapshot every day. This came in handy after I wanted to retrieve a file that I had deleted accidentally (this was on a “scratch” VM that doesn’t have proper backup or source control, and it saved me the trouble of recreating the file.)
I think that this pretty well sums it up. Virtualization on the desktop has finally come of age for me. I’m sure it’s still not fast enough for most real graphics intensive applications, such as video editing or gaming, but it has finally crossed the bar for my software development.  It’s a day that I’ve been waiting for (with every new release of VMWare Fusion or Parallels I spent a couple days trying to fit in my development only to be disappointed) and I’m glad it’s here now.

Discover the latest Windows admin tools at TechEd



Windows administrator tools are unveiled at Microsoft TechEd 2010Every year you have an opportunity to see the latest & greatest Windows administrator tools that can help your career.

This begs the question; what’s your career worth to you?

Reading blogs and articles may keep you in the loop with what’s happening in our industry, but it those alone are not enough. You need exposure, hands on, and networking.

Microsoft TechEd is a good forum to learn what Microsoft and their partners are up to

You’ll join Microsoft’s Platinum, Gold, and Certfied Partners as everyone converges for the four day event to pimp their goods, share information, and keep up with where technology is moving. 

If you’re in a normal IT job then there is a good chance that you’re locked into the same products & versions at your work. You may be slow to adapt and that can spell trouble for your IT knowledge. 

Remember, it’s what you know that keeps you in the green. 

If your company won’t pony up the cash to pay for you to attend, try telling them that you’ll pay the registration,  transportation and lodging costs, but ask that they still pay you for your time when you’re out there. Let them know that your attendance will benefit them.

Your company will probably be impressed that you’re willing to pay the registration and expenses. I’ve been a contractor to many organizations and while I have always paid my own way to conferences, I’ve never been denied payment for my time. If I’m batting a thousand in this game then I’m sure that others are too.

Take advantage of early bird registration and plan to attend:

  • December 31, 2009 ($1,895)
  • February 28, 2010 ($1,995)
  • March 1, 2010 ($2,195)

You and your career are both worth it.

Server Management – Migration Headache Edition

Angry Monkey

My least favorite server management task is migration. I really hate migrating servers. No, wait… hate is far too mild a term. There isn’t really a term that gets to the depth of my feelings, probably not even in Klingon. It follows, then, that I more than love it when a migration is done. There are a number of reasons why I hate them, but there are two in particular. 
First, all of the testing, re-testing, and re-re-testing things that already work where they are. It’s not only tedious but frightening. There always seems to be a couple things that can’t be properly tested until after the migration is complete, and sometimes you don’t even realize it until then.

Second, migrations lay bare all of the cruft and crap that you’ve built up over the years and months. It’s like moving a couch that hasn’t been cleaned under for years, it’s shocking to realize what a slob you are. It’s good that it’s getting cleaned up, since it wouldn’t otherwise be, but it’s just a bit depressing.
Recently I was involved in the migration of a web site from two hosts to three different hosts with very different capabilities. I wrote most of the software behind the site and I never anticipated the way in which the site would be carved up. For example, the SSL certificate was created for the www host, but the new www host couldn’t run the secure pages so there needed to be a new host created and the secure pages separated from the rest of the system. Naturally, this broke a bunch of external links that needed to be mapped over to their new counterparts. It was a time consuming job that wouldn’t have been necessary if I’d had the foresight to build the secure pages separate (not a mistake I’ll make again.)

It would be easy to respond by living each day as though each server is going to be migrated someday, and try to anticipate every conceivable problem that may arise (easy to say, much harder to do.) But I don’t think that’s the best solution. There are certainly some more likely scenarios that would be good to anticipate, particularly if they’re not too costly to mitigate, but it would be a mistake to spend time mitigating every possibility. The old programmer’s motto “Don’t do today what you may not need to do tomorrow” holds sway. As painful as migrations are, it’s the right choice to leave some of the pain there and not try to spread it out, since you’ll probably spread out more pain than you remove. Don’t peel that bandage too slowly!

Windows 7 Jumplists – The Next Level


Our friends at have provided a step-by-step to create jumplists in Windows 7 by using a free Jumplist tool (Jumplist-Launcher) from Hedgehog.

This is a great feature of Windows 7 that allows users to reduce the number of steps to certain actions. Hedgehog’s tool allows you to not only customize your Jumplists, but allow provide a more dynamic approach to doing so. 

The example given by HelpDeskGeek uses Firefox and Chrome browsers, and allowing you to not only launch these apps but to select from a list of frequent pages to jump to (hence the dynamic approach).

I suggest giving it a read. Don’t forget to install Jumplist-Launcher.

Takin’ matters into my own hands: Sunbelt’s CounterSpy


I’ve been playing with Sunbelt Software’s CounterSpy lately. I think the product does what it claims to do fairly well however the management console is somewhat lacking.

I ended up writing my own CounterSpy inventory scanner to extract CounterSpy configurations from target systems. I can use this scanner to easily determine which systems need to be updated with either a new client or new C0unterSpy definitions.

I admit that I was excited when I came across the SBAMCommandLineScanner.exe utility. I thought, “Sweet, I can just use this little guy to find out the agent version, definition version, apply new updates, etc”. Unfortunately I froze the CounterSpy service on two of my lab systems when I attempted to use this utility to  A) extract the definitions version, and B) apply new definitions.

Anyway, I digress. Here is an easy way to extract the following information from CounterSpy agents.

To find out which CounterSpy Policy Service Server is assigned to a target  go to the Registry path HKLM\SOFTWARE\SBAMSvc. The value of  “PolicyServiceMachineName” will be your CounterSpy server.

To find out the version of the CounterSpy agent go to HKLM\Software\Sunbelt Software\Sunbelt Enterprise Agent and select (no surprise) “Version”. I also use this location to extract the Install path of Sunbelt.

To find out the current definitions version I append the “Definitions” directory to the InstallPath value I extracted from the registry. For most of my systems the value is

C:\Program Files\Sunbelt Software\SBEAgent\Definitions

I parse the DefVer.txt file to extract the Definitions version as well as the date the new defs were applied.

You can also run the utility “SBAMCommandLineScanner.exe” and then extract the output however, as I mentioned earlier, I ran into problems where this very simple command wouldn’t return at all and within a few minutes the CounterSpy service was hanging. Since I ultimately want to have this data extracted automatically via an inventory scan the last thing I want is to run an external process (SBAMCommandlineScanner) that doesn’t return control.

Here is the very simple output of my utility. (I actually have it output into XML which ultimately goes into my database however I modified the output for this example). It gives me a one stop shop for my desired data.

Windows Administrators kill adware and malware with CounterSpy Output

CounterSpy really has proven to be a great product for finding and killing Adware and Malware. I just needed to streamline the available management capabilities a little bit.

Snake Oil

Snake Oil
Photo by * w a a *

InfoWorld has an article titled
IT snake oil: Six tech cure-alls that went bunk. I enjoy reading these types of articles, in the same way that I like to read FAIL Blog, but I found this one to be a bit sobering. Near the top of the article was this:

Today, cloud computing, virtualization, and tablet PCs are vying for the hype crown. At this point it’s impossible to tell which claims will bear fruit, and which will fall to the earth and rot.

Two of those items, cloud computing and virtualization, are high on my list of “game changers” for the future. But all of the failed technologies on the list would probably have been equally high on my list in the past. I would like to think that they’re on my list because I’m so prescient, but the reality may be that I’m just caught up in the hype storm but don’t know it (does anyone know when they’re in the hype storm?)

Only the future will tell what will end up changing the IT landscape, and we do need to try to anticipate it if we want to stay relevant in the future, but it’s helpful to look at our past to see how easy it is to be very wrong about it.

Wet Your Whistle – The System Admin Drinking Game

One more drink
Photo by Erix!
It has been said that being a Windows System Administrator can drive you to drink.*  Well, I’ve decided to make that official. Charge your glasses with your favourite beverage and prepare…
  • If you prefer beverages of a more stimulating nature (JoltMonster, Coffee, or Yerba Matte laced with amphetamines) then prepare to bounce off the walls for several hours and sleep for three days.
  • Or, if you prefer beverages of a more fermented, sedating nature (Beer, Scotch, Rum, Rum and Coke, or Rum and Coke-substitute**) then prepare to sleep for three days and feel like you bounced off the walls for several hours.
I present to you:
The Windows System Administrator Drinking Game***
For those of you not familiar with a drinking game, think of it like Bingo except that you’re not trying to complete a row, you’re trying kill all of your brain cells. During your day when any of the following occurs, drink the amount specified. And please, if you must drink around technology, do so responsibly. Such as disabling the texting feature of your phone (advice provided by EGADS****.)
Consider this list just a starting point, please feel free to add more in the comments!
  • You reboot.
    Take a sip
  • You close a UAC dialog without reading it.
    Take a sip
  • You ever need to edit the registry.
    Take a drink
  • You move a window just to see what something looks like behind the translucent title bar.
    Windows 7 only (it could apply to Windows Vista users as well but I don’t think either of them drink.)
    Take a drink
  • You consider disabling the firewall to fix a problem.
    Take a sip
  • You actually disable the firewall to fix a problem.
    Take a drink
  • You expect to see a computer in the computer browser but it isn’t there.
    Take a sip
  • While working on a problem you mumble something about “Linux” or “OS X.”
    Take a drink
  • While working on a problem you mumble something about “BeOS.”
    Finish your drink (to drown your sorrows)
  • You’re asked to find a file that was deleted 6 months ago.
    Take a drink
  • You’re asked to install something into “Office” or “Word” or “Excel.”
    Take a sip
  • A user saves something to a floppy disk.
    Take a drink
  • You save something to a floppy disk.
    Finish your drink
  • You retire a parallel printer.
    Take a drink
  • You replace a dot-matrix printer ribbon.
    Finish your drink (and take an extra sip as a bonus for working in government)
  • You bang your head for hours on a strange problem before accidentally figuring out, days later, that it was DNS.
    Take a drink
  • You wait for more than 30 seconds to move a single file to the recycle bin.
    Take a sip
  • You use the network connection diagnostic tool and it actually fixes something.
    Take a drink
  • While typing furiously in one application a dialog box pops up from another application and is suddenly dismissed by one of your keystrokes before you can read it.
    Finish your drink (to drown your fear about what you may have just done)
* If it hasn’t been said before, it has now.
** Dr. Pepper
*** This game is geared to Windows system administrators, but it could be brow beaten into other contexts.
**** Ex-Girlfriends Against Drunk SMS

Follow me on Twitter @adamruth

Say it isn’t so!



Did you all catch the TWiT (This Week In Tech) episode # 222  last week? I was floored by the discussion of “Web Loyalty Ripoffs”. Leo Laporte, the host, was also shocked to find that (a site that up until now I regularly used) was one of the companies involved in these apparently shady deals.

In a nutshell, many online companies (or companies with an online presence) have been selling credit card information to “web loyalty” companies like Affinion, Vertrue and Web Loyalty. These companies often employ tactics to get a customer of their “partner” companies to simply click on a link or provide their email address which, according to the purchasing agreement, can be used as authorization for recurring charges. Approximately 90% of American customers do not realize that they are being charged the usually nominal fee (often ranging from $2 to $15) per month.

As an affirmed capitalist and freedom loving fellow I am not calling for regulations or government oversite. I am going to do what millions of others are going to do: Stop making purchases with companies that do business with the three “web loyalty” companies mentioned earlier. If you do continue doing business then be careful what you click and once, just once, read the vendor’s Privacy Policy.

Please listen to the TWiT episode 222 to hear Leo and John and Becky eviscerate these companies. Here is a partial list of companies who have been said to sell customers’ credit card info. Gratefully (for me, anyway) Amazon is NOT on this list. You can see a more exhaustive list on on the Consumerist website.
Columbia House
Redcats USA
US Airways

Thanks to the TWiT folks for bringing this to light.