So a recent major project at work has been converting us off of Lotus Notes to Exchange 2007. All I can say is thank god, it was painful going from Exchange 5.5 to Notes. I’m sure that’ll bring the out the Notes faithful to defend their religion, but anyone who’s sat on the client end of Notes more than likely shares my sentiments. In any event, it’s given me the opportunity to take on several new skillsets that I wouldn’t have been exposed to with my current employer, as I transferred into the team working on the conversion project from a much less interesting position.
Specifically, I’ve been working with Powershell a lot, as I’m sure any Exchange 2007 admins are aware it’s the heavy-lifting interface for Exchange administration. One of the things I have always disliked about administering most Microsoft products has been their lack of decent command line interfaces. Of course it appears most admins are perfectly OK with that, but I’ve always been a fan of automating as much of my job as possible. I’d rather spend 2 hours writing a script or batch file than spend 2 hours moving the mouse around. Especially if there’s any chance I’ll have to repeat that activity anytime in the future. I’m of the general school of thought that any senior level system administrator (regardless of the platform) should be able to handle basic shell scripts to automate repetitive aspects of their job.
Since I’d previously worked with VBScript, Visual Basic for Applications, and Perl it wasn’t substantially hard to pick up powershell, and having watched a handful of coworkers who had no previous background with Powershell pick it up has been encouraging.
But to say that there hasn’t been a learning curve would be misleading. In that light, over the course of the next few weeks I plan on posting some of the things I have discovered in the course of picking up powershell and automating the general tasks that we’ve had for migrating from Notes to Exchange. Hopefully these examples can save someone else a few frustrating hours of research and debugging.