Windows-7:当网络适配器处于隐藏状态时,禁用网络连接共享?

Aza*_*zad 7 c# registry networking windows-7

我正在尝试使用Windows-7上的网络适配器共享Internet NetConLib.dll.

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

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

我甚至无法在控制面板中找到适配器.当然,不能使用NetConlib库迭代它.


可能的情况.

  • 最简单的方法是使用Windows命令禁用所有适配器上的Internet共享.无论他们的知名度如何.

    这有可能吗?

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

    我试图在Windows注册表中找到适配器的属性unhide,但是找不到任何东西.

有解决方案吗


@ erm3nda.

感谢您提供丰富的答复.虽然它没有解决我面临的问题NetConlib.

SC config正确关闭ICS服务.但共享网络适配器继续被标记Shared1.因此,关闭 ICS服务似乎不会影响适配器的设置.

非常有趣; 当您尝试使用Windows GUI(Right click on adapter -> Properties -> Share)共享另一个适配器时,会提示消息告诉您

"目前正在共享另一个适配器,您的新适配器将被共享".你点击确定就完成了.

我整个下午一直在挖掘整个互联网,看看是否有其他使用CMD命令的解决方案.

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


1:Windows告诉您当前正在共享哪个适配器Control Panel\Network and Internet\Network Connections).

m3n*_*nda 6

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

您可以使用以下命令从命令行进行管理: net start SharedAccessnet stop SharedAccess

此外,如果您需要从重新启动到禁用它,必须使用以下命令禁用服务: sc config SharedAccess start= disabled

注释和参考:

  • 执行sc config将显示"start = OPTIONS"和其他一些.下面的空格=和选项是必需的.您可以services.msc从Run或cmd 检查运行的结果.
  • 执行net以显示OPTIONS.服务名称位于ICS服务的"服务名称"标签下的services.msc列表中.
  • netsh routing不再在Win7上,因此您只能启动/停止/启用/禁用但不能启用特定接口.你必须通过handMouse设置......这不能在Win7 ICS下运行到XP系统中
  • Sc Config命令来自我今天发现的这个很酷的文档.

可能的解决方案2:删除ghost界面?我还尝试将适配器和接口放入注册表中,并且看不到有关show/hid/ghost/enabled或类似内容的任何信息.我也在这里搜索kb 314053 for registry conf.

我可以makegeest尝试可能的解决方案1 ​​:)或直接删除隐藏/鬼适配器.你可以通过两种方式来做到这一点.Devcon删除选项也将删除驱动程序.

查找网卡的基本用法devcon findall =net,您也devcon findall =net *ndis*可以列出所有ndis卡.删除的基本用法是devcon remove =net *ndis*删除所有ndis卡类型.

我也尝试启用/禁用命令,但我的网络接口列表没有任何变化.我删除了自己的wifi卡来测试它:)无论如何,我没有注意到任何选项关于这些设备的"取消隐藏"功能来自连接面板.

新编辑(太冗长了,对吧?)

从这个超级用户帖子中找到了一个名为ics-manager 的工具.- 阅读答案#3 您可以直接从utapyngo的Git项目页面下载.

它基于.Net Framework 4.Yo必须下载并运行build.bat来编译两个exe(你也得到了C#源代码).解决方案是仅使用唯一需要的库IcsManagerLibrary.dll获取已编译的IcsManager.exe(命令行版本).

此应用程序也在使用NETCONLib.dll,因此您可以使用它,或阅读源代码以查看您需要执行此操作并在开发时实施的正确功能.

如果您遇到Ip范围"192.168.137.1"的问题,您可以从Registry永久设置或运行netsh interface ipv4 set address name="YOUR-INTERFACE" source=static addr=192.168.2.1 mask=255.255.255.0.您将netsh interface使用波形符或启动进入接口名称(西班牙语默认以太网名称为"Conexióndeáallocal"......一个笑话)会出现难看的错误.

注意:您可以一次性打包,首先使用call所需参数将Bat添加到IcsManager.exe中,然后再从同一批次启动netsh configure命令到完全配置.

注释:关于尝试覆盖共享连接时的提示,肯定是因为只能共享一个.我也看到,他们被配置为公共和家庭设置对,但我找不到注册表项的位置...也从reg和使用Diffs进行一些导出,没有幸运.我陷入困境并开始在Google上搜索"ICS C++和C#",然后找到它.

额外:我把netsh它变成了一个蝙蝠,并且当插入以太网电缆时,它是为Windows任务启动的(这里是howto),以便与Android Reverse Tethering一起使用.正如你所看到的,我对你的问题太有趣了,因为它让我的研究更好,也学到了很多东西.

抱歉我的英语不好.我不是.问候.


小智 1

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

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

自动取款机

来源:http ://msdn.microsoft.com/en-us/library/windows/hardware/ff553955%28v=vs.85%29.aspx