One of PowerShell's greatest strengths is its ability to glue pretty much any technologies together. We'll use that strength to pull data from a number of services, connecting the resulting dots with a graph database that could be used as a lightweight CMDB.
We'll talk about:
* Different interfaces PowerShell can use, from modules to .NET libraries
* Graph databases like Neo4j, and how these can be useful for sysadmins
* A practical (janky) CMDB, and why these can be useful
## Why the topic:
I'm a fan of CMDBs that have useful data. They can drive automation, monitoring and alerting, reporting, and anything else that benefits from visibility.
It just so happens that:
* This is a great way to illustrate the various ways to talk to things in PowerShell (modules, web APIs, .NET libraries, binaries, etc.)
* Graph databases are awesome, and map to real life systems more easily than the cumbersome fun of primary keys, foreign keys, and strict schemas
* Neo4j has a free, cross platform community edition, and there's a simple PowerShell module to work with it
* We can instill other important lessons, e.g. modules/abstraction, community/sharing
* We can provide a practical example that folks without a reasonable CMDB could borrow and extend
* Heavy weight, expensive, actual CMDBs are a poor fit for shops adopting DevOps practices and principles