2017-01-24 46 views
3

我正在研究一個能夠在企業環境(ip,mac地址等)中使用的拉動計算機信息的小PowerShell 3.0 GWMI腳本。如何使用Powershell驗證保留的IP地址

我試圖通過WMI屬性NetworkAdapterConfiguration來查看是否有辦法檢查保留的IP與動態分配的IP。

有沒有人有關於如何從WMI或其他地方拉這個建議? (首選)是否總是表明IP在網絡上被保留?

我發現了很多關於PowerShell和Azure的信息,但在本地盒子上找不到這個信息。

+1

'(GET-WmiObject可以Win32_NetworkAdapterConfiguration的).DHCPEnabled' –

+1

您需要檢查在DHCP服務器上,看看地址是保留還是動態的。主機不知道在DHCP服務器上是否保留了DHCP分配的地址,或者是否只是從動態範圍分配地址。 –

回答

2

正如Ron Maupin所說,主機只會知道他們是否被分配了一個來自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" 
}