Windows PowerShell 2.0 introduced the concept of modules. A module is a package that can contain Windows PowerShell cmdlets, aliases, functions, variables, type/format XML, help files, other scripts, and even providers. In short, a Windows PowerShell module can contain the kinds of things that you might put into your profile, but it can also contain things that Windows PowerShell 1.0 required a developer to incorporate into a PowerShell snap-in. There are several advantages of modules over snap-ins:
Anyone who can write a Windows PowerShell script can create a module.
To install a module, you do not need to write a Windows Installer package.
To install a module, you do not have to have administrator rights.
These advantages ...