Hey the scrip that was posted also ran every time. I found the version of the dll wasn't correct. I have to be creative to get this to work because most of our users are not admins so here is what i did and the script i used (i just changed the above script to look for a reg key instead of the dll version.

1st I used an app i found from a posting here named runaspwd.exe which allows you to command line the password as well.

2nd I used autoit.exe to call runaspwd and call the patch. it's complied into an exe so the password is not easy to see.

3rd I used wiseinstall to make a package of the patch. and here is the code i used to run it.

It has worked everytime.
[Smile]

? "Please Wait... Checking if Microsoft RPC Security Patch is Installed"

$KBPATH="netlogon"

SELECT

CASE @ProductType='Windows NT Workstation'

$KBFile='Q823980i.EXE'

$KBRequired=KeyExist('HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Q823980')

IF $KBRequired

; Patch already installed

ELSE

Shell '%comspec% /c '+@LSERVER+'\'+$KBPath+'\'+$KBFile+' /u /q /z'

ENDIF

CASE @ProductType='Windows 2000 Professional'

$KBFile='Windows2000-KB823980.exe'

$KBRequired=KeyExist("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows 2000\SP5\KB823980")

If $KBRequired

? "Patch Already Installed"

ELSE

? "Installing Patch"

Shell @LSERVER+'\'+$KBPath+'\'+$KBFile

ENDIF

CASE @ProductType='Windows XP Professional'

$KBFile='WindowsXP-KB823980.exe'

IF @CSD = 'Service Pack 1'

$KBRequired=KeyExist("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows XP\SP2\KB823980\Filelist")

If $KBRequired

? "Patch Already Installed"

ELSE

? "Installing Patch"

Shell @LSERVER+'\'+$KBPath+'\'+$KBFile

ENDIF

ELSE

$KBFile='WindowsXP-KB823980.exe'

$KBRequired=KeyExist("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows XP\SP1\KB823980\Filelist")

If $KBRequired

? "Patch Already Installed"

ELSE

? "Installing Patch"


Shell @LSERVER+'\'+$KBPath+'\'+$KBFile

ENDIF

ENDIF