I’ve been working for a while now on an asset management tool based entirely in PowerShell. Here’s my cocktail napkin elevator pitch:
An asset management system that requires few system resources to run, gathers data automatically (while allowing overrides). Minimal PowerShell knowledge is needed, and data can be displayed in a GUI web format or output as an object for other PowerShell scripts to tie in. Asset data and collection tools can be centralized or decentralized. Cheap and easy for small to medium sized businesses. And most importantly, it will beat the hell out of an Excel spreadsheet.
Here’s what I have built so far:
- Collect info via WMI, WinRM, etc. on a local machine
- Same as above but with multiple remote machines asynchronously with a customizable timeout
- Prompt for data that can’t be mined
- Calculate other data based on the gathered/queried stuff
- Take all this information and present it as a single object with nested arrays. Any number of assets with any number of NICs and any number of HDDs, etc.
- Spit it out to XML (Export-CliXml)
And here’s what’s left:
- Stress test (at what point would I need an actual DB? Hopefully > 5000 assets)
- Display data as XML (ConvertTo-Xml) + HTTP
- Add infrastructure properties, like a list of possible VLANs, routers, etc.
- A GUI way to prompt for custom data or overrides of collected data
- Better data curating
- A method for merging assets being input from multiple sources
- Handle infrastructure data (VLANs, routers, virtualization, etc.)
- Discovery via VMware, Hyper-V, AD, DNS, DHCP, etc.