Итак, у меня уже есть неплохая идея, как программно настроить правила брандмауэра с помощью COM-интерфейса INetFwPolicy2
и INetFwRule
. Тем не менее, как я могу использовать COM-взаимодействие для настройки правила для определенного приложения «Modern App»/«Metro App»/«Store App»?Как настроить правило для приложения Store с помощью брандмауэра Windows?
Если я использую MMC брандмауэра, я могу перейти к:
правило -> Свойства -> Программы и услуги -> Пакеты приложений
и разрешить/блокировать указанные пакеты там. Но я понятия не имею, как это сделать в коде. Я нашел интерфейс INetFwRule3
, который обеспечивает свойство LocalAppPackageId
, что я и предполагаю, делает все волшебство. Но LocalAppPackageId
содержит SID пакета, а не его имя, например, microsoft.windows.photos_8wekyb3d8bbwe
. Итак, как я могу заблокировать пакет, который я хочу, когда все, что я знаю, это его имя? Думаю, мне нужно получить SID, так как я могу это найти? Является ли область SID локальной (уникальной для каждой машины), или я могу просто записать код SID, как только найду его, и не буду искать динамически динамически?