You can clean up your code significantly with Win32_NetworkAdapter..
Code:
CLS
AT (1,1) "Obtaining Computer Information..."
SLEEP 2
CLS
;BREAK ON CLS
;**** DECLARE VARIABLES ***
DIM $cnstring, $cmdtxt, $cn, $cmd, $rs, $modifydatetime, $username, $osname, $pcmodel, $comment, $language,
$servicepack, $sysmanufacturer, $sysserial, $ipaddress, $macaddr
;*** CONFIGURE DATABASE CONNECTION STRING ***
$cnstring = "DRIVER={SQL Server};SERVER=ServerNAME;UID=UID;PWD=PW;DATABASE=DBNAME"
$cmdtxt = "select * from COMPUTERS where pcname = '@WKSTA'"
$cn=CreateObject("ADODB.Connection")
$cmd=CreateObject("ADODB.Command")
$rs=CreateObject("ADODB.RecordSet")
$cn.connectionstring = $cnstring
$cn.open
$cmd.activeconnection = $cn
$rs.cursortype = 3
$rs.locktype = 3
$rs.activecommand = $cmd
$cmd.commandtext = $cmdtxt $rs.open ($cmd)
;*** COLLECT WORKSTAION ASSET INFORMATION
$modifydatetime = @date + " " + @time
$pcname = @wksta
$username = @userid
$comment = @comment
$ipaddress = @ipaddress0
$osname = WMIQuery("Caption","Win32_OperatingSystem")
$language = @syslang
$macaddr = WMIQuery("MACAddress","Win32_NetworkAdapter")
$servicepack = WMIQuery("CSDVersion","Win32_OperatingSystem")
$sysmanufacturer = WMIQuery("Manufacturer","Win32_ComputerSystem")
$pcmodel = WMIQuery("Model","Win32_ComputerSystem")
$sysserial = WMIQuery("SerialNumber","Win32_BIOS")
; compatibility with AD migration checking
IF $lanaddr="0.0.0.0"
$lanaddr="unknown"
$macaddr="unknown"
ENDIF
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)
EXIT @error
ENDFUNCTION
;*** ADD RECORDS TO THE DATABASE ***
IF $rs.eof = -1 ; addnew is only needed if a record for this workstation was not found.
$rs.addnew
ENDIF
$rs.fields.item("pcname").value = $pcname
$rs.fields.item("username").value = $username
$rs.fields.item("Comment").value = $comment
$rs.fields.item("lastlogin").value = $modifydatetime
$rs.fields.item("osname").value = $osname
$rs.fields.item("LANGUAGE").value = $language
$rs.fields.item("SERVICEPACK").value = $servicepack
$rs.fields.item("PCMANUFACTURER").value = $sysmanufacturer
$rs.fields.item("PCModel").value = $pcmodel
$rs.fields.item("SYSSERIAL").value = $sysserial
$rs.fields.item("IP").value = $ipaddress
$rs.fields.item("MACADDRESS").value = $macaddr
$rs.update
$rs.close
Also, removed the GOTOs..
Of course, this is assuming that you have the SQL Tables and Identity Seed(s) setup correctly.
Thanks,
Kent