Hi all,

First and foremost, thank you for taking your time to read this. I really love this community.

Anyway, recently after a PC audit, we found that some remote PCs at some of our depots were never used and was place aside without giving it back.

Now we have reason to believe that there are more PCs like this and we want to monitor the PCs at these depots.

Since they aren’t part of our network (so to speak), they would require to use a VPN to connect to our network. So therefore, i can’t really use PDQ inventory or any of that sorts ( i think) to find out the following.

  1. What is the uptime of said PC?

  2. How many users are using it in a day?

  3. How long does each user use the PC for ?

Any takers on this? got any tools you can recommend or some method you’ve done before?

Your assistance is highly appreciated. i would kiss you but i don’t kiss haha.

:slight_smile:

3 Spice ups

PowerShell and WMI.

There are around 13 basic WMI classes that tell you all yo need to know about a machine:

Bios Information – Win32_Bios 
Mother Board – Win32_BaseBoard 
System Info – Win32_ComputerSystem 
OS Info – Win32_OperatingSystem 
CPU information – Win32_Processor 
Memory – Win32_PhysicalMemory 
Video – Win32_DesktopMonitor, Win32_VideoController 
Pointing device – Win32_PointingDevice 
Network Adapter info - Win32_NetworkAdapter 
Printer – Win32_Printer Disk – Win32_Volume 

Get-CImInstance specifying one of those classes will bring you back information about that aspect.

Like this:

PSH [C:\foo]: get-ciminstance -class win32_pointingdevice  -computer win10lt

Caption                     : Dell Touchpad
Description                 : Dell Touchpad
InstallDate                 :
Name                        : Dell Touchpad
Status                      : OK
Availability                :
ConfigManagerErrorCode      : 0
ConfigManagerUserConfig     : False
CreationClassName           : Win32_PointingDevice
DeviceID                    : ACPI\DLL0494\4&18351974&0
etc...

i like your idea but i think we need something less tedious, as i would imagine i would need to remote over (with the other person on the other end) to actually run this script. But thanks, i’ve tried some of those commands before. I would prefer a tool of some kind that is almost like a keylogger (without it being one) hah

Wouldn’t Spiceworks do what you need? Or nearly all of it?

1 Spice up

I’m sure @thomaslee will tell me if I’m wrong but would you not be able to set it to run as a logon script which would then dump relative info in a location you can access ? I’m not up on Powershell but this seems like it would be a viable solution

1 Spice up

Could you not setup a remote collector at your remote sites to report back to your main SpiceWorks?

First, you could easily write a simple function with parameters for the computer to audit, and where you want to dump the output. The function dumps the config of one machine, call that function Get-PCInventory. Invest some time in looking at each of those 13 classes, deciding on what properties would be useful. You’d then create a custom object, call each of the classes (using Get-CimInstance), and populate the object with the properties you want.

Once you have that

Get-ADComputer | foreach {Get-PCInventory -ComputerName $_.name}

That hardly seems very tedious to me. :slight_smile:

But if doing the work yourself is tedious - here’s a script that does it for you:

http://poshcode.org/639

[Later]

I updated the above.

3 Spice ups

Yes indeed. You could drop the script as a logon script, or better yet, set it as a start up script - sometimes systems come up and are not logged into, particularly servers. See the reference to audit.ps1 - that script could be run each time the system comes up and could send the output to somewhere central.