MCF Over Tiering

If you are not familiar with MCF in MOM 2005 you can read more about it here . I do not go into detail about MCF here as that is an area best covered by Jakub . What I do want to show you is how to setup MCF over tiering using the Operations Manager Command Shell. I encourage you to look at how to setup tiering before continuing on with this post.

 

MCF over tiering is a bit different than normal tiering in that you must define a run-as account used  by the Connector to connect to the tiered Management Group. Let's start by creating a run-as account used to connect to the Management Group you would like to tier. There is no Cmdlet for creating a run-as account so we must use PowerShell script to make Operations Manager SDK calls.

 

$runAsAccount = New-Object Microsoft.EnterpriseManagement.Monitoring.Security.MonitoringWindowsCredentialSecureData;

# Use Get-Credential to get a password in the form of a SecureString type.
$tierCreds = Get-Credential;

# Assumes the user name is in format "domain\user".
$domain,$userName, $junk = $tierCreds.UserName.Split("\");
$runAsAccount.Name = "My Tiered MCF Run-As Account"; # The name for this run-as account.
$runAsAccount.UserName = $userName;
$runAsAccount.Domain = $domain;
$runAsAccount.SecureData = $tierCreds.Password;

$mg = (Get-Item .).ManagementGroup; # Get a reference to the SDK Management Group object.
$mg.InsertMonitoringSecureData($runAsAccount); # Insert the run-as account.

That's that was a bit verbose. Just to make sure everything worked as expected run the following command and verify your new run-as account exists.

Get-RunAsAccount | fl Name

Next we need to create a tier.

# Get the credentials required to connect to the tiered Management Group.
$creds = Get-Credential ;

# Create the tier.
$tier = New-Tier -Name: "MyMcfTier" -ManagementServerName: "server2" -Credential: $creds -RunAsAccount: $runAsAccount;

Make sure your tier exists.

Get-Tier | fl Name

Next we need to create the Connector. There is no Cmdlet for creating a Connector so we must use PowerShell script to make Operations Manager SDK calls.

$connectorInfo = New-Object Microsoft.EnterpriseManagement.ConnectorFramework.ConnectorInfo;
$connectorInfo.Name = "McfOverTieringConnector";
$connectorInfo.Description = "McfOverTieringConnector Description"
$connectorInfo.DiscoveryDataIsManaged = $false;
$connector = $mg.GetConnectorFrameworkAdministration().Setup($connectorInfo);

Make sure your connector exists.

Get-Connector | fl Name

Last but not least we need to add the connector to the tier.

Add-ConnectorToTier -Tier: $tier -Connector: $connector;

Clearly the Command Shell could benefit from a New-RunAsAccount Cmdlet and a New-Connector Cmdlet to simplify this process. In the mean time I recommend you create functions that encapsulate any process that can't be completed using Cmdlets if you must complete the process multiple times.