Introduction to PowerShell Modules
PowerShell module is a package that contains various commands such as functions, cmdlets, aliases, parameters, workflow, and providers. There are predefined modules and installed default with each PowerShell version. With every new PowerShell version, more enhanced modules are added and loaded automatically. For example, from PowerShell 3.0, modules are automatically imported when you run any command in all installed modules. You can get all the installed modules on your computer with the below command. The list of modules you get depends upon the PowerShell version installed.
From a particular module, you can get all their commands by,
Get-Command -Module ModuleName
Wildcard character (*) is allowed in ModuleName.
Modules are so flexible that you can create your module with your own sets of commands and publish them to the other computers and servers for usability.
PowerShell modules can be found and installed at the below location to be available to other users and in different profiles.
$env:PSModulePath -split ';'
There are some default and imported third-party modules available in PowerShell on the above path. Here, we are going to explain the default modules in PowerShell 5.1.
Below is a short description of each module.
This module is designed for the administration of application control policies. The cmdlets can be used to help the author test, maintain, and troubleshoot application control policies. AppLocker user interface that is accessed through the MMC snap-in extension to the Local Security Policy Snap-in and group policy management console.
Get-Command -Module AppLocker
This module contains cmdlets for all the app background tasks.
Get-Command -Module AppBackgroundTask
This module is for the Microsoft Application Virtualization cmdlets.
Get-Command -Module AppVClient
This cmdlet is designed to provide restricted access to specific user accounts. When assigned access is configured to users, then they can use only one application from the windows store but can’t modify the application or system settings, exit or sign out of the application.
Get-Command -Module AssignedAccess
This module provides a cmdlet for BitLocker encryption technology. BitLocker is used to encrypt hard drives to prevent data from stealing when connected to another computer.
Get-Command -Module BitLocker
BITS (Background Intelligence Transfer Service) is the modern way to transfer a file between the windows computer system with an idle bandwidth whenever there is no application utilizing the bandwidth. In case of any disruption, it pauses the transfer and resumes again whenever there is a network or client machine availability.
Get-Command -Module BitsTransfer
CimCmdlets use several commands for remoting and are very helpful over legacy WMI cmdlets. First, it supports the auto-completion, and second, the use of WS-Management protocol, but this module also has some limitations.
Get-Command -Module CimCmdlets
Windows Servers and other versions of Windows operating systems have a built-in antivirus feature called the Windows Defender, and this cmdlet provides command base management of the antivirus features.
Get-Command -Module Defender
This module is introduced in Windows 10 and its later versions 1709 and 1803. Delivery optimization is a new form of download and sharing technology in comparison to BITS. It has some additional capabilities like storing and sharing content on the intranet and internet.
Get-Command -Module DeliveryOptimization
Deployment Image Servicing and Management (DISM) in PowerShell provides the same functionality asdism.exe in cmd.
Get-Command -Module Dism
With this module, you can get and modify DNS client-related settings on the local system and remote systems.
Get-Command -Module DnsClient
PowerShell module to get and set the computer’s regional language and culture that was provided at the time of installation of an operating system.
Get-Command -Module International
PowerShell module to get/update/remove/add iSCSI storage devices.
Get-Command -Module iSCSI
PowerShell module to compress files or folders to the ZIP file and extract the archive files and folders.
Get-Command -Module Microsoft.PowerShell.Archive
Module to record PowerShell session output and store it in a text file.
Get-Command -Module Microsoft.PowerShell.Host
PowerShell module with miscellaneous cmdlets for managing computers or servers. For example, create a mapped drive, get /start/ stop services or processes, get the local and remote computer information, and many more.
Get-Command -Module Microsoft.PowerShell.Management
This module is to retrieve, create, delete, and modify local users and groups. For example, add new users to new local groups, change account expiry and password for the local user, enable or disable local users, etc.
Get-Command -Module Microsoft.PowerShell.LocalAccounts
The operation validation framework is used to test the installed modules. In addition, diagnostic folders are inspected for the pester tests for the simple or comprehensive subfolder, or both.
Get-Command -Module Microsoft.PowerShell.Operation.Validation
This module contains Windows files and folders security cmdlets. For example, getting and setting security permissions for files and folders, protecting password strings, protecting/unprotecting CMS messages, etc.
Get-Command -Module Microsoft.PowerShell.Security
Module with miscellaneous cmdlets and functions. For example, export/import CSV files, format the PowerShell console output, add/remove the properties of the output table, etc.
Get-Command -Module Microsoft.PowerShell.Utility
This PowerShell module provides cmdlets to diagnose windows related stuff. For example, evaluating the performance counter, getting windows events from the event-viewer, etc.
Get-Command -Module Microsoft.PowerShell.Diagnostics
This module provides access to WS-Management (Web Service for Management). With this module cmdlets, you can add, clear, change and delete WS-Management data on local and remote computers.
Get-Command -Module Microsoft.WSMan.Management
This module provides cmdlets for the Microsoft Distributed Transaction Coordination (MsDtc).
Get-Command -Module MsDtc
This module provides cmdlets to get, add, remove, and change the network adapter properties.
Get-Command -Module NetAdapter
25. Net connection
This module provides cmdlets to get and set the network connection profile associated with one or more physical adapters.
Get-Command -Module NetAdapter
This module’s cmdlets are used to get, add and remove network adapters associated with the remote capture provider for a network event session.
Get-Command -Module NetAdapter
27. Aa. Netlbfo
This module provides cmdlets for all NIC teaming-specific operations like removing, creating, or modifying the properties.
Get-Command -Module NetLbfo
This module provides cmdlets for Network Security related configuration changes and data retrieval. For example, it can set the Windows OS firewall settings, apply and modify rules, set new firewall rules, etc.
Get-Command -Module NetSecurity
This module provides Network TCP/IP configuration functionality like Network IP interface configuration, IP configuration, finding the best route for the host, removal of IP / Interface, etc.
Get-Command -Module NetTCPIP
This module provides the cmdlets for network connectivity status.
Get-Command -Module NetworkConnectivityStatus
This module provides the cmdlets for the management of Network switches.
Get-Command -Module NetworkSwitchManager
This module contains cmdlets to support Out-of-Band management and to manage IPMI devices.
Get-Command -Module PcsvDevice
This module deals with PKI and Active Directory Certificate Management.
Get-Command -Module PKI
This module provides cmdlets and functions to manage Plug n Play (PnP) devices.
Get-Command -Module PnpDevice
This module provides cmdlets to manage local and remote printers.
Get-Command -Module PrintManagement
This module provides cmdlets and functions related to DSC resources.
Get-Command -Module PSDesiredStateConfiguration
This module contains functions to troubleshoot PowerShell functionality, and it can also log events to event viewers.
Get-Command -Module PSDiagnostics
This module provides commands to manage the background job. For example, you can create, remove, register, and trigger jobs, etc.
Get-Command -Module PSScheduledJob
PSWorkFlow module provides cmdlets to write and run the workflows.
Get-Command -Module PSWorkflow
Get-Command -Module PSWorkflowUtility
This module provides functions to administer and manage the scheduled tasks.
Get-Command -Module ScheduledTasks
This module provides cmdlets related to the secure boot of your system. For example, check if secure boot is enabled for your system to use Confirm-SecureBootUEFI.
Get-Command -Module SecureBoot
This module provides cmdlets specific to SMB (Server Message Block) share. You can create, remove, enable, disable SMB Share, and provide/remove users’ permissions on them.
Get-Command -Module SmbShare
This module retrieves the information about the SMB clients connected to SMB witness servers in the cluster and moves the SMB connection to the specified cluster node.
Get-Command -Module SmbWitness
This module provides storage-specific functionality and cmdlets.
Get-Command -Module Storage
This module provides functionality to manage Transport Layer Security (TLS) related settings.
Get-Command -Module TLS
Windows Error Reporting (WER) collects hardware and software problems on the system and sends it to Microsoft for Analysis. This module is available in PowerShell.
Get-Command -Module WindowsErrorReporting
You can get and set the Windows Search-related items with this PowerShell module.
Get-Command -Module WindowsSearch
You can create your PowerShell module with the packaging of different cmdlets and functions, and you can use them on multiple systems. There are also many modules that are not default installed but very helpful in administration jobs, and you can download them from PowerShell Gallery.
This is a guide to PowerShell Modules. Here we also discuss the Introduction and Various PowerShell modules along with syntax and examples. You may also have a look at the following articles to learn more –
- PowerShell Concatenate String
- PowerShell Convert to String
- PowerShell Split String
- PowerShell Wildcards