PowerTip: Load PowerShell Modules and See What’s Imported

Summary: Learn to parse load information about modules to see what’s imported.

Hey, Scripting Guy! Question How can I analyze what is imported when a Windows PowerShell module loads?

Hey, Scripting Guy! Answer Use the –Verbose switch when importing the module, and redirect the verbose stream to a
          text file so you can use Windows PowerShell cmdlets to parse the file. In the following example,
          all modules are loaded, verbose output is redirected to a file, and Select-String is used to parse
          the file (gmo is an alias for Get-Module and ipmo is an alias for Import-Module):

gmo -l | ipmo -Verbose | 4>>c:fsomodload.txt

$a = Get-Content C:fsomodload.txt

$a | Select-String "importing"

$a | Select-String "alias"

Comments (6)

  1. I have had some issues with import-module. Thanks

  2. What does says:

    4 do?

  3. Alistair Wall says:

    It is one of the built-in output streams – see

    4>>c:fsomodload.txt redirects verbose output to the named file.

  4. niklas says:

    Shouldn’t the command be used without the last pipeline, like this: gmo -l | ipmo -Verbose 4>>c:fsomodload.txt

    If used like this gmo -l | ipmo -Verbose | 4>>c:fsomodload.txt you’ll get the following error:

    >> : The term ‘>>’ is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
    At line:1 char:42
    + Get-Module -l | Import-Module -Verbose | >>C:UsersrehnmniDesktoptesti.txt
    + ~~
    + CategoryInfo : ObjectNotFound: (>>:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

Skip to main content