if([string]::IsNullOrEmpty($MGName))
{
Debug 1001 "Not a agent health service, retrieve management group name from server regkey"
$MGName = Get-ChildItem "HKLM:\SOFTWARE\Microsoft\Microsoft Operations Manager\3.0\Server Management Groups" | ForEach-Object {Get-ItemProperty $_.pspath | select -expandproperty PSChildName}
}
Debug 1002 "Management group name: $MGName"
#Verify if the path ends with a directory seperator character
If(-not($CollectorPath.EndsWith([System.IO.Path]::DirectorySeparatorChar.ToString())))
{
$CollectorPath += [System.IO.Path]::DirectorySeparatorChar.ToString()
}
# Met een regex controleren of het collectorpath tekst tussen %% bevat
# Zo ja, voor elke match met (get-item env:$x).Value de daadwerkelijke waarde opvragen
# Vervolgens een replace uitvoeren om de enviroment variable aan te passen naar de effectieve waarde
# event 1003 genereren en script exit 1 uitvoeren
$Regex = [regex] '(?is)(?<=%).*?(?=%)'
$RegexMatches = $Regex.Matches($CollectorPath);
if($RegexMatches.Success)
{
foreach($RegexMatch in $RegexMatches)
{
$EnvVar = (get-item env:$RegexMatch).Value
if([string]::IsNullOrEmpty($EnvVar))
{
$oAPI.LogScriptEvent("TheBackbone.SMP04.MG.Discovery.ps1", 1003, 2, "The environment variable %$RegexMatch% in the collector path could not be resolved. Collector instance is not created or changed")
exit 1
}
else
{
$CollectorPath = $CollectorPath.Replace("%$RegexMatch%", $EnvVar)
}
}
}