Favorite PowerShell modules that I use

During the course of time, you add modules to your system, some are crucial for the things you work on and some were used only once 😉 In this blog post, I will show you my current list of modules and tell you why I use(d) them…

My currently installed modules

Below is the list of the modules that I have installed at this moment, I will pick a few and tell you why you need these on your system. Of course, things like MS Graph, Exchange Online Management, and other 365 or Azure modules are also among my favorites 😉

ActiveDirectory
AIPService
AppBackgroundTask
AppvPkgConverter
AppvSequencer
AssignedAccess
AutoSequencer
Az
Azure.AnalysisServices
Azure.Storage
AzureAD
AzureADPreview
AzureRM
AzViz
BitLocker
BitsTransfer
BranchCache
CimCmdlets
ConfigDefenderPerformance
Configuration
CredentialManager
DefenderPerformance
DeliveryOptimization
DFSN
DirectAccessClientComponents
Dism
DnsClient
DnsServer
DSCParser
EventTracingManagement
ExchangeOnlineManagement
Get-NetView
HgsClient
HgsDiagnostics
Hyper-V
International
IntuneBackupAndRestore
IntuneDocumentation
IntuneWin32App
Kds
LanguagePackManagement
M365Documentation
Microsoft.Graph
Microsoft.Online.SharePoint.PowerShell
Microsoft.PowerApps.Administration.PowerShell
Microsoft.PowerShell.Archive
Microsoft.PowerShell.Crescendo
Microsoft.PowerShell.Diagnostics
Microsoft.PowerShell.Host
Microsoft.PowerShell.LocalAccounts
Microsoft.PowerShell.Management
Microsoft.PowerShell.Operation.Validation
Microsoft.PowerShell.SecretManagement
Microsoft.PowerShell.SecretStore
Microsoft.PowerShell.Security
Microsoft.PowerShell.Utility
Microsoft.PowerShell.WhatsNew
Microsoft.RDInfra.RDPowershell
Microsoft.Windows.Bcd.Cmdlets
Microsoft.WSMan.Management
Microsoft365DSC
MicrosoftTeams
MMAgent
MSAL.PS
MSCloudLoginAssistant
MSCommerce
MSGraph
MSGraphFunctions
MSOnline
NetAdapter
NetConnection
NetEventPacketCapture
NetLbfo
NetNat
NetQos
NetSecurity
NetSwitchTeam
NetTCPIP
NetworkConnectivityStatus
NetworkSwitchManager
NetworkTransition
NFS
oh-my-posh
ORCA
PackageManagement
PcsvDevice
Pester
PKI
PnP.PowerShell
PnpDevice
posh-git
powershell-yaml
PowerShellGet
PrintManagement
ProcessMitigations
Provisioning
ps2exe
PSDiagnostics
PSFramework
PSGraph
PSParseHTML
PSReadLine
PSSlack
PSWindowsUpdate
PSWord
PSWriteWord
ReverseDSC
ScheduledTasks
SecureBoot
Sequencer
SharePointPnPPowerShellOnline
SmbShare
SmbWitness
SqlServer
StartLayout
Storage
StorageQoS
Terminal-Icons
ThreadJob
TLS
TroubleshootingPack
TrustedPlatformModule
UEV
VpnClient
Wdac
Whea
WindowsAutoPilotIntune
WindowsConsoleFonts
WindowsDeveloperLicense
WindowsErrorReporting
WindowsSearch
WindowsUpdate
WinGet

Special Modules

And yes, that’s an extensive list 🙂 A lot are just there because they come with Windows components/installation, but I think there are a few worth mentioning in the chapters below.

IntuneBackupAndRestore

More options are available now for backing up, comparing, or restoring your Intune configuration but this module from John Seerden (https://github.com/jseerden/IntuneBackupAndRestore) just works for me. Great for restoring your configuration in a new (test) tenant or for reporting on what was changed if there are issues in your customer’s environment 😉

Microsoft365DSC

This module allows organizations to automate the deployment, configuration, reporting, and monitoring of Microsoft 365 Tenants via PowerShell Desired State Configuration. The compiled configuration needs to be executed from an agent’s Local Configuration Manager (LCM) (machine or container) which can communicate back remotely to Microsoft 365 via remote API calls (therefore requires internet connectivity)

That’s a copy/paste from the GitHub page https://github.com/microsoft/Microsoft365DSC , it’s great for importing/exporting/comparing tenant information/configuration. For more information and how to install it, please visit https://microsoft365dsc.com/

oh-my-posh

Make your PowerShell prompt look nice using this module from Jan de Dobbeleer (https://github.com/JanDeDobbeleer/oh-my-posh) You can customize it in so many ways, example screenshot:

Note: The install-module method.it’s deprecated, see https://ohmyposh.dev/docs/migrating for more information. Easier to install it using Winget install JanDeDobbeleer.OhMyPosh

posh-git

This shows the GIT status in your PowerShell session while working on things in your repository, it also helps you with GIT commands because TAB works (git ch + tab changes to git checkout for example). Example screenshot below:


Use install-module posh-git to install module from Keith Dahlby / https://github.com/dahlbyk/posh-git .

PSParseHTML

This module was part of PSWriteHTML, but you can use it for getting certain data from webpages easily. I have used it in a few scripts that I posted here, for example in the Message of the Day script (here). It has the following functions:

  • Convert-HTMLToText
  • ConvertFrom-HtmlTable
  • ConvertFrom-HTMLAttributes (aliases: ConvertFrom-HTMLTagConvertFrom-HTMLClass)
  • ConvertFrom-HTML
  • Format-CSS
  • Format-HTML
  • Format-JavaScript
  • Optimize-CSS
  • Optimize-HTML
  • Optimize-JavaScript

I used the ConvertFrom-HTMLClass to get data from a certain HTLM class, which makes scraping data so much easier 🙂 Install the module from EvoTec IT / https://github.com/EvotecIT/PSParseHTML by running install-module PSParseHTML.

PS2EXE

This module from M. Scholtes (https://github.com/MScholtes/PS2EXE) allows you to save PowerShell scripts as an executable. Great for running things in closed environments or when you don’t want to share the contents of a script. Install it using install-module ps2exe. But there’s one problem, see the note below…

Note from the author:
Some (really) stupid idiots seem to have abused PS2EXE to compile their computer virus scripts. As a result, a rapidly growing number of virus scanners recognize programs created with PS2EXE as malicious programs and delete them.

There is only one hope to save the PS2EXE project: Please send your (harmless) programs created with PS2EXE via the web forms from the virus scanners’ vendors for reporting false positives (I’ve already done it with some of them, please use only the false positive page)!

Terminal-Icons

By installing this module you get colors and icons in your directory listings, see example screenshot below:

This module from Brandon Olin (Devblackops) can be installed running install-module Terminal-Icons, for more information check out https://github.com/devblackops/Terminal-Icons

What modules do you use?

These were just a few of my currently installed modules, which ones do you use? Tips? Let me know 🙂

15 thoughts on “Favorite PowerShell modules that I use

  1. Pingback: Endpoint Manager Newsletter - 7th October 2022 - Andrew Taylor

  2. Nice list, I’ve got some additional modules for ya!

    *Note: I ran the following to review my list of installed modules and output to Markdown table:

    powershell
    Get-InstalledModule | Where-Object -FilterScript { $_.Name -notlike ‘Az.*’ } | Select-Object -Property Name, Version, ProjectUri | ConvertTo-Markdown -AsTable | Out-Copy

    ComputerCleanup
    Configuration
    DataMashup (I/O PowerQuery M-Code from Excel/PowerBI)
    dbatools and dbatools.library ***
    dbareports
    EZOut
    EzLog
    Foil ***
    ImportExcel ***
    InvokeBuild ***
    ModuleBuilder
    Pester ***
    Plaster ***
    Crescendo ***
    ps2exe
    PowerShellBuild ***
    platyPS ***
    psake ***
    PSCerts
    PSDepend ***
    PSFzf
    PSScaffold
    PSScriptAnalyzer
    PSScriptTools ***
    PSRule
    PSWindowsUpdate ***
    SqlServer ***
    Stucco ***
    Terminal-Icons ***
    ThreadJob
    UtilityFunctions
    WieldingLs
    WifiTools
    WTToolBox
    ZLocation ***
    AU
    AutomatedLab ***
    AWSPowerShell
    BuildHelpers ***
    Cobalt
    CredentialManager
    DockerCompletion
    GistProvider
    github2choco
    HostsFile
    Dotted
    Firewall-Manager
    posh-git
    PowerBGInfo
    PSCalendar
    PSDotFiles
    PSFramework
    PSGitHub
    PSLog
    PSReadLine ***
    PSSQLite
    PSSysTray
    PSWriteColor
    PSWriteExcel
    PSWriteHTML
    ShowDemo
    RobocopyPS
    Sampler
    VSCodeBackup
    WinGetTools
    WinRegistry
    Write-ObjectToSQL

Leave a Reply to Sam ErdeCancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.