Geek School: scopri come estendere PowerShell

Sommario:

Geek School: scopri come estendere PowerShell
Geek School: scopri come estendere PowerShell

Video: Geek School: scopri come estendere PowerShell

Video: Geek School: scopri come estendere PowerShell
Video: # 84 Controllo parentale con Windows 10 - Bambini sicuri in internet - Maggiolina - YouTube 2024, Maggio
Anonim
PowerShell offre due modi per estendere la shell. È possibile utilizzare gli snap-in, che sono solo binari e sviluppati in un linguaggio di programmazione completo come C #, oppure è possibile utilizzare moduli, che possono essere sia binari che basati su script.
PowerShell offre due modi per estendere la shell. È possibile utilizzare gli snap-in, che sono solo binari e sviluppati in un linguaggio di programmazione completo come C #, oppure è possibile utilizzare moduli, che possono essere sia binari che basati su script.

Assicurati di leggere gli articoli precedenti della serie:

  • Scopri come automatizzare Windows con PowerShell
  • Imparare a utilizzare i cmdlet in PowerShell
  • Apprendimento Come utilizzare gli oggetti in PowerShell
  • Apprendimento della formattazione, del filtro e del confronto in PowerShell
  • Impara a utilizzare i servizi remoti in PowerShell
  • Utilizzo di PowerShell per ottenere informazioni sul computer
  • Lavorare con le raccolte in PowerShell

E rimanete sintonizzati per il resto della serie per tutta la settimana.

snapins

Gli snap-in sono così l'anno scorso. A parte le barzellette, gli snap-in non sono mai stati realmente compresi tra la comunità PowerShell perché la maggior parte degli sceneggiatori non sono sviluppatori e puoi scrivere solo snap-in in un linguaggio come C #. Tuttavia ci sono ancora alcuni prodotti che utilizzano gli snap-in, ad esempio Web Deploy. Per vedere quali snap-in sono disponibili per l'utilizzo nella shell, utilizzare il seguente comando:

Get-PSSnapin –Registered

Per utilizzare i comandi aggiunti da uno snap-in, devi prima importarlo nella tua sessione, e puoi farlo in questo modo:
Per utilizzare i comandi aggiunti da uno snap-in, devi prima importarlo nella tua sessione, e puoi farlo in questo modo:

Add-PSSnapin -Name WDeploySnapin3.0

A questo punto, si verificherà un errore se non è installato lo snap-in di distribuzione Web. Se lo hai installato, come faccio io, verrà importato nella tua sessione. Per ottenere un elenco di comandi disponibili nello snap-in, è sufficiente utilizzare il cmdlet Get-Command:

Get-Command –Module WDeploy*

Nota: tecnicamente questo non è un modulo, ma per qualche motivo devi ancora utilizzare il parametro Module.

Image
Image

moduli

I moduli sono più recenti e sono la via da seguire. Possono essere sia programmati tramite PowerShell sia codificati in un linguaggio come C #. La maggior parte dei comandi integrati sono organizzati anche in moduli. Per vedere un elenco di moduli sul tuo sistema, puoi usare il seguente comando:

Get-Module –ListAvailable

Quando i prodotti vengono aggiornati, le loro controparti PowerShell vengono migrate ai moduli. Ad esempio, SQL aveva uno snap-in, ma ora è composto da moduli.
Quando i prodotti vengono aggiornati, le loro controparti PowerShell vengono migrate ai moduli. Ad esempio, SQL aveva uno snap-in, ma ora è composto da moduli.
Per poter utilizzare un modulo, devi prima importarlo.
Per poter utilizzare un modulo, devi prima importarlo.

Import-Module -Name SQLASCMDLETS

Puoi usare lo stesso trucco che abbiamo usato con gli snap per visualizzare tutti i comandi che il modulo ha aggiunto alla shell.

Così lascia la domanda: in che modo PowerShell sa quali snap-in e moduli si hanno sul tuo sistema? Bene, le istantanee sono un po 'dolorose e devono essere installate. Parte del processo di installazione include la creazione di alcune voci di registro che PowerShell esamina per trovare le informazioni sullo snapshot. I moduli, d'altra parte, possono essere registrati con la shell semplicemente inserendoli in una delle posizioni nella variabile d'ambiente PSModulePath. In alternativa, puoi semplicemente aggiungere il percorso del modulo alla variabile di ambiente.
Così lascia la domanda: in che modo PowerShell sa quali snap-in e moduli si hanno sul tuo sistema? Bene, le istantanee sono un po 'dolorose e devono essere installate. Parte del processo di installazione include la creazione di alcune voci di registro che PowerShell esamina per trovare le informazioni sullo snapshot. I moduli, d'altra parte, possono essere registrati con la shell semplicemente inserendoli in una delle posizioni nella variabile d'ambiente PSModulePath. In alternativa, puoi semplicemente aggiungere il percorso del modulo alla variabile di ambiente.

($env:PSModulePath).Split(“;”)

Questo sputerà il contenuto della variabile. Nota che se hai un modulo come SQL installato, come ha modificato la variabile per includere la posizione del modulo SQL.

Image
Image

Caricamento automatico del modulo

PowerShell 3 ha introdotto una nuova fantastica funzionalità che ha pochi nomi. Nessuno di questi è ufficiale, ma "Caricamento automatico del modulo" è la migliore descrizione di esso. In sostanza, consente di utilizzare i cmdlet che appartengono a un modulo esterno senza importare esplicitamente il modulo utilizzando il cmdlet Import-Module. Per vedere questo, rimuovere prima tutti i moduli dalla shell usando il seguente comando:

Get-Module | Remove-Module

È quindi possibile verificare di non aver caricato moduli utilizzando quanto segue:

Get-Module

Ora usa un cmdlet che non si trova nella libreria principale. Test-Connection è buono:
Ora usa un cmdlet che non si trova nella libreria principale. Test-Connection è buono:

Test-Connection localhost

Consigliato: