Ключ NTEContextList отсутствует в реестре в Windows 7 / 2008 и новее

У меня есть код, который с помощью удаленного реестра получает все IP-адреса, настроенные на компьютере.
Я использую следующий ключ:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{GUID}\NTEContextList определить, включены ли IP-адреса интерфейса или нет.

Если значение равно 0, я предполагаю, что текущий интерфейс не имеет значения / отключен и не содержит список IP-адресов, настроенных на компьютере.
Если значение не 0, я беру ips, перечисленные в IPAddress значение или DhcpIPAddress значение (в зависимости от DhcpEnabled значение.

Проблема, с которой я сталкиваюсь, заключается в том, что на компьютерах с Windows 7 / Server 2008 и новее этот ключ отсутствует. Есть ли у вас какие-либо идеи, где они спрятаны / какой другой ключ я могу использовать для определения релевантности IP-адресов интерфейса или нет?

Благодарю.

1 ответ

Если у кого-то возникнет такой вопрос - вы можете использовать WMI-запрос для сетевых карт с NetEnabled == True, начиная с Vista/2008, - не забывайте, что необходимы учетные данные администратора:

    $enabledNICs = @()
        try 
        {
            $enabledNICs = Get-WmiObject win32_networkadapter -ComputerName $ComputerName -Credential $Credential -Filter "netenabled=true" 
        }
        catch
        {
            Write-Error "The computer $ComputerName is not accessible for WMI query"
            continue
        }
Другие вопросы по тегам