This script is a really old PS v1 script that I put together for reading network configurations remotely. It uses a mix of WMI and remote registry reading (to get primary dns suffix). It gives roughly the same information that ipconfig /all will give
Example
PS C:\> get-ipconfig localhost
GUID : {5F09EE0E-A3AD-4C19-BEE1-84E8DFF27462}
HostName : MYWORKSTATION
NICName : [00000011] Intel(R) Centrino(R) Ultimate-N 6300 AGN
MacAddress : 24:77:03:DC:97:38
DHCPEnabled : True
DHCPServer : 192.168.0.1
IPAddress : {192.168.0.108, fe80::31b6:ee7:18b1:2820}
SubnetMask : {255.255.255.0, 64}
Gateway : {192.168.0.1}
DNSservers : {192.168.0.1}
DnsDomain :
PrimaryDnsSuffix :
DNSSearchList : {contoso.com, east.contoso.com}
WinsPrimary :
WinsSecondary :
$server = $args[0]
if ([string]::IsNullOrEmpty($server)) {
Write-Host -ForegroundColor "yellow" "Usage: Get-ipconfig "
Write-Host -ForegroundColor "yellow" " Provide the name of the remote computer to get most of the network"
Write-Host -ForegroundColor "yellow" " setting information provided by ipconfig /all. This uses a wmi"
Write-Host -ForegroundColor "yellow" " lookup on Win32_NetworkAdapaterConfiguration. For more precise"
Write-Host -ForegroundColor "yellow" " details, you can run a query against that."
Write-Host -ForegroundColor "yellow" " The script returns a PSObject, so you can use select-object,"
Write-Host -ForegroundColor "yellow" " and format commands to adjust the results as needed."
write-host
exit
}
###############
#Wmi query the network adapter configuration settings for all NIC chards that are using TCP/IP
###############
$querystr = "Select SettingID,caption,dnshostname,ipaddress,ipsubnet,dhcpenabled,DHCPServer,DnsDomain,"
$querystr += "Macaddress,Dnsserversearchorder,dnsdomainsuffixsearchorder,winsprimaryserver,winssecondaryserver,"
$querystr += "defaultipgateway From Win32_NetworkAdapterConfiguration Where IPEnabled = True"
$nicsettings = gwmi -query $querystr -ComputerName $server
if ($nicsettings -eq $null) {
Write-Host -ForegroundColor "red" "WMI lookup failed"
return $null
}
########################################
#Get primary dns suffix (from registry)#
########################################
$key = "Software\Policies\Microsoft\System\DNSClient"
$type = [Microsoft.Win32.RegistryHive]::LocalMachine
$regkey = [Microsoft.win32.registrykey]::OpenRemoteBaseKey($type,$server)
$regkey = $regkey.opensubkey($key)
$primarysuffix = $regkey.getvalue("PrimaryDnsSuffix")
########################################
#############
#Build PSobject of results in an array to return
############
$results = New-Object collections.arraylist
foreach ($entry in $nicsettings) {
$myNic = New-Object PSobject
Add-Member -InputObject $myNic NoteProperty GUID $entry.SettingID
Add-Member -InputObject $myNic NoteProperty HostName $entry.dnshostname
Add-Member -InputObject $myNic Noteproperty NICName $entry.caption
Add-Member -InputObject $myNic NoteProperty MacAddress $entry.MacAddress
Add-Member -InputObject $myNic NoteProperty DHCPEnabled $entry.dhcpenabled
if ($entry.dhcpenabled) {
Add-Member -InputObject $myNic NoteProperty DHCPServer $entry.Dhcpserver
}
Add-Member -InputObject $myNic NoteProperty IPAddress $entry.ipaddress
Add-Member -InputObject $myNic NoteProperty SubnetMask $entry.ipsubnet
Add-Member -InputObject $myNic Noteproperty Gateway $entry.defaultipgateway
Add-Member -InputObject $myNic Noteproperty DNSservers $entry.dnsserversearchorder
Add-Member -InputObject $myNic Noteproperty DnsDomain $entry.dnsdomain
Add-Member -InputObject $myNic Noteproperty PrimaryDnsSuffix $primarysuffix
Add-Member -InputObject $myNic Noteproperty DNSSearchList $entry.dnsdomainsuffixsearchorder
Add-Member -InputObject $myNic Noteproperty WinsPrimary $entry.winsprimaryserver
Add-Member -InputObject $myNic Noteproperty WinsSecondary $entry.winssecondaryserver
$results.add($myNic) > $null
}
return $results
No comments:
Post a Comment