PowerShell создает класс WMI

#powershell #wmi

#powershell #wmi

Вопрос:

Я пытаюсь создать класс WMI и заполнить его

Я не могу разобраться с «Доступным перечислением»

Я знаю, как сделать InvalidExtensions enumerable, но я не понимаю, как заполнить это поле при создании экземпляра WMI

Я также не понимаю, как предварительно заполнить Possible Enumeration Values

Мой код до сих пор

 $newClass = New-Object System.Management.ManagementClass("rootcimv2", [String]::Empty, $null); 
$newClass["__CLASS"] = "Test"; 
$newClass.Qualifiers.Add("Static", $true)

$newClass.Properties.Add("Username",[System.Management.CimType]::String, $false)
$newClass.Properties["Username"].Qualifiers.Add("Key", $true)

$newClass.Properties.Add("TotalFileCount",[System.Management.CimType]::UInt16, $false)

$newClass.Properties.Add("TotalFolderCount",[System.Management.CimType]::UInt16, $false)

$newClass.Properties.Add("TotalSizeMB",[System.Management.CimType]::UInt16, $false)

$newClass.Properties.Add("InvalidFileNameCount",[System.Management.CimType]::UInt16, $false)

$newClass.Properties.Add("InvalidExtensionCount",[System.Management.CimType]::UInt16, $false)

$newClass.Properties.Add("InvalidExtensions",[System.Management.CimType]::String, $false)
$newClass.Properties["InvalidExtensions"].Qualifiers.Add("Values",$true)

$newClass.Put()

Set-WmiInstance -Class Test -Argument @{Username="testaccount";TotalFileCount="5191";TotalFolderCount="355";TotalSizeMB="3660";InvalidFileNameCount="10";InvalidExtensionCount="2";InvalidExtensions=".appx",".ost"}
  

Ответ №1:

Я разработал, как добавить значения

Изменено

$newClass.Properties.Add("InvalidExtensions",[System.Management.CimType]::String, $false)

Для

$newClass.Properties.Add("InvalidExtensions",[System.Management.CimType]::String,"StringArray")

Тогда при добавлении значений можно использовать стандартный массив

Я все еще не знаю, как задать возможные значения в свойствах класса

Комментарии:

1. Просто любопытно. Но зачем это делать в PowerShell? вместо простого использования Visual Studio и языков там и спецификации . Каков ваш вариант использования?

2. У вас есть существующий сценарий PowerShell, который выполняет аудит, не хочу изобретать велосипед, но мне нужно создать новый класс WMI для хранения данных, которые будут собираться с помощью SCCM, длинный способ делать то, что я знаю

3. Хммм … да, конечно, это долгий путь вокруг корзины… это не то, что я когда-либо рассматривал или пробовал.