Domain Logon Scripting

July 12, 2004

I prefer using kixstart for writing domain logon scripts instead of just plain bat files. Here are a couple examples.

Example kixstart script:
;
; Clear Screen
;
CLS
 
? "Print some kind of message to the user"
 
;
; Redirect any output to the log file.
;
IF RedirectOutput("\server@WKSTA.log",1) = 0
	;
ELSE
	? "Error running logon script!"
	SLEEP 100
	QUIT
ENDIF
 
; stop user for killing script
BREAK off
 
IF (@inwin = 1)
  $NT_mode="yes"
ELSE
  $NT_mode="no"
ENDIF
$os=""
$os_dos=@dos
SELECT
  CASE ($NT_mode = "yes") AND ($os_dos = "5.1")   ; - Windows XP -
    $os="XP"
  CASE ($NT_mode = "yes") AND ($os_dos = "5.0")   ; - Windows 2000 -
    $os="W2K"
  CASE ($NT_mode = "yes")                         ; - Windows NT -
    $os="NT4"
  CASE ($NT_mode <> "yes") AND ($os_dos = "4.90") ; - Windows ME -
    $os="ME"
  CASE ($NT_mode <> "yes") AND ($os_dos = "4.10") ; - Windows 98 -
    $os="W98"
  CASE ($NT_mode <> "yes") AND ($os_dos = "4.0")  ; - Windows 95 -
    $os="W95"
  CASE 1
    $os="???" ; - undetermined -
ENDSELECT
 
;
; Set time
;
SETTIME "\server"
 
;
; Map Some Drives
;
USE O: "\server@USERID$"
USE M: "\serverMData"
 
IF InGroup("DOMAINgroup")
	? "In group!"
; do some other stuff for people in group
NDIF
 
;
;  Add printers.
;
If ADDPRINTERCONNECTION ("\serverHPLaserJet") = 0
	? "Added printer connection."
Endif
 
;
; Print out some local computer information.
;
? "Logging on user @FULLNAME (@USERID) at @DATE @TIME"
? "Computer Name: @HOSTNAME (@WKSTA)"
? "Operating System: @PRODUCTTYPE (@BUILD,@CSD)"
? "CPU Type: @CPU"
$memsize = MemorySize()
? "RAM Size: $memsize"
$diskspace = GetDiskSpace("C:")
? "Drive C Size (kb): $diskspace"
 
QUIT

Test if a computer is a server:

$isServer = 0
select
	case INSTR($os_producttype, "Server") > 0
		$isServer = 1
	case INSTR($os_producttype, "Domain") > 0
		$isServer = 1
endselect
 
If $isServer = 1
	Exit
Endif

Related Posts