You can try using AutoIT scripting. Comes with compiler to make it into password protected EXE as well. Heres a short example used to install the citrix web client.

code:
 
OS:
SetEnv, OS, %A_OSVERSION%
IfInString, OS, XP, Goto, RUNAS
IfInString, OS, 2000, Goto, RUNAS
IfInString, OS, NT4, Goto, JUSTRUN
IfInString, OS, 95, Goto, JUSTRUN
IfInString, OS, 98, Goto, JUSTRUN
IfInString, OS, ME, Goto, JUSTRUN
MsgBox,0,AutoIt,OS detection failed.
Exit

RUNAS:
SplashTextOn,300,150,ICA Update,Your ICA client is now being updated...Please be patient.
Run, runas /user:domain\\Admin "ica32t.exe"
Sleep, 1000
Send, password{ENTER}
BlockInput,on
WinWaitActive,Citrix ICA Web Client,Setup completed
Exit

JUSTRUN:
BlockInput,on
Run, ica32t.exe
WinWaitActive,Citrix ICA Web Client,Setup completed
Exit

[ADLIB]
Citrix ICA Web Client,The source file, Send,!y
Citrix ICA Web Client,The system needs to be restarted,Send,!n
ICA,Are you sure you want to cancel,send,n
Security Warning,,send,y