Jump to content

Recommended Posts

Posted

Hey Guys,

 

Need some help. I've been given the task to do an ICT Inventory of the whole school. The inventory must be able to find items via room or items assigned to Staff.

Does anyone have a template of what they have done? I have tried Spiceworks although it could only scan 20% of my network and then fails, it seems you can add things in manually although I can't seem to be able to search for items after by a specific staff members name or room. If anyone knows how I can do this that would be good.

 

Thankyou :)

Alex

Posted

Spiceworks network scans are a right pain if you have more than 100 devices..

 

I just use an Excel worksheet with a menu on the first tab, which links to the other pages. I.e Printers on one tab, Teacher Laptops on another, Switches on the other, etc. In those tabs contains the hostname, IP if necessary and any warranty info.

  • Thanks 2
Posted
Spiceworks network scans are a right pain if you have more than 100 devices..

 

I just use an Excel worksheet with a menu on the first tab, which links to the other pages. I.e Printers on one tab, Teacher Laptops on another, Switches on the other, etc. In those tabs contains the hostname, IP if necessary and any warranty info.

 

Yeah, same here - used to use Access but that was overkill for what we needed. Excel works well for us :)

Posted (edited)

i have a script that runs on pc startup and populates a spreadsheet (it also allows you to enter data manually on each line in the last 4 columns (it does sometimes generate empty lines but thats soon fixed by a quick sort or pcs are just listed in the order they reported in anyway which is probably useless)

 

'gather pc info 
'On Error Resume Next
'gather pc info v0
'J Stead March 2014
Option Explicit
dim wmi,strComputerName,objWMIService,wshNetwork,colitems,WshShell
dim existing,newdata, filenamepath, outputArray, message, found, tobefilled, findstring, headers,objfs,objts
dim strcontents, arrlines, i, myDateString
set WMI = GetObject("winmgmts:\\.\root\cimv2")
Set wshNetwork = WScript.CreateObject( "WScript.Network" )
Set WshShell = CreateObject("WScript.Shell")
strComputerName = wshNetwork.ComputerName

myDateString = Date()

'architecture variables
dim arch, OsType
OsType = WshShell.RegRead("HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\PROCESSOR_ARCHITECTURE")

'mac address variables
dim macadd, nictype, nad, nads
set Nads = WMI.ExecQuery("Select * from Win32_NetworkAdapter where physicaladapter=true")

'computer name variables
dim intMemory,objPhysicalMemory

'ram variables
dim colPhysicalMemory,ram
Set objWMIService = GetObject("winmgmts:\\" & strComputerName & "\root\CIMV2") 
Set colPhysicalMemory = objWMIService.ExecQuery("Select * From Win32_PhysicalMemory")

'pcinfo variables 
dim pcmake,pcmodel,objitem
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem")

'cpu variables
dim colcpu,cpu
Set colcpu = objWMIService.ExecQuery("Select * from Win32_Processor")

'os variables
dim colOperatingSystems, operatingsystem, operatingsystemno, objOperatingSystem,splevel,installdate
Set colOperatingSystems = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem")

'serial no variables
dim colbios,objbios,serialno
Set colBIOS = objWMIService.ExecQuery("Select * From Win32_BIOS")

'does stuff

'determine Architecture
If OsType = "x86" then
wscript.echo "Windows 32bit system detected"
arch="x86"
elseif OsType = "AMD64" then
wscript.echo "Windows 64bit system detected"
arch="x64"
end if

'mac address(s) and nic type
for each Nad in Nads
   if not isnull(Nad.MACAddress) then 
	'Wscript.Echo Nad.description, Nad.MACAddress
	macadd=macadd & " # " & Nad.MACAddress
	'nictype=nictype & " # " & Nad.description
end if
next 
nictype=Replace(nictype,",","")
'wscript.echo macadd," ; " , nictype

'get pc name
'WScript.Echo "Computer Name: " & strComputerName

'ram
If Not colPhysicalMemory Is Nothing Then
 intMemory = 0
 For Each objPhysicalMemory In colPhysicalMemory
	 intMemory = intMemory + Int(objPhysicalMemory.Capacity)
 Next
 ram = (intMemory / 1024 / 1024 /1024 ) & " GB"
 'wscript.echo ram
End If

'make-model
For Each objItem In colItems 
pcmake= objItem.Manufacturer
pcmake= Replace(pcmake,",","")
pcmodel = objItem.Model
pcmodel = Replace(pcmodel,",","")
'wscript.echo pcmake & " # " & pcmodel
Next

'cpu
For Each objItem in colcpu
   cpu = objItem.Name
'wscript.echo cpu
Next

'os
For Each objOperatingSystem in colOperatingSystems
   operatingsystem = objOperatingSystem.Caption
splevel=objOperatingSystem.ServicePackMajorVersion
operatingsystemno = objOperatingSystem.Version
installdate=objOperatingSystem.InstallDate
'wscript.echo "os=" & operatingsystem &" sp= " & splevel & " osnumber " & operatingsystemno & " installed " & installdate
Next

'serialno
If Not colBIOS Is Nothing Then
 For Each objBIOS in colBIOS
	 serialno = objBIOS.SerialNumber
	 'wscript.echo serialno
 Next
End If

'hdd capacity
dim objhdd,coldisks, hddcapacity, hddfree
set coldisks = objWMIService.ExecQuery("Select * From Win32_LogicalDisk")
for each objhdd in coldisks
If objhdd.DeviceID = "C:" Then
	hddcapacity = int(objhdd.Size/1073741824) & " GB"
	hddfree = int(objhdd.freespace/1073741824) & " GB"
	'wscript.echo hddfree
end if
next

newdata = macadd & "," & strComputerName & "," & pcmake & "," & pcmodel & "," & cpu & "," & ram & "," & hddcapacity & "," & hddfree & ","  & serialno & "," & operatingsystem & "," & arch & "," & myDateString & ","

Found="0"
FindString=macadd
filenamepath="\\server\logs$\inventorylog.csv"
headers = "mac,name,make,model,cpu,ram size,hdd size,hdd free,serialno,windows version,architecture,date collected, dop,years warranty,warranty expires,location"
tobefilled= "bought,years,expires,location"

Set objFS = CreateObject("Scripting.FileSystemObject")

If objFS.FileExists(filenamepath) Then
'wscript.echo "file exists"
else
'wscript.echo "no file here"
Set objFS = objFS.CreateTextFile(filenamepath)
objFS.close
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objFS = objFS.OpenTextFile(filenamepath, 2)
objFS.write headers
objFS.close
end if

Set objFS = CreateObject("Scripting.FileSystemObject")

Set objTS = objFS.OpenTextFile(filenamepath, 1)
strContents = objTS.ReadAll
objTS.Close

arrLines = Split(strContents, vbNewLine)
Set objTS = objFS.OpenTextFile(filenamepath, 2)

For i=0 To UBound(arrLines)
  If instr(arrLines(i),findstring) Then
Found="1"
outputArray = split(arrLines(i),",")
objTS.writeline NewData & outputArray(12) & "," & outputArray(13) & "," & outputArray(14)& "," & outputArray(15)
  else
objTS.Writeline arrLines(i)
  End If
Next

If Found="0" then
objTS.Write newdata & tobefilled
end if
'wscript.echo "the end?"

 

depending what you want does the job for me (also have a web page that can be used for it for non techies to look at the data without being able to fudge up the spreadsheet

Edited by sted
  • Thanks 1
Posted

We had a spreadsheet but the governors were adding more and more paperwork to it as they randomly decide that they want to log new stuff.

 

Then the job of maintaining it was given to me so i changed to school asset manager and said that there will be no paperwork on this system. If it doesnt do it then it cant be done. Was turning into a full time job 15 minutes to add a item on the old system.

Posted
Spiceworks network scans are a right pain if you have more than 100 devices..

 

I just use an Excel worksheet with a menu on the first tab, which links to the other pages. I.e Printers on one tab, Teacher Laptops on another, Switches on the other, etc. In those tabs contains the hostname, IP if necessary and any warranty info.

 

Have you tried making categories etc? I recently moved to Excel because we don't have many machines here. After the network restructure I will reuse Spiceworks.

Using Filters and Categories can make the whole thing easy!

Posted
Have you tried making categories etc? I recently moved to Excel because we don't have many machines here. After the network restructure I will reuse Spiceworks.

Using Filters and Categories can make the whole thing easy!

 

It's really all quite organised, it was the initial set up that threw me off of it. When you've got 1000~ odd devices site-wide and only 20% initially get inventoried, then the subsequent scans and credential processes etc forces everything to lock up for hours (no helpdesk, much to my pleasure but not to that of staff). Just wasn't worth it for me really when I could use formulae to fill out a spreadsheet.

Posted
Spiceworks network scans are a right pain if you have more than 100 devices..

 

I just use an Excel worksheet with a menu on the first tab, which links to the other pages. I.e Printers on one tab, Teacher Laptops on another, Switches on the other, etc. In those tabs contains the hostname, IP if necessary and any warranty info.

 

Hey mate would you mind showing me how you have everything laid out on the excel spreadsheet? I'd really appreciate it!! :)

Posted
Hey mate would you mind showing me how you have everything laid out on the excel spreadsheet? I'd really appreciate it!! :)

 

 

Sure, I'll PM you.

  • Thanks 1
Posted
My VBScript + PHP frontend that I wrote a while ago. Should be pretty simple as it just creates a CSV file with all the data which can then be shown on a web page nicely.

 

https://github.com/zag2me/php-inventory

 

[ATTACH=CONFIG]28048[/ATTACH]

 

That looks quite nice and clean, the fact it's open source makes me more inclined to take a look at it one day!

Posted (edited)
Hey mate would you mind showing me how you have everything laid out on the excel spreadsheet? I'd really appreciate it!! :)

 

We used to do it by Excel.. We had:

Location          Device ID*         Manufacturer         Type                Serial Number
I.T. Office       Monitor (19")      iiyama               ProLite 1900ws**    ZXCVBNM001

* Usually something like "Staff PC: Room-001" or "Server: CCTV"

** I have no idea if that's an actual valid type, but it sounds about right..

 

A few tweaks makes it bearable, such as a unispace font and some boarders breaking up rooms.

I did also make custom cell types which helped.

Capture.PNG

(The No Info cell type was usually reserved for the serial number cell, where a kid had ripped off the label or something)

 

Eventually we moved onto a proper inventory system that also supplied us with rather difficult to remove stick-on labels with asset tags, which makes moving items around a lot easier (rather than having to copy and paste entries) and also gives us a valid, unmodifiable log if something is marked as disposed of (with whatever reason given, who by, and when)

Edited by Garacesh
Posted
Any particular reason you made this rather than something like Spice works? :)

 

spiceworks get slower and more bloated with every version

 

thats the front end i use on mine with a few minor tweeks as well just a different script as @zag and me wanted different data recording(and before i found that i had an earlier version of my script alrerady running so was easier to adapt a webpage than convert existing data

  • Thanks 2
Posted

Eventually we moved onto a proper inventory system that also supplied us with rather difficult to remove stick-on labels with asset tags, which makes moving items around a lot easier (rather than having to copy and paste entries) and also gives us a valid, unmodifiable log if something is marked as disposed of (with whatever reason given, who by, and when)

 

Who/what is your 'proper inventory system'? we've been looking for strong labels everywhere!

Posted

I have a spreadsheet that has the headings

Location

Type

Name

Serial No

Manufacturer

Model

CPU

CPU Speed

Ram

Slots

HDD

Size (for monitors, displays, boards etc)

Warranty

Lease

Expires

Posted
Who/what is your 'proper inventory system'? we've been looking for strong labels everywhere!

 

The asset management is a system called WASP. It's.. Okay. There are some things it just can't do (or can, but not in the obvious methods) like mass-moving of assets.

 

Unfortunately, the software and labels were bought as a batch jobbie through a reseller, so I don't really know the source.. Sorry :(

Posted
Who/what is your 'proper inventory system'? we've been looking for strong labels everywhere!

 

we used selectamark (https://www.selectamark.co.uk/) for security marking the PC's, its a bit of a pain to use but does the job. You stick the stencil on then apply a paste that stains/burns into the plastic so even if its scrubbed off its still burnt in.

 

As for the inventory, we tried spiceworks and MS access but found an excel spreadsheet + a bit of footwork to be the easiest way, we walked around a couple of times a year to make sure everything was up to date and that helped us keep AD sorted too.

  • Thanks 1
Posted
Here i just have an excel file per room and in the file i have a make and model colum, description and then the serial number. I need the projector info and the IWB so autogenerated stuff from a script is half the battle as i'd have to walk round to each room anyway to get the IWB info. We are just primary though so typically only a few machines in each room.
Posted
we used selectamark (https://www.selectamark.co.uk/) for security marking the PC's, its a bit of a pain to use but does the job. You stick the stencil on then apply a paste that stains/burns into the plastic so even if its scrubbed off its still burnt in.

 

We've used those in the past but found too many of our devices just wouldn't take to the gunk. Too many things shiny or otherwise varnished. It's a fair enough system if it works, though, but very laborious.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...