Мне нужно определить, действительно ли компьютер является ноутбуком с возможностями Wi-Fi (с упором на Wi-Fi, а не на ноутбук). Точнее, я хочу распространять программу, которую написал через WSUS и Локальный издатель обновлений этим клиентам. С этой целью я хочу создать соответствующие «правила установки пакетов», то есть простое правило, используемое службой обновления Windows на клиенте, чтобы заранее решить, применим ли пакет обновления / установки. Обычно такие «правила метки установки» представляют собой логические комбинации правил типа «Файл существует», «Ключ реестра существует», «Запрос WMI», «Продукт MSI установлен», поэтому я бы предпочел один из этих методов. Метод, который, как я надеюсь, может мне помочь, должен работать с Win 7 / Vista, желательно также с XP.
Я предполагаю, что WMI-запрос - это лучший способ, но у меня мало опыта в этом. Я обнаружил, что можно, например, запрос для EnclosureType и что мощь обнаружить ноутбук. Однако я был бы намного счастливее, если бы действительно доступный интерфейс Wi-Fi был бы обнаружен. Кто-нибудь знает, как к этому подойти?
Если вам нужно что-то уточнить, не стесняйтесь комментировать.
Чтобы проверить, действительно ли WLAN AutoConfig
служба работает с использованием WMI, вы можете использовать этот запрос: SELECT * FROM Win32_Service WHERE Name = 'Wlansvc' AND State = 'Running'
. Однако полагаться на статус службы может ввести в заблуждение, если служба запускается вручную без беспроводной карты.
Вы также можете найти в именах адаптеров все, что содержит слово «беспроводной», с помощью этого запроса: SELECT * FROM Win32_NetworkAdapterConfiguration WHERE Description LIKE '%wireless%'
(% - это подстановочный знак WMI для нуля или более символов).
Есть еще один класс в root\wmi
пространство имен (предыдущие запросы использовали значение по умолчанию root\cimv2
namespace), который представляет собой запись конфигурации 802.11, однако я обнаружил, что ее поддержка не всегда присутствует, поэтому ее не следует использовать в качестве единственного метода обнаружения: SELECT * FROM MSNdis_80211_Configuration
.
У меня не было опыта использования WSUS Local Update Publisher, поэтому я не могу помочь вам с точной реализацией запросов WMI, но вы можете протестировать их в PowerShell, используя Get-WmiObject -Query "<query>"
или Get-WmiObject -Query "<query>" -Namespace <namespace>
если вам требуется настраиваемое пространство имен.