C# Windows-7:在网络适配器上禁用internet连接共享,当它';它处于隐藏状态?

C# Windows-7:在网络适配器上禁用internet连接共享,当它';它处于隐藏状态?,c#,networking,windows-7,registry,C#,Networking,Windows 7,Registry,我正在尝试使用NetConLib.dll在windows-7上通过网络适配器共享internet 为此,应在所有其他网络适配器上禁用internet共享 在正常情况下。我可以迭代所有已安装的网络适配器并禁用它们上的共享。 但是,有时当网络设备拔出时,适配器在windows中被隐藏。 但它的属性仍然存在于windows注册表中 我甚至在控制面板中找不到适配器。 当然,不能使用NetConlib库对其进行迭代 可能的情况。 最简单的方法是使用windows命令禁用internet 在所有适配器上

我正在尝试使用
NetConLib.dll
在windows-7上通过网络适配器共享internet

为此,应在所有其他网络适配器上禁用internet共享

在正常情况下。我可以迭代所有已安装的网络适配器并禁用它们上的共享。 但是,有时当网络设备拔出时,适配器在windows中被隐藏。 但它的属性仍然存在于windows注册表中

我甚至在控制面板中找不到适配器。 当然,不能使用
NetConlib
库对其进行迭代


可能的情况。
  • 最简单的方法是使用windows命令禁用internet 在所有适配器上共享。不管它们的可见性如何

    无论如何,这可能吗

  • 第二种解决方案是从隐藏状态恢复网络适配器,以便
    NetConlib
    可以迭代并禁用它

    我试图在windows注册表中找到适配器的属性并
    取消隐藏它,但什么也找不到

有解决方案吗?


@埃尔姆达。 谢谢你提供了信息丰富的答案。虽然它没有解决NetConlib所面临的问题

SC配置正确关闭ICS服务。但共享网络适配器继续被标记为
共享
1。所以ICS服务被关闭似乎不会影响适配器的设置

很有意思,;当您尝试使用windows GUI共享另一个适配器时(
右键单击适配器->属性->共享
),系统会提示您一条消息

当前正在共享另一个适配器,即您的新适配器 将被共享”。你点击ok,它就完成了

我整个下午都在搜索整个互联网,看看是否有其他使用CMD命令的解决方案

也许有一种方法可以与命令共享适配器。这样windows就可以处理禁用其他适配器的问题。与使用GUI时的方式类似



1:Windows会告诉您当前在
控制面板\网络和Internet\网络连接中共享的适配器。

我发现,通过进入设备管理器,您可以显示隐藏的设备,并尝试禁用适配器上的Internet共享

希望这接近你的要求。祝你好运

自动取款机


来源:

可能的解决方案1:完全禁用IC。 您可以停止ICS服务,这样所有连接都不会处于共享状态,也不会与
NetConLib.dll
冲突。(对隐藏的不确定,您必须尝试)

您可以使用以下命令行对其进行管理:
净启动SharedAccess
净停止SharedAccess

此外,如果需要从重新启动到禁用,则必须使用以下命令禁用服务:
sc配置SharedAccess启动=已禁用

注释和参考资料:

  • 执行
    sc config
    将显示“开始=选项”和其他一些选项。 下面的空格=和选项是必需的。你可以检查结果 从Run或cmd运行
    services.msc
  • Exec
    net
    以显示选项。服务的名称在 ICS服务“服务名称”标签下的services.msc列表
  • netsh路由不再在Win7上,因此您只能 启动/停止/启用/禁用但不启用特定接口。 你必须用鼠标手动设定。。。这在Win7下不起作用
  • Sc Config
    命令来自
可能的解决方案2:是否删除重影接口? 我还尝试将适配器和接口引入注册表,但没有看到关于show/hid/ghost/enabled或类似内容的任何内容。我还在这里搜索注册表配置

我建议最好尝试可能的解决方案1:)或直接删除隐藏/重影适配器。 你可以用两种方法来做。Devcon remove选项也将删除驱动程序

  • 设备管理器:运行
    设置devmgr\u show\u nonpresent\u devices=1
    并运行
    devmgmt.msc
    。您必须通过“查看”选项查看“显示隐藏”选项。这个 show_nonpresent还必须显示隐藏设备,而不仅仅是非活动设备。
  • 使用devcon.exe实用程序:这是一个来自Windows的设备管理器工具 随着力量的移动
查找网卡的基本用法
devcon findall=net
,也可以
devcon findall=net*ndis*
列出所有ndis卡。 删除的基本用法是删除所有ndis卡类型

我也尝试启用/禁用命令,但我的网络接口列表中没有任何更改。 我移除了自己的wifi卡来测试它:)无论如何,我没有注意到任何关于“取消隐藏”功能的选项

新编辑(太冗长了,是吗?

我找到了一个名为ics管理器的工具 您可以直接从下载

它基于.NETFramework4。您必须下载并运行build.bat来编译这两个exe(您还获得了C#源代码)。解决方案是只获取编译后的IcsManager.exe(命令行版本),其中只包含所需的库IcsManagerLibrary.dll

此应用程序还使用了
NETCONLib.dll
,因此您可以使用它,或者阅读源代码以查看执行此操作并在开发中实现的正确功能

如果Ip范围“192.168.137.1”出现问题,可以从注册表中永久设置,或运行
netsh interface ipv4 set address name=“YOUR-interface”source=static addr=192.168.2.1 mask=255.255.0
。使用tilde或acutes into interfaces name(西班牙语默认以太网名称为“Conexión deáreal loca”)启动
netsh interface
,会出现严重错误