Mailbox Archive Tool for Microsoft Exchange Servers

This is another GUI tool based on PowerShell I’ve written in the past. A company I worked for needed a tool for Service Desk people to archive users’ mailboxes into PST file. I’m not an Exchange engineer, they told me they used to use ExMerge in Exchange 2003 environment but since upgraded to Exchange 2007,  they were no longer able to do so under a GUI interface because ExMerge was replaced by a PowerShell cmdlet “Export-MailBox”. So I wrote this mailbox archive tool. it basically archives a mailbox into a PST file (with the option to whether delete mailbox after

Balancing Number of SCOM Agent Per Management Server using PowerShell

I came across a situation yesterday in one of the clients SCOM environment: They currently have a single SCOM management group setup as the following: all SCOM management servers (including the root management server) are located on the same segment of the network. internal agents (from the same forest) are reporting to management server #1 and #2. External agents (from different forests) are reporting to management server #3 and #4 through firewall. SCOM is not integrated to AD – Therefore primary and failover management servers are not automatically assigned to agents. I needed to achieve: agents are evenly distributed to

Passed MCTS SCCM exam yesterday

In the last couple of weeks, I’ve been refreshing my memory on SCCM since I haven’t worked on it for almost 4 month… Yesterday, I passed Microsoft 70-401 (SCCM) exam with the score of 976/1000. Pretty disappointed that didn’t get 1000 though… Oh well, there are some SCCM work coming up at work, can’t wait to get started!

Get Powershell Execution Policy on remote machines

Today I’ve been asked how to inventory PowerShell execution policies on all servers in a domain. I originally thought I can ultilise RemoteIn as PowerShell V2 should be deployed on all servers. then I realised WSMan wasn’t configured on the srevers so I couldn’t use “New-PSSession” cmdlet… Therefore, I wrote a function called Get-RemoteExecutionPolicy.  It retrieves the setting from the remote registry. The usage is: Get-RemoteExecutionPolicy <machine name>.

Passed MCTS SCOM Exam (70-400) today!

Today I passed Microsoft exam “70-400 Microsoft System Center Operations Manager 2007, Configuring” with a score of 975/1000. The transcript indicated I answered one question wrong in relation to “Deploying and COnfiguring Management Packs”. I’m wondering which one I answered wrong… Overall, pretty easy exam. What’s next? Got spend some time to prepare SCCM exam!

ENHANCED SCOM Alerts Notification Emails!

17/08/2012: The version 2 of this script has just been released: 29/01/2012: The command notification channel setup section of this blog has been updated. More details of the change can be found HERE: Please Note: This post and associated script has been updated on 30/09/2010. Even though SCOM is a great product, I personally believe that alert notification emails is something that really needs improvements. It is very hard (and almost impossible – according to my standard) to configure a meaningful notification email using the variables SCOM provides. Most of times, the SCOM administrator would include a URL that takes

PowerShell Script: Mass-Mailer

Today a colleague asked me to write a script to send out a email to a large group of people but have the phrase “Dear <person’s name”>” in the beginning of email body. I quickly wrote this script. Here are the steps you need to take before executing it: 1. Zip and place the Mass-Mailer folder somewhere on your computer. There are 3 files in the folder: 2. in Mass-Mailer.ps1 file, modify the highlighted section ( and remove the “<” and “>”brackets): 3. Open recipientsList.txt and enter recipients name and emails, one recipient per line with format Name;Email (i.e. John

How To Write to SCOM Operations Manager Event Log Using PowerShell and MOM.ScriptAPI

The following commands can be executed using the normal PowerShell console. SCOM PowerShell snapin is not required. $momapi = New-Object -comObject "MOM.ScriptAPI" $momapi.LogScriptEvent("test",9999,2,"this is a test")   This is the log:   Detailed documentation of MOM.ScriptAPI can be found on MSDN.

Broken SCOM Web Console URLs?

I come across a situation where when i click on the web console URL from a SCOM notification email such as this one: http://<SCOM Web Server>/default.aspx?DisplayMode=Pivot&AlertID=%7b07aac5b0-4cf8-411f-b5a0-cb0075dc0f31%7d I get a HTTP 500 error: I had to change the URL from http://<SCOM Web Server>/default.aspx?DisplayMode=Pivot&AlertID=%7b07aac5b0-4cf8-411f-b5a0-cb0075dc0f31%7d to http://<SCOM Web Server>/default.aspx?DisplayMode=Pivot&AlertID={07aac5b0-4cf8-411f-b5a0-cb0075dc0f31} to make it work. It’s quiet painful as %7b and %7d comes as a part of SCOM WebConsole Link variable… For this particular environment, I found out it was caused by Forefront TMG server was blocking encoded URLs for this website. After unticking Verify normalization and Block high bit characters in the TMG rule, the

SCOM Console Crashes

When I connect SCOM console to one of my clients SCOM 2007 R2 environment, under Authoring Pane, if I change the display scope of Monitors or Rules to “View all target” and select everything: the console crashes. – Maybe there are too many objects for it to handle. After the crash, when I re-launch the console, I cannot go back into Authoring Pane. It crashes everytime I click on “Authoring”. To fix it so I can go back to Authoring Pane, I had to delete this registry key: HKEY_CURRENT_USER\Software\Microsoft\Microsoft Operations Manager\3.0\Console\Navigation\MonitoringConfigNavSettings\ScopedClasses I started the console again after the deletion and

%d bloggers like this: