Ключ 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
}