Are you controlling the return code in the script? How does the script finish, WScript.Quit(0), etc...
I have never pushed any signature changes in Outlook but here are some ideas.
Note: how the signature has to be changed find out if it has to be within the user(s) profile
You may have to deploy under the user account vs trying to deploy it under the system account.
Also, If it is a user account or user reg hive change make sure their rights are able to make those kinds of changes.
(example: You can't push a reg change as the user if GP prevents the user from using regedit)
Making sure Outlook isn't open:
This may be annoying to your end users, but it will kill Outlook.
Dim objProcesses, objProcess
Set objProcesses = GetObject("WinMgmts:root/CIMV2").ExecQuery( _
"SELECT * FROM Win32_Process WHERE Name='OUTLOOK.exe'")
For Each objProcess In objProcesses
I found this on experts exchange, but have no proof it works for signatures.
Dim objShell, RegKey, Q
Set objShell = CreateObject("WScript.Shell")
strQuote = chr(34)
RegKey = "<Key>"
RegKey = RegKey & "\NewSignature"
objShell.RegWrite RegKey, "<Signature Name>"
objShell.Run "outlook /profile " & strQuote & "<Profile Name>" & strQuote
So I just got this to work with a little help from jdoe here.
I went to my scripting guy and was like, "dude, did you put in these return codes?" and he was all, "no man, I didn't think you wanted those."
So needless to say, we put some of those in, and then I modified the batch to this...
Set ResultCode =%ERRORLEVEL%
EXIT /B %ResultCode%
And it would fail if outlook was open, and would succeed if it wasn't.
Thank you very much jdoe.
Glad to hear that helped!