blog

How to Run a Yearly Windows PC Inventory with No Agents (PowerShell + HTML Reports)

If you work in a small IT team or MSP, you probably know this feeling:

“We should know what’s inside all these Windows PCs, but the last ‘full inventory’ is buried in a spreadsheet from two years ago.”

Most inventory tools want you to:

Sometimes that’s the right answer. But sometimes you just want a clean, reliable snapshot once or twice a year without changing your entire tooling.

This post is about that second case.

I’ll walk through a simple, agentless workflow:

  1. Run a free PowerShell collector on each Windows PC
  2. Drop all the JSON into a single folder
  3. Turn that into HTML reports + CSV inventories in a few minutes

No agents, no cloud, no installs.


The constraints (a realistic small-IT scenario)

This is the environment I had in mind when building this:

Requirements:

If that sounds like your life, keep reading.


Step 1 – Collect data with a simple PowerShell script

First, you need a way to ask each PC:

“Who are you? What hardware do you have? What software is installed?”

You can do this with a single PowerShell script that:

A typical run looks like this (from the user or via your deployment tool):

.\ZeroAgent-Collector.ps1 `
  -OutputPath "\\YOURSERVER\PC_Inventory\%COMPUTERNAME%.json"

After you’ve run this on all target PCs, you end up with something like:

\\YOURSERVER\PC_Inventory\
  PC-001.json
  PC-002.json
  PC-003.json
  ...

Each file is a structured snapshot of that PC.

You can roll this out however you like:

The important part is: no resident agent. The script runs, dumps JSON, and exits.


Step 2 – Store everything in one place

This part is boring but important:

That’s your source of truth. As long as you have that folder, you can regenerate reports as many times as you want.


Step 3 – Turn JSON into HTML reports and CSV inventories

Raw JSON is great for machines, not for humans.

For reporting and audits, you usually need:

This is where I use Zero Agent Viewer, a small portable .exe designed specifically for this workflow.

The flow looks like this:

  1. Point the Viewer at the folder with all your JSON files
  2. (Optionally) define your own groupings in a simple pc_groups.csv, like:

    • SiteA,PC-001
    • SiteB,PC-050
    • etc.
  3. Click Generate Reports

You get:

If you want to see what the HTML output looks like before you even touch your own data, here’s a live sample report with dummy data:

👉 https://zeroagent-labs.github.io/za-sample-report/

It’s just static HTML + JS – you can open it in any browser, email it, archive it with your audit docs, etc.


Why this works well as a “yearly snapshot” workflow

This isn’t trying to replace your RMM or full CMDB.

Instead, it’s optimized for:

Pros:

And because the Viewer is just a single .exe, you can:


If you want to try this workflow as-is

There are many ways to DIY:

If you enjoy that, honestly, go for it. I did exactly that for a while.

If you’d rather skip the glue code and just run the whole flow, I packaged my setup as:

Zero Agent Viewer – Windows PC Inventory & Audit Tool https://www.zeroagentlabs.com/

It includes:

…so you can test it in your real environment without committing long-term.

Either way, I hope this post gives you a clean, agentless mental model for:

“Once a year, collect everything, get HTML + CSV, and be done.”

If you end up trying this approach (with or without my tool), I’d genuinely love to hear how you’re running your inventories and what surprised you.