One of the biggest gripes from clients when their workstation is reimaged is the fact that they lose their Outlook Signature. Because Exchange cannot store personalised signatures on the server layer it has always been a manual process to reinstate (or recreate) the signature file.
I have come up with the following solution to backup and restore a user's signature when they self service an upgrade or rebuild of their PC from Software Centre.
Note: This is not an ideal solution, but it works just fine for when a workstation has 1 primary machine, and they are the one who kicks off the rebuild, it would not work in a hotdesk environment
1. Create a shared folder with domain user read/delete access
EG \\server\signaturebackup$ , create a subfolder here called "Users"
2. Create a super basic batch file with the following contents, save as restoresig.bat:
3. Create a powershell file and copy in the following, place this in your sccm scripts folder:
xcopy \\server\signaturebackup$\Users\%username% C:\Users\%username%\AppData\Roaming\Microsoft\Signatures /I /E /Y
rmdir \\server\signaturebackup$\Users\%username% /S /Q
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce\" /v "RestoreEmailSig" /F
#Get currently logged in user, you cannot use %username% as it would return as SYSTEM
$user = Get-WMIObject -class Win32_ComputerSystem | select username
#Remove domain name from string
$user = $user.username.ToString().ToUpper().Replace("DOMAIN\","")
#Change case to lower
$user = $user.ToString().ToLower()
#Copy files to servver share
xcopy "C:\Users\$user\AppData\Roaming\Microsoft\Signatures" "\\server\SignatureBackup$\Users\$user" /I /E /Y
4. In your default workstation policy, create a User/Registry preference with the following:
5. In your task sequence, create a step at the start of your "User Initiated" TS with :
This is a crude way to do it, but it works.