function LogError($error_msg )
{
$api.LogScriptEvent($MODULE, $SCRIPT_EVENT_ID, $ERROR_EVENT_TYPE, $error_msg)
}
function LogInformation($msg)
{
$api.LogScriptEvent($MODULE, $SCRIPT_EVENT_ID, $INFORMATION_EVENT_TYPE, $msg)
}
function Main ($SpTimeout) {
# Works, but deprecated method
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.EnterpriseManagement.OperationsManager.Common") | Out-Null
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.EnterpriseManagement.OperationsManager") | Out-Null
# Doesn't work, but it is how it should be done
#Add-Type -AssemblyName Microsoft.EnterpriseManagement.OperationsManager.Common
#Add-Type -AssemblyName Microsoft.EnterpriseManagement.OperationsManager
#AE: Actually it should be done just using Import-Module OperationsManager. And it works fine.
$ManagementGroup = New-Object Microsoft.EnterpriseManagement.ManagementGroup("localhost")
if (!$ManagementGroup.IsConnected) {
$ManagementGroup.Reconnect();
}