Come iniziare a imparare PowerShell?
“Sì, ho una certa familiarità con PowerShell” è forse una delle affermazioni più utilizzate durante le conferenze tecnologiche nel corso degli anni. Non si possono fare molte affermazioni che possono essere ugualmente sottovalutate o esagerate.
Alcuni di coloro che lo dicono sono piuttosto umili, anche se probabilmente sanno un bel po’ di PowerShell. Altri tendono a pensare che conoscere PowerShell sia lo stesso che sapere come usarlo. Per coloro che non sanno come usarlo, che è ancora una parte significativa del team di supporto e ingegnerizzazione dei sistemi, può essere piuttosto scoraggiante pensare da dove iniziare a utilizzare PowerShell in primo luogo. Hai ascoltato innumerevoli discorsi tecnici, letto pagine di articoli e parlato molto con i colleghi di tutte le cose che può fare per te. Guardi questa montagna in crescita e tutto ciò che puoi fare è concentrarti sulla cima e l’ovvio ti sfugge quando si tratta di pianificare come raggiungerla. Questo primo gradino è proprio di fronte a te, ai piedi della montagna.
Potresti non sapere nulla di PowerShell e va bene.
Togliamoci di mezzo. Se non conosci PowerShell, va benissimo. Va bene se conosci PowerShell, ma va bene confessare se non l’hai mai usato. Annuire in accordo nelle discussioni con i colleghi e aggiungere PowerShell al tuo curriculum per darti un vantaggio può diventare una realtà molto più velocemente di quanto pensi. Ognuno ha la propria storia di PowerShell e la tua storia sarà unica come il tuo supporto IT e il tuo percorso di progettazione. Non hai altro posto dove andare se non su!
Secondo Microsoft Docs , “PowerShell è una soluzione di automazione delle attività multipiattaforma che consiste in una shell della riga di comando, un linguaggio di scripting e un framework di gestione della configurazione. PowerShell funziona su Windows, Linux e macOS.” L’obiettivo di questo post sarà rigorosamente la parte della shell di PowerShell e si concentrerà su quello. Altri aspetti diventano un po’ più chiari man mano che acquisisci maggiore esperienza con la shell di PowerShell.
Microsoft ha sviluppato PowerShell e migliora costantemente PowerShell per interagire con i sistemi operativi desktop Windows, i sistemi operativi Windows Server, le risorse di Office 365 e le risorse cloud di Azure. Diventerà parte integrante di quasi l’intero universo dei prodotti Microsoft. PowerShell consente a ingegneri e personale di supporto di gestire le proprie responsabilità in modo più efficiente consentendo la creazione e la modifica in blocco di risorse come file, cartelle, impostazioni e configurazioni. È meglio conosciuto per la sua nomenclatura unica e intuitiva di verbi e sostantivi cmdlet, pronunciata “comando”. I cmdlet sono i comandi effettivi utilizzati per eseguire alcune azioni in PowerShell. Alcuni cmdlet possono essere eseguiti esattamente come sono, senza definire parametri. Li digiti, premi invio e BOOM! Hai l’output che ti è stato fornito nella console. Se hai familiarità con il prompt dei comandi Always Faithful in un ambiente Windows, ti sentirai molto a tuo agio con PowerShell. Molti dei comandi che normalmente eseguiresti al prompt dei comandi possono essere eseguiti anche dalla console di PowerShell. Ad ogni modo, provalo la prossima volta che usi normalmente la riga di comando. Scopri come può fare lo stesso all’interno di una console PowerShell. provalo la prossima volta che usi normalmente la riga di comando. Scopri come può fare lo stesso all’interno di una console PowerShell. provalo la prossima volta che usi normalmente la riga di comando. Scopri come può fare lo stesso all’interno di una console PowerShell.
Aprendo il velo della GUI
La maggior parte delle persone ama la loro preziosa GUI. Possono vedere tutto ciò che pensano di aver bisogno di vedere e provano quella sensazione calda e sfocata quando premono Applica e poi OK. Ad alcuni di loro piace vivere al limite e non premere per niente applica! Dopotutto, man mano che approfondisci la gestione di server, desktop o Exchange, ti ritroverai a fare clic all’infinito quando è necessario apportare una modifica che richiede l’aggiunta di 360 utenti a 20 diversi gruppi di sicurezza di Active Directory. Sei pronto per questo incubo scattante?
È sicuro dire che PowerShell aiuta a sollevare il velo su una GUI preziosa e amata. PowerShell ti consente di affrontare la sfida di raggruppare gli utenti AD in più gruppi e di sviluppare più comandi per portare a termine il lavoro in una frazione del tempo necessario per eseguire tutto tramite una GUI. Il bello è che Microsoft vuole che tu usi PowerShell per queste attività. Con l’obiettivo di utilizzare PowerShell in molti degli esami di certificazione di base di Microsoft, non è più solo per amministratori esperti, ma sta diventando qualcosa di sempre più richiesto nel tuo kit di strumenti di supporto quotidiano. Con sufficiente precisione, possiamo dire che qualsiasi azione, pulsante, opzione o configurazione che vedi nell’interfaccia grafica,
Primi passi
Iniziamo con alcuni cmdlet che puoi utilizzare in questo momento se stai leggendo questo su un PC Windows. Una cosa con cui interagiscono la maggior parte degli amministratori di sistema e degli ingegneri è la console dei servizi. Se apri una console di PowerShell, Get-Service
digita e premi Invio per ottenere un elenco dei servizi installati. Avrai una rapida panoramica di tutti i servizi installati sul sistema locale e del loro stato attuale di In esecuzione o Arrestato. Questo output sarebbe utile per vedere se un particolare servizio applicativo è in esecuzione o meno.
Forse non hai bisogno dell’intero elenco di servizi e stai cercando un servizio specifico. Supponiamo di voler controllare se il servizio di spooler di stampa è in esecuzione. Puoi chiamarlo per nome usando il parametro -ServiceName in questo modo:
Get-Service -ServiceName spooler
Questo output fornirà un unico elenco del servizio spooler di stampa e il relativo stato. Supponiamo che un servizio sia attualmente in esecuzione o interrotto e desideri interromperlo o avviarlo. È possibile utilizzare il seguente input per arrestare/avviare il servizio spooler di stampa:
Start-Service -ServiceName spooler
Stop-Service – Spooler ServiceName
Per impostazione predefinita, queste righe non mostrano lo stato del servizio quando viene inviato il comando. Sarà necessario eseguire Get-Service -ServiceName spooler
per visualizzare lo stato corrente.
Fortunatamente, PowerShell è molto amichevole con i caratteri jolly quando si elencano oggetti e nomi. Diciamo che devi provare un particolare servizio, ma non sei del tutto sicuro di come si chiami “ufficialmente”. Sai solo che la prima parola è stata rimossa. È semplice:
Get-Service -ServiceName remote*
Questa voce elencherà tutti i servizi, a partire da remoto, e ti consentirà di restringere la ricerca per trovare il servizio specifico che stai cercando e intraprendere qualsiasi azione di cui hai bisogno. Non dimenticare che esiste anche il cmdlet Restart-Service.
Facendo un ulteriore passo avanti con questa piccola conoscenza dei servizi, esaminiamo i servizi su una macchina remota. Supponiamo che ti trovi in un ambiente di dominio Windows e disponga dell’accesso amministrativo ai computer remoti che gestisci. È possibile utilizzare gli stessi cmdlet descritti in precedenza, ma è necessario aggiungere un parametro e un valore. Per controllare il servizio spooler di stampa su un server remoto denominato PrintServer01:
Get-Service -ComputerName PrintServer01
Questo output elencherà tutti i servizi installati sulla macchina remota, proprio come sul sistema locale che abbiamo fatto in precedenza. Questo cmdlet evita il fastidio di utilizzare RDP per accedere a un server remoto per testare un servizio o aggiungere il server remoto allo snap-in MMC locale. Questa capacità di per sé ripaga molto rapidamente.
Un altro comando che può essere utilizzato immediatamente, senza parametri, è Get-NetIPAddress. Questo cmdlet ti fornirà un elenco di tutte le schede di rete nel sistema locale e molte informazioni su ciascuna scheda. In questo output, puoi vedere il funzionamento interno della GUI. Puoi vedere molte più informazioni su cose che normalmente vedresti come un’icona nella GUI. Il bello della visualizzazione di informazioni aggiuntive è che puoi sempre utilizzare PowerShell per elaborare e cercare qualsiasi informazione aggiuntiva. Ad esempio, se desideri apportare modifiche a schede di rete specifiche, puoi cercare o filtrare solo quelle che hanno un valore specifico. Le possibilità sono infinite!
Dove saperne di più
Ora che hai il minimo indispensabile di ciò che PowerShell ha da offrire, tocca a te continuare a scalare la montagna di cui abbiamo parlato prima. Mettere un piede davanti all’altro è facile come sfogliare alcune risorse per i suggerimenti di PowerShell. Una semplice ricerca su Google per il cmdlet è un buon inizio. Microsoft Docs dispone di una potente libreria per ogni singolo cmdlet, con molti esempi di come utilizzarli. PowerShell stesso è una buona fonte di spiegazioni ed esempi. Il comando Get-Help Get-Service
ti darà maggiori informazioni sul nostro esempio sopra.
Una risorsa che molti utenti esperti di PowerShell ricordano è il libro più votato di Don Jones e Jeffrey Hicks. Questi giganti di PowerShell possiedono le spalle su cui molti si appoggiano quando si tratta di conquistare il monte PowerShell. Il libro si chiama Impara Windows PowerShell in un mese di pranzi. Questo libro di facile lettura ti guida attraverso le basi di PowerShell in piccoli frammenti e, in definitiva, è la risorsa a cui ti rivolgerai costantemente quando ti trovi in una situazione in cui devi usare PowerShell.
La community di PowerShell è anche un luogo molto aperto e utile per imparare. Il subreddit r/PowerShell e PowerShell.org hanno una comunità molto fiorente di persone di tutti i livelli. Puoi sempre ottenere una guida da queste risorse. Non puoi scalare questa montagna se non fai dei passi, quindi mettiti al lavoro e guarda come PowerShell può aiutarti con le attività quotidiane e banali che a volte temi. Potresti trovarti in una frenetica pianificazione e automazione di gran parte del tuo carico di lavoro in modo da avere tempo per saperne di più su PowerShell!
Lascia un commento