windows_exporter/tools/collector-generator/New-Collector.ps1

35 lines
1.1 KiB
PowerShell
Raw Normal View History

2016-09-24 09:49:09 +00:00
Param(
[Parameter(Mandatory=$true)]
$Class,
[Parameter(Mandatory=$false)]
$Namespace = "root/cimv2",
[Parameter(Mandatory=$false)]
$CollectorName = ($Class -replace 'Win32_PerfRawData_Perf',''),
[Parameter(Mandatory=$false)]
$ComputerName = "localhost",
[Parameter(Mandatory=$false)]
[CimSession] $Session
2016-09-24 09:49:09 +00:00
)
$ErrorActionPreference = "Stop"
if($null -ne $Session) {
$wmiObject = Get-CimInstance -CimSession $Session -Namespace $Namespace -Class $Class
}
else {
$wmiObject = Get-CimInstance -ComputerName $ComputerName -Namespace $Namespace -Class $Class
}
2019-08-01 15:00:42 +00:00
$members = $wmiObject `
2016-09-24 09:49:09 +00:00
| Get-Member -MemberType Properties `
| Where-Object { $_.Definition -Match '^u?int' -and $_.Name -NotMatch '_' } `
| Select-Object Name, @{Name="Type";Expression={$_.Definition.Split(" ")[0]}}
2016-09-24 09:49:09 +00:00
$input = @{
"Namespace"=$Namespace;
2016-09-24 09:49:09 +00:00
"Class"=$Class;
"CollectorName"=$CollectorName;
"Members"=$members
2019-08-01 15:01:33 +00:00
} | ConvertTo-Json
2016-09-24 09:49:09 +00:00
$outFileName = "..\..\collector\$CollectorName.go".ToLower()
$input | .\collector-generator.exe | Out-File -NoClobber -Encoding UTF8 $outFileName
go fmt $outFileName