IF setconsole("hide")
ENDIF
;
; NT/95 logon - Kixtart 3.62
;
; (c) scripting@wanadoo.nl - 2000
;
; vs 1.00 - program
;
; 1.00 (20000615) original version.
; - special variables:
; $logon_server="IT company"
; $user_drive="s:"
; - special file:
; $user_drive+"\logon.lst" (file.attributes: hidden/read-only/system)
;
$prgrm_version="1.00"
$prgrm_publication_date="15.6.2000"
;
$time_start=@time
;
$cr=CHR(10)
$lf=CHR(13)
$eol=$lf ; - $cr+$lf -
;
$logon_server="IT company"
$user_drive="s:" ; - variable used by calculation of possible missing "$user" value - IF (@inwin = 1)
$NT_mode="yes"
ELSE
$NT_mode="no"
ENDIF
IF (len(@ipaddress0) = 0)
$offline_mode="yes"
ELSE
$offline_mode="no"
ENDIF
; --------------------------------------------------------------------------
; - -
; --------------------------------------------------------------------------
$domain=""
$ldomain=""
IF ($NT_mode = "yes")
$ikey="HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Winlogon"
IF (ExistKey($ikey) = 0)
$domain=ReadValue($ikey, "DefaultDomainName")
ENDIF
$ikey="HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Winlogon"
IF (ExistKey($ikey) = 0)
$ldomain=ReadValue($ikey, "CachePrimaryDomain")
ENDIF
ELSE
$ikey="HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MSNP2\NetworkProvider"
IF (ExistKey($ikey) = 0)
$domain=ReadValue($ikey, "AuthenticatingAgent")
ENDIF
$ikey="HKEY_LOCAL_MACHINE\Security\Provider"
IF (ExistKey($ikey) = 0)
$ldomain=ReadValue($ikey, "Container")
ENDIF
ENDIF
IF (len($domain) = 0)
IF (len(@ldomain) <> 0)
$domain=@ldomain
ELSE
$domain=@domain
ENDIF
IF (len($domain) = 0)
$domain="~domain" ; - unknown @domain/@ldomain value -
ENDIF
ENDIF
IF (len($ldomain) = 0)
$ldomain=$domain
ENDIF
;
break off
MD "c:\temp"
IF (@error = 0)
ENDIF
IF (RedirectOutput("nul",1) = 0)
ENDIF
flushkb
IF ($NT_mode = "yes")
$time_stop=@time
$log_info="Kixtart-LOG "+$prgrm_version+" script started"
$log_info=$log_info+" for '"+LCASE(@userid)+"'"
$log_info=$log_info+" ("+$time_start+" - '"+@ipaddress0+"')"
IF logevent(0, 1, $log_info, "", "Kixtart LOG @kix")
ENDIF
ENDIF
;
IF setconsole("hide")
ENDIF
; --------------------------------------------------------------------------
; - special variables settings -
; --------------------------------------------------------------------------
$section=substr(@date,3,2)
IF (@ydayno < 10)
$section=$section+"00"+@ydayno
ELSE
IF (@ydayno < 100)
$section=$section+"0"+@ydayno
ELSE
$section=$section+@ydayno
ENDIF
ENDIF
$key=$section+"_"
$key=$key+substr(@date,3,2)+substr(@date,6,2)+substr(@date,9,2)
$key=$key+"_"
$key=$key+@time
$key=$key+" "+$domain
$x=""
$tmp=""
$tmp_short=""
IF (len(@ipaddress0) = 0)
$offline_mode="yes"
IF ($NT_mode = "yes")
$x=$x+"(NT - vs "+$prgrm_version+" - off-line )"
ELSE
$x=$x+"(95 - vs "+$prgrm_version+" - off-line )"
ENDIF
ELSE
$offline_mode="no"
IF (len(@lserver) = 0)
$lserver="~lserver "
ELSE
$lserver=@lserver ; - \\spln99999 -
ENDIF
IF (LCASE($domain) = LCASE($ldomain))
IF ($NT_mode = "yes")
$x=$x+"(NT - vs "+$prgrm_version+" L $domain $lserver)"
ELSE
$x=$x+"(95 - vs "+$prgrm_version+" L $domain $lserver)"
ENDIF
ELSE
IF ($NT_mode = "yes")
$x=$x+"(NT - vs "+$prgrm_version+" - $domain $lserver)"
ELSE
$x=$x+"(95 - vs "+$prgrm_version+" - $domain $lserver)"
ENDIF
ENDIF
ENDIF
$tmp_short=$x
IF (len(@ipaddress0) = 15)
$i=1
$ip_old=@ipaddress0
$ip_new=""
DO
IF (substr($ip_old,$i,1) <> " ")
$ip_new=$ip_new+substr($ip_old,$i,1)
ELSE
$ip_new=$ip_new+"0"
ENDIF
$i=$i+1
UNTIL ($i > 15)
ELSE
$ip_new="xxx.xxx.xxx.xxx"
ENDIF
$x=$x+" "+$ip_new
IF (len(@address) = 0)
$address="xxxxxxxxxxxx"
; $address="xx-xx-xx-xx-xx-xx"
ELSE
$address=@address
; $address= substr(@address,1,2)+"-"+substr(@address,3,2)+"-"+substr(@address,5,2)
; $address=$address+"-"+substr(@address,7,2)+"-"+substr(@address,9,2)+"-"+substr(@address,11,2)
ENDIF
$x=$x+" "+$address
$user=""
IF ($NT_mode = "yes")
$ikey="HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon"
IF (ExistKey($ikey) = 0)
$user=ReadValue($ikey, "DefaultUserName")
ENDIF
ELSE
$ikey="HKEY_LOCAL_MACHINE\System\CurrentControlSet\control"
IF (ExistKey($ikey) = 0)
$user=ReadValue($ikey, "Current User")
ENDIF
ENDIF
IF (len($user) = 0)
$user=@userid
IF (len($user) = 0)
$user="~user"
ENDIF
ENDIF
$x=$x+" "+$user
$tmp_short=$tmp_short+" "+$user
IF (len(@wksta) = 0)
$x=$x+" ~wksta"
$tmp_short=$tmp_short+" ~wksta"
ELSE
$x=$x+" "+@wksta
$tmp_short=$tmp_short+" "+@wksta
ENDIF
IF (len(@fullname) = 0)
IF (len(@comment) = 0)
$x=$x+" ('~fullname')"
ELSE
$x=$x+" ('~fullname'+'"+@comment+"')"
ENDIF
$tmp_short=$tmp_short+" '~fullname'"
$fullname=$user
ELSE
IF (len(@comment) = 0)
$x=$x+" ('@fullname')"
ELSE
$x=$x+" ('"+@fullname+"'+'"+@comment+"')"
ENDIF
$tmp_short=$tmp_short+" '"+@fullname+"'"
$fullname=$user
ENDIF
;
$admin_user="no"
IF (INGROUP("Administrators") = 1) OR (INGROUP("Administrators") = 2)
$admin_user="yes"
ENDIF
IF (INGROUP("Domain Admins") = 1) OR (INGROUP("Domain Admins") = 2)
$admin_user="yes"
ENDIF
$tmp=$x
; --------------------------------------------------------------------------
; - get last user logon information -
; --------------------------------------------------------------------------
$last_logon_message="Last logon by '"+$fullname+"' at "+LCASE(@day)+" "+@mdayno+"-"+LCASE(substr(@month,1,3))+"-"+@year+" "+@time
$last_workstation= "Location pc '"+UCASE(@wksta)+"' of domain '"+UCASE($domain)+"'"
$previous_logon_message="<unknown>"
$previous_workstation="<unknown>"
;
$filename=$user_drive+"\logon.lst"
IF (exist($filename) = 1)
IF (setfileattr($filename, 128) <> 0)
ENDIF
$previous_logon_message=readprofilestring($filename, "last logon", "user")
$previous_workstation=readprofilestring($filename, "last logon", "workstation")
ENDIF
IF (writeprofilestring($filename, "last logon", "user", $last_logon_message) <> 0)
? @serror
ENDIF
IF (writeprofilestring($filename, "last logon", "workstation", $last_workstation) <> 0)
? @serror
ENDIF
IF (setfileattr($filename, 7) <> 0) ; -RHS-
? @serror
ENDIF
;
IF (exist($filename) = 1)
IF (len($previous_logon_message) = 0)
$previous_logon_message="<unknown>"
ENDIF
ENDIF
;
IF ($previous_logon_message <> "<unknown>")
$msg= "Welcome to "+$logon_server+" network"+$lf
$msg=$msg+$lf
$msg=$msg+$lf
$msg= "Note: internal systems must be used only for con-"+$lf
$msg=$msg+" ducting business, or for purpose authorized"+$lf
$msg=$msg+" by management."+$lf
$msg=$msg+$lf
$msg=$msg+"Use is subject to audit at any time by management."+$lf
$msg=$msg+$lf
$msg=$msg+$lf
$msg=$msg+$previous_logon_message+$lf
IF ($admin_user = "yes")
$msg=$msg+$lf
$msg=$msg+$previous_workstation
ENDIF
;
IF (MessageBox($msg, $logon_server, 64, 10) <> 0)
? @serror
ENDIF
ENDIF
; --------------------------------------------------------------------------
; - end -
; --------------------------------------------------------------------------
:end_script
; IF (@priv = "ADMIN")
; color R+/W
; ? "Your are SUPERVISOR!"
; play "0g500f120t"
; sleep 5
; ENDIF
$time_stop=@time
IF ($NT_mode = "yes")
$log_info="Kixtart-LOG "+$prgrm_version+" script completed successfully"
$log_info=$log_info+" for '"+LCASE($user)+"' "+UCASE($domain)
$log_info=$log_info+" ("+$time_start+" - "+$time_stop+" - '"+$ip_new+"')"
IF (len($fullname) > 0)
$log_info=$log_info+" '"+LCASE($fullname)+"'"
$log_info=$log_info+" '"+$previous_logon_message+"'"
$log_info=$log_info+" '"+$previous_workstation+"'"
ENDIF
;
IF logevent(0, 1, $log_info, "", "Kixtart LOG @kix"+"s")
ENDIF
ENDIF
play "0g500f60t"
break on
flushkb