Skip to content

Releases: hugoremington/ipconfig2

v1.0.1.0

06 Apr 03:26
0f83a5d

Choose a tag to compare

1.0.1.0 - 06-Apr-2026

  • New feature: Created a Windows Installer MSI package thanks to Advanced Installer.
  • Install automatically provisions PATH environment variable, so you can run ipconfig2 directly via terminal or CMD prompt without requiring app path/directoy. Simply type ipconfig2. You will need to re-open Terminal/CMD for environment veriable to take into effect. Automatic removal during uninstallation for sanitisation.
  • Code optimisation: Omitted Get-SystemType redundant function from within threaded function Get-LocalNicIpData, as I can now parse $NetworkAdapterConfiguration from the main script function to $nicJob multithread scriptblock by using comma array -ArgumentList (,$NetworkAdapterConfiguration). Improved memory efficiency and performance.
  • Various other bugfixes including omitting unnecessary params from $allInfo = Get-AllSystemInfo call.
  • To do: Parse $NetConnectionQuery = Get-NetConnectionProfile from Get-Metadata to $nicJob without corrupting other args/params. This should optimise memory efficieny even further. Not a priority.

v1.0.0.0

05 Apr 09:26
a41aa3f

Choose a tag to compare

1.0.0.0 - 05-Apr-2026

  • This release now completes version 1.0.0.0, as all definitions of done are now fulfilled. IPConfig2 now supports most of the data points as native ipconfig2, plus more.
  • New feature: Save to file! It can now export the report as a TXT file using the /outfile switch.
  • Overall performance optimisation thanks major code refactorisation including multithreads, memory param/return functions. Uses ~50% less memory than v0.5.0.6. Runs ~50% quicker.
  • Major code refactor and optimisation: Deprecated all Write-Host commands, superseding it with memory using $output array. Output is now controlled and parsed using in memory by using params and return vars. This improves efficiency and is the approach for standardisation.
  • Major code refactor and optimisation: Created new function called Invoke-SaveFile. Using this for save file operation. Now supports folder creation if directory does not exist. Also falls back to a default path of "$env:windir\Logs\ipconfig2".
  • Major code refactor and optimisation: Enabled multithreading for big function Get-LocalNicIpData using $nicjob Start-Job. This should improve performance.
  • Resolved $NetworkAdapterConfiguration parse error in $nicjob.
  • ipconfig2 now detects if system support CIM, else falls back on WMI. This improves OS compatibility and robustness. Refactored in Get-AllSystemInfo function.
  • Optimised memory efficieny even more by reducing class reference to Win32_NetworkAdapterConfiguration (retained a seperate instance in Get-LocalNICIpData function due to performance multithreading). Achieved this by calling the class only a single instance in Get-AllSystemInfo, and parsing in memory using return/param functions.
  • Significantly improved /release and /renew functions. No more nested loops. Reporting accurately. Using memory where possible. With CIM and WMI fallback for legacy support.
  • Due to a catch-22 situation, requiring metadata -> release/renew -> Get-LocalNic Ip data function and multithreading flow, I needed to seperate CIM/WMI system calls outside of the Get-Metadata function.
  • Created a new function called Get-SystemType which detects if OS supports CIM/WMI. Then makes single call to class Win32_NetworkAdapterConfiguration. Memory efficiency.
  • Appended necessary $args and validation logic to ensure /outfile successfully saves to custom path, and default environment log directory. Error and exception handling now in place as guardrails.
  • Fixed a rare glitch where the Interface description would output redundantly during ipconfig2 /release. Now checking IPv4 and IPv6 duplicates correctly, even if no IP address exists or is obtaining DHCP.
  • Omitted ipconfig2 /release, sleep-timer as a workaround solution, now that the root-cause is remediated.
  • Supports both /resetwinsock and /winsockreset switches for the same function, as a typo fallback.
  • Removed colourisation, due to $output memory replacing write-host. More streamline.
  • Fixed a bug where /flushdns, /release, /renew, /resetwinsock functions were executing twice due to redundant calls in main args and Display-Output function. This has improved performance and resolved other cosmetic issues.
  • Fixed a bug with nested loops within /release and /renew commands. Improved speed.
  • Resolved DHCP /release /renew function output accuracy, now reporting correct interface(s), service and timestamps.
  • DHCP Renew now only scoped to IPEnabled interfaces for speed.
  • Now parsing $metadata out from Display-Output function as return var. Using this in other functions as params such as Invoke-SaveFile. Better memory optimisation, less system calls.
  • Improved WiFi output; Now filtering for WiFi profile using $WifiProfileName and $netProfileType vars in Get-Metadata function.
  • Fixed bug where IP output table contained stale entries post-release/renew commands. Resolved by re-ordering args switches in Dislay-Output function.
  • Additional checks in output for WiFi connected vs disconnected to display last known ssid/key.
  • Various other bugfixes and improvements.
  • Bug: Wi-Fi output can be inaccurate if you release/renew WiFi NIC DHCP, but will report correctly after reconnection to SSID.

v0.5.0.5

02 Apr 17:35
4df5682

Choose a tag to compare

0.5.0.5 - 03-Apr-2026

  • Hotfix cosmetic.
  • Code optimisation; Complete code is now in modular functions, except for Args and Calls.
  • Fixed Netbios over tcpip data point. Now reporting correctly.
  • Fixed primary dns suffix and dns suffix search list data points. Now reporting correctly, and applied methods to removed empty array values.
  • Fixed wifi ssid/key reporting accuracy. Was previously broken due to null var $netProfileName, which I have now parsed into Get-LocalNicIpData using $netProfileName = (Get-AllSystemInfo).Metadata.NetProfileName.
  • New /all switch using $showAll var bool flag, to display extended information including DHCP, DNS, Public ISP, disconected interfaces, and more.
  • Default output is now succinct.

v0.5.0.4

01 Apr 14:09
ff70a11

Choose a tag to compare

0.5.0.4 - 02-Apr-2026

  • New /flushdns function. Will report on total stale DNS cache entries and clear in one go.
  • New /resetwinsock function. Resets the Winsock catalog to a clean state. Handy feature.
  • Replaced static variables with $null and $LASTEXITCODE for propert exception handling in /release and /renew functions. Useful for exception handling when using cmd such as netsh.
  • Bug fix reporting and fault-tolerance for /release and /renew functions. Now with CIM and WMI fallback properly detecting success/failure exceptions and fault tolerance between both methods. Preferring modern CIM first.
  • New timestamp feature, now reports on operations.
  • Various fixes and tweaks.

v0.5.0.3

01 Apr 02:30
498967d

Choose a tag to compare

0.5.0.3 - 01-Apr-2026

  • Changed the conditions for displaying received/sent bytes to if greater than zero, rather than if media state is connected. Useful for observing stats retrospectively on disconnected interfaces.
  • This also fixes output for missing data point interfaces such as Bluetooth that do not have this telemetry yet.

v0.5.0.2

01 Apr 01:46
7a75367

Choose a tag to compare

0.5.0.2 - 01-Apr-2026

  • Improved DHCP release/renew functions to use modern CimInstance methods. Retained classic WMIObject methods as a fallback using try/catch blocks.
  • Improved output table even more. Now more efficient and consistent with less foreach loops.
  • More output now visible irrespective to media state, such as physical MAC address, dhcp, and more.
  • Improved metadata table which now dynamically displays multiple network profiles where available.
  • Slight formatting tweaks.

v0.5.0.1

31 Mar 14:22
b8dd14d

Choose a tag to compare

0.5.0.1 - 01-Apr-2026

  • Minor cosmetic bug fix with line spacing before/after release/renew commands.
  • Improved cosmetic line spacing after splash screen, more consistent with entire script.

0.5.0.0 - 01-Apr-2026

  • April Fool's Day major update, this release is no joke!
  • New feature: ipconfig2 /release switch to release DHCP leases on local system. Factored in new function called Invoke-IPConfigRelease. This is independent from Windows native ipconfig and a viable fallback feature.
  • New feature: ipconfig2 /renew switch to renew DHCP IP addresses on local system. Factored in new function called Invoke-IPConfigRenew. This is independent from Windows native ipconfig and a viable fallback feature.
  • Now supporting NICs with multiple IP addresses! This was not working previously due to output syntax.
  • Now displays hidden DHCP 169.254 addresses.
  • Implemented new line break concatenation for multiple output values using (-join "`n "). This now grants streamline output structure for elements such as NIC DNS server.
  • Refactored output tables, resolving multiple duplication bugs and hidden values.
  • Resolved duplicate NIC rows when releasing DHCP IP.
  • Resolved value duplication in metadata output when releasing DHCP IP. By filtering basic using ( | Select-Object -First 1) in metadata output table.
  • Implemented start-sleep timer after IP release to compile output table correctly.
  • Significantly improved IP release/renew performance times within Invoke functions by filtering with where-object logic: $_.InterfaceIndex -eq $($adapter.IfIndex). More efficient.
  • Appended IPv4 and IPv6 distinguishment for subnet prefix length.
  • Sort-object when releasing/renewing IPs by InterfaceMetric number. This now resolves the bug where NICs would sequentially failover and not be scoped for DHCP release.
  • Fixed IP release by omitting logic IPEnabled, ensuring even disconnected NICs drop their DHCP lease.
  • Numerous bug fixes.

v0.5.0.0

31 Mar 13:59
2a435eb

Choose a tag to compare

0.5.0.0 - 01-Apr-2026

  • April Fool's Day major update, this release is no joke!
  • New feature: ipconfig2 /release switch to release DHCP leases on local system. Factored in new function called Invoke-IPConfigRelease. This is independent from Windows native ipconfig and a viable fallback feature.
  • New feature: ipconfig2 /renew switch to renew DHCP IP addresses on local system. Factored in new function called Invoke-IPConfigRenew. This is independent from Windows native ipconfig and a viable fallback feature.
  • Now supporting NICs with multiple IP addresses! This was not working previously due to output syntax.
  • Now displays hidden DHCP 169.254 addresses.
  • Implemented new line break concatenation for multiple output values using (-join "`n "). This now grants streamline output structure for elements such as NIC DNS server.
  • Refactored output tables, resolving multiple duplication bugs and hidden values.
  • Resolved duplicate NIC rows when releasing DHCP IP.
  • Resolved value duplication in metadata output when releasing DHCP IP. By filtering basic using ( | Select-Object -First 1) in metadata output table.
  • Implemented start-sleep timer after IP release to compile output table correctly.
  • Significantly improved IP release/renew performance times within Invoke functions by filtering with where-object logic: $_.InterfaceIndex -eq $($adapter.IfIndex). More efficient.
  • Appended IPv4 and IPv6 distinguishment for subnet prefix length.
  • Sort-object when releasing/renewing IPs by InterfaceMetric number.
  • Fixed IP release by omitting logic IPEnabled, ensuring even disconnected NICs drop their DHCP lease.
  • Numerous bug fixes.

v0.4.1.1

30 Mar 14:55
4203d39

Choose a tag to compare

0.4.1.1 - 31-Mar-2026

  • Fixed network profile category not appearing in certain conditions.
  • Appended Internet connectivity checks in metadata.
  • Fixed display wording for Autoconfiguration enabled.
  • Fixed display wording for NetBIOS over Tcpip.

v0.4.1.0

30 Mar 14:02
994618d

Choose a tag to compare

0.4.1.0 - 31-Mar-2026

  • Appended network profile category into metadata output table.
  • Refactored IPv6 output, omitted LocalLinkAddress from retun tables. Appended better logic in output display area for both IPv4 and IPv6 sections.
  • Fixed External DNS Server reporting by appending -join operator for multi support.
  • Omitted $cleanIPv6.
  • Omitted duplicate Media Type output code in both if/else conditions.
  • Media Type now displays nicely underneat Media State.
  • Slight re-wording and optimisation.