2017-01-24 14 views
3

Я работаю над небольшим сценарием 3.0 GWMI, который извлекает компьютерную информацию для использования в корпоративной среде (IP, MAC-адрес и т. Д.).Как проверить зарезервированный IP-адрес с помощью Powershell

Я пытаюсь пройти через свойства WMI для NetworkAdapterConfiguration, чтобы узнать, есть ли способ проверить зарезервированный IP-адрес по сравнению с динамически назначенным.

У кого-нибудь есть советы о том, как вытащить это из WMI или в другое место? Всегда ли (желательно) указывает, что IP зарезервирован в сети?

Я нахожу много информации для powershell и Azure, но не тонну для выяснения этого в местном ящике.

+1

'(Get-WmiObject Win32_NetworkAdapterConfiguration) .DHCPEnabled' –

+1

Вы должны были бы проверить на сервере DHCP, чтобы увидеть, если адрес зарезервирован или динамический. Хост не может знать, был ли зарезервированный DHCP-адрес зарезервирован на сервере DHCP или если адрес был просто назначен из динамической области. –

ответ

2

Как отметил Рон Мопин, хост-компьютеры будут знать только, были ли они назначены адресаты с DHCP, а не в случае резервирования. Но они сообщают, от какого DHCP-сервера они получили свой адрес. Таким образом, вы можете запросить этот сервер (при условии, что у вас есть разрешения на чтение).

Вот сценарий, который после получения информации с компьютера через WMI будет проверяться с DHCP-сервером, если существует оговорка.

$ComputerName = "ExampleComputer" 
$NetAdapters = Get-WmiObject Win32_NetworkAdapterConfiguration -ComputerName $ComputerName | ? {$_.DHCPEnabled -eq $True -and $null -ne $_.IPAddress} 
If ($NetAdapters) { 
    Foreach ($Adapter in $NetAdapters) { 
     foreach ($IP in $Adapter.IPAddress) { 
      $Reservation = Get-DhcpServerv4Reservation -ScopeId $IP -ComputerName $Adapter.DHCPServer | ? {$_.ScopeId -eq $_.IPAddress} 
      If ($Reservation) { 
       Write-Output "$IP is reserved on $($Adapter.DHCPServer)." 
      } Else { 
       Write-Output "$IP does not have a reservation." 
      } 
     } 
    } 
} Else { 
    Write-Output "No DHCP Enabled NetAdapters with IPAddresses exist on host, likely Static" 
}