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