首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Windows 10中以编程方式禁用Wi感觉?

如何在Windows 10中以编程方式禁用Wi感觉?
EN

Stack Overflow用户
提问于 2015-07-24 05:42:21
回答 2查看 1.8K关注 0票数 3

Windows 10有一个名为Wifi感觉的新特性。该功能将WLAN适配器连接到附近的任何开放热点。它还通过Facebook与朋友共享无线局域网密码。根据我们的测试结果:

  • 创建新的持久WLAN配置文件,如果附近有热点(即打开的热点或热点,它有来自朋友的密码)。
  • 继续按自己认为最好的顺序重新排序配置文件。

我找到了几个如何通过Windows禁用Wifi感觉的答案:例如这里。然而,没有答案真正禁用了为开放热点创建新的配置文件。有办法完全禁用Wifi感觉吗?最好是以编程方式。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-24 06:09:54

TL;DR:有一些未记录的注册表值可以禁用Wifi的某些功能。这些值位于键HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WcmSvc\wifinetworkmanager\features中,并命名为WiFiSenseCredSharedWiFiSenseOpen。首先控制是否共享Wifi凭据,其次控制Wifi是否为打开的热点创建新的配置文件。默认值(至少在我的计算机上)为1。将它们更改为0。WcmSvc服务包含Wifi的实现,需要在对注册表进行更改后重新启动。我尝试过通过SERVICE_CONTROL_PARAMCHANGE API将WcmSvc发送到ControlService,但是我得到了ERROR_ACCESS_DENIED,所以在MS发布一些公共API之前,完全重新启动服务是必要的。请注意,由于这些值没有文档化,MS可能会更改它们的位置,甚至在下一个版本的Windows中删除它们。

编辑:上面推荐的值停止使用最新版本的Windows10,但是我发现Wifi配置状态存储在value HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WcmSvc\wifinetworkmanager\features\S-1-5-21-774371734-2276234837-1234541976-1000\FeatureStates中。注意,键名S-1-5-21-774371734-2276234837-1234541976-1000可能因不同的机器而异。该值本身是一个具有以下语义的位掩码:

代码语言:javascript
复制
enum EWifiManagerFeatureStates
{
  CONNECT_OPEN_HOTSPOTS = 0x0001,
  CONNECT_NETWORKS_FROM_CONTACTS = 0x0040,
  CONNECT_PAID_HOTSPOTS = 0x200,
}

这些位必须被设置为0,完全禁用Wifi感知。我无法找到剩余比特的意义,但其他人也可以尝试将其设置为0。

Long story:对于感兴趣的人,这里有一个简短的描述,说明我是如何找到未记录的注册表值的。它可能会帮助其他人找到更多无文档的注册表值。

首先,我猜应该有一个无文档的注册表设置,可以关闭WifiSense。因此,我安装了过程监视器工具,它能够列出所有正在运行的进程的所有注册表访问。我在Network/Wifi/Advanced Wifi Settings上打开了Windows,并更改了与Wifi相关的设置。然后,我查看了Process输出,以查看访问了注册表的哪些部分。我将输出过滤到RegSetValue,以只看到写入和减少其他注册表操作的噪音。

我看到了几次对键HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WcmSvc\wifinetworkmanager\features\S-1-5-21-774371734-2276234837-1234541976-1000值的写入。

当查看regedit中的键时,我没有发现任何有趣的地方,但是它的父键(...\wifinetworkmanager\features)中有两个非常可疑的值。这些值是DWORD (数字),并命名为WiFiSenseCredShared和WiFiSenseOpen。我将它们设置为0并重新启动WcmSvc服务,以便重新读取新值。在这之后Wifi的感觉被关闭了。我能够删除它创建的配置文件,也没有创建新的开放配置文件。

票数 7
EN

Stack Overflow用户

发布于 2021-11-30 16:14:18

在cmd.exe中使用此脚本可以在最近的Windows 10版本中禁用此功能(来源):

for /f %%A in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WcmSvc\wifinetworkmanager\features"^|find "S-1"') do (reg add %%A /v FeatureStates /t REG_DWORD /d 828 /f)

注意:这是在CMD-文件语法中。如果计划在命令解释器(而不是cmd-file)中使用%A,则使用%A而不是%A。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31603013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档