В реестре Windows здесь:
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles\
мы можем увидеть список идентификаторов сети с именем сети, как обычно слово Network плюс число, например Network 1
для проводных сетей.
Когда Windows впервые обнаруживает новую сеть, появляется всплывающее окно с вопросом, является ли это местоположение Work
, Home
или Public
. Сделанный вами выбор изменяет Category
и Category type
в вышеупомянутой записи реестра для этого идентификатора сети.
Я хочу получить Category
и Category type
для текущего подключенного сетевого профиля. По сути, сообщая мне, является ли сеть, к которой я сейчас подключен, Work
, Home
или Public
.
Я уже знаю, как это сделать с reg query
, но я не знаю, как определить, какой из многих сетевых профилей в указанном выше пути реестра является активным, не просматривая их все и не сопоставляя имя сети в текущую сеть.
Я изучил использование wmic path Win32_NetworkAdapter
и подумал, что нашел способ, смотрите здесь:
for /f "tokens=*" %%f in ('wmic /node:MYPC path WIN32_NetworkAdapter where "GUID is not null" get GUID /value ^| find "="') do set "%%f"
reg query "\\MYPC\HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles\%GUID%" /v Category
Хотя я нашел идентификатор текущей активной сети, используя wmic
, используя wmic path WIN32_NetworkAdapter
в качестве ключа с именем GUID
, так как это был тот же формат, что и идентификаторы сети, которые вы видите в пути реестра, указанном выше .
Поскольку у меня была только одна активная сеть, и приведенная выше команда wmic вернула только одну ненулевую GUID
. Но я не нашел возвращенного GUID
в списке профилей сети ...
Если я найду способ определить, какой идентификатор подключа / сети в этом пути реестра соответствует моей активной сети, тогда я смогу получить желаемый результат.
Как узнать, какой сетевой профиль используется в настоящее время?