29

操作系统:Vista 企业版

当我在家庭网络和办公室网络之间切换时,我总是遇到连接到网络的问题。几乎总是我必须使用“网络和共享中心”中的诊断服务,当我使用重置网络适配器选项时问题得到解决。

这需要很多时间(3-4 分钟),所以我试图找到一个命令或一个 powershell 脚本/cmdlet,我可以直接使用它来重置网络适配器并在每次我必须切换时为自己节省这 5 分钟网络之间。任何指针?

4

13 回答 13

27

您可以在 PowerShell 中使用 WMI 来完成此操作。假设有一个设备名称中包含Wireless的网络适配器,则一系列命令可能如下所示:

$adaptor = Get-WmiObject -Class Win32_NetworkAdapter | Where-Object {$_.Name -like "*Wireless*"}
$adaptor.Disable()
$adaptor.Enable()

请记住,如果您使用 Window 的 Vista 运行它,您可能需要以管理员身份运行 PowerShell 。

于 2008-10-16T05:09:45.517 回答
11

Zitrax 的回答:

netsh interface set interface "InterfaceName" DISABLED
netsh interface set interface "InterfaceName" ENABLED

是我正在寻找的 99%。但是,她/他遗漏的一条信息是这些命令必须以管理员身份运行。以管理员身份运行 cmd.exe 并键入它们,或者将它们存储在批处理文件中,然后通过右键单击该文件并从上下文菜单中选择“以管理员身份运行”以管理员身份运行该文件。

于 2014-11-30T03:56:23.283 回答
9

请参阅 The Scripting Guys 的这篇文章“如何启用或禁用我的网络适配器?”

tl/博士:

Restart-NetAdapter   -Name "Your Name Here"

您可以使用获取列表

Get-NetAdapter
于 2008-10-16T04:02:03.967 回答
7

您也可以在 .BAT 或 .CMD 文件中尝试此操作:

ipconfig /release
ipconfig /renew
arp -d *
nbtstat -R
nbtstat -RR
ipconfig /flushdns
ipconfig /registerdns

这些命令应该与网络适配器的“诊断和修复”执行相同的操作,但速度要快得多!

让我知道这是否有帮助!联合部队

于 2008-10-16T04:08:39.227 回答
7

什么对我有用:

netsh interface show interface

显示对我来说是“以太网2”的接口名称,然后:

netsh interface set interface "Ethernet 2" DISABLED
netsh interface set interface "Ethernet 2" ENABLED
于 2014-03-05T10:00:51.357 回答
5

以下命令对我有用(在 Server 2012 R2 上):

Restart-NetAdapter -Name "Ethernet 2"

将“Ethernet 2”替换为适配器的名称。

注意:要创建PS脚本:在记事本中新建一个文档,另存为script.PS1,插入上面的行并保存。右键单击该文件 -> 使用 PowerShell 运行。

有关更多信息,请参阅此技术网文章。

于 2016-09-07T13:44:32.607 回答
3

Scott 的帖子启发我编写了一个非常小的 C#/.Net 控制台应用程序,它使用 System.Management。您可以将要重新启动的适配器命名为命令行参数。该代码显示了一些关于处理设备的基础知识,这对其他人也可能有用。

using System;
using System.Management;

namespace ResetNetworkAdapter
{
  class Program
  {
    static void Main(string[] args)
    {
      if (args.Length != 1)
      {
        Console.WriteLine("ResetNetworkAdapter [adapter name]");
        Console.WriteLine("disables and re-enables (restarts) network adapters containing [adapter name] in their name");
        return;
      }

      // commandline parameter is a string to be contained in the searched network adapter name
      string AdapterNameLike = args[0];

      // get network adapter node 
      SelectQuery query = new SelectQuery("Win32_NetworkAdapter");
      ManagementObjectSearcher searcher =  new ManagementObjectSearcher(query);
      ManagementObjectCollection adapters = searcher.Get();

      // enumerate all network adapters
      foreach (ManagementObject adapter in adapters)
      {
        // find the matching adapter
        string Name = (string)adapter.Properties["Name"].Value;
        if (Name.ToLower().Contains(AdapterNameLike.ToLower()))
        {
          // disable and re-enable the adapter
          adapter.InvokeMethod("Disable", null);
          adapter.InvokeMethod("Enable", null);
        }
      }
    }
  }
}
于 2011-03-30T14:02:41.757 回答
3

这是我在 PowerShell 版本 5.0.10586.122 Windows 10 Home 上使用的。这需要以管理员身份运行:

Restart-NetAdapter -Name "ethernet"

要以管理员身份运行它而无需“关闭 UAC”或“ R-Click-> 以管理员身份运行”:(这是一次性任务)

  • 将以上Restart-NetAdapter -Name "ethernet"内容放入.ps1文件
  • 创建一个新的快捷方式(R-Click.ps1文件上 > 创建快捷方式)
  • 在快捷方式上,R-Click> 属性 > 快捷方式 > 目标 >(将 Powershell.exe 附加到位置/文件名之前,如下所示。还用双引号(“)将位置/文件名括起来,如下所示。

在此处输入图像描述

  • 在快捷方式上,R-Click> 属性 > 快捷方式 > 高级 > “以管理员身份运行”(选中此复选框)

现在每次运行快捷方式时,您只需在 UAC 屏幕上单击“是”,它将重置您在.ps1文件中指定的适配器。

要使用 PowerShell(WiFi、LAN 等)获取可用适配器的名称:

Get-NetAdapter

于 2016-03-19T11:20:20.367 回答
2

您还可以使用 Microsoft 实用程序devcon.exe

首先,运行devcon listclass net以查找您的设备 ID。

然后在此命令中使用此设备 ID:(devcon restart PCI\VEN_16*使用'*'通配符以避免需要输入整个 ID 字符串)。

于 2010-03-07T10:45:35.890 回答
1

您还可以使用 wmic 命令重新启动 NIC:

获取接口ID:

C:\>wmic nic get name, index 

禁用 NIC(接口 ID:1):

wmic path win32_networkadapter where index=1 call disable

启用 NIC(接口 ID:1):

wmic path win32_networkadapter where index=1 call enable

资料来源:http ://www.sysadmit.com/2016/04/windows-reiniciar-red.html

于 2016-04-19T10:44:59.010 回答
0

您也可以尝试netsh命令。例子:

netsh wlan disconnect && netsh wlan connect [ONE OF YOUR WLAN PROFILES]

您可以使用以下方法获取这些“配置文件”的列表:

netsh wlan show profiles
于 2012-12-29T21:29:59.340 回答
0

ipconfig /flushdns

ipconfig /更新

是我用来刷新连接的 2 个 cmdlet。您不一定需要重新启动路由器以重新获得强信号(我知道重新启动路由器会清除路由器的内存,但事实就是如此)。

于 2014-07-11T18:55:19.117 回答
0

感谢您提供可以使用 netsh 完成的信息。我写了一个简单的“Repair.bat”脚本:

@echo off
netsh interface set interface "%1" DISABLED
netsh interface set interface "%1" ENABLED

只需使用 NIC 的名称调用它,重命名为“WLAN”,这样我就没有空格,在 cmd 中键入“修复 WLAN”就可以了。我将把它放到 system32 中并完成它的任务,或者看看如何将它集成到网络上下文菜单中......

于 2016-05-30T22:22:57.420 回答