Geek School: scopri come automatizzare Windows con PowerShell

Sommario:

Geek School: scopri come automatizzare Windows con PowerShell
Geek School: scopri come automatizzare Windows con PowerShell

Video: Geek School: scopri come automatizzare Windows con PowerShell

Video: Geek School: scopri come automatizzare Windows con PowerShell
Video: VIBE UP MEDITATION MENTAL PROTECTION VIBRATION CLEANSE PAUL SANTISI - YouTube 2024, Aprile
Anonim
In questa edizione di Geek School, ti aiuteremo a capire il potente linguaggio di scripting di PowerShell che è incorporato direttamente in Windows ed è estremamente utile per conoscerlo in un ambiente IT.
In questa edizione di Geek School, ti aiuteremo a capire il potente linguaggio di scripting di PowerShell che è incorporato direttamente in Windows ed è estremamente utile per conoscerlo in un ambiente IT.

Sebbene questa serie non sia strutturata attorno a un esame, l'apprendimento di PowerShell è una delle cose più importanti che puoi fare come amministratore di rete, quindi se c'è una cosa che vuoi imparare per aiutare la tua carriera IT, è proprio così. Inoltre, è molto divertente.

introduzione

PowerShell è lo strumento di automazione più potente che Microsoft ha da offrire, ed è sia una shell che un linguaggio di scripting.

Si noti che questa serie è basata su PowerShell 3, fornito con Windows 8 e Server 2012. Se si utilizza Windows 7, scaricare l'aggiornamento di PowerShell 3 prima di continuare.

Incontra la Console e l'ISE

Esistono due modi per interagire con PowerShell out of the box, la Console e l'Integrated Scripting Environment, noto anche come ISE. L'ISE è notevolmente migliorato dalla versione orribile fornita con PowerShell 2 e può essere aperto premendo la combinazione di tasti Win + R per aprire una finestra di esecuzione, quindi digitare powershell_ise e premere invio.

Come puoi vedere, l'ISE mostra una visualizzazione divisa in modo che tu possa scrivere rapidamente mentre sei ancora in grado di vedere il risultato nella metà inferiore dell'ISE. La metà inferiore dell'ISE, in cui vengono stampati i risultati del tuo script, può essere utilizzata anche come prompt REPL, molto simile al prompt dei comandi. V3 ISE ha infine aggiunto il supporto per intellisense sia nel riquadro degli script sia nella console interattiva.
Come puoi vedere, l'ISE mostra una visualizzazione divisa in modo che tu possa scrivere rapidamente mentre sei ancora in grado di vedere il risultato nella metà inferiore dell'ISE. La metà inferiore dell'ISE, in cui vengono stampati i risultati del tuo script, può essere utilizzata anche come prompt REPL, molto simile al prompt dei comandi. V3 ISE ha infine aggiunto il supporto per intellisense sia nel riquadro degli script sia nella console interattiva.
Image
Image
In alternativa, è possibile interagire con PowerShell utilizzando la Console di PowerShell, che è ciò che userò per la maggior parte di questa serie. La Console di PowerShell si comporta in modo molto simile al prompt dei comandi: si immettono semplicemente i comandi e vengono visualizzati i risultati. Per aprire la console di Windows PowerShell, premere nuovamente la combinazione di tasti Win + R per aprire una casella di esecuzione e digitare powershell, quindi premere invio.
In alternativa, è possibile interagire con PowerShell utilizzando la Console di PowerShell, che è ciò che userò per la maggior parte di questa serie. La Console di PowerShell si comporta in modo molto simile al prompt dei comandi: si immettono semplicemente i comandi e vengono visualizzati i risultati. Per aprire la console di Windows PowerShell, premere nuovamente la combinazione di tasti Win + R per aprire una casella di esecuzione e digitare powershell, quindi premere invio.
Image
Image

REPL suggerisce come questo sono fantastici per una gratificazione immediata: si immette un comando e si ottengono risultati. Anche se la console non offre intellisense, offre qualcosa chiamato tab completamento che funziona più o meno allo stesso modo: basta iniziare a digitare un comando e premere il tasto Tab per scorrere le possibili corrispondenze.

Image
Image
Image
Image

Utilizzo del sistema di guida

Nelle versioni precedenti di PowerShell, i file della guida venivano inclusi quando si installava Windows. Questa è stata una buona soluzione per la maggior parte, ma ci ha lasciato un problema significativo. Quando il team di supporto di PowerShell ha dovuto smettere di lavorare sui file della guida, gli sviluppatori PowerShell erano ancora impegnati nella codifica e nella modifica. Ciò significava che quando PowerShell veniva spedito, i file della guida non erano corretti perché non contenevano le modifiche più recenti apportate al codice. Per risolvere questo problema, PowerShell 3 non ha file di guida e include un sistema di aiuto aggiornabile. Questo significa che prima di fare qualsiasi cosa tu voglia scaricare i file di aiuto più recenti. Puoi farlo aprendo una Console PowerShell ed eseguendo:

Update-Help

Image
Image
Congratulazioni per aver eseguito il tuo primo comando PowerShell! La verità è che il comando Aggiorna-Aiuto ha molte più opzioni che semplicemente semplicemente eseguendolo, e per vederle vorremmo vedere l'aiuto per il comando. Per visualizzare l'aiuto per un comando, devi semplicemente passare il nome del comando che vuoi aiutare con il parametro Name del comando Get-Help, ad esempio:
Congratulazioni per aver eseguito il tuo primo comando PowerShell! La verità è che il comando Aggiorna-Aiuto ha molte più opzioni che semplicemente semplicemente eseguendolo, e per vederle vorremmo vedere l'aiuto per il comando. Per visualizzare l'aiuto per un comando, devi semplicemente passare il nome del comando che vuoi aiutare con il parametro Name del comando Get-Help, ad esempio:

Get-Help –Name Update-Help

Probabilmente ti starai chiedendo come interpretare tutto quel testo, voglio dire, perché ci sono due informazioni sulla sezione della sintassi e perché ci sono così tante parentesi dappertutto? Per prima cosa: la ragione per cui ci sono due blocchi di informazioni nella sezione della sintassi è perché rappresentano diversi modi per eseguire il comando. Questi sono tecnicamente chiamati set di parametri e puoi usarne solo uno alla volta (non puoi mescolare i parametri di diversi set). Nello screenshot qui sopra puoi vedere che il set di parametri superiore ha un parametro SourcePath mentre il fondo no. Il motivo è che si utilizzerà il set di parametri superiore (quello che include SourcePath) se si aggiornassero i file della guida da un'altra macchina sulla rete che li aveva già scaricati, mentre non sarebbe necessario specificare un percorso di origine se si volevo solo prendere gli ultimi file da Microsoft.
Probabilmente ti starai chiedendo come interpretare tutto quel testo, voglio dire, perché ci sono due informazioni sulla sezione della sintassi e perché ci sono così tante parentesi dappertutto? Per prima cosa: la ragione per cui ci sono due blocchi di informazioni nella sezione della sintassi è perché rappresentano diversi modi per eseguire il comando. Questi sono tecnicamente chiamati set di parametri e puoi usarne solo uno alla volta (non puoi mescolare i parametri di diversi set). Nello screenshot qui sopra puoi vedere che il set di parametri superiore ha un parametro SourcePath mentre il fondo no. Il motivo è che si utilizzerà il set di parametri superiore (quello che include SourcePath) se si aggiornassero i file della guida da un'altra macchina sulla rete che li aveva già scaricati, mentre non sarebbe necessario specificare un percorso di origine se si volevo solo prendere gli ultimi file da Microsoft.

Per rispondere alla seconda domanda, c'è una certa sintassi che i file di aiuto seguono e qui è:

  • Le parentesi quadre attorno al nome di un parametro e il suo tipo indicano che si tratta di un parametro facoltativo e il comando funzionerà correttamente senza di esso.
  • Le parentesi quadre attorno al nome dei parametri indicano che i parametri sono parametri posizionali.
  • La cosa alla destra di un parametro nelle parentesi angolate indica il tipo di dati che il parametro si aspetta.

Mentre dovresti imparare a leggere la sintassi del file di aiuto, se non sei mai sicuro di un particolare parametro, aggiungi -Full alla fine del comando ottieni aiuto e scorri verso il basso nella sezione dei parametri, dove ti dirà un po 'di più su ciascuna parametro.

Get-Help –Name Update-Help –Full

L'ultima cosa che devi sapere sul sistema di aiuto è come puoi usarlo per scoprire i comandi, che in realtà è molto semplice. Vedete, PowerShell accetta i caratteri jolly quasi ovunque, quindi usarli insieme al comando Get-Help consente di scoprire facilmente i comandi. Ad esempio, sto cercando comandi che gestiscono i servizi di Windows:
L'ultima cosa che devi sapere sul sistema di aiuto è come puoi usarlo per scoprire i comandi, che in realtà è molto semplice. Vedete, PowerShell accetta i caratteri jolly quasi ovunque, quindi usarli insieme al comando Get-Help consente di scoprire facilmente i comandi. Ad esempio, sto cercando comandi che gestiscono i servizi di Windows:

Get-Help –Name *service*

Certo, tutte queste informazioni potrebbero non essere utili per il pipistrello, ma fidati di me, prenditi il tempo e impara come usare il sistema di aiuto. È sempre utile, anche per gli sceneggiatori avanzati che lo fanno da anni.
Certo, tutte queste informazioni potrebbero non essere utili per il pipistrello, ma fidati di me, prenditi il tempo e impara come usare il sistema di aiuto. È sempre utile, anche per gli sceneggiatori avanzati che lo fanno da anni.

Sicurezza

Questo non sarebbe un'introduzione adeguata senza menzionare la sicurezza. La maggiore preoccupazione per il team di PowerShell è che PowerShell diventa il punto di attacco più recente e più grande per gli script kiddies. Hanno messo in atto alcune misure di sicurezza per assicurarsi che ciò non avvenga, quindi diamo un'occhiata a loro.

La forma più semplice di protezione deriva dal fatto che l'estensione del file PS1 (l'estensione utilizzata per indicare uno script PowerShell) non è registrata con un host PowerShell, in realtà è registrata con il Blocco note. Ciò significa che se fai doppio clic su un file verrà aperto con il blocco note anziché eseguire.

In secondo luogo, non è possibile eseguire script dalla shell semplicemente digitando il nome dello script, è necessario specificare il percorso completo dello script. Quindi se volessi eseguire uno script sul tuo drive C dovresti digitare:

C:

unme.ps1

O se sei già alla radice del drive C puoi usare quanto segue:

unme.ps1

Infine, PowerShell ha qualcosa chiamato Execution Policies, che ti impedisce di eseguire qualsiasi vecchio script. Infatti, per impostazione predefinita, non è possibile eseguire script e modificare i criteri di esecuzione se si desidera consentire loro di eseguirli. Esistono 4 politiche di esecuzione notevoli:

  • Limitato: Questa è la configurazione predefinita in PowerShell. Questa impostazione significa che nessuno script può essere eseguito, indipendentemente dalla sua firma. L'unica cosa che può essere eseguita in PowerShell con questa impostazione è un comando individuale.
  • AllSigned: Questa impostazione consente agli script di essere eseguiti in PowerShell. Lo script deve avere una firma digitale associata da un editore attendibile. Ci sarà un prompt prima di eseguire gli script da editori fidati.
  • RemoteSigned: Questa impostazione consente di eseguire script, ma richiede che lo script e i file di configurazione scaricati da Internet abbiano una firma digitale associata da un editore attendibile. Gli script eseguiti dal computer locale non devono essere firmati. Non ci sono richieste prima di eseguire lo script.
  • illimitato: Consente di eseguire script non firmati, inclusi tutti gli script e i file di configurazione scaricati da Internet. Ciò includerà i file da Outlook e Messenger. Il rischio qui è l'esecuzione di script senza firma o sicurezza. Abbiamo ricominciato a non usarci mai questa impostazione.

Per vedere a cosa è impostata la politica di esecuzione corrente, aprire una Console PowerShell e digitare:

Get-ExecutionPolicy

Per questo corso e la maggior parte delle altre circostanze, il criterio RemoteSigned è il migliore, quindi procedi e modifica la tua politica utilizzando quanto segue.
Per questo corso e la maggior parte delle altre circostanze, il criterio RemoteSigned è il migliore, quindi procedi e modifica la tua politica utilizzando quanto segue.

Nota: questo dovrà essere fatto da una console PowerShell elevata.

Set-ExecutionPolicy RemoteSigned

Questo è tutto per questa volta gente, ci vediamo domani per un po 'di divertimento in PowerShell.
Questo è tutto per questa volta gente, ci vediamo domani per un po 'di divertimento in PowerShell.

Dichiarazione di non responsabilità: il termine corretto per un comando di PowerShell è un cmdlet e da questo momento useremo questa terminologia corretta. Mi è sembrato più appropriato chiamarli comandi per questa introduzione.

Se hai domande, puoi twittarmi @taybgibb o semplicemente lasciare un commento.

Consigliato: