代码之家  ›  专栏  ›  技术社区  ›  tzot

如何以编程方式启用/禁用网络接口?(WindowsXP)

  •  11
  • tzot  · 技术社区  · 16 年前

    我需要从WindowsXP的脚本中启用/禁用完全的网络接口。我正在寻找一个python解决方案,但是任何一般的方法(例如wmi,一些命令行la netsh,一些windows调用)都是受欢迎的,并且将被调整。谢谢。

    7 回复  |  直到 16 年前
        2
  •  6
  •   tzot    16 年前

    >>> import wmi; c=wmi.WMI()
    >>> o=c.query("select * from Win32_NetworkAdapter where NetConnectionID='wifi'")[0]
    >>> o.EnableDevice(1)
    (-2147217407,)
    

        3
  •  2
  •   Warren P    13 年前

    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
    
        5
  •  0
  •   chrissie1    16 年前

    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
    

        6
  •  0
  •   Matt Everson    16 年前

    devcon

    devcon disable (id or portion of name)
    devcon enable (id or portion of name)