在 CIM 实例中设置 PolicyStore

set PolicyStore in CIM instance

Get-NetFirewallProfile cmdlet 具有选项 -PolicyStore ActiveStore,它是该计算机上所有策略的总和。当我 运行 它时,我得到了考虑 GPO 的防火墙配置文件状态。

或者我可以使用 Get-CimInstance -Namespace Root\StandardCimv2 -ClassName MSFT_NetFirewallProfileGet-WmiObject -Namespace "Root\StandardCimv2" -Query "SELECT * FROM MSFT_NetFirewallProfile" 获取 CIM 实例,但 GPO 值被丢弃。

如何在 Get-WmiObject -Namespace "Root\StandardCimv2" -Query "SELECT * FROM MSFT_NetFirewallProfile" 中设置策略存储?

最后,我将使用 wbemcli api

在 C++ 中实现查询


您可以使用 IWbemContext 指定 PolicyStore 参数。以下是说明其用法的代码示例:

PowerShell:

$CimSession = New-CimSession
$options = New-Object Microsoft.Management.Infrastructure.Options.CimOperationOptions
$options.SetCustomOption("PolicyStore", "ActiveStore", $true)
$CimSession.EnumerateInstances("Root\StandardCimv2", "MSFT_NetFirewallProfile", $options)

VB:

strComputer = "."
Set objSWbemServices = GetObject("winmgmts:\" & strComputer & "\root\StandardCimv2")

Set objCtx = CreateObject("WbemScripting.SWbemNamedValueSet")
objCtx.Add "PolicyStore", "ActiveStore"

Set colSWbemObjectSet = objSWbemServices.InstancesOf("MSFT_NetFirewallProfile",,objCtx)
For Each objSWbemObject In colSWbemObjectSet
Wscript.Echo "Enabled: " & objSWbemObject.Enabled
Next