2017-01-24 6 views
3

私は、エンタープライズ環境(IP、MACアドレスなど)で使用するコンピュータ情報を取得する、わずかなpowershell 3.0 GWMIスクリプトを作成しています。Powershellで予備IPを確認する方法

NetworkAdapterConfigurationのWMIプロパティを調べて、予約されたIPと動的に割り当てられたものを確認する方法があるかどうかを確認しようとしています。

誰にもWMIや他の場所からこれを引き出す方法についてのアドバイスはありますか? (推奨)は、常にIPがネットワーク上に予約されていることを示しますか?

私はpowershellとAzureについて多くの情報を見つけましたが、ローカルボックスでこれを理解するための情報はありません。

+1

'(のGet-WmiObjectコマンドのWin32_NetworkAdapterConfigurationを)あなたがアドレスが予約または動的れるかどうかを確認するためにDHCPサーバーをチェックする必要があります –

+1

.DHCPEnabled'。ホストは、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" 
} 
関連する問題