Necesito activar/desactivar completamente las interfaces de red desde un script en Windows XP. Estoy buscando una solución de Python, pero cualquier forma general (por ejemplo, WMI, alguna línea de comando a la netsh, alguna llamada de Windows) es bienvenida y se ajustará. Gracias.¿Cómo habilitar/deshabilitar las interfaces de red mediante programación? (Windows XP)
Respuesta
Utilizando el netsh interfaz conjunto uso de la interfaz [name =] ifname [[admin =] Activado | DISABLED [connect =] CONECTADOS | DESCONECTADO [newname =] NuevoNombre]
intente incluir todo dentro de la soportes exteriores: netsh interface nombre de la interfaz del sistema = "thename" admin = deshabilitado connect = DESCONECTADO newname = "thename"
Véase también esta página ms KB: http://support.microsoft.com/kb/262265/ Se podría seguir cualquiera de sus sugerencias. Para deshabilitar el adaptador, deberá determinar una forma de referenciar el dispositivo de hardware. Si no hay varios adaptadores con el mismo nombre en la computadora, es posible que se salga de la Descripción de la interfaz (o la ID de PCI funciona bien). Después de eso, usando devcon (disable | enable). Devcon es una interfaz de consola complementaria para Device Manager.
La herramienta devcon puede controlar la NIC, pero no la interfaz directamente. Es una versión de línea de comandos del applet del Administrador de Dispositivos.
devcon disable (id or portion of name)
devcon enable (id or portion of name)
Parece que no funciona con las interfaces de red. "devcon enable wifi", donde wifi es el nombre de la interfaz inalámbrica responde: "No dispositivos habilitados". – tzot
esto es VB.Net
Dim objectQuery As New ObjectQuery("SELECT * FROM Win32_NetworkAdapter WHERE NetConnectionId IS NOT NULL")
Dim searcher As New ManagementObjectSearcher(scope, objectQuery)
Dim os As ManagementObject
Dim moColl As ManagementObjectCollection = searcher.Get()
Dim _list As String = ""
For Each os In moColl
Console.WriteLine(os("NetConnectionId"))
Next os
que hará que todas las interfaces en su computadora. Entonces puedes hacer netsh para deshabilitarlo.
netsh interface set interface DISABLED
He intentado en el pasado todas las combinaciones que netsh sugiere: 'netsh interface set interface [name =] wifi [admin =] DISABLED' con cualquiera de" El parámetro es incorrecto "o" Uno o más parámetros esenciales es incorrecto " mensajes. – tzot
wmi doesnt funciona en xp –
Me parece que no puede encontrar ninguna API básica para el control de interfaces en MSDN, aparte de la RAS API, pero no creo que se aplican a las conexiones de acceso telefónico no. Como se sugiere a sí mismo, netsh podría ser una opción, supuestamente también tiene una interfaz programática: http://msdn.microsoft.com/en-us/library/ms708353(VS.85).aspx
Si quiere ser Python puro, quizás pueda abrir un conjunto de tuberías para comunicarse con un proceso netsh.
Es posible que deba utilizar WMI. Esto puede servir como un buen punto de partida: http://msdn.microsoft.com/en-us/library/aa394595.aspx
Es un buen punto de partida. Estoy trabajando en ello. Gracias. – tzot
Hasta ahora he encontrado la siguiente solución Python:
>>> import wmi; c=wmi.WMI()
>>> o=c.query("select * from Win32_NetworkAdapter where NetConnectionID='wifi'")[0]
>>> o.EnableDevice(1)
(-2147217407,)
que se traduce, AFAIU, al genérico de error 0x80041001 de WMI. Podrían ser permisos
Obviamente estoy ejecutando esto como miembro del grupo de administradores locales, y la computadora no es parte de un dominio. – tzot
Traceback (última llamada más reciente): Archivo "C: \ Python33 \ lib \ site-packages \ wmi.py", línea 416, en __call__ resultado = self.ole_object.ExecMethod_ (self.method.Name) Archivo "
@HaifengLi: gracias, pero ya no uso Windows, y ninguno de los códigos anteriores se probó en Python 3 (tenga en cuenta la fecha de la respuesta). – tzot
Encontré este script .VBS en internet. Tiene la ventaja de trabajar en máquinas donde no puedo hacer que NETSH funcione para este propósito.
Const ssfCONTROLS = 3
sConnectionName = "Local Area Connection"
sEnableVerb = "En&able"
sDisableVerb = "Disa&ble"
set shellApp = createobject("shell.application")
set oControlPanel = shellApp.Namespace(ssfCONTROLS)
set oNetConnections = nothing
for each folderitem in oControlPanel.items
if folderitem.name = "Network Connections" then
set oNetConnections = folderitem.getfolder: exit for
end if
next
if oNetConnections is nothing then
msgbox "Couldn't find 'Network Connections' folder"
wscript.quit
end if
set oLanConnection = nothing
for each folderitem in oNetConnections.items
if lcase(folderitem.name) = lcase(sConnectionName) then
set oLanConnection = folderitem: exit for
end if
next
if oLanConnection is nothing then
msgbox "Couldn't find '" & sConnectionName & "' item"
wscript.quit
end if
bEnabled = true
set oEnableVerb = nothing
set oDisableVerb = nothing
s = "Verbs: " & vbcrlf
for each verb in oLanConnection.verbs
s = s & vbcrlf & verb.name
if verb.name = sEnableVerb then
set oEnableVerb = verb
bEnabled = false
end if
if verb.name = sDisableVerb then
set oDisableVerb = verb
end if
next
'debugging displays left just in case...
'
'msgbox s ': wscript.quit
'msgbox "Enabled: " & bEnabled ': wscript.quit
'not sure why, but invokeverb always seemed to work
'for enable but not disable.
'
'saving a reference to the appropriate verb object
'and calling the DoIt method always seems to work.
'
if bEnabled then
' oLanConnection.invokeverb sDisableVerb
oDisableVerb.DoIt
else
' oLanConnection.invokeverb sEnableVerb
oEnableVerb.DoIt
end if
'adjust the sleep duration below as needed...
'
'if you let the oLanConnection go out of scope
'and be destroyed too soon, the action of the verb
'may not take...
'
wscript.sleep 1000
- 1. Batch Script - Crear usuario en Windows XP mediante programación
- 2. Cerrar sesión usuario de Win XP mediante programación en C#
- 3. Desconexión de conectividad de red mediante programación
- 4. "Reparar" las conexiones de red mediante programación/desde la línea de comandos
- 5. ¿Cómo enumerar todas las interfaces de red disponibles?
- 6. Instalación de servicios de Windows mediante programación
- 7. Reiniciar mediante programación un servicio de Windows
- 8. ¿Cómo mover la barra de tareas de Windows mediante programación?
- 9. recuperando información detallada del dispositivo midi usb en Windows XP
- 10. Medir el tráfico de red mediante programación en iPhone
- 11. de vigilancia en Windows XP
- 12. ¿Cómo instalar un servicio de Windows mediante programación en C#?
- 13. ¿Cómo detener un servicio de Windows mediante programación?
- 14. Cómo responder mediante programación a Snap en Windows 8 Metro
- 15. ¿Cómo descubrir mediante programación unidades de red mapeadas en el sistema y sus nombres de servidor?
- 16. ¿Cómo puedo manipular mediante programación las ubicaciones de iconos de escritorio de Windows?
- 17. En Windows XP, mediante programación set archivo de paginación a "Sin archivo de paginación" en la única unidad c:
- 18. DateTime.ToLocalTime en Windows XP
- 19. Cómo reiniciar mediante programación?
- 20. ¿Cómo abortar el apagado en Windows (XP | Vista) programáticamente?
- 21. Cómo simular bajo ancho de banda (retardo de red) en localhost (ejecutándose en WAMP, Windows XP)?
- 22. ¿Cuáles son las principales diferencias entre la programación para Windows XP y Vista?
- 23. mediante programación en C#
- 24. Pydoc no funciona (Windows XP)
- 25. ¿Cómo ejecutar las configuraciones de lanzamiento de Eclipse mediante programación?
- 26. Extraiga las tablas en PDF mediante programación
- 27. MySQL: ¿Cómo determinar las relaciones de claves foráneas mediante programación?
- 28. ¿Cómo hacer solo las preferencias de lectura (rellenas mediante programación)?
- 29. Cambiar el usuario del servicio de Windows mediante programación
- 30. Habilitar/deshabilitar mediante programación la conexión
La inclusión de todas las opciones produce el siguiente mensaje: "Las interfaces dedicadas no pueden conectarse, desconectarse, habilitarse o deshabilitarse". Debería funcionar, pero no es así. Sin embargo, no lo han probado en otra computadora; Voy a. Gracias. – tzot
Tengo el mismo problema extraño. Netsh parece no funcionar como se esperaba, en este sistema Windows XP estoy tratando de hacer esto. –
¿ha encontrado una solución para el error 'interfaces dedicadas no puede ...'? – scape