PowerShell

PowerShell

Il proliferare dei mezzi e dei servizi informatici ha facilitato molte delle nostre attività giornaliere. In fondo, l’efficienza e la velocità delle nuove tecnologie non si scoprono oggi e sono ampiamente riconosciute da più parti. Lo scenario è completamente cambiato rispetto a qualche decennio fa, quando tutto era affidato solamente alla sapiente mente umana e alla forza delle braccia. Ai tempi nostri il mondo digitale riveste un ruolo sempre più importante, a tal punto che molte delle attività sarebbero precluse quasi del tutto senza l’utilizzo continuo delle risorse informatiche. Tuttavia, a dispetto della grande diffusione degli strumenti informatici, molti dei loro significati si ignorano completamente o si conoscono poco. Spesso, infatti, abbiamo sentito parlare anche di PowerShell, senza però informarci almeno a grandi linee di cosa realmente si tratti e quali siano le sue funzionalità principali. Con questa guida proveremo a trattare l’argomento senza entrare nei dettagli tecnici, ma attraverso la divulgazione di informazioni di carattere generale. Tratteremo l’argomento PowerShell quindi con parole semplici e comprensibili a tutti. Ora senza dilungarci troppo con le premesse, passiamo di seguito a vedere cosa è e da cosa è caratterizzato PowerShell, fino alle riflessioni conclusive.

Prima di concentrarci sul concetto di PowerShell, è importante soffermarci un attimo sul significato di shell. Nella dialettica informatica la shell è l’interfaccia (testuale) attraverso cui gli utenti possono interagire con il sistema. Un normale programma che interpreta ed esegue i comandi degli utenti, consentendogli di eseguire altri programmi. Detto in breve, un guscio di un’interfaccia utente per accedere a un sistema operativo. Viene detto guscio in quanto si tratta dello strato più esterno intorno al sistema operativo Kernel. Chiarito, in linea generale, il significato di shell, ora passiamo a trattare l’argomento in questione: PowerShell. Agli inizi conosciuto come Microsoft Shell e successivamente come Windows Shell, PowerShell è una shell le cui caratteristiche principali sono l’interfaccia a riga di comando e il linguaggio di scripting (linguaggio di programmazione), realizzata da Microsoft e sviluppata specificatamente per gli amministratori di sistema. PowerShell comprende un prompt interattivo e un linguaggio di programmazione (scripting). Si basa su una programmazione ad oggetti e sul framework Microsoft, per questo, differentemente da altre shell che accettano e restituiscono testo, PowerShell accetta e restituisce oggetti. Al pari di altre shell permette l’accesso al file system nel computer e, inoltre, i provider di Windows permettono abbastanza facilmente l’accesso ad altri archivi di dati: es. registro di sistema e archivio certificati.

PowerShell è un supporto fondamentale per gli amministratori di sistema e, per gli utenti in possesso di una certa esperienza, per l’automatizzazione veloce delle attività utili per la gestione dei sistemi operativi (Windows, Linux, macOS). Questa shell di Microsoft presenta dei comandi in grado di gestire i computer dalle righe di comando. Naturalmente, come per tutte le risorse informatiche, la progettazione di PowerShell è stata mirata a dei netti miglioramenti, in questo caso relativi alle migliorie apportate alla riga di comando e all’ambiente di scripting (programmazione). Con tale shell si è provveduto a eliminare le problematiche di lunga durata e all’aggiunta di funzioni nuove. Grazie a PowerShell è possibile sostituire numerosi clic in un’interfaccia grafica con un solo facile comando. Infatti, PowerShell non supporta solo comandi standard ma anche un linguaggio con tante funzioni.

Gestire i sistemi è un’operazione non affatto semplice, anzi un compito con molte complessità. I mezzi con una coerente interfaccia sono necessari per garantire un superiore controllo proprio sulle complessità. In questa logica, solitamente i mezzi da riga di comando da gestire attraverso script non si distinguono per la coerenza dimostrata. Al contrario, uno dei punti di forza di PowerShell è la coerenza. Una volta appresi i comandi (cmdlet), infatti, si possono utilizzare queste conoscenze per ordinare l’output di qualunque cmdlet. Inoltre, gli sviluppatori di comandi, non hanno la necessità di realizzare funzioni di ordinamento per la serie di comandi (cmdlet), in quanto PowerShell garantisce un framework (architettura) con funzioni di base per assicurare la coerenza. Il framework cancella alcune opzioni di scelta lasciate agli sviluppatori, mentre facilita sostanzialmente lo sviluppo di cmdlet. PowerShell ha la possibilità di accesso a strumenti da riga di comando, librerie di classi e oggetti COM. Una combinazione di funzioni utile per ampliare le capacità degli amministratori di sistema e degli utenti interattivi. Come già accennato, PowerShell si basa non sul testo ma bensì su oggetti. In pratica, gli output dei comandi sono oggetti e si può procedere all’invio di output a un comando diverso come input. La reale opportunità di identificare i comandi di PowerShell facilita di molto il passaggio dalla digitazione interattiva dei comandi allo sviluppo di script.

PowerShell è dunque un tipo di shell con precise caratteristiche: interfaccia a riga di comando e un linguaggio di programmazione che consente l’esecuzione di qualunque operazione, da quelle semplici a quelle decisamente più complicate. Originariamente sviluppato come mezzo per gli amministratori di sistema, in virtù di una riconosciuta versatilità, questo strumento si lega sempre più anche con altre versioni di Windows. La peculiarità di PowerShell sta nel fatto che riesce a supportare tutti i comandi del classico prompt, oltre a riconoscere diversi comandi di Linux/Unix. La sostanziale differenza tra l’approccio di PowerShell e quello Unix è riconducibile al fatto che, invece di realizzare una “pipeline” (letteralmente tubo) che si basa su testi, PowerShell ha la capacità di lasciare passare i dati da una cmdlet (serie di comandi) all’altra come oggetti. Oggi l’utilizzo di PowerShell è su vasta scala proprio perché è riconosciuta a questa shell una grande duttilità e una facilità d’uso. Con questa guida abbiamo cercato di spiegare in maniera abbastanza semplice, per quanto possibile, il concetto e gli aspetti caratterizzanti del prodotto Microsoft.

Info sull'autore

Andrea Masella author