[Solved] Prevent auto import of PowerShell modules in Azure Automation Runbook


This behavior, in Powershell, is controlled by one of the preference variables. More specifically, the $PSModuleAutoloadingPreference variable.

This variable control the automatic importing of module in the session.
By default, it is set to All, which automatically import modules on first-use.

Set this to None to disable the automatic importing of modules. You will need to explicitely use Import-Module for any command to be loaded.

Here’s a snippet of the official documentation regarding preferences variiables and that variable specifically.


About Preference Variables

PowerShell includes a set of variables that enable you to customize
its behavior. These preference variables work like the options in
GUI-based systems.

The preference variables affect the PowerShell operating environment
and all commands run in the environment. In many cases, the cmdlets
have parameters that you can use to override the preference behavior
for a specific command.

$PSModuleAutoloadingPreference

Enables and disables automatic importing of modules in the session.
All is the default. To import a module, get or use any command in the
module. For example, use Get-Command. The
$PSModuleAutoloadingPreference variable does not exist by default. The
default behavior when the variable is not defined is the same as
$PSModuleAutoloadingPreference=”All”.

Regardless of the variable’s value, you can use Import-Module to
import a module.

The $PSModuleAutoloadingPreference variable takes one of the
PSModuleAutoLoadingPreference enumeration values: None,
ModuleQualified, or All.

Valid values are:

  • All: Modules are imported automatically on first-use.
  • ModuleQualified: Modules are imported automatically only when a user uses the module-qualified name of a command in the module. For
    example, if the user types MyModule\MyCommand, PowerShell imports the
    MyModule module.
  • None: Automatic importing of modules is disabled in the session. To import a module, use the Import-Module cmdlet.

Source: about_Preference_Variables

solved Prevent auto import of PowerShell modules in Azure Automation Runbook