You can load additional commands in PowerShell via Modules.A module is really nothing more than a PowerShell script with a .psm1 file extension, although they can include binary code, typically delivered in a dll file.
Run below command to see modules exiting in your session :
PS > get-module
It is very possible you'll get nothing. But that simply means nothing is loaded in your session. We need to ask PowerShell to tell us what modules are available:
PS > get-module -ListAvailable
User modules are found in ...\Documents\WindowsPowerShell\Modules and system modules in $pshome\Modules. Some products may modify this variable. PowerShell gets this collection of objects by checking an environmental variable:
PS > $env:PSModulePath
When I want to use a module, I can import it. Consider i want to import the HyperV module, execute below command:
PS > Import-Module HyperV
If you have a module file in another folder outside of $env:PSModulePath, you can still import it if you specify the path:
PS > import-module S:\PSVirtualBox
To discover what the module can do, we can ask the Get-Command cmdlet:
PS > get-command -Module HyperV
CommandType Name Definition
----------- ---- ----------
Alias Add-NewVMHardDisk Add-VMNewHardDisk
Function Add-VMDisk # .ExternalHelp MAML-VMDisk...
Function Add-VMDrive # .ExternalHelp MAML-VMDisk...
Function Add-VMFloppyDisk # .ExternalHelp MAML-VMDisk...
Function Add-VMKVP # .ExternalHelp MAML-VMConf...
I can use any of these commands as long as the module is loaded in my PowerShell session. Once I close my session the module is removed. If I want to always have this module available, I simply add the Import-Module command to my PowerShell profile. If you want to unload a module manually, you can do this:
PS C:\> Remove-Module HyperV