ARGOMENTO about_Modules DESCRIZIONE BREVE Illustra come installare, importare e utilizzare i moduli di Windows PowerShell. DESCRIZIONE DETTAGLIATA Un modulo è un pacchetto che contiene comandi di Windows PowerShell, ad esempio cmdlet, provider, funzioni, variabili e alias. I moduli consentono agli utenti che scrivono comandi di organizzarli e condividerli con altri. Gli utenti che ricevono i moduli possono aggiungere i comandi dei moduli alle sessioni di Windows PowerShell e utilizzarli come se si trattasse di comandi predefiniti. In questo argomento viene illustrato come utilizzare i moduli di Windows PowerShell. Per informazioni sulla scrittura dei moduli di Windows PowerShell, vedere l'argomento relativo alla scrittura di un modulo di Windows PowerShell nella MSDN Library all'indirizzo https://go.microsoft.com/fwlink/?LinkId=144916. MODALITÀ DI UTILIZZO DI UN MODULO Per utilizzare un modulo, effettuare le seguenti attività: 1. Installare il modulo. Questa operazione viene spesso eseguita automaticamente. 2. Importare il modulo nella sessione di Windows PowerShell. 3. Trovare i comandi aggiunti dal modulo. 4. Utilizzare i comandi aggiunti dal modulo. In questo argomento viene illustrato come eseguire queste attività. Vengono inoltre fornite altre informazioni utili relative alla gestione dei moduli. MODALITÀ DI INSTALLAZIONE DI UN MODULO Se si riceve un modulo sotto forma di cartella contenente file, è necessario installarlo nel computer prima di poterlo importare in Windows PowerShell. La maggior parte dei moduli vengono installati automaticamente. In Windows PowerShell sono disponibili diversi moduli preinstallati. In Windows Server 2008 R2, tramite l'Aggiunta guidata funzionalità in Server Manager vengono automaticamente installati i moduli selezionati. Molti altri moduli vengono forniti in un programma di installazione che li installa nel computer. Per installare una cartella di modulo: 1. Creare una directory Modules per l'utente corrente, se non è già esistente. Per creare una directory Modules, digitare: new-item -type directory -path $home\Documents\WindowsPowerShell\Modules 2. Copiare l'intera cartella del modulo nella directory Modules. È possibile utilizzare qualsiasi metodo per copiare la cartella, inclusi Esplora risorse, Cmd.exe e Windows PowerShell. In Windows PowerShell utilizzare il cmdlet Copy-Item. Ad esempio, per copiare la cartella MyModule da C:\ps-test\MyModule nella directory Modules, digitare: copy-item -path c:\ps-test\MyModule -dest $home\Documents\WindowsPowerShell\Modules È possibile installare un modulo in qualsiasi percorso, ma l'installazione dei moduli in un percorso di modulo predefinito ne semplifica la gestione. Per ulteriori informazioni sui percorsi di modulo predefiniti, vedere la sezione "Percorsi di modulo e PSModulePath". MODALITÀ DI INDIVIDUAZIONE DEI MODULI INSTALLATI Quando viene installato un modulo, è possibile importarlo nella sessione di Windows PowerShell. Per individuare i moduli installati in un percorso predefinito, al prompt di Windows PowerShell digitare: get-module -listAvailable Per individuare i moduli che sono già stati importati nella sessione, digitare quanto segue al prompt di Windows PowerShell: get-module Per ulteriori informazioni sul cmdlet Get-Module, vedere Get-Module. MODALITÀ DI IMPORTAZIONE DI UN MODULO Per utilizzare i comandi in un modulo, importare il modulo in una sessione di Windows PowerShell. Per importare i moduli da un percorso di modulo predefinito nella sessione corrente, utilizzare il formato di comando seguente. import-module <nome-modulo> Ad esempio, con il comando seguente viene importato il modulo BitsTransfer nella sessione corrente. import-module BitsTransfer Per importare un modulo che non si trova in un percorso di modulo predefinito, utilizzare il percorso completo della cartella del modulo nel comando. Ad esempio, per aggiungere il modulo TestCmdlets che si trova nella directory C:\ps-test alla sessione, digitare: import-module c:\ps-test\TestCmdlets Per ulteriori informazioni sull'aggiunta di moduli alla sessione, vedere Import-Module. MODALITÀ DI IMPORTAZIONE DI TUTTI I MODULI NELLA SESSIONE DI WINDOWS POWERSHELL In Windows 7 e Windows Server 2008 R2, mediante l'attività "Importa tutti i moduli" viene aperta una sessione di Windows PowerShell che include tutti i moduli e gli snap-in di Windows PowerShell disponibili. Per avviare una sessione di Windows PowerShell con tutti i moduli e gli snap-in di Windows PowerShell disponibili, effettuare la procedura seguente. -- Fare clic con il pulsante destro del mouse sull'icona di Windows PowerShell nella barra delle applicazioni, quindi scegliere "Importa tutti i moduli". Nota: per impostazione predefinita, in Windows Server 2008 R2 l'icona di Windows PowerShell è bloccata sulla barra delle applicazioni. È tuttavia necessario avviare Windows PowerShell una volta per rendere disponibile l'attività "Importa tutti i moduli". Nelle altre versioni di Windows, per importare tutti i moduli disponibili nella sessione, digitare quanto segue al prompt di Windows PowerShell: get-module -listAvailable | import-module MODALITÀ DI INDIVIDUAZIONE DEI COMANDI IN UN MODULO Dopo avere importato un modulo nella sessione di Windows PowerShell, è possibile utilizzare i comandi nel modulo. Per trovare i comandi aggiunti da un modulo, digitare quanto segue al prompt di Windows PowerShell: get-command -module <nome-modulo> Ad esempio, per trovare i comandi aggiunti dal modulo BitsTransfer, digitare: get-command -module BitsTransfer Per ulteriori informazioni sul cmdlet Get-Command, vedere Get-Command. MODALITÀ DI ACCESSO ALLA GUIDA PER I COMANDI IN UN MODULO Se il modulo contiene argomenti della Guida per i comandi che esporta, tali argomenti verranno visualizzati tramite il cmdlet Get-Help. Utilizzare lo stesso formato di comando utilizzato per qualsiasi argomento della Guida in Windows PowerShell. Per trovare l'argomento della Guida per i comandi in un modulo, digitare quanto segue al prompt di Windows PowerShell: get-help <nome-comando> Per informazioni più dettagliate, digitare: get-help <nome-comando> -detailed Ad esempio, per trovare informazioni dettagliate sul cmdlet Start-BitsTransfer, digitare: get-help Start-BitsTransfer -detailed Per ulteriori informazioni sul modulo Get-Help, vedere Get-Help. MODALITÀ DI RIMOZIONE DI UN MODULO Quando si rimuove un modulo, i comandi aggiunti dal modulo vengono eliminati dalla sessione. Per rimuovere un modulo dalla sessione, utilizzare il formato di comando seguente. remove-module <nome-modulo> Ad esempio, con il comando seguente viene rimosso il modulo BitsTransfer dalla sessione corrente. remove-module BitsTransfer La rimozione di un modulo annulla l'operazione di importazione di un modulo. Con la rimozione il modulo non viene disinstallato. Per ulteriori informazioni sul cmdlet Remove-Module, vedere Remove-Module. MODALITÀ DI IMPORTAZIONE DI UN MODULO IN OGNI SESSIONE Con il comando Import-Module vengono importati moduli nella sessione di Windows PowerShell corrente. Questo comando ha effetto solo sulla sessione corrente. Per importare un modulo in ogni sessione di Windows PowerShell avviata, aggiungere un comando Import-Module al profilo di Windows PowerShell. Per ulteriori informazioni sui profili, vedere about_Profiles. PERCORSI DI MODULO E PSMODULEPATH Per i moduli di Windows PowerShell sono disponibili due percorsi predefiniti, uno per il sistema e uno per l'utente corrente. Sistema: $pshome\Modules (%windir%\System32\WindowsPowerShell\v1.0\Modules) Utente corrente: $home\Documents\WindowsPowerShell\Modules (%UserProfile%\Documents\WindowsPowerShell\Modules) - oppure $home\My Documents\WindowsPowerShell\Modules (%UserProfile%\My Documents\WindowsPowerShell\Modules) Nota: in Windows Vista, Windows Server 2008 e versioni successive di Windows, per aggiungere o modificare file nella directory %Windir%\System32, avviare Windows PowerShell con l'opzione "Esegui come amministratore". È possibile modificare i percorsi di modulo predefiniti nel sistema modificando il valore della variabile di ambiente PSModulePath ($env:psmodulepath). La variabile di ambiente PSModulePath viene modellata sulla variabile di ambiente Path e ha lo stesso formato. Per visualizzare i percorsi di modulo predefiniti, digitare: $env:psmodulepath Per aggiungere un percorso di modulo predefinito, utilizzare il formato di comando seguente. $env:psmodulepath = $env:psmodulepath + ";<path>" Il punto e virgola (;) nel comando separa il nuovo percorso dal percorso che lo precede nell'elenco. Ad esempio, per aggiungere la directory "C:\ps-test\Modules", digitare: $env:psmodulepath + ";c:\ps-test\Modules" Quando si aggiunge un percorso a PSModulePath, i comandi Get-Module e Import-Module includono i moduli in tale percorso. Il valore impostato ha effetto solo sulla sessione corrente. Per rendere permanente la modifica, aggiungere il comando al profilo di Windows PowerShell o utilizzare l'elemento Sistema nel Pannello di controllo per modificare il valore della variabile di ambiente PSModulePath nel Registro di sistema. Per ulteriori informazioni sulla variabile PSModulePath, vedere about_Environment_Variables. MODULI E CONFLITTI DI NOMI I conflitti di nomi si verificano quando nella sessione sono presenti più comandi con lo stesso nome. L'importazione di un modulo provoca un conflitto di nomi quando nel modulo sono presenti comandi con lo stesso nome di comandi o elementi della sessione. A causa dei conflitti di nomi alcuni comandi potrebbero venire nascosti o sostituiti. -- Nascosto. Un comando è nascosto quando non è il comando che viene eseguito quando se ne digita il nome, ma può essere eseguito utilizzando un altro metodo, ad esempio qualificando il nome del comando con il nome del modulo o dello snap-in in cui ha avuto origine. -- Sostituito. Un comando è sostituito quando non può essere eseguito poiché è stato sovrascritto da un comando con lo stesso nome. Anche se si rimuove il modulo che ha provocato il conflitto, non è possibile eseguire un comando sostituito a meno che non si riavvii la sessione. Import-Module potrebbe aggiungere comandi che ne nascondono e ne sostituiscono altri nella sessione corrente. Inoltre, i comandi nella sessione possono nascondere comandi aggiunti dal modulo. Per evitare i conflitti di nomi, utilizzare il parametro Prefix di Import-Command per creare nomi univoci per i comandi importati. È inoltre possibile utilizzare i parametri Alias, Cmdlet, Function e Variable di Import-Module per selezionare solo i comandi che si desidera importare ed escludere quelli che provocano conflitti di nomi nella sessione. Anche se un comando è nascosto, è possibile eseguirlo qualificandone il nome con il nome del modulo o dello snap-in in cui ha avuto origine. Le regole di precedenza dei comandi di Windows PowerShell determinano quale comando viene eseguito quando la sessione include comandi con lo stesso nome. Ad esempio, quando una sessione include una funzione e un cmdlet con lo stesso nome, per impostazione predefinita in Windows PowerShell viene eseguita la funzione. Quando la sessione include comandi dello stesso tipo con lo stesso nome, ad esempio due cmdlet con lo stesso nome, per impostazione predefinita viene eseguito il comando aggiunto più recentemente. Per ulteriori informazioni, incluse una spiegazione delle regole di precedenza e istruzioni per l'esecuzione di comandi nascosti, vedere about_Command_Precedence. MODULI E SNAP-IN È possibile aggiungere comandi alla sessione da moduli e snap-in. I moduli possono aggiungere tutti i tipi di comandi, tra cui cmdlet, provider e funzioni, ed elementi, quali variabili, alias e unità di Windows PowerShell. Gli snap-in possono aggiungere solo cmdlet e provider. In effetti, benché sia possibile aggiungere funzioni, alias, variabili e unità alla sessione digitandoli o eseguendo uno script per aggiungerli, tutti i cmdlet e i provider nella sessione provengono da un modulo o da uno snap-in. Prima di rimuovere un modulo o uno snap-in dalla sessione, utilizzare i comandi seguenti per determinare quali comandi verranno rimossi. Per trovare l'origine di un cmdlet nella sessione, utilizzare il formato di comando seguente: get-command <nome-cmdlet> | format-list -property verb, noun, pssnapin, module Ad esempio, per trovare l'origine del cmdlet Get-Date, digitare: get-command get-date | format-list -property verb, noun, pssnapin, module Per ulteriori informazioni sugli snap-in di Windows PowerShell, vedere about_PSSnapins. VEDERE ANCHE about_Command_Precedence about_PSSnapins Get-Command Get-Help Get-Module Import-Module Remove-Module