#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. Хммм … да, конечно, это долгий путь вокруг корзины… это не то, что я когда-либо рассматривал или пробовал.