Windows 10 有一个名为 Wifi Sense 的新功能。该功能可将 WLAN 适配器连接到附近的任何开放热点。它还通过 Facebook 与 friend 分享 WLAN 密码。根据我们的测试:

如果附近有热点(即热点),

  • 会创建新的持久 WLAN 配置文件。
    一个开放的热点或热点,它有来自 friend 的密码)。
  • 不断按照它认为最好的顺序重新排序配置文件。

  • 我找到了几个如何通过 Windows UI 禁用 Wifi Sense 的答案:例如here 。但是,没有答案真正禁止为开放热点创建新配置文件。有没有办法完全禁用 Wifi Sense?最好以编程方式。

    最佳答案

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

    编辑 :上面推荐的值在最新版本的 Windows 10 中停止工作。但是我发现 Wifi Sense 配置状态存储在值中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 可能会有所不同。值本身是一个具有以下语义的位掩码:

    enum EWifiManagerFeatureStates
    {
      CONNECT_OPEN_HOTSPOTS = 0x0001,
      CONNECT_NETWORKS_FROM_CONTACTS = 0x0040,
      CONNECT_PAID_HOTSPOTS = 0x200,
    }
    

    这些位必须设置为 0 才能完全禁用 Wifi Sense。我无法找到剩余位的含义,但其他人也可以尝试将它们设置为 0。

    长话短说 :
    对于感兴趣的人,这里是我如何找到未记录的注册表值的简短说明。它可能会帮助其他人找到更多未记录的注册表值。

    首先,我猜应该有一个未记录的注册表设置可以关闭 WifiSense。所以我安装了 Process Monitor 工具,它能够列出所有正在运行的进程的所有注册表访问。我在 Network/Wifi/Advanced Wifi Settings 上打开了 Windows 设置 UI 并更改了与 Wifi Sense 相关的设置。然后我查看了 Process Monitor 输出以查看注册表的哪些部分被访问。我将输出过滤为 RegSetValue 以仅查看写入并减少其他注册表操作的噪音。

    我看到了几个对 key 值的写入HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WcmSvc\wifinetworkmanager\features\S-1-5-21-774371734-2276234837-1234541976-1000
    在查看 regedit 中的 key 时,我没有发现任何有趣的东西,但是
    其父键中有两个非常可疑的值
    (...\wifinetworkmanager\功能)。值为 DWORD(数字)并命名为
    WiFiSenseCredShared 和 WiFiSenseOpen。两者都设置为 1。我将它们设置为 0 和
    重新启动 WcmSvc 服务,以便重新读取新值。在此 Wifi Sense 关闭后。我能够删除由它创建的配置文件
    没有创建新的开放配置文件。

    关于c++ - 如何在 Windows 10 中以编程方式禁用 Wi-fi 感知?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31603013/

    10-11 18:50