在Windows注册表中,位置如下:
我们可以看到一个网络ID列表,其中包含通常以“网络”加数字的单词命名的网络名称,例如
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles\
我们可以看到一个网络ID列表,其中包含通常以“网络”加数字的单词命名的网络名称,例如
Network 1
代表有线网络。
当Windows首次检测到新网络时,您会弹出一个窗口询问您是否要将其设置为工作
、家庭
或公共
位置。您所做的选择会更改上述注册表项中该网络ID的Category
和Category type
。
我想获取当前连接的网络配置文件的Category
和Category type
。基本上告诉我我现在连接的网络是工作
、家庭
还是公共
。
我已经知道如何使用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
命令找到当前活动网络的ID,使用wmic path WIN32_NetworkAdapter
作为一个名为GUID
的关键字,因为它与上面指定的注册表路径中所看到的网络ID具有完全相同的格式。
由于我只有一个活动网络,上述wmic命令仅返回一个非空的GUID
。但是我在网络配置文件列表中没有找到返回的GUID
...
如果我能找到一种确定该注册表路径中哪个子键/网络ID对应于我的活动网络的方法,那么我就可以得到我想要的结果。
如何找出当前正在使用的网络配置文件?