Condividi tramite


Importazione di un modulo di PowerShell

Dopo aver installato un modulo in un sistema, è probabile che si voglia importare il modulo. L'importazione è il processo che carica il modulo in memoria attiva, in modo che un utente possa accedere a tale modulo nella sessione di PowerShell. In PowerShell 2.0 è possibile importare un modulo di PowerShell appena installato con una chiamata al cmdlet Import-Module. In PowerShell 3.0 PowerShell è in grado di importare in modo implicito un modulo quando una delle funzioni o dei cmdlet nel modulo viene chiamata da un utente. Si noti che entrambe le versioni presuppongono che il modulo venga installato in un percorso in cui PowerShell è in grado di trovarlo; Per altre informazioni, vedere Installazione di un modulo di PowerShell. È possibile usare un manifesto del modulo per limitare le parti del modulo esportate ed è possibile usare i parametri della chiamata Import-Module per limitare le parti importate.

Importazione di un Snap-In (PowerShell 1.0)

I moduli non esistevano in PowerShell 1.0: era invece necessario registrare e usare snap-in. Tuttavia, non è consigliabile usare questa tecnologia a questo punto, poiché i moduli sono generalmente più facili da installare e importare. Per altre informazioni, vedere Come creare uno snap-in di Windows PowerShell.

Importazione di un modulo con Import-Module (PowerShell 2.0)

PowerShell 2.0 usa il cmdlet Import-Module denominato in modo appropriato per importare i moduli. Quando questo cmdlet viene eseguito, Windows PowerShell cerca il modulo specificato all'interno delle directory specificate nella variabile PSModulePath. Quando viene trovata la directory specificata, Windows PowerShell cerca i file nell'ordine seguente: file manifesto del modulo (.psd1), file di modulo script (.psm1), file di modulo binari (.dll). Per altre informazioni sull'aggiunta di directory alla ricerca, vedere about_PSModulePath. Il codice seguente descrive come importare un modulo:

Import-Module myModule

Supponendo che myModule si trovasse nella PSModulePath, PowerShell caricherebbe myModule in memoria attiva. Se myModule non si trova in un percorso PSModulePath, è comunque possibile indicare in modo esplicito a PowerShell dove trovarla:

Import-Module -Name C:\myRandomDirectory\myModule -Verbose

È anche possibile usare il parametro -Verbose per identificare cosa viene esportato dal modulo e cosa viene importato nella memoria attiva. Sia le esportazioni che le importazioni limitano ciò che viene esposto all'utente: la differenza è chi controlla la visibilità. Essenzialmente, le esportazioni sono controllate dal codice all'interno del modulo. Al contrario, le importazioni sono controllate dalla chiamata Import-Module. Per altre informazioni, vedere Limitare i membri importatidi seguito.

Importazione implicita di un modulo (PowerShell 3.0)

A partire da Windows PowerShell 3.0, i moduli vengono importati automaticamente quando un cmdlet o una funzione nel modulo viene usato in un comando. Questa funzionalità funziona su qualsiasi modulo in una directory inclusa nel valore della variabile di ambiente PSModulePath. Se non si salva il modulo in un percorso valido, tuttavia, è comunque possibile caricarli usando l'opzione esplicita Import-Module, descritta in precedenza.

Le azioni seguenti attivano l'importazione automatica di un modulo, noto anche come "caricamento automatico del modulo".

  • Uso di un cmdlet in un comando. Ad esempio, digitando Get-ExecutionPolicy importa il modulo Microsoft.PowerShell.Security che contiene il cmdlet Get-ExecutionPolicy.

  • Usare il cmdlet Get-Command per ottenere il comando . Ad esempio, digitare Get-Command Get-JobTrigger importa il modulo di PSScheduledJob che contiene il cmdlet Get-JobTrigger. Un comando Get-Command che include caratteri jolly viene considerato individuazione e non attiva l'importazione di un modulo.

  • Uso del cmdlet Get-Help per ottenere assistenza per un cmdlet. Ad esempio, digitare Get-Help Get-WinEvent importa il modulo Microsoft.PowerShell.Diagnostics che contiene il cmdlet Get-WinEvent.

Per supportare l'importazione automatica dei moduli, il cmdlet Get-Command ottiene tutti i cmdlet e le funzioni in tutti i moduli installati, anche se il modulo non viene importato nella sessione. Per altre informazioni, vedere l'argomento della Guida relativo al cmdlet Get-Command.

Processo di importazione

Quando viene importato un modulo, viene creato un nuovo stato di sessione per il modulo e viene creato un oggetto System.Management.Automation.PSModuleInfo oggetto in memoria. Viene creato uno stato di sessione per ogni modulo importato , che include il modulo radice e tutti i moduli annidati. I membri esportati dal modulo radice, inclusi i membri esportati nel modulo radice da qualsiasi modulo annidato, vengono quindi importati nello stato della sessione del chiamante.

I metadati dei membri esportati da un modulo hanno una proprietà ModuleName. Questa proprietà viene popolata con il nome del modulo esportato.

Avvertimento

Se il nome di un membro esportato utilizza un verbo non approvato o se il nome del membro utilizza caratteri limitati, viene visualizzato un avviso quando viene eseguito il cmdlet Import-Module.

Per impostazione predefinita, il cmdlet Import-Module non restituisce oggetti alla pipeline. Tuttavia, il cmdlet supporta un parametro PassThru che può essere usato per restituire un oggetto System.Management.Automation.PSModuleInfo per ogni modulo importato. Per inviare l'output all'host, gli utenti devono eseguire il cmdlet write-host di.

Limitazione dei membri importati

Quando un modulo viene importato usando il cmdlet import-module, per impostazione predefinita, tutti i membri del modulo esportati vengono importati nella sessione, inclusi tutti i comandi esportati nel modulo da un modulo annidato. Per impostazione predefinita, le variabili e gli alias non vengono esportati. Per limitare i membri esportati, usare un manifesto del modulo . Per limitare i membri importati, usare i parametri seguenti del cmdlet Import-Module.

  • Funzione: questo parametro limita le funzioni esportate. Se si usa un manifesto del modulo, vedere la chiave FunctionsToExport.

  • ` cmdlet: questo parametro limita i cmdlet esportati .Se si usa un manifesto del modulo, vedere la chiave CmdletsToExport.

  • Variabile: questo parametro limita le variabili esportate .Se si usa un manifesto del modulo, vedere la chiave VariablesToExport.

  • Alias: questo parametro limita gli alias esportati .Se si usa un manifesto del modulo, vedere la chiave AliasesToExport.

Vedere anche

scrittura di un modulo di Windows PowerShell