Zend certified PHP/Magento developer

Automating Windows Reset processs as much as possible

This is something, I used to find myself doing occasionally, now that I am managing three windows PCs (Home, Work and on The go machine) its really becoming a hinderance, further more, I really need a solution that will minimise human errors and allow for conformity.

The things that I would like to automate:

  • Rename the PC and user folder to what it was (so that the directory structure remains intact)
  • Backing up and restoring windows “Open file with…” extension settings
  • Backing Up and restoring Windows Library data
  • Backing up and correctly Restoring Symbolic Links
  • Backing up and Restoring all Environment Variables such as Path etc
  • Restore the various settings that are found in the Modern Setting app such as
    • Taskbar position and if it shows on all monitors etc
    • Language settings
    • Disabling Hotkeys for Stick keyboard keys
    • etc
  • Explorer settings such as quick access settings

and lastly a means of installing a series of executables silently with predetermined installation options. Some of the software’s I am interested in installing, such as Everything 1.5, offer command line options to do this but I wonder if there are solutions that System admins rely on that are known to work on general installers.

I have picked up PowerShell (Core) and I feel fairly confident with it, so my plan is to write a script that will do the majority of these things in one go.

The problem I am facing is identifying how to achieve each one of these tasks in PowerShell, On a fresh windows Reboot, it will be Windows PowerShell that I have to work with.

For example, in the case of restoring windows “Open file with…” extension settings, is it really just a case of backing up this registry and then restoring it?

ComputerHKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts

I am not a System Admin at all and would love to hear input from such people.

Any help would be greatly appreciated!