Page 1 of 1 1
Topic Options
#121209 - 2004-06-14 08:39 PM Loginscript for an sus server
dansus1 Offline
Lurker

Registered: 2004-06-14
Posts: 3
HELP im setting up an SUS server with a nonactive directory and I need to setup a login script so it will automatically post when a client on the domain logs onto the network. we need to set up their automatic updates to our personal prefrences via this login script. the problem is is that it wont call our 4 other .kix files. i found this code ont he internet and other people say that it works why wont it work for us? the error says Error: "unexpected Command" Script: C:Location\ping.kix Line: 1 Here is the problematic code.Code:
  ;Sus.kix
;This kix file will check the OS and detect compatability with the SUS update. If the update is ;required it will apply the appropriate registry keys.

Break ON
DEBUG OFF
CLS





; ******************************************
;
; MODIFY THESE
;
; ******************************************

$domain = "ScOTT"
$server="\\LANSUSSVR"

; ******************************************
;
; STOP MODIFYING
;
; ******************************************



;variable declaration
Dim $i, $upCount, $reportCount, $yesCount, $incCount, $skipCount, $unCount, $r, $comp, $computer, $os, $oper, $domain, $ResultsINI, $val1, $val2, $regAU, $regWU, $exclude, $ConfigINI; $server

$ResultsINI = 'C:\susres.ini' ;this stores the output of the results
$ConfigINI = 'C:\susconfig.ini'
$regAU =
\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU
$regWU =
\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate
$exclude = Split(ReadProfileString($ConfigINI,'Exclude',''),Chr(10))
$placeholder = " "




Call "ping.kix"
Call "osid.kix"
Call "netview2.kix"
Call "comnetview.kix"

$yesCount=0
$incCount=0
$skipCount=0
$unCount=0
$reportCount=0
$i=0
$upCount=0

For Each $computer In comnetview();netview2($domain,1)
$i=$i+1
$reportCount=$reportCount + 1
if $reportCount=10
$reportCount=0
?
? "Preliminary Report:"
? " --> SUS Enabled Machines: " + $yesCount + " (" +
$upCount + " new)"
? " --> Unavailable Machines: " + $unCount
? " --> PDC Error'd Machines: " + $skipCount
? " --> Incompatible Machines: " + $incCount
? " Total: " + $i
?
ENDIF
$comp = Split($computer,",")[0]
If AScan($exclude, $comp) = -1
If InStr("$comp", "") ;<---------------------change the group here!
? "Working on: " + $comp
If Ping($comp)=1
$os = OSID($comp)
;get the operating system info on the enumerated PC
If VarType($os) & 8192
$oper = Left($os[1],5)
Else
$skipCount=$skipCount + 1
goto "getout"
EndIf
$oper = Left($os[1],5)
; ? "OS : " + $oper
;this is the print out info
If (($oper = "Win2k") OR ($oper = "WinXP")) ;check the os of the PC against SUS compatability
If KeyExist("\\" + $comp + $regAU)
$val1 = ReadValue("\\" + $comp +
$regWU,"WUServer")
$val2 = ReadValue("\\" + $comp +
$regAU,"ScheduledInstallTime")
If ($val1 = $server AND $val2 =
"10")
$r =
WriteProfileString($ResultsINI,$comp,'Already Added',@DATE + " " + @TIME)

? "No need to update"
$yesCount=$yesCount + 1
Else
$r = WriteValue("\\" + $comp
+ $regAU,"RescheduleWaitTime","30","REG_DWORD")
$r = WriteValue("\\" + $comp
+ $regAU,"NoAutoRebootWithLoggedOnUsers","1","REG_DWORD")
$r = WriteValue("\\" + $comp
+ $regAU,"NoAutoUpdate","0","REG_DWORD")
$r = WriteValue("\\" + $comp
+ $regAU,"AUOptions","4","REG_DWORD")
$r = WriteValue("\\" + $comp
+ $regAU,"ScheduledInstallDay","0","REG_DWORD")
$r = WriteValue("\\" + $comp
+ $regAU,"ScheduledInstallTime","10","REG_DWORD")
$r = WriteValue("\\" + $comp
+ $regAU,"UseWUServer","1","REG_DWORD")
$r = WriteValue("\\" + $comp
+ $regWU,"WUServer",$server,"REG_SZ")
$r = WriteValue("\\" + $comp
+ $regWU,"WUStatusServer",$server,"REG_SZ")
$r =
WriteProfileString($ResultsINI,$comp,'SUS Updated',@DATE + " " + @TIME)
? "Sus Updated"
$yesCount=$yesCount + 1
EndIf
Else
$r = WriteValue("\\" + $comp +
$regAU,"RescheduleWaitTime","30","REG_DWORD")
$r = WriteValue("\\" + $comp +
$regAU,"NoAutoRebootWithLoggedOnUsers","1","REG_DWORD")
$r = WriteValue("\\" + $comp +
$regAU,"NoAutoUpdate","0","REG_DWORD")
$r = WriteValue("\\" + $comp +
$regAU,"AUOptions","4","REG_DWORD")
$r = WriteValue("\\" + $comp +
$regAU,"ScheduledInstallDay","0","REG_DWORD")
$r = WriteValue("\\" + $comp +
$regAU,"ScheduledInstallTime","10","REG_DWORD")
$r = WriteValue("\\" + $comp +
$regAU,"UseWUServer","1","REG_DWORD")
$r = WriteValue("\\" + $comp +
$regWU,"WUServer",$server,"REG_SZ")
$r = WriteValue("\\" + $comp +
$regWU,"WUStatusServer",$server,"REG_SZ")
$r =
WriteProfileString($ResultsINI,$comp,'SUS ADDED',@DATE + " " + @TIME)
? "Sus did not exist, added"
$upCount=$upCount+1
$yesCount=$yesCount + 1
EndIf
Else
$r =
WriteProfileString($ResultsINI,$comp,'SUS Incompatable',@DATE + " " + @TIME)
? "Incompatable with SUS."
$incCount=$incCount + 1
EndIf
Else
? $comp + " no longer available."
$unCount=$unCount + 1

EndIf

? "---------------------"
Else
$r = WriteProfileString($ResultsINI,$comp,'Skipped',@DATE +
" " + @TIME)
? $comp + " skipped."
$unCount=$unCount + 1
EndIf
Else
? "-->" + $comp + " on exclude list."
$unCount=$unCount + 1
EndIf

:getout
Next


?
?
?
? "Report:"
? " --> SUS Enabled Machines: " + $yesCount + " (" + $upCount + "
new)"
? " --> Unavailable Machines: " + $unCount
? " --> PDC Error'd Machines: " + $skipCount
? " --> Incompatibl Machines: " + $incCount
?
? " --> Inspected Machines: " + $i
?
? "Please view C:\susres.ini for more information."


Top
#121210 - 2004-06-14 09:04 PM Re: Loginscript for an sus server
Chris S. Offline
MM club member
*****

Registered: 2002-03-18
Posts: 2368
Loc: Earth
Do you have a "ping.kix" file? I suspect that you don't.

Do you have Active Directory? If so, why not set up your clients Automatic Updates settings via GPO?

Top
#121211 - 2004-06-14 09:22 PM Re: Loginscript for an sus server
Chris S. Offline
MM club member
*****

Registered: 2002-03-18
Posts: 2368
Loc: Earth
From private message...

Quote:

we have ping.kix, netview2.kix, osid.kix, and comnetview.kix but we do not have active directory because of our primary domain controller so we cannot do it via a GPO so we have to do it this painful way




Maybe you should post "Ping.kix" instead. The error message you posted tells me that the error is in that script, you posted "Sus.kix."

Top
#121212 - 2004-06-14 09:23 PM Re: Loginscript for an sus server
dansus1 Offline
Lurker

Registered: 2004-06-14
Posts: 3
we dont have active directory and we have to do it non actively which stinks because microsoft makes it damn near impossible other wise but we do have ping.kix Code:
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0038)http://www.ensight.org/images/ping.kix -->
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=windows-1252">
<META content="MSHTML 6.00.2800.1400" name=GENERATOR></HEAD>
<BODY><PRE>Function Ping($ws)
$timeout = 5000 ;in milliseconds (up to 20000)
$machine = $ws
SHELL '%Comspec% /e:1024 /C ping ' + $machine + ' -n 1 -w ' + $timeout + ' | find /C "TTL=" &gt; nul'
IF @error = 0
$Ping=1
ELSE
$Ping=0
ENDIF
EndFunction
</PRE></BODY></HTML>


as well as netview2.kix,
Code:
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0042)http://www.ensight.org/images/netview2.kix -->
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=windows-1252">
<META content="MSHTML 6.00.2800.1400" name=GENERATOR></HEAD>
<BODY><PRE>;FUNCTION NetView2()
;
;AUTHOR Jens Meyer (sealeopard@usa.net)
;
;CONTRIBUTOR Shawn Tassie
;
;ACTION Enumerate all announced computers in your domain
;
;VERSION 1.2 (fixed bug in SHELL string)
;1.1
;
;DATE CREATED 2002/05/14
;
;DATE MODIFIED 2003/05/31
;
;KIXTART 4.12+
;
;SYNTAX NetView2([Domain,Comment])
;
;PARAMETERS DOMAIN
;Specifies the domain to enumerate. If domain is omitted, returns a
;list of all announced computers in the current domain.
;
;COMMENT
;Optional boolean to determine whether to return the associated computer
;comment (separated by a comma from the computername)
;
;RETURNS
;An array of strings representing all the computers in the domain
;
;REMARKS
;This UDF returns a list of computers that are PINGable. Computers, that
;are members of the domain but are currently not connected to the domain,
;will not be listed. For a list of joined computers independent of whether
;they are on- or off-line use COMNetView().
;
;Slightly improved version of Shawn's NetView() UDF
;at http://www.kixtart.org/cgi-bin/ultimatebb.cgi?ubb=print_topic;f=12;t=000059
;
;DEPENDENCIES
;none
;
;EXAMPLE
;for each $computer in netview2()
; ? ''+$computer
;next
;
;KIXTART BBS
;http://www.kixtart.org/cgi-bin/ultimatebb.cgi?ubb=get_topic;f=12;t=000202
;


function NetView2(optional $domain, optional $commentflag)
dim $array[255]
dim $redim, $i, $j, $tempfile
dim $filehandle, $retcode, $line
dim $name, $comment

$redim = 255
$i = 0
$j = 0
$tempfile = '%temp%\netview.tmp'

if $domain
$domain = '/domain:'+trim($domain)
endif

if vartype($commentflag)
$commentflag=val($commentflag)
else
$commentflag=0
endif

if exist($tempfile)
del $tempfile
endif

shell '%comspec% /c net view '+$domain+' &gt;"'+$tempfile+'"'

if @error = 0
$filehandle=freefilehandle()
$retcode=open($filehandle,$tempfile)

for $j = 1 to 5
$line = readline($filehandle) ; skip headings
next

while @error = 0
$name= trim(substr($line,3,instr($line,' ')-1))
$comment = trim(right($line,len($line)-instr($line,' ')))
if $commentflag
$array[$i]=$name+','+$comment
else
$array[$i]=$name
endif
$i=$i+1
if $i = $redim
$redim=$redim*2
redim preserve $array[$redim]
endif
$line = readline($filehandle)
loop
$retcode=close($filehandle)
del $tempfile
if $i
redim preserve $array[$i-4]
$netview2 = $array
exit @error
endif
endif

$netview2 = 0
exit @error
endfunction
</PRE></BODY></HTML>


comnet.kix,
Code:
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0044)http://www.ensight.org/images/comnetview.kix -->
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=windows-1252">
<META content="MSHTML 6.00.2800.1400" name=GENERATOR></HEAD>
<BODY><PRE>;FUNCTION COMNetView()
;
;ACTION Enumerate all joined computers in a domain
;
;AUTHOR Jens Meyer (sealeopard@usa.net)
;
;VERSION 1.3 (added error codes, changes variable redim algorithm)
; 1.2
;
;DATE CREATED 2002/05/14
;
;DATE MODIFIED 2003/06/24
;
;KIXTART 4.12+
;
;SYNTAX COMNetView([Domain])
;
;PARAMETERS DOMAIN
; Specifies the domain to enumerate. If domain is omitted, returns a
; list of all joined computers in the current domain.
;
;RETURNS An array of strings representing all the computers in the domain
;
;REMARKS This function returns all computers that have joined the specified domain
; independent of whether the computer is on- or off-line. It will not return
; computers running the Windows 9x operating system since they technically do
; not join the domain. To include Windows 9x computers in this list, please use
; either NetView() or NetView2()
;
;DEPENDENCIES none
;
;EXAMPLE for each $computer in COMNetView()
; ? ''+$computer
; next
;
;KIXTART BBS http://www.kixtart.org/board/ultimatebb.php?ubb=get_topic;f=12;t=000201
;
Function COMNetView(optional $domain)
Dim $list, $objDomain, $objComputername, $filter[0]

; this function seems to only work on Windows 2000/XP computers
; even in a Windows NT 4.0 domain
if val(@INWIN)&lt;&gt;1 or val(@DOS)&lt;5
exit 196
endif

$domain = trim($domain)
if $domain=''
$domain=@DOMAIN
endif

$filter[0]='Computer'

$objDomain = GetObject('WinNT://' + $domain + ',domain')
if @ERROR
exit @ERROR
endif
$objDomain.Filter=$filter
if @ERROR
exit @ERROR
endif
For Each $objComputername In $objDomain
redim preserve $list[ubound($list)+1]
$list[ubound($list)] = $objComputername.Name
Next

$objDomain = 0

$COMNetView = $list

exit @ERROR
EndFunction</PRE></BODY></HTML>



and osid.kix
Code:
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0038)http://www.ensight.org/images/osid.kix -->
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=windows-1252">
<META content="MSHTML 6.00.2800.1400" name=GENERATOR></HEAD>
<BODY><PRE>;==================================================================================================
Function osid(optional $sComp)
Dim $osidarray[13]

Dim $iINWIN, $sDOS, $iBUILD, $sCSD, $iPRODUCTSUITE, $sPRODUCTTYPE

Dim $operating_system, $sp_level, $os_suite, $os_short, $productsuite
Dim $os_type, $os_role, $os_flavor, $os_subver, $regkey
Dim $os_build, $os_proc, $os_owner, $os_org, $os_key, $os_date, $os_oem
Dim $os_lang, $os_producttype, $os_longbuild
Dim $LongHornBuild[4], $Win2003Build[9], $iBuildnumber, $asBuildList
Dim $WinXPBuild[9], $Win2000Build[7]

$LongHornBuild[0]='internal release',3670,3683,4008
$LongHornBuild[1]='Alpha Preview 3',4015
$LongHornBuild[2]='Alpha Preview 2',4008
$LongHornBuild[3]='Developer Preview',4051
$LongHornBuild[4]='RTM'

$Win2003Build[0]='Whistler Server preview release',2250
$Win2003Build[1]='Whistler Server alpha',2257
$Win2003Build[2]='Whistler Server interim release',2267,2410.2469
$Win2003Build[3]='Windows .NET Server interim release',3541,3604,3615,3621,3628,3660
$Win2003Build[4]='Windows .NET Server beta 3',3590
$Win2003Build[5]='Release Candidate 1',3663
$Win2003Build[6]='Release Candidate 2',3718
$Win2003Build[7]='internal release',3757
$Win2003Build[8]='escrow build',3763
$Win2003Build[9]='RTM',3790

$WinXPBuild[0]='Whistler pre-alpha',2223.1
$WinXPBuild[1]='Whistler preview',2250
$WinXPBuild[2]='Whistler alpha',2257
$WinXPBuild[3]='Whistler inetrim release',2267,2410,2416,2419
$WinXPBuild[4]='Whistler beta 1',2296
$WinXPBuild[5]='interim release',2428,2432,2446,2465,2469,2475,2481,2486,2494,2496,2526,2535,2542
$WinXPBuild[6]='Beta 2',2462
$WinXPBuild[7]='Release Candidate 1',2502
$WinXPBuild[8]='Release Candidate 2',2520
$WinXPBuild[9]='RTM',2545,2600

$Win2000Build[0]='Beta 1',1671
$Win2000Build[1]='Beta 2',1515
$Win2000Build[2]='Beta 2 Release Candidate',1859
$Win2000Build[3]='interim release',1868,1773
$Win2000Build[4]='Beta 3',2031
$Win2000Build[5]='Beta 3 Release Candidate 2',2128
$Win2000Build[6]='Release Candidate 3',2183
$Win2000Build[7]='RTM',2195

$sComp=Trim($sComp)
Select
Case $sComp=@WKSTA
$sComp=''
Case $sComp AND NOT KeyExist('\\'+$sComp+'\HKLM')
Exit 2
Case $sComp
$sComp='\\'+$sComp+'\'
EndSelect

; fetch all macro info depending on whether it's remote or local
If $sComp
If KeyExist($sComp+'HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList')
$iINWIN=1
$sDOS=ReadValue($sComp+'HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion','CurrentVersion')
$iBUILD=ReadValue($sComp+'HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion','CurrentBuildNumber')
$sCSD=ReadValue($sComp+'HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion','CSDVersion')
If $sDOS='4.0' AND ReadValue($sComp+'HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix\Q246009','Installed')
$sCSD=$sCSD+'a'
EndIf
$sPRODUCTTYPE=ReadValue($sComp+'HKLM\SYSTEM\CurrentControlSet\Control\ProductOptions','ProductType')
Select
Case $sPRODUCTTYPE='WinNT'
If $sDOS='4.0'
$sPRODUCTTYPE='Workstation'
Else
$sPRODUCTTYPE='Professional'
EndIf
Case $sPRODUCTTYPE='ServerNT'
If $sDOS='5.2'
$sPRODUCTTYPE=''
Else
$sPRODUCTTYPE='Server'
EndIf
Case $sPRODUCTTYPE='LANManNT'
$sPRODUCTTYPE='Domain Controller'
Case 1
$sPRODUCTTYPE='Home Edition'
EndSelect
$sPRODUCTTYPE=ReadValue($sComp+'HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion','ProductName')+' '+$sPRODUCTTYPE
$sPRODUCTTYPE=Join(Split($sPRODUCTTYPE,'Microsoft'),'')
$iPRODUCTSUITE=''
$os_lang=$sComp+Join(Split(ReadValue($sComp+'HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion','SystemRoot'),':\'),'$\')+'\system32\shell32.dll'
$os_lang=GetFileVersion($os_lang,'Language')
Else
$iINWIN=2
$dDOS=ReadValue($sComp+'HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion','VersionNumber')
$dDOS=Split($dDOS,'.')
$iBUILD=$dDOS[Ubound($dDOS)]
ReDim preserve $dDOS[1]
$sDOS=Join($dDOS,'.')
$sCSD=''
$iPRODUCTSUITE=''
$sPRODUCTTYPE=ReadValue($sComp+'HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion','Version')
$os_lang=Right(''+ReadValue($sComp+'HKLM\SYSTEM\CurrentControlSet\Control\Nls\Locale',''),4)
EndIf
Else
$iINWIN=@INWIN
$sDOS=@DOS
$iBUILD=@BUILD
$sCSD=@CSD
$iPRODUCTSUITE=@PRODUCTSUITE
$sPRODUCTTYPE=@PRODUCTTYPE
$os_lang=@SYSLANG
EndIf



; set the correct registry key
If $iINWIN=1
$regkey='HKLM\Software\Microsoft\Windows NT\CurrentVersion'
Else
$regkey='HKLM\Software\Microsoft\Windows\CurrentVersion'
EndIf
If $sComp
$regkey=$sComp+$regkey
EndIf



; retrieve registered owner, organization, build, type
$os_owner=ReadValue($regkey,'RegisteredOwner')
$os_org=ReadValue($regkey,'RegisteredOrganization')
$os_proc=ReadValue($regkey,'CurrentType')
$os_build=Val($iBUILD)

Select
Case $iINWIN=1
; determine the operating system kernel
Select
Case $sDOS='6.0'
$operating_system='Windows Longhorn'
For $iBuildnumber=0 to Ubound($LongHornBuild)
$asBuildList=$LongHornBuild[$iBuildNumber]
If AScan($asBuildList,$os_build)+1
$os_longbuild=$asBuildList[0]
EndIf
Next
$os_short='WinLonghorn'
$os_key=ReadValue($regkey,'ProductID')
Case $sDOS='5.2'
$operating_system='Windows Server 2003'
$os_short='Win2K3'
$os_key=ReadValue($regkey,'ProductID')
For $iBuildnumber=0 to Ubound($Win2003Build)
$asBuildList=$Win2003Build[$iBuildNumber]
If AScan($asBuildList,$os_build)+1
$os_longbuild=$asBuildList[0]
EndIf
Next
Case $sDOS='5.1'
$operating_system='Windows XP'
For $iBuildnumber=0 to Ubound($WinXPBuild)
$asBuildList=$WinXPBuild[$iBuildNumber]
If AScan($asBuildList,$os_build)+1
$os_longbuild=$asBuildList[0]
EndIf
Next
$os_short='WinXP'
$os_key=ReadValue($regkey,'ProductID')
Case $sDOS='5.0'
$operating_system='Windows 2000'
For $iBuildnumber=0 to Ubound($Win2000Build)
$asBuildList=$Win2000Build[$iBuildNumber]
If AScan($asBuildList,$os_build)+1
$os_longbuild=$asBuildList[0]
EndIf
Next
$os_short='Win2k'
$os_key=ReadValue($regkey,'ProductID')
Case $sDOS='4.0'
$operating_system='Windows NT 4.0'
$os_short='WinNT'
$os_key=ReadValue($regkey,'ProductID')
$os_key=Left($os_key,5)+'-'+SubStr($os_key,6,3)+'-'+SubStr($os_key,10,7)+'-'+Right($os_key,5)
Case 1
$operating_system='unknown'
$os_short='unknown'
EndSelect



; determine the service pack level
$sp_level=$sCSD
If InStr($sp_level,'Service Pack')
$sp_level=Split($sp_level,'Service Pack')
$sp_level=Trim($sp_level[Ubound($sp_level)])
Else
$sp_level=0
EndIf



; determine the product suite
$productsuite=Val($iPRODUCTSUITE)
$os_suite=''
If $productsuite
If $productsuite = 1
$os_suite=$os_suite+'Small Business |'
EndIf
If $productsuite = 2
$os_suite=$os_suite+'Enterprise |'
EndIf
If $productsuite = 4
$os_suite=$os_suite+'BackOffice |'
EndIf
If $productsuite = 8
$os_suite=$os_suite+'Communication Server |'
EndIf
If $productsuite = 16
$os_suite=$os_suite+'Terminal Server |'
EndIf
If $productsuite = 32
$os_suite=$os_suite+'Small Business (Restricted) |'
EndIf
If $productsuite = 64
$os_suite=$os_suite+'Embedded NT |'
EndIf
If $productsuite = 128
$os_suite=$os_suite+'DataCenter |'
EndIf
If $productsuite = 256
$os_suite=$os_suite+'Single User Terminal Server |'
EndIf
If $productsuite = 512
$os_suite=$os_suite+'Home Edition |'
EndIf
If $productsuite = 1024
$os_suite=$os_suite+'Blade Server |'
EndIf
If InStr($os_suite,'|')
$os_suite=Left($os_suite,Len($os_suite)-2)
EndIf
EndIf




; determine the producy type
$os_type=$sPRODUCTTYPE
Select
Case InStr($os_type,'Domain Controller')
$os_type='Domain Controller'
$os_role='Domain Controller'
$os_flavor='Server'
Case InStr($os_type,'Server')
$os_type='Server'
$os_role='Member Server'
$os_flavor='Server'
Case InStr($os_type,'Workstation')
$os_type='Workstation'
$os_role='Workstation'
$os_flavor='Workstation'
Case InStr($os_type,'Professional')
$os_type='Professional'
$os_role='Workstation'
$os_flavor='Workstation'
Case InStr($os_type,'Tablet PC')
$os_type='Tablet PC'
$os_role='Workstation'
$os_flavor='Tablet PC'
Case InStr($os_type,'Home Edition')
$os_type='Home Edition'
$os_role='Workstation'
$os_flavor='Workstation'
Case 1
$os_type='unknown'
$os_role='unknown'
$os_flavor='unknown'
EndSelect




; create the @PRODUCTTYPE macro
$os_producttype=Join(Split($operating_system+' '+$os_type,'4.0 '),'')
$operating_system=$os_producttype



; add pre-RTM build info to OS description
If $os_longbuild AND $os_longbuild&lt;&gt;'RTM'
$operating_system=$operating_system+' (build '+$os_build+', '+$os_longbuild+')'
EndIf



; add service pack info to OS description
If $sp_level
$operating_system=$operating_system+' Service Pack '+$sp_level
EndIf
If $os_suite&lt;&gt;''
$operating_system=$operating_system+' ['+$os_suite+']'
EndIf




; determine the installation date
$os_date=ReadValue($sComp+'HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion','Installdate')




; determine the OEM Duplicator String
$os_oem=ReadValue($sComp+'HKLM\System\Setup','OemDuplicatorString')

Case $iINWIN=2
$os_short='Win9x'
$os_role='Workstation'
$sp_level=0

$os_subver=Lcase(ReadValue($regkey,'SubVersionNumber'))

Select
Case $sDOS='4.90'
$operating_system='Windows ME'
$os_key=ReadValue($regkey,'ProductKey')
$os_flavor=''
Case $sDOS='4.10'
$operating_system='Windows 98'
$os_key=ReadValue($regkey,'ProductKey')
Select
Case InStr($os_subver,'c')
$os_flavor='SE'
Case InStr($os_subver,'b')
$os_flavor='B'
Case $os_subver=' a '
$os_flavor='Second Edition'
Case 1
$os_flavor='OEM'
EndSelect
Case $sDOS='4.0'
$operating_system='Windows 95'
$os_key=ReadValue($regkey,'ProductID')
Select
Case InStr($os_subver,'c')
$os_flavor='OSR 2.5'
Case InStr($os_subver,'b')
$os_flavor='OSR 2.0'
Case InStr($os_subver,'a')
$os_flavor=' Service Pack 1'
Case 1
$os_flavor=' OEM'
EndSelect
Case 1
$operating_system='unknown'
$os_short='unknown'
EndSelect
$os_producttype=$operating_system
If $os_flavor
$operating_system=$operating_system+' '+$os_flavor
EndIf
EndSelect

IF $os_short="Win2k"
IF InStr($operating_system,"server")
$os_short="Win2000"
ENDIF
ENDIF


$osidarray[0]=$operating_system
$osidarray[1]=$os_short
$osidarray[2]=$os_role
$osidarray[3]=$sp_level
$osidarray[4]=$os_build
$osidarray[5]=$os_proc
$osidarray[6]=$os_owner
$osidarray[7]=$os_org
$osidarray[8]=$os_key
$osidarray[9]=$os_date
$osidarray[10]=$os_oem
$osidarray[11]=$os_lang
$osidarray[12]=$os_producttype
$osidarray[13]=$os_longbuild

$osid=$osidarray

EndFunction</PRE></BODY></HTML>


Top
#121213 - 2004-06-14 09:32 PM Re: Loginscript for an sus server
Chris S. Offline
MM club member
*****

Registered: 2002-03-18
Posts: 2368
Loc: Earth
Looks like you have some HTML header information in your KiX files. Example, ping.kix should look like this...

Code:
Function Ping($ws)

$timeout = 5000 ;in milliseconds (up to 20000)
$machine = $ws
SHELL '%Comspec% /e:1024 /C ping ' + $machine + ' -n 1 -w ' + $timeout + ' | find /C "TTL=" > nul'
IF @error = 0
$Ping=1
ELSE
$Ping=0
ENDIF
EndFunction


Top
#121214 - 2004-06-14 09:44 PM Re: Loginscript for an sus server
dansus1 Offline
Lurker

Registered: 2004-06-14
Posts: 3
haha yeah we just figured out the HTML part, dumb on our part but now when we run it we get this error in the commandline box when it runs (really appreciate the help btw):
Code:
 Working on: AV-ACORTELLUCCI1
'gt' is not recognized as an internal or external command,
operable program or batch file.

AV-ACORTELLUCCI no longer available.
---------------------
Working on: AV-ADOROGI0
'gt' is not recognized as an internal or external command,
operable program or batch file.

AV-ADOROGI no longer available.
---------------------

Preliminary Report:
--> SUS Enabled Machines: 0 (0 new)
--> Unavailable Machines: 9
--> PDC Error'd Machines: 0
--> Incompatible Machines: 0
Total: 10


Top
#121215 - 2004-06-14 09:52 PM Re: Loginscript for an sus server
Chris S. Offline
MM club member
*****

Registered: 2002-03-18
Posts: 2368
Loc: Earth
Check all of your KiX files for HTML codes, like &gt;. Example...

Code:

SHELL '%Comspec% /e:1024 /C ping ' + $machine + ' -n 1 -w ' + $timeout + ' | find /C "TTL=" &gt; nul'


...should be...
Code:

SHELL '%Comspec% /e:1024 /C ping ' + $machine + ' -n 1 -w ' + $timeout + ' | find /C "TTL=" > nul'



Top
#121216 - 2004-06-14 10:08 PM Re: Loginscript for an sus server
Chris S. Offline
MM club member
*****

Registered: 2002-03-18
Posts: 2368
Loc: Earth
Just glancing though your previous posts. Seems like there are quite a few HTML codes in your scripts. You might be better off by replacing those files with the code in the UDF forum...

Ping() - checks for reply , or returns ip-address of remote host

NetView2() - Enumerate all computers in your domain

OSID() - Identifies operating system, service pack level, and OS kernel

COMNetView() - Enumerate all computers in your domain

Top
Page 1 of 1 1


Moderator:  Jochen, Allen, Radimus, Glenn Barnas, ShaneEP, Ruud van Velsen, Arend_, Mart 
Hop to:
Shout Box

Who's Online
1 registered (Henriques) and 2516 anonymous users online.
Newest Members
fgarcia, Viginette, ManuvdWielNL, Sir_Barrington, batdk82
17889 Registered Users

Generated in 0.059 seconds in which 0.026 seconds were spent on a total of 12 queries. Zlib compression enabled.

Search the board with:
superb Board Search
or try with google:
Google
Web kixtart.org