tags:

views:

37

answers:

1

Is there a way programatically to find out if the SCOM agent is in Maintenance Mode.

A: 

This could be done by calling cmdlets.

Add-PSSnapin Microsoft.EnterpriseManagement.OperationsManager.Client Get-Agent

Add Reference to System.Management.Automation.dll

public class ExecuteCmdlet { public static InitialSessionState state; public static RunspacePool pool;

    static ExecuteCmdlet()
    {
        Console.WriteLine("Creating Initial State");
        state = InitialSessionState.CreateDefault();
        try
        {
            PSSnapInException ex = null;
            state.ImportPSSnapIn("Microsoft.EnterpriseManagement.OperationsManager.Client", out ex);
        }
        catch { }

        pool = RunspaceFactory.CreateRunspacePool(state);
        pool.SetMinRunspaces(3);
        pool.SetMaxRunspaces(10);
        pool.Open();
    }

     public static Collection<PSObject> Execute(string cmd)
    {
        PowerShell gpc = PowerShell.Create();
        // Specify the runspace to use and add commands.
        gpc.RunspacePool = pool;
        gpc.AddCommand(cmd);
        return gpc.Invoke();
    }

}

imasud