I know, finding the “maximum” MTU is a redundancy, as MTU is an acronym for “Maximum Transmission Units”. However, my needs were to find all the MTUs to each hop of a tracert. Like many scripts, Find-MaxMTU.ps1 turned out to be a cut and paste exercise. I started with the Find-MTU script written by Robin CM. I added to it a function which converts tracert output to an object written by Mathias R. Jessen. Because I wanted to be able to run this from Windows Core, I avoided my usual graphical inputs and instead used a host read method written by Scripting Guy Ed Wilson. I added a new bit of code for avoiding the PowerShell command window from closing:
#Pause if launched from shell with "Run with PowerShell" if (([Environment]::GetCommandLineArgs()) -match '&'){pause}
The resulting script will give you all the MTU to a selected destination, optionally including the MTU for all the intermediate hops. This will let you see the maximum of the MTUs — hence the name. The code is commented with the code attribution, and notes about what I changed.