Late reaction, didnt have time to check, but here's the code (don't know if it is any help :P ), You cannot run it just like that, it uses some ini files containing all the settings.
Code:
 

;============================================================
;== Login script written by Collin van Raam (cfvr atsign dds.nl) ==
;============================================================
;== Build 300
;== Modify date 9:43 29-4-2004
;== Modified by Collin van Raam
;============================================================

GOSUB Preparation
GOSUB Functions
GOSUB HomeDrive
GOSUB Printers
GOSUB CustomScripts
GOSUB ShellFolders
GOSUB Word
GOSUB Outlook
GOSUB InternetExplorer
GOSUB Inventory
GOSUB TimeSync
GOSUB ClientFiles
GOSUB Updates
GOSUB LoginLog
GOSUB FinishLogin
GOSUB ClearVars

SLEEP 1
EXIT 0


============================================================
== Preparation
============================================================
:Preparation

$Dummy=SetConsole("Hide")

IF INGROUP("Domain Admins")
BREAK ON
ENDIF

$ScriptDir=@SCRIPTDIR

$Language = ReadProfileString("$ScriptDir\Custom\LoginScript.ini","LoginScript","ScriptLanguage")

If Exist('$ScriptDir\Data\Languages\$Language.kix')
Call '$ScriptDir\Data\Languages\$Language.kix'
Else
$TextLabel1 = "Welcome back"
$TextLabel2 = "User name"
$TextLabel3 = "Computer name"
$TextLabel4 = "Operating system"
$TextLabel5 = "Domain name"
$TextLabel6 = "Logon server"
$TextLabel7 = "The update below is ready to be installed. Would you like to install this update now?"
$TextLabel8 = "The update below is now being installed.."
$TextLabel9 = "Mapping home drive..."
$TextLabel10 = "Mapping network printers..."
$TextLabel11 = "Executing group scripts..."
$TextLabel12 = "Executing personal script..."
$TextLabel13 = "Setting user shell folders..."
$TextLabel14 = "Setting Microsoft Word file locations..."
$TextLabel15 = "Configuring Outlook"
$TextLabel16 = "Gathering machine inventory..."
$TextLabel17 = "Synchronizing system time..."
EndIf

IF EXIST( "%WINDIR%\Kixforms.dll" )
IF COMPAREFILETIMES ("$ScriptDir\Data\KixTart\KixForms.dll", "%WINDIR%\Kixforms.dll" ) = 1 OR COMPAREFILETIMES ("$ScriptDir\Data\KixTart\KixForms.dll", "%WINDIR%\Kixforms.dll" ) = -1
COPY "$ScriptDir\Data\KixTart\KixForms.dll" "%WINDIR%\Kixforms.dll"
EndIF
ELSE
COPY "$ScriptDir\Data\KixTart\KixForms.dll" "%WINDIR%\Kixforms.dll"
ENDIF

Select
Case Exist("%Windir%\system\regsvr32.exe")
cd "%Windir%\System"
SHELL "%COMSPEC% /C regsvr32.exe %WINDIR%\Kixforms.dll /s"
Case Exist("%Windir%\system32\regsvr32.exe")
SHELL "%COMSPEC% /C regsvr32.exe %WINDIR%\Kixforms.dll /s"
Case 1
$Dummy=MessageBox("Regsrv32.exe not found, script is exiting!","Critical")
EndSelect

IF @INWIN = 1
$Dummy = WRITEVALUE( "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "RunLogonScriptSync", "1", "REG_DWORD" )
ENDIF

$SkipServer = 0
IF READPROFILESTRING( "$ScriptDir\custom\Servers.ini" , "Servers" , @WKSTA ) <> ""
$SkipServer = 1
ENDIF

IF OPEN(3, "$ScriptDir\Custom\LoginScript.ini") = 0
$x = READLINE(3)
WHILE INSTR( $x , "END_OF_FILE" ) = 0
IF $x <> ""
IF INSTR( $x , "=" )
IF SUBSTR( $x , 1 , 1 ) <> ";" AND SUBSTR( $x , 1 , 3 ) <> "REM"
$Dummy = EXECUTE( '$' + $x )
ENDIF
ENDIF
ENDIF
$x = READLINE(3)
LOOP
ELSE
CLS
? "Error opening '$ScriptDir\Custom\LoginScript.ini' - Login script aborted!"
BEEP
SLEEP 5
EXIT
ENDIF
$Dummy = CLOSE(3)

If Exist('$ScriptDir\Data\Languages\$ScriptLanguage.kix')
Call '$ScriptDir\Data\Languages\$ScriptLanguage.kix'
Else
Call '$ScriptDir\Data\Languages\English.kix'
EndIf

IF INSTR(@fullname,",")
$y = INSTR(@fullname,",")
$FullName = SUBSTR(@fullname,$y+2,LEN(@fullname)-$y-1) + " " + SUBSTR(@fullname,1,$y-1)
ELSE
$FullName = @fullname
ENDIF

$CpuType = "@CPU"
$IEVersion = "Internet Explorer " + LEFT( READVALUE( "HKLM\Software\Microsoft\Internet Explorer" , "Version" ) , 3 )
$IPaddress = LTRIM(SUBSTR(@IPADDRESS0 , 1 , 3)) + "." + LTRIM(SUBSTR(@IPADDRESS0 , 5 , 3)) + "." + LTRIM(SUBSTR(@IPADDRESS0 , 9 , 3)) + "." + LTRIM(SUBSTR(@IPADDRESS0 , 13 , 3))
$HWAddress = SUBSTR(@ADDRESS , 1 , 2) + "-" + SUBSTR(@ADDRESS , 3 , 2) + "-" + SUBSTR(@ADDRESS , 5 , 2) + "-" + SUBSTR(@ADDRESS , 7 , 2) + "-" + SUBSTR(@ADDRESS , 9 , 2) + "-" + SUBSTR(@ADDRESS , 11 , 2)
$Lserver = SUBSTR( @LSERVER , 3 , LEN( @LSERVER ) - 2 )

$Blue = 50,111,166
$BlueGrey = 123,148,177
$Grey = 198,195,198
$Green = 0,180,0
$Red = 180,0,0

$EasyKix = CreateObject("Kixtart.Form")
$Easykix.BackColor = $Grey
$EasyKix.Width = 508
$EasyKix.Height = 430
$EasyKix.Center
$Easykix.FillStyle=1
$Easykix.Borderstyle=0
$Easykix.Caption = $LoginScriptTitle

$Easykix.FillColor=$Blue
$Rectangle1=$Easykix.Rectangle(10,30,488,390)

$Easykix.FillColor=$Grey
$Rectangle2=$Easykix.Rectangle(25,70,458,140)
$Rectangle3=$Easykix.Rectangle(25,225,458,185)

$lblWelcomeTxt = $EasyKix.Label("$TextLabel1 $FullName",30,40,448,25)
$lblWelcomeTxt.BackColor=$Blue
$lblWelcomeTxt.FontBold=1
$lblWelcomeTxt.Center = 1
$lblWelcomeTxt.FontSize=14
$lblWelcomeTxt.Alignment=2
$lblWelcomeTxt.ForeColor=$Grey

$lblTitle = $Easykix.Label("$LoginScriptTitle",3,3,494,24)
$lblTitle.Center = 1
$lblTitle.FontSize = 13
$lblTitle.Alignment = 2

$lblName = $Easykix.Label("$TextLabel2:",50,90,120,20)
$lblComputerName = $Easykix.Label("$TextLabel3:",50,110,120,20)
$lblOperatingSystem = $Easykix.Label("$TextLabel4:",50,130,120,20)
$lblLogonDomain = $Easykix.Label("$TextLabel5:",50,150,120,20)
$lblLogonServer = $Easykix.Label("$TextLabel6:",50,170,120,20)

$lblName2 = $Easykix.Label("@USERID (@FULLNAME)",170,90,310,20)
$lblComputerName2 = $Easykix.Label("@WKSTA",170,110,310,20)
$lblOperatingSystem2 = $Easykix.Label("@PRODUCTTYPE @CSD",170,130,310,20)
$lblLogonDomain2 = $Easykix.Label("@DOMAIN",170,150,310,20)
$lblLogonServer2 = $Easykix.Label("@LSERVER",170,170,310,20)

$StatusTop = 240
$StatusCount = 0

$prgProgressBar = $EasyKix.ProgressBar("",35,380,436,20)
$prgProgressBar.max = 6
$prgProgressBar.BackColor = $Grey
$prgProgressBar.ForeColor = $Blue
$prgProgressBar.BorderStyle = 5
$prgProgressBar.Style = 1

$EasyKix.Show

If $DeleteNetworkPrinters = "YES"
$Printer = ENUMKEY( "HKCU\Printers\Connections" , 0 )
WHILE $Printer <> ""
$Dummy = DELKEY( "HKCU\Printers\Connections\$Printer" )
$Printer = ENUMKEY( "HKCU\Printers\Connections" , 0 )
LOOP
EndIf

$Dummy = OPEN(1, "%WINDIR%\LoginScript.ini" , 5)
$Dummy = CLOSE(1)

$LoginScrIni = "%WINDIR%\LoginScript.ini"

$Dummy = WRITEPROFILESTRING("$LoginScrIni" , '@USERID' , 'LastLogon' , '@TIME on @MDAYNO @MONTH @YEAR')
$Dummy = WRITEPROFILESTRING("$LoginScrIni" , '@USERID' , 'LogonServer' , '@LSERVER')


RETURN

============================================================
== Functions
============================================================
:Functions

FUNCTION MAPDRIVE( $Letter , $Share , optional $Persistent )

IF %UserProfile% = ""
$Persistent = ""
EndIf

IF RIGHT( $Letter , 1 ) <> ":" AND $Letter <> ":"
$Letter = $Letter + ":"
ENDIF

SELECT
CASE INSTR( $Letter , "Z" )
LOGERROR( "Illegal drive letter 'Z:' configured for the share '$Share'. Choose another letter." )
CASE LEN( $Letter ) <> 2
LOGERROR( "Invalid drive letter '$Letter' configured for the share '$Share'." )
CASE 1
USE $Letter /DELETE /PERSISTENT
IF EXIST( "$Share" )
IF $Persistent <> ""
USE $Letter $Share /PERSISTENT
IF @ERROR <> 0
LOGERROR( "Error mapping '$Letter' to share '$Share' (persistent mapping)." )
ENDIF
ELSE
USE $Letter $Share
IF @ERROR <> 0
LOGERROR( "Error mapping '$Letter' to share '$Share'." )
ENDIF
ENDIF
ELSE
LOGERROR( "Share '$Share' cannot be found on the network." )
ENDIF
ENDSELECT

ENDFUNCTION

;-------------------------------------------------------------------

FUNCTION MAPPRINTER( $PrinterShare , optional $Default )

SELECT
CASE @INWIN <> 1
CASE Instr( $PrinterShare , "\\@Wksta\" )
CASE $SkipServer = 1 AND READPROFILESTRING( "$ScriptDir\custom\Servers.ini" , "ServerRoutines" , "Printers" ) <> "YES"
CASE LEFT( $PrinterShare , 2 ) <> "\\"
LOGERROR( "Invalid printer share '$PrinterShare' configured. Share must begin with 2 backslashes." )
CASE 1
IF ADDPRINTERCONNECTION( $PrinterShare ) <> 0
LOGERROR( "Error mapping printer '$PrinterShare'." )
ENDIF

IF $Default <> ""
IF SETDEFAULTPRINTER( $PrinterShare ) <> 0
LOGERROR( "Error making '$PrinterShare' the default printer." )
ENDIF
ENDIF
ENDSELECT

ENDFUNCTION

;-------------------------------------------------------------------

FUNCTION SHOWSTATUS( $Status )

$ErrorLevel = 0
$StatusCount = $StatusCount + 1

$Dummy = Execute("$$Label"+$StatusCount+"=$$EasyKix.Label($$Status,140,$$StatusTop,240,17)")
$Dummy = Execute("$$Label"+$StatusCount+".BackColor=$$Grey")
$Dummy = Execute("$$Label"+$StatusCount+".BorderStyle=0")

$Dummy = Execute("$$LabelResult"+$StatusCount+"=$$EasyKix.Label('',90,$$StatusTop,22,16)")
$Dummy = Execute("$$LabelResult"+$StatusCount+".BackColor=$$Grey")
$Dummy = Execute("$$LabelResult"+$StatusCount+".BorderStyle=1")

ENDFUNCTION

;-------------------------------------------------------------------

FUNCTION SHOWRESULT()

IF $ErrorLevel <> 1
$Dummy = Execute("$$LabelResult"+$StatusCount+".BackColor=$$Green")
$Dummy = Execute("$$LabelResult"+$StatusCount+".Text=' OK'")
ELSE
$Dummy = Execute("$$LabelResult"+$StatusCount+".BackColor=$$Red")
$Dummy = Execute("$$LabelResult"+$StatusCount+".Text=' X'")
ENDIF

$StatusTop = $StatusTop + 15
$prgProgressBar.Value = $prgProgressBar.Value + 1

$ErrorLevel = 0

ENDFUNCTION

;-------------------------------------------------------------------

FUNCTION LOGERROR( $ErrorMessage )

$ErrorLevel = 1
$KixErrorCode = READPROFILESTRING( "$ScriptDir\data\Kixtart\kixerrors.ini" , "ErrorCodes" , @ERROR )

IF $OpenScript <> ""
$FileError = "in file $OpenScript "
ELSE
$FileError = ""
ENDIF

IF $LoginLogging = "ENABLED"
IF EXIST( "$LoginLogPath\Errors" ) = 0
MD "$LoginLogPath\Errors"
ENDIF

$arrErrorFiles = "%WINDIR%\LoginErrors.txt" , "$LoginLogPath\Errors\@USERID.txt"
FOR EACH $Errorfile IN $arrErrorFiles
IF OPEN( 4 , "$Errorfile" , 5 ) = 0
IF $ErrorsLogged <> 1
$Dummy = WRITELINE( 4 , "-------------------------------------------------------------------------------" + @CRLF )
ENDIF

$Dummy = WRITELINE( 4 , "@TIME @MDAYNO-@MONTHNO-@YEAR > @USERID@@@WKSTA > $KixErrorCode $FileError> $ErrorMessage" + @CRLF )
$Dummy = CLOSE( 4 )
ENDIF
NEXT
ENDIF

$ErrorsLogged = 1

ENDFUNCTION

;-------------------------------------------------------------------

FUNCTION CALLSCRIPT( $script )

$OpenScript = "$script"
CALL "$script"
$OpenScript = ""

ENDFUNCTION

;-------------------------------------------------------------------

FUNCTION WMIQUERY($what,$where,)

dim $strQuery, $objEnumerator, $value
$strQuery = "Select $what From $where"
$SystemSet = GetObject("winmgmts:{impersonationLevel=impersonate}!//@WKSTA")
$objEnumerator = $SystemSet.ExecQuery($strQuery)
For Each $objInstance in $objEnumerator
If @Error = 0 and $objInstance <> ""
$=execute("$$value = $$objInstance.$what")
$WMIQuery="$value"+"|"+"$WMIQuery"
EndIf
Next
$WMIQuery = left($WMIQuery,len($WMIQuery)-1)

ENDFUNCTION

;-------------------------------------------------------------------

FUNCTION GetFileAge( $File )

If Exist($File)
$FileYear = SUBSTR( GETFILETIME( $File ) , 1 , 4 )
$FileMonth = SUBSTR( GETFILETIME( $File ) , 6 , 2 )
$FileDay = SUBSTR( GETFILETIME( $File ) , 9 , 2 )

$MonthDays = 0,0,31,59,90,120,151,181,212,243,273,304,334

$=Execute("$FileYearDay = $MonthDays["+$FileMonth+"]+$FileDay")
$=Execute("$YearDay = $MonthDays["+@MonthNo+"]+"+@MDayNo)

$GetFileAge = ((VAL(@YEAR)*365)+$YearDay) - ((VAL($FileYear)*365)+$FileYearDay)
Else
$GetFileAge = -1
EndIf

ENDFUNCTION

;-------------------------------------------------------------------

FUNCTION RUNUPDATE( $UpdateCommandLine )

RUN $UpdateCommandLine

$Dummy = WRITEPROFILESTRING( $LoginScrINI , "Updates" , $UpdateName , "INSTALLED" )

IF $LoginLogging = "ENABLED"
IF EXIST( "$LoginLogPath\Updates" ) = 0
MD "$LoginLogPath\Updates"
IF @ERROR <> "0"
LOGERROR( "Error creating updates log folder '$LoginLogPath\Updates'. Create the folder manually or check folder permissions." )
ENDIF
ENDIF

IF EXIST( "$LoginLogPath\Updates" )
IF OPEN( 5 , "$LoginLogPath\Updates\$UpdateName.txt" , 5 ) = 0
$Dummy = WRITELINE( 5 , "@WKSTA >> Update installed by @USERID ($FullName) at @TIME on @MDAYNO @MONTH @YEAR" + @CRLF )
ENDIF
$Dummy = CLOSE( 5 )
ENDIF
ENDIF

ENDFUNCTION

;-------------------------------------------------------------------

FUNCTION INSTALLPATCH( $IniFileTitle )

$Prompt = "NO"
$Silent = "NO"

IF $PCounter > 999
ELSE
$PCounter = 1
ENDIF

WHILE $PCounter < 10
IF READPROFILESTRING( "$ScriptDir\custom\Updates.ini" , $IniFileTitle , $PCounter ) <> ""
$Array = SPLIT( READPROFILESTRING( "$ScriptDir\custom\Updates.ini" , $IniFileTitle , $PCounter ) , "|" , 5 )
$UpdateName = $Array[0]

IF READPROFILESTRING( $LoginScrINI , "Updates" , $UpdateName ) <> "INSTALLED"
FOR EACH $Element IN $Array
SELECT
CASE $SkipServer = 1
$Prompt = "YES"
CASE $Element = "SILENT"
$Silent = "YES"
CASE $Element = "PROMPT"
$Prompt = "YES"
ENDSELECT
NEXT

IF $Prompt = "YES"
$Result = MESSAGEBOX( "$TextLabel7 @CRLF @CRLF * $Updatename" , "Update" , 4132 )
IF $Result = 6
RUNUPDATE( $Array[1] )
$PCounter = 1000
ENDIF
ELSE
RUNUPDATE( $Array[1] )
$PCounter = 1000

IF $Silent <> "YES"
$Dummy = MESSAGEBOX( "$TextLabel8 @CRLF @CRLF * $UpdateName" , "Update" , 4096 , 20 )
ENDIF
ENDIF
ENDIF
ENDIF
$PCounter = $PCounter + 1
LOOP

ENDFUNCTION

;-------------------------------------------------------------------

FUNCTION SETSHELLFOLDER( $ShellFolder , $FolderLocation )

IF $FolderLocation <> ""
IF EXIST( "$FolderLocation" ) = 0
MD "$FolderLocation"
IF EXIST( "$FolderLocation" ) = 0
LOGERROR( "The '$ShellFolder' folder '$FolderLocation' does not exist and could not be created. Please create the folder manually." )
ENDIF
ENDIF

IF EXIST( "$FolderLocation" )
$Dummy = WRITEVALUE( "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" , "$ShellFolder" , "$FolderLocation" , "REG_SZ")
IF @ERROR <> 0
LOGERROR( "There was an error writing the '$ShellFolder' folder '$FavoritesDir' to the registry" )
ENDIF
ENDIF
ENDIF

ENDFUNCTION

RETURN

============================================================
== HomeDrive
============================================================
:HomeDrive

SELECT
CASE READPROFILESTRING( "$ScriptDir\custom\Servers.ini" , "ServerRoutines" , "HomeDrive" ) <> "YES" AND $SkipServer = 1
RETURN
CASE $HomeDrivePath = "" OR $HomeDriveLetter = ""
RETURN
CASE 1
IF RIGHT( $HomeDrivePath , 1 ) = "\"
$HomeDrivePath = SUBSTR( $HomeDrivePath , 1 , LEN( $HomeDrivePath ) -1 )
ENDIF

SHOWSTATUS( $TextLabel9 )
MAPDRIVE( $HomeDriveLetter , $HomeDrivePath , "Persistent" )
SHOWRESULT()
ENDSELECT


RETURN

============================================================
== Printers
============================================================
:Printers

SELECT
CASE @INWIN <> 1
RETURN
CASE $SkipServer = 1 AND READPROFILESTRING( "$ScriptDir\custom\Servers.ini" , "ServerRoutines" , "Printers" ) <> "YES"
RETURN
ENDSELECT

$Counter = 0
$Group = ENUMGROUP($Counter)
WHILE $Group <> ""
$Groupname = SUBSTR( $Group , INSTR( $Group , "\" ) + 1 , LEN( $Group ) - INSTR( $Group , "\" ) )

IF READPROFILESTRING( "$ScriptDir\custom\Printers.ini" , "PrinterShares" , $Groupname ) <> ""
$PrinterShare = READPROFILESTRING( "$ScriptDir\custom\Printers.ini" , "PrinterShares" , $Groupname )

IF INGROUP ( $Groupname + "_DEFAULT" )
IF $FoundPrinter <> "YES"
SHOWSTATUS( $TextLabel10 )
ENDIF
$FoundPrinter = "YES"

MAPPRINTER( $PrinterShare , DEFAULT )
ELSE
IF $FoundPrinter <> "YES"
SHOWSTATUS( $TextLabel10 )
ENDIF
$FoundPrinter = "YES"

MAPPRINTER( $PrinterShare )
ENDIF
ENDIF

$Counter = $Counter + 1
$Group = ENUMGROUP($Counter)
LOOP

IF $FoundPrinter = "YES"
SHOWRESULT()
ENDIF


RETURN

============================================================
== CustomScripts
============================================================
:CustomScripts

$Counter = 0
$Group = ENUMGROUP($Counter)
WHILE $Group <> ""
$Groupname = SUBSTR( $Group , INSTR( $Group , "\" ) + 1 , LEN( $Group ) - INSTR( $Group , "\" ) )

IF EXIST( "$ScriptDir\Custom\GroupScripts\" + $Groupname + ".kix" )
IF $FoundGroupScript <> "YES"
SHOWSTATUS( $TextLabel11 )
ENDIF
$FoundGroupScript = "YES"

CALLSCRIPT( "$ScriptDir\Custom\GroupScripts\" + $Groupname + ".kix" )
ENDIF

$Counter = $Counter + 1
$Group = ENUMGROUP($Counter)
LOOP

IF $FoundGroupScript = "YES"
SHOWRESULT()
ENDIF

;---------------------------------------------------------------------

IF EXIST( "$ScriptDir\Custom\UserScripts\@USERID.kix" )
SHOWSTATUS( $TextLabel12 )

CALLSCRIPT( "$ScriptDir\Custom\UserScripts\@USERID.kix" )

SHOWRESULT()
ENDIF


RETURN

============================================================
== ShellFolders
============================================================
:ShellFolders

SELECT
CASE READPROFILESTRING( "$ScriptDir\custom\LaptopUsers.ini" , "Laptop users" , @USERID ) <> ""
RETURN
CASE $DefaultOfficePath = "" AND $UserTemplates = "" AND $MyDocumentsDir = "" AND $FavoritesDir = ""
RETURN
CASE READPROFILESTRING( "$ScriptDir\custom\Servers.ini" , "ServerRoutines" , "ShellFolders" ) <> "YES" AND $SkipServer = 1
RETURN
CASE 1
SHOWSTATUS( $TextLabel13 )
$OfficeKey = "HKCU\Software\Microsoft\Office"
ENDSELECT

SETSHELLFOLDER( "Personal" , $MyDocumentsDir )
SETSHELLFOLDER( "Favorites" , $FavoritesDir )
SETSHELLFOLDER( "Desktop" , $DesktopDir )
SETSHELLFOLDER( "Recent" , $RecentDir )
SETSHELLFOLDER( "AppData" , $ApplicationData )
SETSHELLFOLDER( "Cache" , $TempInternetFiles )
SETSHELLFOLDER( "Cookies" , $Cookies )
SETSHELLFOLDER( "History" , $History )


IF INSTR( $MyPicturesFolder , "\" )
SETSHELLFOLDER( "My Pictures" , $MyPicturesFolder )
ELSE
IF $MyDocumentsDir <> ""
$MyPicturesFolder = "$MyDocumentsDir\$MyPicturesFolder"
SETSHELLFOLDER( "My Pictures" , $MyPicturesFolder )
ELSE
LOGERROR( "Illegal path '$MyPicturesFolder' set for the 'My Pictures' folder. Set the 'MyDocumentsDir' variable in the LoginScript.ini file." )
ENDIF
ENDIF

SHOWRESULT()


RETURN

============================================================
== Office 97/2000/XP/2003
============================================================
:Word

SELECT
CASE $UserTemplates = "" AND $WorkgroupTemplates = "" AND $WordStartUpPath = ""
RETURN
CASE 1
SHOWSTATUS( $TextLabel14 )
$OfficeKey = "HKCU\Software\Microsoft\Office"
ENDSELECT

IF $UserTemplates <> ""
IF EXIST( "$UserTemplates" ) = 0
MD "$UserTemplates"
IF @ERROR <> 0
LOGERROR( "The 'Microsoft Word User Templates' folder '$UserTemplates' does not exist and could not be created. Please create the folder manually. No changes were made to the location of the 'Templates' folder." )
ENDIF
ENDIF

IF EXIST( "$UserTemplates" )
$Dummy = Writevalue("$OfficeKey\8.0\Common\FileNew\LocalTemplates" , "" , "$UserTemplates" , "REG_SZ")
$Dummy = Writevalue("$OfficeKey\9.0\Common\General" , "UserTemplates" , "$UserTemplates" , "REG_EXPAND_SZ")
$Dummy = Writevalue("$OfficeKey\10.0\Common\General" , "UserTemplates" , "$UserTemplates" , "REG_EXPAND_SZ")
$Dummy = Writevalue("$OfficeKey\11.0\Common\General" , "UserTemplates" , "$UserTemplates" , "REG_EXPAND_SZ")
ENDIF
ENDIF

IF $WorkgroupTemplates <> ""
IF EXIST( "$WorkgroupTemplates" ) = 0
MD "$WorkgroupTemplates"
IF @ERROR <> 0
LOGERROR( "The 'Microsoft Word Workgroup Templates' folder '$WorkgroupTemplates' does not exist and could not be created. Please create the folder manually. No changes were made to the location of the 'Templates' folder." )
ENDIF
ENDIF

IF EXIST( "$WorkgroupTemplates" )
$Dummy = Writevalue("$OfficeKey\8.0\Common\FileNew\SharedTemplates" , "" , "$WorkgroupTemplates" , "REG_SZ")
$Dummy = Writevalue("$OfficeKey\9.0\Common\General" , "SharedTemplates" , "$WorkgroupTemplates" , "REG_EXPAND_SZ")
$Dummy = Writevalue("$OfficeKey\10.0\Common\General" , "SharedTemplates" , "$WorkgroupTemplates" , "REG_EXPAND_SZ")
$Dummy = Writevalue("$OfficeKey\11.0\Common\General" , "SharedTemplates" , "$WorkgroupTemplates" , "REG_EXPAND_SZ")
ENDIF
ENDIF

IF $WordStartUpPath <> ""
IF EXIST( "$WordStartUpPath" ) = 0
MD "$WordStartUpPath"
IF @ERROR <> 0
LOGERROR( "The 'Microsoft Word startup' folder '$DefaultOfficePath' does not exist and could not be created. Please create the folder manually. No changes were made to the location of the 'Word startup' folder." )
ENDIF
ENDIF

IF EXIST( "$WordStartUpPath" )
$Dummy = Writevalue("$OfficeKey\8.0\Word\Options" , "STARTUP-PATH" , "$WordStartUpPath" , "REG_SZ")
$Dummy = Writevalue("$OfficeKey\9.0\Word\Options" , "STARTUP-PATH" , "$WordStartUpPath" , "REG_EXPAND_SZ")
$Dummy = Writevalue("$OfficeKey\10.0\Word\Options" , "STARTUP-PATH" , "$WordStartUpPath" , "REG_EXPAND_SZ")
$Dummy = Writevalue("$OfficeKey\11.0\Word\Options" , "STARTUP-PATH" , "$WordStartUpPath" , "REG_EXPAND_SZ")
ENDIF
ENDIF

SHOWRESULT()


RETURN

============================================================
== Outlook
============================================================
:Outlook

Select
Case KeyExist("HKCU\Software\Microsoft\Windows Messaging Subsystem\Profiles\@USERID")
$Dummy = Writevalue("HKCU\Software\Microsoft\Windows Messaging Subsystem\Profiles" , "DefaultProfile" , "@USERID" , "REG_SZ")
Return
Case KeyExist("HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\@USERID")
$Dummy = Writevalue("HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles" , "DefaultProfile" , "@USERID" , "REG_SZ")
Return
Case $ExchangeServer = ""
Return
Case $ConfigureOutlook <> "YES"
Return
Case Exist(ReadValue("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\OUTLOOK.EXE",""))
$OutlookVersionNr=GetFileVersion(ReadValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\OUTLOOK.EXE",""))
$OutlookPath=ReadValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\OUTLOOK.EXE","")
Case 1
Return
EndSelect

Select
Case Left($OutlookVersionNr,1)=8
$OutlookVersion=97
Case Left($OutlookVersionNr,1)=9
$OutlookVersion=2000
Case Left($OutlookVersionNr,2)=10
$OutlookVersion=XP
Case Left($OutlookVersionNr,2)=11
$OutlookVersion=2003
EndSelect

ShowStatus("$TextLabel15 $OutlookVersion...")

copy "$ScriptDir\data\Outlook\Outlook.prf" "%TEMP%\@UserID.prf"
copy "$ScriptDir\data\Outlook\Fixprf.exe" %TEMP%
copy "$ScriptDir\data\Outlook\Newprof.exe" %TEMP%
If $ResolveMailboxVar <> ""
SHELL '%COMSPEC% /C %TEMP%\fixprf %TEMP%\@UserID.prf "$ResolveMailboxVar" @USERID $ExchangeServer'
Else
SHELL '%COMSPEC% /C %TEMP%\fixprf %TEMP%\@UserID.prf @USERID @USERID $ExchangeServer'
EndIf

Select
Case $OutlookVersion=97
SHELL '%COMSPEC% /C %TEMP%\newprof -p %TEMP%\@UserID.prf -x'
If @error<>0
Logerror("Error configuring Outlook")
EndIf
Case $OutlookVersion=2000
SHELL '%COMSPEC% /C %TEMP%\newprof -p %TEMP%\@UserID.prf -x'
If @error<>0
Logerror("Error configuring Outlook")
EndIf
Case $OutlookVersion=XP
Run '$OutlookPath /importprf %TEMP%\@UserId.prf'
If @error<>0
Logerror("Error configuring Outlook")
EndIf
Case $OutlookVersion=2003
Run '$OutlookPath /importprf %TEMP%\@UserId.prf'
If @error<>0
Logerror("Error configuring Outlook")
EndIf
EndSelect

Sleep 1

del "%TEMP%\Fixprf.exe"
del "%TEMP%\Newprof.exe"
del "%TEMP%\@UserId.prf"

ShowResult()

RETURN

============================================================
== Configuring Internet Explorer
============================================================
:InternetExplorer

If $MandatoryStartupPage <> ""
$Dummy=WriteValue("HKCU\Software\Microsoft\Internet Explorer\Main","Start Page",$MandatoryStartupPage,"REG_SZ")
EndIf

If $ProxyServer <> "" And $ProxyServerPort <> ""
$Dummy=WriteValue("HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings","ProxyEnable","1","REG_DWORD")
$Dummy=WriteValue("HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings","ProxyServer","$ProxyServer:$ProxyServerPort","REG_SZ")
EndIf

If $ProxyBypassString <> ""
$Dummy=WriteValue("HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings","ProxyOverride","$ProxyBypassString","REG_SZ")
EndIf

RETURN

============================================================
== Inventory
============================================================
:Inventory

IF $Inventory <> "ENABLED" OR $LoginLogPath = ""
RETURN
ENDIF

$InvMacAddress = ReadProfileString( "$LoginLogPath\Inventory\@WKSTA.txt" , "tech info" , "hardware address" )
$InvComputerName = ReadProfileString( "$LoginLogPath\Inventory\@WKSTA.txt" , "Last inventory" , "workstation" )

$InventoryAge=GetFileAge("$LoginLogPath\Inventory\@WKSTA.Txt")

SELECT
CASE VAL($InventoryAge) => $MinInventoryAge
SHOWSTATUS( $TextLabel16 )
CASE $HWAddress <> $InvMacAddress
SHOWSTATUS( $TextLabel16 )
CASE @WKSTA <> $InvComputerName
SHOWSTATUS( $TextLabel16 )
CASE 1
RETURN
ENDSELECT

IF EXIST( "$LoginLogPath\Inventory" ) = 0
MD "$LoginLogPath\Inventory"
ENDIF

IF EXIST( "$LoginLogPath\Inventory\@WKSTA.txt" )
DEL "$LoginLogPath\Inventory\@WKSTA.txt"
IF @ERROR <> 0
LOGERROR( "Error deleting inventory file '$LoginLogPath\Inventory\@WKSTA.txt'. Inventory is appended to the file." )
ENDIF
ENDIF

$WMI = GetObject("winmgmts:{impersonationLevel=impersonate}!//@WKSTA")
IF $WMI <> ""
$SystemManufacturer = TRIM(WMIQUERY("Manufacturer","Win32_ComputerSystem"))
$SystemModel = TRIM(WMIQUERY("Model","Win32_ComputerSystem"))
$SerialNumber = WMIQuery("SerialNumber","Win32_BIOS")
$BiosVersion = WMIQuery("SMBIOSBIOSVersion","Win32_BIOS")
$BiosDate = WMIQuery("Version","Win32_BIOS")
$OSSerialNumber = WMIQuery("SerialNumber","Win32_OperatingSystem")
$InstallDateString = WMIQuery("InstallDate","Win32_OperatingSystem")
$InstallDate = SUBSTR($InstallDateString,7,2) + "-" + SUBSTR($InstallDateString,5,2) + "-" + SUBSTR($InstallDateString,1,4) + " at " + SUBSTR($InstallDateString,9,2) + ":" + SUBSTR($InstallDateString,11,2)
$LastBootTimeStr = WMIQuery("LastBootupTime","Win32_OperatingSystem")
$LastBootTime = SUBSTR($LastBootTimeStr,7,2) + "-" + SUBSTR($LastBootTimeStr,5,2) + "-" + SUBSTR($LastBootTimeStr,1,4) + " at " + SUBSTR($LastBootTimeStr,9,2) + ":" + SUBSTR($LastBootTimeStr,11,2)
$RegisteredUser = WMIQuery("RegisteredUser","Win32_OperatingSystem")
$RegisteredOrg = WMIQuery("Organization","Win32_OperatingSystem")
$PhysicalMemory = VAL( WMIQuery("TotalPhysicalMemory","Win32_LogicalMemoryConfiguration") )/1024
$InitPageFileSize = WMIQUERY("InitialSize","Win32_PagefileSetting")
$MaxPageFileSize = WMIQUERY("MaximumSize","Win32_PagefileSetting")
$ProcessorSpeed = WMIQUERY("CurrentClockSpeed","Win32_Processor")
$ProcessorType = WMIQUERY("Name","Win32_Processor")
$VidCard = WMIQUERY("VideoProcessor","Win32_VideoController")
$VidRes = WMIQuery("VideoModeDescription","Win32_VideoController")
$Modem = WMIQUERY("Description","Win32_POTSModem")
$arrDeviceIDs = SPLIT(WMIQuery("DeviceID","Win32_LogicalDisk"),"|",-1)
$arrFreeSpaces = SPLIT(WMIQuery("FreeSpace","Win32_LogicalDisk"),"|",-1)
$ArrVolNames = SPLIT(WMIQuery("volumename","Win32_LogicalDisk"),"|",-1)
$arrDriveTypes = SPLIT(WMIQuery("DriveType","Win32_LogicalDisk"),"|",-1)
$arrTotalSizes = SPLIT(WMIQuery("Size","Win32_LogicalDisk"),"|",-1)
$arrFormats = SPLIT(WMIQuery("FileSystem","Win32_LogicalDisk"),"|",-1)
$arrNetCards = SPLIT(WMIQuery("Description","Win32_NetworkAdapter"),"|",-1)
$arrPrinters = SPLIT(WMIQuery("Name","Win32_printer"),"|",-1)
ENDIF

IF OPEN( 5 , "$LoginLogPath\Inventory\@WKSTA.txt" , 5 ) = 0
$Dummy = WRITELINE( 5 , "--------------------------------------------------------------" + @CRLF )
$Dummy = WRITELINE( 5 , "[Last inventory]" + @CRLF )
$Dummy = WRITELINE( 5 , "--------------------------------------------------------------" + @CRLF )
$Dummy = WRITELINE( 5 , "User ID = @USERID" + @CRLF )
$Dummy = WRITELINE( 5 , "Full name = $FullName" + @CRLF )
$Dummy = WRITELINE( 5 , "Workstation = @WKSTA" + @CRLF )
$Dummy = WRITELINE( 5 , "Time and date = @TIME on @MDAYNO @MONTH @YEAR" + @CRLF )
$Dummy = WRITELINE( 5 , "File location = $LoginLogPath\Inventory\@WKSTA.txt" + @CRLF )
$Dummy = WRITELINE( 5 , @CRLF )
$Dummy = WRITELINE( 5 , "--------------------------------------------------------------" + @CRLF )
$Dummy = WRITELINE( 5 , "[Tech info]" + @CRLF )
$Dummy = WRITELINE( 5 , "--------------------------------------------------------------" + @CRLF )
$Dummy = WRITELINE( 5 , "IP Address = $IPAddress" + @CRLF )
$Dummy = WRITELINE( 5 , "Hardware Address = $HWAddress" + @CRLF )
$Dummy = WRITELINE( 5 , "Operating system = @PRODUCTTYPE @CSD" + @CRLF )
$Dummy = WRITELINE( 5 , "Explorer version = $IEVersion" + @CRLF )
$Dummy = WRITELINE( 5 , "Windows directory = %WINDIR%" + @CRLF )

IF $WMI <> ""
$Dummy = WRITELINE( 5 , "OS Serial Number = $OSSerialNumber" + @CRLF )
$Dummy = WRITELINE( 5 , "Installation date = $InstallDate" + @CRLF )
$Dummy = WRITELINE( 5 , "Last boot time = $LastBootTime" + @CRLF )
$Dummy = WRITELINE( 5 , "Manufacturer = $SystemManufacturer ($SystemModel)" + @CRLF )
$Dummy = WRITELINE( 5 , "Physical memory = $PhysicalMemory MB" + @CRLF )
$Dummy = WRITELINE( 5 , "Page file (min/max) = $InitPageFileSize MB / $MaxPageFileSize MB" + @CRLF )
$Dummy = WRITELINE( 5 , "Processor = $ProcessorSpeed MHz $ProcessorType" + @CRLF )
$Dummy = WRITELINE( 5 , "Video card = $VidCard" + @CRLF )
$Dummy = WRITELINE( 5 , "Video resolution = $VidRes" + @CRLF )
$Dummy = WRITELINE( 5 , "Modem type = $Modem" + @CRLF )
$Dummy = WRITELINE( 5 , "System Serial number = $SerialNumber" + @CRLF )
$Dummy = WRITELINE( 5 , "BIOS Version = $BiosVersion" + @CRLF )
$Dummy = WRITELINE( 5 , "BIOS Date = $BiosDate" + @CRLF )
$Dummy = WRITELINE( 5 , "Registered user = $RegisteredUser" + @CRLF )
$Dummy = WRITELINE( 5 , "Registered org. = $RegisteredOrg" + @CRLF )
$Dummy = WRITELINE( 5 , @CRLF )
$Dummy = WRITELINE( 5 , "--------------------------------------------------------------" + @CRLF )
$Dummy = WRITELINE( 5 , "[Drive information]" + @CRLF )
$Dummy = WRITELINE( 5 , "--------------------------------------------------------------" + @CRLF )
$Dummy = WRITELINE( 5 , "Drive Type Free(MB) Total(MB) Label" + @CRLF )
$Dummy = WRITELINE( 5 , "--------------------------------------------------------------" + @CRLF )

$Counter = UBound($arrDeviceIDs)
While $Counter => 0
IF $arrDeviceIDs[$Counter] = "A:"
$Counter = $Counter - 1
ELSE
$DrvLetter = $arrDeviceIDs[$Counter]
SELECT
CASE $arrDriveTypes[$Counter] = 0
$DriveType = "Unknown"
CASE $arrDriveTypes[$Counter] = 1
$DriveType = "No Root"
CASE $arrDriveTypes[$Counter] = 2
$DriveType = "Removable"
CASE $arrDriveTypes[$Counter] = 3
$DriveType = "Logical"
CASE $arrDriveTypes[$Counter] = 4
$DriveType = "Network"
CASE $arrDriveTypes[$Counter] = 5
$DriveType = "CD-ROM"
CASE $arrDriveTypes[$Counter] = 6
$DriveType = "RAM Disk"
ENDSELECT

$Format = $arrFormats[$Counter]
$VolName = $ArrVolNames[$Counter]
$FreeSpace = VAL(SUBSTR($arrFreeSpaces[$Counter],1,LEN($arrFreeSpaces[$Counter])-3))/1024
$TotalSize = VAL(SUBSTR($arrTotalSizes[$Counter],1,LEN($arrTotalSizes[$Counter])-3))/1024
$Dummy = WRITELINE( 5 , "$DrvLetter $DriveType $Format $Freespace $TotalSize $VolName" + @CRLF )
$Counter = $Counter - 1
ENDIF
LOOP

$Dummy = WRITELINE( 5 , @CRLF )
$Dummy = WRITELINE( 5 , "--------------------------------------------------------------" + @CRLF )
$Dummy = WRITELINE( 5 , "[Printers]" + @CRLF )
$Dummy = WRITELINE( 5 , "--------------------------------------------------------------" + @CRLF )

FOR EACH $Printer in $arrPrinters
$Dummy = WRITELINE( 5 , "$Printer" + @CRLF )
NEXT

$Dummy = WRITELINE( 5 , @CRLF )
$Dummy = WRITELINE( 5 , "--------------------------------------------------------------" + @CRLF )
$Dummy = WRITELINE( 5 , "[Network cards]" + @CRLF )
$Dummy = WRITELINE( 5 , "--------------------------------------------------------------" + @CRLF )

FOR EACH $Nic IN $arrNetCards
IF INSTR($nic,"minipo") = 0 AND INSTR($nic,"RAS") = 0 AND INSTR($nic,"Parallel") = 0
$Dummy = WRITELINE( 5 , "$Nic" + @CRLF )
ENDIF
NEXT
ELSE
IF $CpuType = ""
$CpuType = "@CPU"
ENDIF

IF @INWIN <> 1
$Processor = "$CpuType"
ELSE
$Processor = "@MHz MHz $CpuType"
ENDIF
$Ram = MemorySize(0)

$Dummy = WRITELINE( 5 , "Processor = $Processor" + @CRLF )
$Dummy = WRITELINE( 5 , "Physical memory = $Ram MB" + @CRLF )
$Dummy = WRITELINE( 5 , @CRLF )
$Dummy = WRITELINE( 5 , "NOTE: Windows Management Instrumentation is not available. To make a complete inventory" + @CRLF )
$Dummy = WRITELINE( 5 , " of this system, download and install WMI from http://www.microsoft.com." + @CRLF )
ENDIF

$Dummy = WRITELINE( 5 , @CRLF )
$Dummy = WRITELINE( 5 , "--------------------------------------------------------------" + @CRLF )
$Dummy = WRITELINE( 5 , "[Office programs]" + @CRLF )
$Dummy = WRITELINE( 5 , "--------------------------------------------------------------" + @CRLF )

$arrOfficeProgs=Split("Word,winword.exe|Excel,Excel.exe|Outlook,outlook.exe|Frontpage,frontpg.exe|Access,msaccess.exe|Powerpoint,powerpnt.exe|Project,winproj.exe|Visio,visio32.exe|Publisher,mspub.exe|OneNote,OneNote.exe|InfoPath,InfoPath.exe","|")
For Each $Program In $arrOfficeProgs
$arrProgram=Split($Program,",")

If Exist(ReadValue("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\"+$arrProgram[1],""))
$Version=GetFileVersion(ReadValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\"+$arrProgram[1],""))
Select
Case Left($Version,1)=8
$NormalVersion=97
Case Left($Version,1)=9
$NormalVersion=2000
Case Left($Version,2)=10
$NormalVersion=XP
Case Left($Version,2)=11
$NormalVersion=2003
EndSelect

$Dummy = WRITELINE( 5 , "Microsoft "+$arrProgram[0]+" "+$NormalVersion+" ("+$Version+")" + @CRLF )
EndIf
Next

$Dummy = WRITELINE( 5 , @CRLF )
$Dummy = WRITELINE( 5 , "--------------------------------------------------------------" + @CRLF )
$Dummy = WRITELINE( 5 , "[Installed software]" + @CRLF )
$Dummy = WRITELINE( 5 , "--------------------------------------------------------------" + @CRLF )

$Counter = 1
$key = ENUMKEY( "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" , $Counter )
WHILE $key <> ""
IF READVALUE( "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$key" , "DisplayName" ) <> ""
$DispName = READVALUE( "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$key" , "DisplayName" )

IF READVALUE( "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$key" , "DisplayVersion" ) <> ""
$DispVer = READVALUE( "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$key" , "DisplayVersion" )
$Dummy = WRITELINE( 5 , "$DispName $DispVer" + @CRLF )
ELSE
$Dummy = WRITELINE( 5 , "$DispName" + @CRLF )
ENDIF
ENDIF

$Counter = $Counter + 1
$key = ENUMKEY( "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" , $Counter )
LOOP
ELSE
LOGERROR( "Error opening file '$LoginLogPath\Inventory\@WKSTA.txt' for writing inventory." )
ENDIF
$Dummy = CLOSE( 5 )

SHOWRESULT()


RETURN

============================================================
== TimeSync
============================================================
:TimeSync

Select
Case READPROFILESTRING( "$ScriptDir\custom\Servers.ini" , "ServerRoutines" , "TimeSync" ) <> "YES" AND $SkipServer = 1
RETURN
Case $TimeServer = ""
RETURN
ENDSELECT

IF LEFT( $TimeServer , 2 ) <> "\\"
$TimeServer = "\\" + $TimeServer
ENDIF

If $Timeserver <> "\\@Wksta"
SHOWSTATUS( $TextLabel17 )

SETTIME "$TimeServer"
IF @ERROR <> 0
LOGERROR( "Error synchronizing system time with server '$TimeServer'." )
ENDIF

SHOWRESULT()
EndIf


RETURN

============================================================
== ClientFiles
============================================================
:ClientFiles

IF READPROFILESTRING( "$ScriptDir\custom\Servers.ini" , "ServerRoutines" , "ClientFiles" ) <> "YES" AND $SkipServer = 1
RETURN
ENDIF

$ClientFiles = "$ScriptDir\Custom\ClientFiles"
$SysDrive = LEFT( %WINDIR% , 2 ) + "\"

cd %WINDIR%

SELECT
CASE INSTR( @PRODUCTTYPE , "Windows NT" )
$XcopyParams = "/D /E /C /Q /H /R /K"
CASE 1
$XcopyParams = "/D /E /C /Q /H /R /K /Y"
ENDSELECT

IF %WINDIR% <> ""
SHELL '%COMSPEC% /C xcopy "$ClientFiles\WindowsDir\*.*" "%WINDIR%" $XcopyParams > NUL'
SHELL '%COMSPEC% /C xcopy "$ClientFiles\SystemDrive\*.*" "$SysDrive" $XcopyParams > NUL'
ENDIF

IF $HomeDrivePath <> "" AND EXIST( "$HomeDrivePath" ) = 1
SHELL '%COMSPEC% /C xcopy "$ClientFiles\HomeDrive\*.*" "$HomeDrivePath" $XcopyParams > NUL'
ENDIF

IF %USERPROFILE% <> ""
SHELL '%COMSPEC% /C xcopy "$ClientFiles\UserProfile\*.*" "%USERPROFILE%" $XcopyParams > NUL'
ENDIF

$Dummy = SETTITLE( $LoginScriptTitle )


RETURN

============================================================
== Updates
============================================================
:Updates

IF READPROFILESTRING( "$ScriptDir\custom\Servers.ini" , "ServerRoutines" , "Updates" ) <> "YES" AND $SkipServer = 1
RETURN
ENDIF

IF $SkipServer <> 1
INSTALLPATCH( "ALL" )
INSTALLPATCH( $IEVersion )
ENDIF

INSTALLPATCH( @PRODUCTTYPE )


RETURN

============================================================
== LoginLog
============================================================
:LoginLog

IF $LoginLogPath = "" OR $LoginLogging <> "ENABLED"
RETURN
ENDIF

IF EXIST( $LoginLogPath + "\Users") = 0
MD $LoginLogPath + "\Users"
ENDIF

IF EXIST( $LoginLogPath + "\Computers") = 0
MD $LoginLogPath + "\Computers"
ENDIF

$arrLogFiles = "$LoginLogPath\Users\@USERID.txt" , "$LoginLogPath\Computers\@WKSTA.txt"

FOR EACH $Logfile in $arrLogFiles
IF EXIST ( "$Logfile" )
$Dummy = OPEN( 1 , "$Logfile" , 5 )
ELSE
$Dummy = OPEN( 1 , "$Logfile" , 5 )
$Dummy = WRITELINE( 1 , "Workstation |Logon server |IP Address | Date and time | User name" + @CRLF )
$Dummy = WRITELINE( 1 , "----------------|---------------|---------------|-----------------------|-----------" + @CRLF )
ENDIF

IF LEN( @WKSTA ) < 8
$Dummy = WRITELINE( 1 , "@WKSTA ")
ELSE
$Dummy = WRITELINE( 1 , "@WKSTA ")
ENDIF

IF LEN( $LSERVER ) < 7
$Dummy = WRITELINE( 1 , "|$LServer ")
ELSE
$Dummy = WRITELINE( 1 , "|$LServer ")
ENDIF

IF LEN( $IPaddress ) = 15
$Dummy = WRITELINE( 1 , "|$IPaddress")
ELSE
$Dummy = WRITELINE( 1 , "|$IPaddress ")
ENDIF

$Dummy = WRITELINE( 1 , "| @MDAYNO-@MONTHNO-@YEAR @@ @TIME | @USERID ($FullName)" + @CRLF )
$Dummy = CLOSE( 1 )
NEXT


RETURN

============================================================
== FinishLogin
============================================================
:FinishLogin

$prgProgressBar.Value = $prgProgressBar.Max

IF $EmailErrors <> "YES" OR $ErrorsLogged <> 1 OR $LoginLogging <> "ENABLED" OR $SendTo = "" OR $Sender = "" OR $SMTPServer = ""
Return
ENDIF

$EmailTitle = "Error(s) occurred while @USERID ($Fullname) logged on to @WKSTA (@MDAYNO @MONTH @YEAR at @TIME)"
$EmailSender = JOIN( SPLIT( $Sender , "@" ) , "@@" )

SELECT
CASE INSTR( $SendTo , "," )
$ArrSendTo = SPLIT( $SendTo , "," )
CASE 1
$ArrSendTo = SPLIT( $SendTo , ";" )
ENDSELECT

FOR EACH $Element IN $ArrSendTo
$SendToElement = JOIN( SPLIT( $Element , "@" ) , "@@" )
IF $Inventory = "ENABLED" AND EXIST( "$LoginLogPath\Inventory\@WKSTA.txt" )
SHELL '%COMSPEC% /C $ScriptDir\Data\blat.exe $ScriptDir\Data\ErrorMail.txt -t $SendToElement -s "$EmailTitle" -f $EmailSender -server $SMTPServer -attacht %WINDIR%\LoginErrors.txt -attacht $LoginLogPath\Inventory\@WKSTA.txt -q'
ELSE
SHELL '%COMSPEC% /C $ScriptDir\Data\blat.exe $ScriptDir\Data\ErrorMail.txt -t $SendToElement -s "$EmailTitle" -f $EmailSender -server $SMTPServer -attacht %WINDIR%\LoginErrors.txt -q'
ENDIF
NEXT


Return

============================================================
== Empty all variables
============================================================
:ClearVars

$TextLabel1 = ""
$TextLabel2 = ""
$TextLabel3 = ""
$TextLabel4 = ""
$TextLabel5 = ""
$TextLabel6 = ""
$TextLabel7 = ""
$TextLabel8 = ""
$TextLabel9 = ""
$TextLabel10 = ""
$TextLabel11 = ""
$TextLabel12 = ""
$TextLabel13 = ""
$TextLabel14 = ""
$TextLabel15 = ""
$TextLabel16 = ""
$TextLabel17 = ""
$ScriptLanguage = ""
$LoginScriptTitle = ""
$LoginLogPath = ""
$LoginLogging = ""
$Inventory = ""
$MinInventoryAge = ""
$EmailErrors = ""
$SendTo = ""
$Sender = ""
$SMTPServer = ""
$HomeDrivePath = ""
$HomeDriveLetter = ""
$WordStartUpPath = ""
$UserTemplates = ""
$WorkgroupTemplates = ""
$ConfigureOutlook = ""
$ExchangeServer = ""
$MyDocumentsDir = ""
$FavoritesDir = ""
$MyPicturesFolder = ""
$DesktopDir = ""
$RecentDir = ""
$ApplicationData = ""
$TempInternetFiles = ""
$Cookies = ""
$History = ""
$ProxyServer = ""
$ProxyServerPort = ""
$ProxyBypassString = ""
$MandatoryStartupPage = ""
$TimeServer = ""
$DeleteNetworkPrinters = ""
$Dummy = ""
$ScriptDir = ""
$Result = ""
$CpuType = ""
$IEVersion = ""
$IPaddress = ""
$HWAddress = ""
$Lserver = ""
$Blue = ""
$BlueGrey = ""
$Grey = ""
$Green = ""
$Red = ""
$Printer = ""
$LoginScrIni = ""
$Letter = ""
$Share = ""
$Persistent = ""
$PrinterShare = ""
$Default = ""
$Status = ""
$ErrorLevel = ""
$KixErrorCode = ""
$StatusCount = ""
$OpenScript = ""
$FileError = ""
$Errorfile = ""
$arrErrorFiles = ""
$ErrorsLogged = ""
$what = ""
$where = ""
$WMIQuery = ""
$strQuery = ""
$objEnumerator = ""
$value = ""
$objInstance = ""
$objEnumerator = ""
$GetFileAge = ""
$File = ""
$UpdateCommandLine = ""
$UpdateName = ""
$IniFileTitle = ""
$Prompt = ""
$Silent = ""
$PCounter = ""
$element = ""
$Array = ""


RETURN




Well.. good luck :P


Edited by Collin (2004-05-12 09:32 AM)
_________________________
Ruud is my hero