System Center 2019

Во всех доступных подписках Microsoft (VLSC, MSDN, Evaluation) стали доступны продукты линейки System Center 2019! Пробные версии продуктов можно скачать по ссылке Evaluate System Center 2019.

Реклама

OM: OMS-Agent-for-Linux

https://github.com/Microsoft/OMS-Agent-for-Linux

OM: Скрипт для сброса состояния монитора

Скрипт для сброса монитора в здоровое состояние (аналогично Reset Health в Health Explorer) по критерию:

$Server = "ServerName"
$Credentials = Get-Credential
New-SCOMManagementGroupConnection -ComputerName $Server -Credential $Credentials
$ResetAlerts = Get-SCOMAlert -Criteria "IsMonitorAlert = 1 AND Name = 'Failed to Connect to Computer' AND ResolutionState < 255"
foreach ($Alert in $ResetAlerts)
{
	$MonitoringRule = Get-SCOMMonitor -Id $Alert.MonitoringRuleId
	$MonitoringObject = Get-SCOMClassInstance -Id $Alert.MonitoringObjectId
	$MonitoringObject.ResetMonitoringState($MonitoringRule)
}

OM: Docker-Provider

https://github.com/Microsoft/Docker-Provider/releases

OM: SCXCore-kits

https://github.com/Microsoft/SCXcore-kits

PSScript: Определение архитектуры

Нашел скрипт в просторах интернета, который определяет архитектуру (битность) библиотеки и немного доработал его.

function Get-FilePlatform
{
    param
    (
        [ValidateScript({$_.Exists})]
        [System.IO.FileInfo]$FileName
    )
    [int]$PE_POINTER_OFFSET = 60;            
    [int]$MACHINE_OFFSET = 4;
    [byte[]]$Data = New-Object byte[] 4096;
    [IO.Stream]$Stream = New-Object IO.FileStream($FileName, [IO.FileMode]::Open, [IO.FileAccess]::Read)
    $Stream.Read($Data, 0, $Data.Length) | Out-Null
    [int]$PE_HEADER_ADDR = [BitConverter]::ToInt32($Data, $PE_POINTER_OFFSET);
    [int]$MachineUint = [BitConverter]::ToUInt16($Data, $PE_HEADER_ADDR + $MACHINE_OFFSET);
    switch($MachineUint)
    {
        0x0000 {"Native"}
        0x014c {"x86"}
        0x0200 {"Itanium"}
        0x8664 {"x64"}
    }
    $Stream.Close()
}

OM: Как закрыть активные алерты для здоровых мониторов

В Operations Manager иногда бывают ситуации, когда монитор переходит в здоровое состояние, но алерт продолжает висеть во вкладке активных алертов. В большинстве случаев это следствие ошибок оператора. Очень часто бывает, что система уже закрыла алерт, но оператор в это время заполняет поля алерта и возвращает ему прежнее состояние. Такой алерт самостоятельно уже не закроется. Чтобы не искать такие алерты вручную, можно воспользоваться следующим скриптом:

$Server = "ServerName"
$Credentials = Get-Credential
New-SCOMManagementGroupConnection -ComputerName $Server -Credential $Credentials
$ActiveAlerts = Get-SCOMAlert -Criteria "IsMonitorAlert = 1 AND ResolutionState < 255"
foreach ($Alert in $ActiveAlerts)
{
	$MonitoringRule = Get-SCOMMonitor -Id $Alert.MonitoringRuleId
	$MonitoringObject = Get-SCOMMonitoringObject -Id $Alert.MonitoringObjectId
	$MonitorList = New-Object System.Collections.Generic.List[Microsoft.EnterpriseManagement.Configuration.ManagementPackMonitor]
	$MonitorList.Add($MonitoringRule)
	$MonitoringState = $MonitoringObject.GetMonitoringStates($MonitorList)
	if ($MonitoringState.HealthState -eq [Microsoft.EnterpriseManagement.Configuration.HealthState]::Success)
	{
		$Alert
		$Alert | Resolve-SCOMAlert -Comment "The alert was manually closed because the monitor is in healthy state."
	}
}

Необходимо задать переменную $Server, указав имя сервера управления Operations Manager, после чего запустить скрипт.