2016-09-26 5 views
0

Я реализую базовую библиотеку для работы с API брандмауэра Windows. Я столкнулся со странным результатом с INetFwPolicy2::ExcludedInterfaces. Я установил исключенный интерфейс через Firewall.cpl, и когда я прочитал свойство, я получил массив некоторых указателей. Я не уверен, откуда этот GUID. Это не интерфейс GUID. Я выбираю все интерфейсы от Win32_NetworkAdapter и нет такого GUID. Также, когда я пытаюсь назначить это значение, я получил неверный аргумент или не нашел ошибок. Этот код основан на msdn example, написанном на VBS, но это действительно не имеет значения. У меня такая же ошибка на C. Исходный пример тоже не работает.Как установить свойство INetFwPolicy2 :: ExcludedInterfaces

Const NET_FW_PROFILE2_PRIVATE = 2 

Set fwPolicy2 = CreateObject("HNetCfg.FwPolicy2") 

CurrentProfiles = fwPolicy2.CurrentProfileTypes 

if (CurrentProfiles AND NET_FW_PROFILE2_PRIVATE) then 
    InterfaceArray = fwPolicy2.ExcludedInterfaces(NET_FW_PROFILE2_PRIVATE) 

    if (IsEmpty(InterfaceArray)) then 
     WScript.Echo("InterfaceArray is Empty") 
    else 
     WScript.Echo(Join(InterfaceArray)) 
    end if 

    fwPolicy2.ExcludedInterfaces(NET_FW_PROFILE2_PRIVATE) = InterfaceArray 
end if 

ответ

0

Проверьте csproj файл XML в вашем исполняющего узла (не обязательно узел, который использует Windows-брандмауэр-апи, если он ссылается). Для каждой конфигурации есть тег <PropertyGroup>, и каждый должен иметь дочерний тег <Prefer32Bit>false</Prefer32Bit> (или, по крайней мере, тот, который вы компилируете).

+0

Я не использую никаких проектов. Просто файл vbs и cscript. – moteus