|
I am still having problems... This is my code... can anyone help with this?
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 $ServicePack = WMIQuery("CSDVersion","Win32_OperatingSystem") $SysManufacturer = WMIQuery("Manufacturer","Win32_ComputerSystem") $PCModel = WMIQuery("Model","Win32_ComputerSystem") $SysSerial = WMIQuery("SerialNumber","Win32_BIOS")
; ******* MAC ADDRESS INFO ******* ; Issue 'IPCONFIG' to get the local IP address, also record the mac address IF (@DOS < "5.0") GOTO #ADU5 ENDIF if exist("c:\ip.txt") SHELL "%COMSPEC% /c del c:\ip.txt" ENDIF shell "cmd.exe /c %WINDIR%\SYSTEM32\ipconfig.exe /all > c:\ip.txt" IF EXIST("c:\ip.txt") else goto #ADU4A ENDIF
$macaddr="00-00-00-00-00-00" $ipdone=0 IF OPEN(4,"c:\ip.txt") = 0 WHILE (@ERROR=0) and ($ipdone=0) $ipline=Readline(4) ; processing for 'Physical Address. . . ' lines ; comes before 'ip address' line per adapter If INSTR($ipline,"Physical Address. .") $l=LEN($ipline) $m=instr($ipline,":") IF ($m=0) or ($m=$l) ELSE $macaddr=substr($ipline,$m+1,$l-$m) $macaddr=Trim("$macaddr") ENDIF EndIf LOOP $cl=CLOSE(4) ENDIF :#ADU4A ; compatibility with AD migration checking if $lanaddr="0.0.0.0" $lanaddr="unknown" $macaddr="unknown" Endif :#ADU5 :#ADEND
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
|