#129513 - 2004-11-15 01:59 PM
Asset Inventory to Access Database
|
Shaun_Hill
Getting the hang of it
Registered: 2004-11-15
Posts: 50
Loc: JHB, South Africa
|
Hi Guys,
I wonder if you geniuses can help me. I am having a problem with a script that i've been setting up. I'm capturing information from workstations and then writing it to an access database. The script works brilliantly and is fast accept that when I run it as a logon script it cant find my database path which is in a variable! It works well if i run it straight. I've included the script seeing as i have never contributed anything before I might as well now... But does anybody know what the reason for this is? I'm not exacly a pro but I can usually manage!
Herewith the script, enjoy:
;*** CREATE AN ACCESS DATABASE WITH A TABLE NAMED COMPUTERS**** ;*** CREATE THE FOLLOWING FIELDS: COMPUTERNAME, DOMAIN, SYSNAME ;*** OSNAME, MANUFACTURER, OSVERSION, OSBUILD, OSTYPE, LANGUAGE ;*** SERVICEPACK, BOOTDEVICE, SYSTEMDEVICE, WINDIR, SYSDIR, INSTALLDATE ;*** LASTBOOTTIME, OSSERIAL, SYSMANUFACTURER, SYSMODEL, SYSSERIAL, SYSBIOSVER ;*** SYSBIOSDATE, CPUMANUFACTURER, CPUDESCRIPTION, CPUSPEED, MAXCLOCK, FAMILY ;*** STEPPING, DEVICEID, SYSMEMORY, DISKNAMES, VOLNAMES, DISKNAMES, DISKSIZE ;*** FILESYS, FREESPACE, VIDEOCARD, VIDEORES, PRINTERS, NICCARD, MODIFYDATETIME ;*** APPLICATIONS, SERVICES, USERNAME
DIM $DBpath ;*** CONFIGURE DATABASE PATH*** $DBpath = "\\SERVERNAME\FOLDER\FOLDER\ITAssets.mdb"
CLS AT (1,1) "Asset Audit Script Processing..." SLEEP 2 CLS
BREAK ON CLS
;**** DECLARE VARIABLES ***
DIM $CNstring, $CMDtxt, $cn, $cmd, $rs DIM $ModifyDateTime, $computername, $username, $domain, $sysname, $osname DIM $Manufacturer, $OSVersion, $OSBuild, $OSType, $Language, $ServicePack DIM $BootDevice, $SystemDevice, $WinDir, $SysDir, $InstallDate, $LastBoottime DIM $OSSerial, $SysManufacturer, $SysModel, $SysSerial, $SystemBIOSVer, $SysBIOSDate DIM $CPUManufacturer, $CPUDescription, $CPUSpeed, $MaxClock, $Family, $Stepping DIM $DeviceID, $SysMemory, $DiskNames, $VolNames, $DiskSize DIM $FileSys, $FreeSpace, $VideoCard, $VideoRes, $Modem, $Printers, $ptr, $NicCard, $nic
If Exist("$DBpath") = 0 ? "IT Assets Database Not Found. Aborting..." Sleep 3 Goto end EndIf
;*** CONFIGURE DATABASE CONNECTION STRING *** $CNstring = "provider=microsoft.jet.oledb.4.0;data source=$DBpath;persist security info=false" $CMDtxt = "select * from COMPUTERS where computername = '@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 $computername = @WKSTA $username = @userid $domain = @domain $sysname = WMIQuery("CSName","Win32_OperatingSystem") $osname = WMIQuery("Caption","Win32_OperatingSystem") $Manufacturer = WMIQuery("Manufacturer","Win32_OperatingSystem") $OSVersion = WMIQuery("Version","Win32_OperatingSystem") $OSBuild = WMIQuery("BuildNumber","Win32_OperatingSystem") $OSType = WMIQuery("BuildType","Win32_OperatingSystem") $Language = WMIQuery("OSLanguage","Win32_OperatingSystem") $ServicePack = WMIQuery("CSDVersion","Win32_OperatingSystem") $BootDevice = WMIQuery("BootDevice","Win32_OperatingSystem") $SystemDevice = WMIQuery("SystemDevice","Win32_OperatingSystem") $WinDir = WMIQuery("WindowsDirectory","Win32_OperatingSystem") $SysDir = WMIQuery("SystemDirectory","Win32_OperatingSystem") $InstallDate = WMIQuery("InstallDate","Win32_OperatingSystem") $LastBoottime = WMIQuery("LastBootupTime","Win32_OperatingSystem") $OSSerial = WMIQuery("SerialNumber","Win32_OperatingSystem") $SysManufacturer = WMIQuery("Manufacturer","Win32_ComputerSystem") $SysModel = WMIQuery("Model","Win32_ComputerSystem") $SysSerial = WMIQuery("SerialNumber","Win32_BIOS") $SystemBIOSVer = WMIQuery("SMBIOSBIOSVersion","Win32_BIOS") $SysBIOSDate = WMIQuery("Version","Win32_BIOS") $CPUManufacturer = WMIQuery("manufacturer","Win32_Processor") $CPUDescription = WMIQuery("description","Win32_Processor") $CPUSpeed = WMIQuery("CurrentClockSpeed","Win32_Processor") $MaxClock = WMIQuery("maxclockspeed","Win32_Processor") $Family = WMIQuery("family","Win32_Processor") $Stepping = WMIQuery("stepping","Win32_Processor") $DeviceID = WMIQuery("deviceid","Win32_Processor") $SysMemory = val(WMIQuery("TotalPhysicalMemory","Win32_LogicalMemoryConfiguration"))/1024 $DiskNames = WMIQuery("name","Win32_LogicalDisk") $VolNames = WMIQuery("volumename","Win32_LogicalDisk") $DiskSize = WMIQuery("size","Win32_LogicalDisk") $FileSys = WMIQuery("filesystem","Win32_LogicalDisk") $FreeSpace = WMIQuery("freespace","Win32_LogicalDisk") $VideoCard = WMIQuery("Description","Win32_VideoController") $VideoRes = WMIQuery("VideoModeDescription","Win32_VideoController") $Modem = WMIQuery("Description","Win32_POTSModem") $Printers = WMIQuery("Name","Win32_printer") for each $nic in Split(WMIQuery("ProductName","Win32_NetworkAdapter"),"|") if instr($nic,"miniport")=0 and instr($nic,"RAS")=0 and instr($nic,"Parallel")=0 $NicCard = $nic $Applications = WMIQuery("Caption","Win32_Product") $Services = WMIQuery("Caption","Win32_Service")
endif next
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("COMPUTERNAME").value = $computername $rs.fields.item("DOMAIN").value = $domain $rs.fields.item("SYSNAME").value = $Sysname $rs.fields.item("OSNAME").value = $osname $rs.fields.item("MANUFACTURER").value = $Manufacturer $rs.fields.item("OSVERSION").value = $OSVersion $rs.fields.item("OSBUILD").value = $OSBuild $rs.fields.item("OSTYPE").value = $OSType $rs.fields.item("LANGUAGE").value = $Language $rs.fields.item("SERVICEPACK").value = $ServicePack $rs.fields.item("BOOTDEVICE").value = $BootDevice $rs.fields.item("SYSTEMDEVICE").value = $SystemDevice $rs.fields.item("WINDIR").value = $WinDir $rs.fields.item("SYSDIR").value = $SysDir $rs.fields.item("INSTALLDATE").value = $InstallDate $rs.fields.item("LASTBOOTTIME").value = $LastBoottime $rs.fields.item("OSSERIAL").value = $OSSerial $rs.fields.item("SYSMANUFACTURER").value = $SysManufacturer $rs.fields.item("SYSMODEL").value = $SysModel $rs.fields.item("SYSSERIAL").value = $SysSerial $rs.fields.item("SYSBIOSVER").value = $SystemBIOSVer $rs.fields.item("SYSBIOSDATE").value = $SysBIOSDate $rs.fields.item("CPUMANUFACTURER").value = $CPUManufacturer $rs.fields.item("CPUDESCRIPTION").value = $CPUDescription $rs.fields.item("CPUSPEED").value = $CPUSpeed $rs.fields.item("MAXCLOCK").value = $MaxClock $rs.fields.item("FAMILY").value = $Family $rs.fields.item("STEPPING").value = $Stepping $rs.fields.item("DEVICEID").value = $DeviceID $rs.fields.item("SYSMEMORY").value = $SysMemory $rs.fields.item("DISKNAMES").value = $DiskNames $rs.fields.item("VOLNAMES").value = $VolNames $rs.fields.item("DISKNAMES").value = $DiskNames $rs.fields.item("DISKSIZE").value = $DiskSize $rs.fields.item("FILESYS").value = $FileSys $rs.fields.item("FREESPACE").value = $FreeSpace $rs.fields.item("VIDEOCARD").value = $VideoCard $rs.fields.item("VIDEORES").value = $VideoRes $rs.fields.item("PRINTERS").value = $Printers $rs.fields.item("NICCARD").value = $NicCard $rs.fields.item("MODIFYDATETIME").value = $ModifyDateTime $rs.fields.item("APPLICATIONS").value = $Applications $rs.fields.item("SERVICES").value = $Services $rs.fields.item("USERNAME").value = $Username
$rs.update
$rs.Close
|
Top
|
|
|
|
#129515 - 2004-11-15 02:15 PM
Re: Asset Inventory to Access Database
|
Shaun_Hill
Getting the hang of it
Registered: 2004-11-15
Posts: 50
Loc: JHB, South Africa
|
No. The database and path are accessible! the script runs beutifully if I drag the .kix file on kix32.exe. 100% no problems. Only when I'm logging on to the domain does it not find/hold the path. I dont understand why not.
|
Top
|
|
|
|
#129516 - 2004-11-15 02:23 PM
Re: Asset Inventory to Access Database
|
Howard Bullock
KiX Supporter
Registered: 2000-09-15
Posts: 5809
Loc: Harrisburg, PA USA
|
What symptoms indicate that the script can not find the DB file? I do not see any logging in your script that would document what exactly the problem is. Please add some additional conditionals as well as check @error and @serror frequently and log a description of the check, the values of variables, and the result to a file. This way you can review all the nasty details of the script execution.
|
Top
|
|
|
|
#129517 - 2004-11-15 02:30 PM
Re: Asset Inventory to Access Database
|
Shaun_Hill
Getting the hang of it
Registered: 2004-11-15
Posts: 50
Loc: JHB, South Africa
|
mmmm... and im so not in the mood for debugging today. Thanks I will add some error checking. Thought maybe this is a common problem that is well documented.
|
Top
|
|
|
|
#129519 - 2004-11-15 02:49 PM
Re: Asset Inventory to Access Database
|
Howard Bullock
KiX Supporter
Registered: 2000-09-15
Posts: 5809
Loc: Harrisburg, PA USA
|
Are you even sure the script is executing during logon? Is this an XP client? If so, could the XP fast logon optimization be causing you grief?
Windows XP Professional Fast Logon Optimization
|
Top
|
|
|
|
#129522 - 2004-11-15 05:47 PM
Re: Asset Inventory to Access Database
|
Howard Bullock
KiX Supporter
Registered: 2000-09-15
Posts: 5809
Loc: Harrisburg, PA USA
|
That would go back to the proper logging of script execution. His log should be recording if the script to be called has been found or not.
Code:
Function CallScript($ScriptFile)
dim $ScriptFile
WriteLog("Calling " + $ScriptFile)
If Exist($ScriptFile)
WriteLog("Executing " + $ScriptFile)
Call $ScriptFile
WriteLog ("Returned from " + $ScriptFile)
Else
WriteLog ("File Not Found: " + $ScriptFile )
Endif
Endfunction
Function WriteLog($text)
dim $RC, $text, $LogFile, $Filehandle
$Filehandle = 1
$LogFile = "%temp%\logon.log"
$RC=Writeline ($Filehandle, "@Date @Time - $Text" + Chr(13) + Chr(10))
if $RC<0
$RC=Close ($Filehandle)
$RC=Open ($Filehandle, $LogFile, 5)
Select
Case $RC=-1
$RC=MessageBox ("Invalid file name ($LogFile) specified for log file.","Logon Script Error",48)
Case $RC=0
WriteLog ($Text)
Case $RC=>0
$RC=MessageBox ("Error($RC) while attempting to open log file ($LogFile).","Logon Script Error",48)
Endselect
Endif
EndFunction
And i know that the code has not yet been cleaned up and that some vars are in strings.
Edited by Howard Bullock (2004-11-15 05:50 PM)
|
Top
|
|
|
|
#129523 - 2004-11-16 06:37 AM
Re: Asset Inventory to Access Database
|
Shaun_Hill
Getting the hang of it
Registered: 2004-11-15
Posts: 50
Loc: JHB, South Africa
|
Morning Gentlmen,
Well I've resolved the problem! Script is executing properly now and I never changed a thing in the script. I had a primary script which contains a number of calls to various scripts. ie if ingroup("screensaver") blahblah call wadawada.kix endif if ingroup("othergroups") blahblah etc etc endif
There must have been about 10 different ones and the Asset script was the last in the list to be called if member of that group. All i did was make it the first called script! How on earth does that make a difference???? Im bedazzled and confused! Maybe you could shed some light on this matter! as i said in the beggining, the script always worked as is. just had the problem when it was called from the during logon process. It definately was calling the script! Thanks for all your help. Later ill post my Symantec Corporate edition scriot for you all! its very powerful and is an awesome compliment to SAV
|
Top
|
|
|
|
#129524 - 2004-11-16 07:10 AM
Re: Asset Inventory to Access Database
|
Shaun_Hill
Getting the hang of it
Registered: 2004-11-15
Posts: 50
Loc: JHB, South Africa
|
I think Les was correct. It has something to do with global variables! only thing that makes sense to me... Could probably have also got it to work if I had shell that particular script
|
Top
|
|
|
|
#129526 - 2004-11-17 02:40 PM
Re: Asset Inventory to Access Database
|
geemeetheway
Lurker
Registered: 2004-11-16
Posts: 1
|
it is possible to post the last version of that script. Please
|
Top
|
|
|
|
#129527 - 2004-11-24 09:28 AM
Re: Asset Inventory to Access Database
|
Kdyer
KiX Supporter
Registered: 2001-01-03
Posts: 6241
Loc: Tigard, OR
|
Looking at your script, there needs to be some logic for say more than one printer..
Kent
|
Top
|
|
|
|
#129528 - 2004-12-01 08:36 AM
Re: Asset Inventory to Access Database
|
Shaun_Hill
Getting the hang of it
Registered: 2004-11-15
Posts: 50
Loc: JHB, South Africa
|
I have about 20 printers installed and it gets them all! I've noticed that the software is not 100% Actually it only records software that was installed via windows installer... eg SQL server is not listed even though I have it installed. Probably have to get the software list from registry
|
Top
|
|
|
|
#129529 - 2004-12-02 10:27 AM
Re: Asset Inventory to Access Database
|
Shaun_Hill
Getting the hang of it
Registered: 2004-11-15
Posts: 50
Loc: JHB, South Africa
|
Just to inform you all that may be using this script. The software section has a small little problem in that the software i.e. WMI32_Product only returns software that was installed using windows installer! Thus it is not 100% accurate. I suggest on the software section to pull the data from the registry! maybe sombody has a neat script to do this already and it can be incorporated into this existing script.
Also, to write the data to SQL database just change the connection string and wambam thank you mam!
$CNstring = "DRIVER={SQL Server};SERVER=MTCDEV1;UID=assetsdb;PWD=assetsdb;DATABASE=Assets"
|
Top
|
|
|
|
#129530 - 2004-12-02 07:00 PM
Re: Asset Inventory to Access Database
|
NTDOC
Administrator
Registered: 2000-07-28
Posts: 11624
Loc: CA
|
I have a fairly extensive script here that you could modify or review the code to grab what you want from it.
My Computer Info - for Help Desk use PART 3 http://www.kixtart.org/ubbthreads/showflat.php?Cat=&Number=116475
|
Top
|
|
|
|
#129531 - 2004-12-04 02:08 PM
Re: Asset Inventory to Access Database
|
Shaun_Hill
Getting the hang of it
Registered: 2004-11-15
Posts: 50
Loc: JHB, South Africa
|
Updated Script: Writes to SQL DB, GET ALL SOFTWARE BUT IN TWO DB.FIELDS
;*** CREATE A SQL DATABASE WITH A TABLE NAMED COMPUTERS**** ;*** CREATE THE FOLLOWING FIELDS: COMPUTERNAME, DOMAIN, SYSNAME ;*** OSNAME, MANUFACTURER, OSVERSION, OSBUILD, OSTYPE, LANGUAGE ;*** SERVICEPACK, BOOTDEVICE, SYSTEMDEVICE, WINDIR, SYSDIR, INSTALLDATE ;*** LASTBOOTTIME, OSSERIAL, SYSMANUFACTURER, SYSMODEL, SYSSERIAL, SYSBIOSVER ;*** SYSBIOSDATE, CPUMANUFACTURER, CPUDESCRIPTION, CPUSPEED, MAXCLOCK, FAMILY ;*** STEPPING, DEVICEID, SYSMEMORY, DISKNAMES, VOLNAMES, DISKNAMES, DISKSIZE ;*** FILESYS, FREESPACE, VIDEOCARD, VIDEORES, PRINTERS, NICCARD, MODIFYDATETIME ;*** APPLICATIONS, APPLICATIONS2, SERVICES, USERNAME,
CLS AT (1,1) "Your IT Department is conducting an Asset Audit of this Workstation." AT (2,1) "Please wait while the information is collected."
;**** DECLARE VARIABLES ***
DIM $CNstring, $CMDtxt, $cn, $cmd, $rs DIM $ModifyDateTime, $computername, $username, $domain, $sysname, $osname DIM $Manufacturer, $OSVersion, $OSBuild, $OSType, $Language, $ServicePack DIM $BootDevice, $SystemDevice, $WinDir, $SysDir, $InstallDate, $LastBoottime DIM $OSSerial, $SysManufacturer, $SysModel, $SysSerial, $SystemBIOSVer, $SysBIOSDate DIM $CPUManufacturer, $CPUDescription, $CPUSpeed, $MaxClock, $Family, $Stepping DIM $DeviceID, $SysMemory, $DiskNames, $VolNames, $DiskSize DIM $FileSys, $FreeSpace, $VideoCard, $VideoRes, $Modem, $Printers, $ptr, $NicCard, $nic DIM $Applications, $Services, $Applications2, $InstalledSoftwareArray DIM $element, $Software
function ASort($array, OPTIONAL $order) ; sort order: 0 = ascending, 1 = decending dim $index, $x, $y, $tmp, $changed $Asort=$array $order=0+$order do $changed=0 for $index = 0 to ubound($asort)-1 $x=$asort[$index] $y=$asort[$index+1] if ($x > $y and 1-$order) or ($x < $y and $order) $tmp=$x $asort[$index]=$y $asort[$index+1]=$tmp $changed=1 endif next until $changed=0 endfunction
FUNCTION GetSoftwareList (OPTIONAL $sort) DIM $arrayindex, $enumindex, $component, $dn, $regkey, $swarray[200] $regkey='HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall' $enumindex=0 $arrayindex=0 :gisloop $component=EnumKey($regkey, $enumindex) IF NOT @error IF NOT (Len($component)=7 AND Left($component,1)='Q') ; above line excludes hotfixes from listing IF NOT (0+ReadValue($regkey+'\'+$component,'SystemComponent')) $dn=ReadValue($regkey+'\'+$component,'DisplayName') IF $dn $swarray[$arrayindex]=$dn $arrayindex=$arrayindex+1 ENDIF ENDIF $enumindex=$enumindex+1 GOTO gisloop ENDIF ENDIF REDIM PRESERVE $swarray[$arrayindex] IF $sort $getsoftwarelist=asort($swarray) ELSE $getsoftwarelist=$swarray ENDIF ENDFUNCTION ; - GetSoftwareList -
;*** CONFIGURE DATABASE CONNECTION STRING *** $CNstring = "DRIVER={SQL Server};SERVER=MTCDEV1;UID=assetsdb;PWD=assetsdb;DATABASE=Assets" $CMDtxt = "select * from COMPUTERS where computername = '@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 $computername = @WKSTA $username = @userid $domain = @domain $sysname = WMIQuery("CSName","Win32_OperatingSystem") $osname = WMIQuery("Caption","Win32_OperatingSystem") $Manufacturer = WMIQuery("Manufacturer","Win32_OperatingSystem") $OSVersion = WMIQuery("Version","Win32_OperatingSystem") $OSBuild = WMIQuery("BuildNumber","Win32_OperatingSystem") $OSType = WMIQuery("BuildType","Win32_OperatingSystem") $Language = WMIQuery("OSLanguage","Win32_OperatingSystem") $ServicePack = WMIQuery("CSDVersion","Win32_OperatingSystem") $BootDevice = WMIQuery("BootDevice","Win32_OperatingSystem") $SystemDevice = WMIQuery("SystemDevice","Win32_OperatingSystem") $WinDir = WMIQuery("WindowsDirectory","Win32_OperatingSystem") $SysDir = WMIQuery("SystemDirectory","Win32_OperatingSystem") $InstallDate = WMIQuery("InstallDate","Win32_OperatingSystem") $LastBoottime = WMIQuery("LastBootupTime","Win32_OperatingSystem") $OSSerial = WMIQuery("SerialNumber","Win32_OperatingSystem") $SysManufacturer = WMIQuery("Manufacturer","Win32_ComputerSystem") $SysModel = WMIQuery("Model","Win32_ComputerSystem") $SysSerial = WMIQuery("SerialNumber","Win32_BIOS") $SystemBIOSVer = WMIQuery("SMBIOSBIOSVersion","Win32_BIOS") $SysBIOSDate = WMIQuery("Version","Win32_BIOS") $CPUManufacturer = WMIQuery("manufacturer","Win32_Processor") $CPUDescription = WMIQuery("description","Win32_Processor") $CPUSpeed = WMIQuery("CurrentClockSpeed","Win32_Processor") $MaxClock = WMIQuery("maxclockspeed","Win32_Processor") $Family = WMIQuery("family","Win32_Processor") $Stepping = WMIQuery("stepping","Win32_Processor") $DeviceID = WMIQuery("deviceid","Win32_Processor") $SysMemory = val(WMIQuery("TotalPhysicalMemory","Win32_LogicalMemoryConfiguration"))/1024 $DiskNames = WMIQuery("name","Win32_LogicalDisk") $VolNames = WMIQuery("volumename","Win32_LogicalDisk") $DiskSize = WMIQuery("size","Win32_LogicalDisk") $FileSys = WMIQuery("filesystem","Win32_LogicalDisk") $FreeSpace = WMIQuery("freespace","Win32_LogicalDisk") $VideoCard = WMIQuery("Description","Win32_VideoController") $VideoRes = WMIQuery("VideoModeDescription","Win32_VideoController") $Modem = WMIQuery("Description","Win32_POTSModem") $Printers = WMIQuery("Name","Win32_printer") $Applications = WMIQuery("Caption","Win32_Product") $InstalledSoftwareArray=GetSoftwareList(1) $Software = Join($InstalledSoftwareArray,"|") $Services = WMIQuery("Caption","Win32_Service") for each $nic in Split(WMIQuery("ProductName","Win32_NetworkAdapter"),"|") if instr($nic,"miniport")=0 and instr($nic,"RAS")=0 and instr($nic,"Parallel")=0 $NicCard = $nic
endif next
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("COMPUTERNAME").value = $computername $rs.fields.item("DOMAIN").value = $domain $rs.fields.item("SYSNAME").value = $Sysname $rs.fields.item("OSNAME").value = $osname $rs.fields.item("MANUFACTURER").value = $Manufacturer $rs.fields.item("OSVERSION").value = $OSVersion $rs.fields.item("OSBUILD").value = $OSBuild $rs.fields.item("OSTYPE").value = $OSType $rs.fields.item("LANGUAGE").value = $Language $rs.fields.item("SERVICEPACK").value = $ServicePack $rs.fields.item("BOOTDEVICE").value = $BootDevice $rs.fields.item("SYSTEMDEVICE").value = $SystemDevice $rs.fields.item("WINDIR").value = $WinDir $rs.fields.item("SYSDIR").value = $SysDir $rs.fields.item("INSTALLDATE").value = $InstallDate $rs.fields.item("LASTBOOTTIME").value = $LastBoottime $rs.fields.item("OSSERIAL").value = $OSSerial $rs.fields.item("SYSMANUFACTURER").value = $SysManufacturer $rs.fields.item("SYSMODEL").value = $SysModel $rs.fields.item("SYSSERIAL").value = $SysSerial $rs.fields.item("SYSBIOSVER").value = $SystemBIOSVer $rs.fields.item("SYSBIOSDATE").value = $SysBIOSDate $rs.fields.item("CPUMANUFACTURER").value = $CPUManufacturer $rs.fields.item("CPUDESCRIPTION").value = $CPUDescription $rs.fields.item("CPUSPEED").value = $CPUSpeed $rs.fields.item("MAXCLOCK").value = $MaxClock $rs.fields.item("FAMILY").value = $Family $rs.fields.item("STEPPING").value = $Stepping $rs.fields.item("DEVICEID").value = $DeviceID $rs.fields.item("SYSMEMORY").value = $SysMemory $rs.fields.item("DISKNAMES").value = $DiskNames $rs.fields.item("VOLNAMES").value = $VolNames $rs.fields.item("DISKNAMES").value = $DiskNames $rs.fields.item("DISKSIZE").value = $DiskSize $rs.fields.item("FILESYS").value = $FileSys $rs.fields.item("FREESPACE").value = $FreeSpace $rs.fields.item("VIDEOCARD").value = $VideoCard $rs.fields.item("VIDEORES").value = $VideoRes $rs.fields.item("PRINTERS").value = $Printers $rs.fields.item("NICCARD").value = $NicCard $rs.fields.item("MODIFYDATETIME").value = $ModifyDateTime $rs.fields.item("APPLICATIONS").value = $Applications $rs.fields.item("APPLICATIONS2").value = $Software $rs.fields.item("SERVICES").value = $Services $rs.fields.item("USERNAME").value = $Username
$rs.update
$rs.Close
|
Top
|
|
|
|
Moderator: Glenn Barnas, NTDOC, Arend_, Jochen, Radimus, Allen, ShaneEP, Ruud van Velsen, Mart
|
0 registered
and 369 anonymous users online.
|
|
|