this works for me:
<!-- : --- Self-Elevating Batch Script ---------------------------
@whoami /groups | find "S-1-16-12288" > nul && goto :admin
set "ELEVATE_CMDLINE=cd /d "%~dp0" & call "%~f0" %*"
cscript //nologo "%~f0?.wsf" //job:Elevate & exit /b
-->
<job id="Elevate"><script language="VBScript">
Set objShell = CreateObject("Shell.Application")
Set objWshShell = WScript.CreateObject("WScript.Shell")
Set objWshProcessEnv = objWshShell.Environment("PROCESS")
strCommandLine = Trim(objWshProcessEnv("ELEVATE_CMDLINE"))
objShell.ShellExecute "cmd", "/c " & strCommandLine, "", "runas"
</script></job>
:admin -----------------------------------------------------------
:: administrator commands here
reg add "HKCU\Control Panel\Desktop" /v Wallpaper /f /t REG_SZ /d "c:\images\bella.jpg"
RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters ,1 ,True
exit
parts of this code wasn't created by me. this batch script runs all commands after the comment : administrator commands here
as an administrator, and uses this path to find the image: c:\images\bella.jpg
if this script isn't working, verify the path.
i don't think this works on vista.
tested on win 7 and 8.