A while ago I decided to split a number of my modules up as they were becoming messy. Instead of standalone modules I now have modular modules.

The split introduced something of a version management problem for me, so I made up a set of module management functions and scripts to see me through from development to release and maintenance of released modules.

This article explores the module tree and looks at the installation and update functionality.
More »


Compare-Object and Group-Object are very powerful tools for comparing and manipulating arrays of objects.

Compare-Array is intended to be used against arrays containing primitive data types where Type comparison is imperative. In addition to the Type constraint, the ordering of an array is treated as a distinguishing factor.
More »

Get-InstalledSoftware reads uninstall registry keys from a host, it will also read Uninstall keys from loaded user hives (HKEY_USERS).

Get-InstalledSofware does not load hives, a user must have been logged on (at some point) for the hive to be loaded. Rebooting a machine unloads all user hives.
More »

This post shows two functions to draw member trees. The functions are almost identical, a variation on a theme. The first shows group membership by following memberOf, the second shows members of a group by following member.

In both cases the functions are demonstrative; output is written using Write-Host and cannot be redirected to a file without changing that.
More »