0

我有一个代码,它使用远程注册表获取计算机上配置的所有 IP。
我正在使用以下密钥: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{GUID}\NTEContextList确定接口的 IP 是否已启用。

如果值为 0,我假设当前接口不相关/已禁用,并且不包含计算机上配置的 IP 地址列表。
如果值不为 0,我取IPAddressvalue 或DhcpIPAddressvalue 中列出的 ips(取决于DhcpEnabledvalue.

我面临的问题是在具有 Windows 7 / Server 2008 及更高版本的计算机上,缺少此密钥。您是否知道它隐藏在哪里/我可以使用其他什么键来确定接口的 IP 是否相关?

谢谢。

4

1 回答 1

0

如果有人有这个问题 - 您可以使用 NetEnabled == True 从 Vista/2008 开始对 NIC 使用 WMI 查询 - 不要忘记需要管理员凭据:

    $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
        }
于 2013-12-05T07:58:53.750 回答