KiXtart deployment to the client.
Inspiration is from - http://home.wanadoo.nl/scripting/ (KIXnnnUPDATE.EXE)
Thanks MCA!
While the KIXnnnUPDATE.EXE is a great deployment tool, I started to see some limitations with it, for example, it ran a lot of uneeded code and was constrained to only one directory. We have a number of clients in our domain that cannot write even to %windir%. This hopefully addresses that issue.
Sure, you can run KIX32.EXE/WKIX32.EXE at the NETLOGON share.
This is using IEXPRESS packager from Microsoft - http://support.microsoft.com/?kbid=237803
This was originally talked about at -
Re-Write of the KIX32.EXE Deployment tool
If you are running Windows NT-based system, it copies the following files:
WKIX32.EXE
KIX32.EXE
If you running a Windows 9x System, it adds these files:
kx16.dll
kx32.dll
kx95.dll
The code.. Thanks to "Lonkero" for the code clean-up:
Code:
$tmp='%tmp%\'
$destdir=split('%WINDIR%',':')[0]+':\Scripts\'
IF @KIX="4.02"
;KiXtart > 4.02
$srcdir=@scriptdir
$msg=left((split(@kix,'.')[0]+split(@kix,'.')[1]),3)
ELSE
;KiXtart >= 4.12
$srcdir=@scriptdir+'\'
$msg=LEFT(JOIN(split(@kix,'.'),''),3)
ENDIF
IF 0=Exist($destdir)
MD $destdir
ENDIF
$ok=$destdir+'kix'+$msg+'.ok'
Del $destdir+'kix*.ok'
$=WRITEPROFILESTRING($ok,'General','System',@producttype)
$=WRITEPROFILESTRING($ok,'General','KIX',@kix)
$=WRITEPROFILESTRING($ok,'General','Destination',$destdir)
$FilesToCopy='kix32.exe wkix32.exe'
IF @inwin=2
$FilesToCopy=$FilesToCopy+' kx16.dll kx32.dll kx95.dll'
ENDIF
FOR EACH $ IN Split($FilesToCopy)
; $=WRITEPROFILESTRING($ok,split($,'.')[0],'KIX',COPYKIX($srcdir+$,$destdir+$))
$=WRITEPROFILESTRING($ok,split($,'.')[0],$,COPYKIX($srcdir+$,$destdir+$))
NEXT
FUNCTION COPYKIX($srcfile,$destfile)
dim $
IF Exist($srcfile)
IF Exist($destfile)
$=SetFileAttr($destfile,128)
$copykix=' >replaced'
ELSE
$copykix=' >new'
ENDIF
IF ''+GetFileSize($srcfile)+GetFileTime($srcfile)+GetFileVersion($srcfile)<>''+GetFileSize($destfile)+GetFileTime($destfile)+GetFileVersion($destfile)
COPY '$srcfile' $destfile /h
if @error
$copykix='failed'
endif
ENDIF
ENDIF
ENDFUNCTION