So I've updated the script with some new functionality and it also was a good opportunity for me to learn a few things. The biggest idea I got out of it was the fact that you want "clean" code that is well organized. Another one was the idea of commenting. I'm of the mindset that comments should describe what you're trying to do and not just the code itself (although it helps).
You will notice that if you run the script without any arguments, it doesn't display anything. If you wanted output, you will need to add the "-Verbose" or "-Debug" to the command when executing. I wanted this to be as silent as possible for use within automation tools such as SCCM or MDT.
Of particular interest is how I needed to remove the updates in Windows 8.1. So I was looking forward to using the DISM PowerShell Cmdlet's to remove the superseded updates in the Component Store, but I was surprised to find that none of the existing Cmdlet's had the equivalent functionality as opposed to running the DISM.exe utility itself. Hopefully the product team will complete the functionality of those Cmdlet's soon. Until then, I am simply calling "Start-Process" and pointing it to the DISM.exe itself to do the work.
Future work - I think I need to work on the identification of OS's. I think the logic is rough. For instance, What about Windows 8.0? Not sure I handle that well and I should look at that soon.
I've created for myself a Github Repo (first time for everything!) for this project and it's located here. As previously indicated, this is a learning experience for me with PowerShell. If you find something wrong or have a feature suggestion, please tell me.