Главная > Windows > Как удалить несуществующую сетевую карту

Как удалить несуществующую сетевую карту

2 апреля 2015

Чтобы удалить извлеченную сетевую карту или любое другое устройство нужно в командной строке с повышеными привилегиями выполнить:

set devmgr_show_nonpresent_devices=1
start devmgmt.msc

Откроется Диспетчер устройств в котором нужно включить отображение скрытых устройств в меню «Вид->Показать скрытые устройства»
showhiddendevices
После чего можно удалить любое скрытое или извлеченное устройство.

Также можно использовать vbs скрипт который автоматически включит отображение скрытых устройств.
Скопировать и сохранить код как ShowNotPresentDevices.vbs
Запускать с повышенными привилегиями

Option Explicit

Const SW_HIDE = 0


Dim elem
Dim strNewEnvironment

Dim objSWbemObjectEx
Dim lngProcessID

Dim objMenuItem

Dim strTempFileName


If Not WScript.Arguments.Named.Exists("ShowDevMgmt") Then
    With GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
        strNewEnvironment = _
            "DEVMGR_SHOW_NONPRESENT_DEVICES=1" & vbCrLf & _
            "DEVMGR_SHOW_DETAILS=1"
        
        For Each elem In WScript.CreateObject("WScript.Shell").Environment("Process")
            If Left(elem, 1) <> "=" Then
                strNewEnvironment = strNewEnvironment & vbCrLf & elem
            End If
        Next
        
        
        Set objSWbemObjectEx = .Get("Win32_ProcessStartup").SpawnInstance_
        
        objSWbemObjectEx.ShowWindow           = SW_HIDE
        objSWbemObjectEx.EnvironmentVariables = Split(strNewEnvironment, vbCrLf)
        
        If .Get("Win32_Process").Create( _
            "wscript.exe """ & WScript.ScriptFullName & """ /ShowDevMgmt", Null, objSWbemObjectEx, lngProcessID _
            ) <> 0 Then
            
            WScript.Echo "Process [wscript.exe """ & WScript.ScriptFullName & """] could not be created."
        End If
        
        Set objSWbemObjectEx = Nothing
    End With
Else
    With WScript.CreateObject("MMC20.Application")
        .Load "devmgmt.msc"
        
        With .Document
            With .ActiveView
                .Frame.Maximize
                
                For Each objMenuItem In .ScopeNodeContextMenu
                    If objMenuItem.Path = "Вид->Показать скрытые устройства" Then
                        If objMenuItem.Enabled = 1 Then
                            objMenuItem.Execute
                            
                            Exit For
                        End If
                    End If
                Next
                For Each objMenuItem In .ScopeNodeContextMenu
                    If objMenuItem.Path = "View->Show hidden devices" Then
                        If objMenuItem.Enabled = 1 Then
                            objMenuItem.Execute
                            
                            Exit For
                        End If
                    End If
                Next 
           End With
            
            If .IsSaved = 0 Then
                strTempFileName = GetTemporaryFileName()
                .SaveAs strTempFileName
                
                WScript.CreateObject("Scripting.FileSystemObject").DeleteFile strTempFileName, True
            End If
        End With
        
        .UserControl = 1
    End With
End If

WScript.Quit 0
'=============================================================================

'=============================================================================
Function GetTemporaryFileName()
    Const TEMP_FOLDER = 2
    
    Dim strTempFile
    
    
    With WScript.CreateObject("Scripting.FileSystemObject")
        Do
            strTempFile = .BuildPath(.GetSpecialFolder(TEMP_FOLDER), .GetTempName)
        Loop While .FileExists(strTempFile)
    End With
    
    GetTemporaryFileName = strTempFile
End Function
'=============================================================================
Categories: Windows Tags:
Комментирование отключено.