ตั้งค่า PolicyStore ในอินสแตนซ์ CIM

Get-NetFirewallProfile cmdlet มีตัวเลือก -PolicyStore ActiveStore ซึ่งเป็นผลรวมของนโยบายทั้งหมดบนคอมพิวเตอร์เครื่องนั้น เมื่อฉันเรียกใช้งาน ฉันจะได้รับสถานะโปรไฟล์ไฟร์วอลล์โดยที่ GPO ได้รับการพิจารณา

อีกทางหนึ่ง ฉันสามารถรับอินสแตนซ์ CIM ด้วย Get-CimInstance -Namespace Root\StandardCimv2 -ClassName MSFT_NetFirewallProfile หรือ Get-WmiObject -Namespace "Root\StandardCimv2" -Query "SELECT * FROM MSFT_NetFirewallProfile" แต่ค่า GPO จะถูกยกเลิก

ฉันจะตั้งค่าที่เก็บนโยบายใน Get-WmiObject -Namespace "Root\StandardCimv2" -Query "SELECT * FROM MSFT_NetFirewallProfile" ได้อย่างไร

ในที่สุดฉันจะใช้แบบสอบถามใน c ++ ด้วย wbemcli api


person Maor Dahan    schedule 01.03.2020    source แหล่งที่มา


คำตอบ (1)



คุณสามารถระบุพารามิเตอร์ PolicyStore โดยใช้ IWbemContext นี่คือตัวอย่างโค้ดที่แสดงให้เห็นการใช้งาน:

พาวเวอร์เชลล์:

$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
person adiment    schedule 09.03.2020