I have spent a fair amount of time updating the AutoDL module I first posted back in December. At the end of that post I mentioned several things I was considering adding, and that made me want to add some of them.
- You can now specify users that should always be excluded even though they match the filter:
The Set-AutoDLFilter cmdlet has also been updated with the AlwaysExclude parameter.
- LDAP syntax checking has been added and occurs when the focus leaves the filter’s text box:
The OK and Preview buttons will be disabled if the syntax check fails. I looked around for ways to simply and efficiently validate syntax, but I could not find anything besides what is provided via the LDAP interface to Active Directory. When performing an LDAP search, a specific error is returned if the syntax is not valid, so the module passes the entered filter to AD and checks the response. (For efficiency with filters that pass, I use the FindOne() method so the search will stop as soon as the first matching object is found.)
- A preview window has been added:
The preview window will display a sorted list of member display names. You can copy this list to the clipboard to be able to, for example, paste pending membership into an email of the person requesting the DL for confirmation. There is also a field that provides the membership count. If the filter results in no members, the count field will contain a hyphen and the Copy button will be disabled.
- A parameter, VerboseMembershipChanges, has been added to Update-AutoDL if you want to include in the output (screen and log file) the individual members that were added and removed:
- The Verbose parameter can be used with Set-AutoDLFilter and Update-AutoDL to get more details of activity. I added a bunch of Write-Verbose commands while I was debugging these recent changes and I left them in for those that want more information about what is happening.
- The module has been updated to conform with the recommendations of the PSScriptAnalyzer module.
- The module now requires PowerShell version 3 or higher and will check for that.
- Several (well, more than several) minor fixes as a result of previous changes made that weren’t discovered until I was testing in a new lab and had to create new DLs and provision them and do other tasks that are less common once you are only maintaining automated DLs. This is what modules like Pester are for, I suppose.
You can download the updated module with this link:
AutoDLManagement.psm1 (55.4 KiB)
(I have started exploring the possibility of hosting a Nuget repository or publishing my modules on the PowerShell Gallery so PowerShell v5+ users can simply install them with a command like Install-Module AutoDLManagement -force.)