Note that this script was written to upgrade switches by type; i.e. run once to upgrade a batch of 2960 switches, run a second time to upgrade a batch of 3750 switches. Mixing switch types in the same iteration will make your network VERY unhappy.........
The following caveats apply:
Switch must be a relatively recent Catalyst model. I've tested it successfully on the following models:
The template is dependent on the relevant *.tar image file being available in the \TFTP-Root directory of your Core Server, and the script will ask you for the full filename of the *tar file as a variable (please note you don't need the full pathname, just make sure you include the extension). Please note that the older *.bin type IOS files will not work with this template: it uses the archive download-sw command which expects the *.tar filetype so that it can upgrade the web-based management tool etc.)
The section .PARAMETER_DESCRIPTION is simply a list of available IOS tar images on the core tftp server: you should amend this list to reflect the versions that you use. I've put it there as it makes it easy to copy and paste the image filename when running the script.
The template will ask for a time to reload the switches in 24hr format as a variable.
This config does NOT work on NX-OS switches!!!
Feel free to suggest amendments, or take it and improve it!!