如何在Windows 10上以编程方式将未识别网络设置为专用或公用网络位置
Windows 10 编程修改未识别/识别中网络为专用/公用网络方案
你可以通过PowerShell或注册表两种方式实现需求,两种方案均适配Windows 10系统,可直接集成到项目中:
方案1:PowerShell 实现(推荐,集成难度低)
操作前需要确保调用PowerShell的进程具备管理员权限
- 第一步先查询当前系统所有网络配置,确认目标网络的标识:
执行命令:Get-NetConnectionProfile
返回结果中Name字段为网络显示名,InterfaceAlias为对应网卡名称,NetworkCategory为当前网络类型,取值为Public(公用)、Private(专用)、DomainAuthenticated(域网络)。 - 按需求修改目标网络的类型:
- 批量修改所有未识别网络为专用网络:
Get-NetConnectionProfile | Where-Object {$_.Name -eq "未识别的网络"} | Set-NetConnectionProfile -NetworkCategory Private - 修改指定网卡的网络为公用网络:
Set-NetConnectionProfile -InterfaceAlias "以太网" -NetworkCategory Public
- 批量修改所有未识别网络为专用网络:
- 项目集成时,直接调用
powershell.exe进程携带对应命令参数执行即可,执行后可再次调用查询命令校验修改结果。
方案2:注册表修改实现
修改注册表前建议提前备份对应注册表项,避免配置错误导致网络异常
- 目标注册表路径:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles - 该路径下每个GUID命名的子项对应一个网络配置,选中子项后查看
ProfileName键值,找到对应目标网络(未识别/识别中网络)的子项。 - 修改该子项下的
Category键值即可切换网络类型:- 赋值
0:对应公用网络 - 赋值
1:对应专用网络 - 赋值
2:对应域网络
- 赋值
- 修改完成后重启
Network Location Awareness服务即可生效,重启服务命令:net restart nla
内容的提问来源于stack exchange,提问作者Cristian Stirbe
相关产品推荐
相关产品推荐

