icinga-powershell-framework/lib/provider/cpu.psm1
2019-07-17 11:28:22 +02:00

133 lines
No EOL
4.6 KiB
PowerShell

function Show-IcingaCPUData()
{
$CPUInformation = Get-CimInstance Win32_Processor;
[hashtable]$PhysicalCPUData = @{};
foreach ($cpu_properties in $CPUInformation) {
$cpu_datails = @{};
foreach($cpu_core in $cpu_properties.CimInstanceProperties) {
$cpu_datails.Add($cpu_core.Name, $cpu_core.Value);
}
$PhysicalCPUData.Add($cpu_datails.DeviceID, $cpu_datails);
}
return $PhysicalCPUData;
}
function Get-IcingaCPUs()
{
$CPUInformation = Get-CimInstance Win32_Processor;
[hashtable]$CPUData = @{};
foreach ($id in $CPUInformation.DeviceID) {
$CPUData.Add(
$id, @{
'metadata' = @{
'Name' = $CPUInformation.Name;
'DeviceID' = $CPUInformation.DeviceID;
'ProcessorID' = $CPUInformation.ProcessorId;
'UniqueID' = $CPUInformation.UniqueId;
'Description' = $CPUInformation.Description;
'OtherFamilyDescription' = $CPUInformation.OtherFamilyDescription;
'Caption' = $CPUInformation.Caption;
'Version' = $CPUInformation.Version;
'SerialNumber' = $CPUInformation.SerialNumber;
'Manufacturer' = $CPUInformation.Manufacturer;
'Number of Cores' = $CPUInformation.NumberOfCores;
'Family' = $CPUFamily.Family;
'Architecture' = $CPUArchitecture.Architecture;
'ProcessorType' = $CPUProcessorType.ProcessorType;
'StatusInfo' = $CPUStatusInfo.StatusInfo;
'Status' = $CPUInformation.Status;
'CPUStatus' = $CPUInformation.CpuStatus;
'NumberOfLogicalProcessors' = $CPUStatusInfo.NumberOfLogicalProcessors;
'Level'= $CPUInformation.Level;
'Availability' = $CPUAvailability.Availability;
};
'errors' = @{
'LastErrorCode' = $CPUInformation.LastErrorCode;
'ErrorCleared' = $CPUInformation.ErrorCleared;
'ErrorDescription' = $CPUInformation.ErrorDescription;
'ConfigManagerErrorCode' = $CPUConfigManagerErrorCode.ConfigManagerErrorCode;
};
'perfdata' = @{
'LoadPercentage' = $CPUInformation.LoadPercentage;
'CurrentVoltage' = $CPUInformation.CurrentVoltage;
'ThreadCount' = $CPUInformation.ThreadCount;
}
}
);
}
return $CPUData;
}
function Get-IcingaCPUArchitecture()
{
$CPUInformation = Get-CimInstance Win32_Processor;
[hashtable]$CPUArchitecture = @{};
foreach ($id in $CPUInformation.Architecture) {
$CPUArchitecture.Add([int]$id, $ProviderEnums.CPUArchitecture.([int]$id));
}
return @{'value' = $CPUArchitecture; 'name' = 'Architecture'};
}
function Get-IcingaCPUProcessorType()
{
$CPUInformation = Get-CimInstance Win32_Processor;
[hashtable]$CPUProcessorType = @{};
foreach ($id in $CPUInformation.ProcessorType) {
$CPUProcessorType.Add([int]$id, $ProviderEnums.CPUProcessorType.([int]$id));
}
return @{'value' = $CPUProcessorType; 'name' = 'ProcessorType'};
}
function Get-IcingaCPUStatusInfo()
{
$CPUInformation = Get-CimInstance Win32_Processor;
[hashtable]$CPUStatusInfo = @{};
foreach ($id in $CPUInformation.StatusInfo) {
$CPUStatusInfo.Add([int]$id, $ProviderEnums.CPUStatusInfo.([int]$id));
}
return @{'value' = $CPUStatusInfo; 'name' = 'StatusInfo'};
}
function Get-IcingaCPUFamily()
{
$CPUInformation = Get-CimInstance Win32_Processor;
[hashtable]$CPUFamily = @{};
foreach ($id in $CPUInformation.Family) {
$CPUFamily.Add([int]$id, $ProviderEnums.CPUFamily.([int]$id));
}
return @{'value' = $CPUFamily; 'name' = 'Family'};
}
function Get-IcingaCPUConfigManagerErrorCode()
{
$CPUInformation = Get-CimInstance Win32_Processor;
[hashtable]$CPUConfigManagerErrorCode = @{};
foreach ($id in $CPUInformation.ConfigManagerErrorCode) {
$CPUConfigManagerErrorCode.Add([int]$id, $ProviderEnums.CPUConfigManagerErrorCode.([int]$id));
}
return @{'value' = $CPUConfigManagerErrorCode; 'name' = 'ConfigManagerErrorCode'};
}
function Get-IcingaCPUAvailability()
{
$CPUInformation = Get-CimInstance Win32_Processor;
[hashtable]$CPUAvailability = @{};
foreach ($id in $CPUInformation.Availability) {
$CPUAvailability.Add([int]$id, $ProviderEnums.CPUAvailability.([int]$id));
}
return @{'value' = $CPUAvailability; 'name' = 'Availability'};
}