1. Provide the user's sip address.
  2. The system will confirm the user's name so you're happy to move on.
  3. The user's data will be exported to a folder on your local C drive (Path is always C:\y0av\users\<username>)
  4. The user's Get-CsUser data will be exported to a text file in the same folder so you can compare the settings once you're done.
  5. The user will be disabled, and the script will run Update-CsUserDatabase and pause for 15 seconds.
  6. The user will then be enabled and the script will pause for another 15 seconds. The purpose of the pauses is to allow for the changes to set in. I tested various environments and 30 seconds seems like enough time. I'll add the option to change the pause in future versions.
  7. The user's polices will be re-applied.
  8. The system will run Update-CsUserDatabase and Update-CsAddressBook to reflect the changes.
  9. The user's data dump is saved in the C:\y0av\users folder, and you can manually delete it if you feel you no longer need it.


What's missing?

What's the bonus?

All the tests I made show that the script runs fast enough to not interfere with the user's activity; I ran this against a user during a call, the script completed and the call never disconnected. Try this on a test account before killing someone's call in your organization... :)