My manager asked me to deploy an application: "Should be simple", he said. "It's a Setup.exe and part-way through the installer, the user has to make a choice from a drop-down menu - they must select 'Sage Enterprise Management' and you know they wont, so make sure that part's automated.
"After that, I have one more urgent deployment; you'll need to customise an xml file which needs to be copied to a specific folder structure that may or may not already exist on the computer. And there's an Excel Add-in - so we'll need it to be automatically picked up by Excel and activated so that the tab appears with no end-user config. Should be a piece of cake."
Are you fed up of sand being kicked in your face? Exactly how do you deploy a PowerShell script? What if it's a function? What if it's not? What if it accepts parameters? How do you know which properties of your MSI can be tweaked and even more importantly, how do you know what values can be passed to them? What about detection rules? What if there's nothing to detect? Help!
If you would like to know how to achieve all of this and much, much more using Microsoft Configuration Manager (SCCM) and PowerShell then you will want to read this book.