Sometimes you just have a ton of DHCP scopes and you just need to make sure they all have some specific options set the way you want. Scanning through them by hand can be a pain, so here is a quick script to scan over them rapidly.
Param( [Parameter(Mandatory=$True)] [string]$dnsServer, [string]$match, [string]$option ) $scopes = Get-DhcpServerv4Scope -ComputerName $dnsServer -ErrorAction:SilentlyContinue | Where {$_.Name -like "*$match*"} $Report = @() ForEach ($scope In $scopes) { $row = "" | Select ScopeID, Name, Option $OptionData = (Get-DhcpServerv4OptionValue -OptionID $option -ScopeID $scope.ScopeID -ComputerName $dnsServer -ErrorAction:SilentlyContinue).Value $OptionData = (Get-DhcpServerv4OptionValue -OptionID $option -ScopeID $scope.ScopeID -ComputerName $dnsServer -ErrorAction:SilentlyContinue).Value $row.ScopeID = $scope.ScopeID $row.Name = $scope.Name $row.Option = $OptionData -Join "," $Report += $row } $Report
This script takes a couple of parameters. Match lets you specify the name of the scope so that you can filter it down by the specific scopes, and option lets you specify the attribute number you would like to report on and dnsServer lets you specify the server. Some usage examples:
#report on each scopes gateway where the scope name has "vlan110" .\dhcp_query.ps1 -dnsServer dhcpServer1 -match vlan110 -option 3 #report on each scopes DNS where the scope name has "vlan110" .\dhcp_query.ps1 -dnsServer dhcpServer1 -match vlan110 -option 6 #report and then export into a CSV .\dhcp_query.ps1 -dnsServer dhcpServer1 -match vlan110 -option 6 | Export-CSV -Path dns_voip_options.csv -NoTypeInformation