Cómo deshabilitar/habilitar protocolos de un adaptador específico a través de la línea de comandos o la edición del registro

Cómo deshabilitar/habilitar protocolos de un adaptador específico a través de la línea de comandos o la edición del registro

Vista de la ventana de propiedades.

Necesito encontrar una manera de automatizar la desactivación de ciertos protocolos de red de adaptadores de red específicos. Sé que puedo abrir la ventana y desmarcar los distintos protocolos, como "Protocolo de Internet versión 6 (TCP/IPv6)" desde la ventana de propiedades de un adaptador de red específico, pero necesito encontrar una manera de hacerlo a través de la línea de comandos o mediante el registro para poder automatizar el proceso. ¿Algunas ideas? -¡Gracias!

Respuesta1

Esto se hace fácilmente con PowerShell. Los siguientes comandos funcionan mejor con PowerShell integrado en Windows, ya que hasta la fecha las ediciones PowerShell Core no tienen un buen soporte para estos comandos.

UsarGet-NetAdapterpara enumerar los adaptadores de red en su sistema.

UsarGet-NetAdapterBinding-Name "MyAdapter" -AllBindingspara enumerar los enlaces en un adaptador de red.

UsarSet-NetAdapterBinding-Name "MyAdapter" -ComponentID ms_tcpip -Enabled $Truepara habilitar o deshabilitar un enlace por su nombre de componente.

Consulte la documentación vinculada o ejecute comandos con la -?bandera para obtener más opciones.

Respuesta2

He hecho esto para algunos de los scripts que uso en el trabajo.

En cualquier momento hay una cantidad de adaptadores registrados, algunos de loopback. El principal problema está en detectar los correctos a los que se dirige y luego filtrar el resto. También debe tener en cuenta que es posible que los cambios realizados por la utilidad netsh no se propaguen a la interfaz wmi hasta que se complete el reinicio.

Sugeriría buscar en las funciones miembro de WMI de Win32_NetworkAdapterConfiguration o usar netsh.

No haces referencia a un sistema operativo, supongo que te refieres a Windows. Sugeriría Powershell, ya que viene incluido con Windows 7 y versiones posteriores y se puede instalar en sistemas anteriores. También permite el acceso a la API de la función dotnet.

Respuesta3

Lo estuve intentando en un servidor de 2016 y tuve que modificar la línea proporcionada por @M.Dundley; Por supuesto, sin su respuesta, no podría construir la mía.

Siga la línea que utilicé tbimdsacomo ejemplo:

disable-NetAdapterbinding -name "MyAdapter" -ComponentID tbimdsa

También probé usando enable-NetAdapterbinding. He de decirte que no funciona en todas las fijaciones o propiedades.

información relacionada