delete

Contattaci

back to resources

Introduzione a PowerShell

data
21/2/2023
data progetto
autore
Stefan Anghel
cliente
partnership
url
No items found.

Che cos’è PowerShell

PowerShell è una soluzione di automazione attività multipiattaforma costituita da:

  • Shell a riga di comando: permette di digitare direttamente nella shell comandi in modo interattivo, eseguirli e vederne i risultati.
  • Linguaggio e framework di scripting: può essere utilizzato per creare script, eseguibili automaticamente o in richiamabili in modalità interattiva nella shell.
  • Ecosistema di moduli: ha un robusto ecosistema di moduli che consente di utilizzare funzionalità e capacità sviluppate da terzi. Questi sono creati da Microsoft o da sviluppatori di terze parti e possono essere installati dalla PowerShellGallery o da altri repository online.
  • Framework di automazione: consente l’utilizzo di Powershell anche dall’interno di altre applicazioni.NET (System.Management.Automation)
  • Framework di gestione configurazione (via Powershell DSC- Desired State Configuration): consente l'automazione delle attività di gestione della configurazione degli ambienti Windows-based, come anche altre applicazioni e servizi (Active Directory, SQLServer, Azure, AWS, VMWAre, Exchange, SharePoint ecc.)

Per la gestione dei sistemi operativi viene utilizzato in combinazione con altri strumenti e tecnologie, come:

Storia di PowerShell

PowerShell è stato creato da un team di ingegneri di Microsoft, guidato da Jeffrey Snover, un ingegnere di sistemi senior di Microsoft.

Snover è stato il creatore del progetto originale di Windows PowerShell e ha continuato a dirigere lo sviluppo del prodotto durante tutto il suo ciclo di vita. Ha lavorato per Microsoft per molti anni e ha contribuito allo sviluppo di diversi prodotti e tecnologie, tra cui Active Directory, Windows Server e il sistema operativo Windows NT. Dopo l'uscita di PowerShell Snover ha continuato a lavorare allo sviluppo e alla diffusione della tecnologia: infatti ha lavorato alla creazione della versione cross-platform PowerShell Core. Attualmente è il Chief Technologist della Cloud+ AI Platform presso Microsoft.

Windows PowerShell è stato lanciato per la prima volta nel 2006 come una shell di Windows per automatizzare le attività amministrative. Inizialmente era basato su .NETFramework e utilizzava un linguaggio di scripting proprietario chiamato PowerShell Language. Con il tempo, Windows PowerShell ha continuato a evolversi, introducendo nuove funzionalità e miglioramenti per rendere più facile l'automazione delle attività amministrative su Windows.

Nel 2016, Microsoft ha annunciato PowerShell Core, una versione di PowerShell che è stata progettata per essere cross-platform e che utilizza .NET Core invece di .NET Framework. PowerShell Core è stato progettato per essere compatibile con le piattaforme Windows, macOS e Linux, consentendo agli amministratori di utilizzare lo stesso strumento su più sistemi operativi. Inoltre, PowerShell Core è stato progettato per essere compatibile con le versioni precedenti di Windows PowerShell, il che significa che gli script scritti per Windows PowerShell possono essere eseguiti su PowerShell Core senza modifiche.

Con l'aumento della popolarità dell'uso dei sistemi operativi Linux e macOS nei data center, PowerShell Core è diventato uno strumento sempre più importante per gli amministratori di sistema che devono gestire ambienti misti. Con la sua compatibilità cross-platform e la capacità di eseguire gli script di Windows PowerShell, PowerShell Core è diventato uno strumento potente per automatizzare le attività amministrative su più sistemi operativi.

Timeline PowerShell


Differenze tra Windows PowerShell e PowerShell Core

Windows PowerShell

  • Nome binario: powershell.exe
  • Closed-source
  • Utilizza il .NET Framework
  • Disponibile solo su sistemi operativi Windows
  • Ha accesso a tutte le classi e le API .NET
  • È preinstallato sui sistemi Windows
  • Non supporta più versioni side-by-side sullo stesso Sistema
  • Sviluppo script anche in WindowsPowershell ISE (deprecato)

PowerShell Core

  • Binario: pwsh.exe
  • Open-source
  • Utilizza .NET Core / .NET 5+
  • Cross-platform, quindi anche Linux e MacOS
  • Ha accesso ad un sottoinsieme delle classi e delleAPI .NET disponibili in Windows PowerShell
  • Deve essere installato manualmente
  • Supporta più versioni side-by-side sullo stesso sistema
  • Sviluppo script con Visual Studio Code, non supportato da Windows Powershell ISE

Sia Windows PowerShell che PowerShell Core supportano gli stessi comandi base e utilizzano la stessa sintassi.

Tuttavia, alcuni cmdlet e funzionalità potrebbero non essere disponibili in PowerShell Core a causa delle differenze tra .NET Framework e .NET Core / .NET 5+.

Supporto sistemi operativi

Concetti chiave di PowerShell

Cmdlet

I cmdlet (“piccoli comandi”) sono il cuore di PowerShell. Essi rappresentano i singoli comandi utilizzabili per eseguire attività.

Scritti in PowerShell stesso o in un qualsiasi altro linguaggio supportato da .NET (C#, VB.NET, F#..), forniscono una vasta gamma di funzionalità, dalla gestione dei file e delle cartelle alla configurazione delle impostazioni di sistema e alla gestione degli utenti e dei gruppi.

Pipelining

Il pipelining è una delle caratteristiche più potenti di PowerShell. Consente di collegare più cmdlet insieme per creare operazioni o script più complessi.

Ad esempio, un system administrator potrebbe creare un elenco di tutti gli utenti in un gruppo specifico e quindi “pipeare” (passare) il risultato ad un cmdlet per disabilitare l'account di tutti gli utenti in quell'elenco.

Object-oriented

PowerShell utilizza gli oggetti per rappresentare i dati e le risorse del sistema. Ciò significa che i dati restituiti da un cmdlet sono rappresentati come oggetti e possono essere utilizzati come input per altri cmdlet. Questo rende più facile recuperare, modificare e produrre dati. 

Integrazione con .NET

Infine, PowerShell è integrato con .NET, il che significa che gli amministratori possono utilizzare le funzionalità e le classi di .NET Framework nei loro script di PowerShell. Ciò consente di estendere le funzionalità di PowerShell e di adattarle alle proprie esigenze.

Perché imparare ed usare PowerShell

Dal punto di vista di uno sviluppatore software

PowerShell è uno strumento molto potente per gli sviluppatori, in primis perché consente di automatizzare molte attività ripetitive e di gestire in modo efficiente le risorse di sistema.

Gli sviluppatori possono utilizzare PowerShell per automatizzare la configurazione di un ambiente di sviluppo, l'esecuzione dei test e la distribuzione del codice. Inoltre, PowerShell consente di gestire le risorse di Azure, AWS e altri servizi cloud, semplificando il processo di creazione e distribuzione delle applicazioni.

PowerShell è un linguaggio di scripting molto flessibile e potente, che consente di creare script complessi per automatizzare le attività amministrative e di gestione dei sistemi.

Basato su tecnologia .NET(Framework o successivi), consente agli sviluppatori di utilizzare le stesse librerie e le stesse funzionalità di .NET a loro familiari. Ciò lo rende uno strumento molto potente per chi già lavora con .NET, poiché consente loro di utilizzare le loro competenze esistenti per automatizzare le attività amministrative.

Dal punto di vista di un amministratore di sistemi

PowerShell è un potente strumento di amministrazione di sistemi per Windows e non solo, che consente agli amministratori di automatizzare molte attività ripetitive e di eseguire operazioni di amministrazione su più sistemi contemporaneamente.

Con PowerShell, gli amministratori possono scrivere script per automatizzare molte attività, come la creazione di utenti, la gestione dei gruppi e la configurazione delle impostazioni di sistema.

Inoltre, PowerShell offre un'interfaccia di riga di comando (CLI) avanzata che consente agli amministratori di eseguire rapidamente comandi complessi e di accedere alle funzionalità avanzate di Windows. Un amministratore di sistemi può creare script personalizzati per soddisfare le esigenze specifiche della propria organizzazione.

In sintesi, imparare PowerShell può aiutare gli amministratori a automatizzare le attività ripetitive, aumentare l'efficienza e migliorare la gestione dei sistemi da loro gestiti.

Risultati

resources

Le nuove linee guida per la sicurezza delle password aziendali

Le nuove linee guida per la sicurezza delle password aziendali

Password aziendali

Linee guida Garante Privacy

Garante Privacy

GDPR

6 motivi per scegliere Flutter nel 2024

6 motivi per scegliere Flutter nel 2024

App Development

Google

React Native

AI, sistemi esperti e rappresentazione della conoscenza

AI, sistemi esperti e rappresentazione della conoscenza

Sistemi esperti

Rappresentazione della conoscenza

Tradurre la Lingua Italiana dei Segni - il Progetto LIS2Speech

Tradurre la Lingua Italiana dei Segni - il Progetto LIS2Speech

LIS2SPEECH

Traduzione LIS

User Experience Design tra accessibilità e inclusività

User Experience Design tra accessibilità e inclusività

User Experience

Accessibilità

Inclusività

Assitech.Net entra nella galassia Orbyta Technologies

Assitech.Net entra nella galassia Orbyta Technologies

Orbyta Technologies

Orbyta Group

Acquisizione

News

Programmazione Funzionale Java

Programmazione Funzionale Java

Functional Programming

Java

Software Development

Reactive Programming: parallelizzare con Project Reactor

Reactive Programming: parallelizzare con Project Reactor

Programmazione Reattiva

Reactive Programming

Project Reactor

Piattaforme E-commerce Wholesale per il settore B2B

Piattaforme E-commerce Wholesale per il settore B2B

Wholesale

B2B

Antipattern nello sviluppo software: altri errori da evitare

Antipattern nello sviluppo software: altri errori da evitare

Software Development

Antipattern nello sviluppo software: definizione, ambiti di applicazione ed esempi

Antipattern nello sviluppo software: definizione, ambiti di applicazione ed esempi

Software Development

App tattiche di supporto alla gestione dei progetti reiterativi

App tattiche di supporto alla gestione dei progetti reiterativi

App Development

Power Platform

Low Code

DevOps

Introduzione a Power Pages, il servizio Microsoft per siti web low-code

Introduzione a Power Pages, il servizio Microsoft per siti web low-code

Microsoft

Low-code

Power Platform

Introduzione a Jupyter e Seaborn per Data Analysis e Visualization

Introduzione a Jupyter e Seaborn per Data Analysis e Visualization

Jupiter

Python

Data Analysis

Data Visualization

Come utilizzare Matplotlib per la Data Visualization in Python

Come utilizzare Matplotlib per la Data Visualization in Python

Python

Data Visualization

Data Science

Data Analysis

Introduzione alla libreria Dash per Python

Introduzione alla libreria Dash per Python

Python

Data Science

Data Visualization

Data Analysis

Prime Video passa al monolite: ma allora serverless è inutile? 

Prime Video passa al monolite: ma allora serverless è inutile? 

Tableau per la Business Intelligence: introduzione, tutorial e confronto

Tableau per la Business Intelligence: introduzione, tutorial e confronto

Introduzione a Qlik Sense, piattaforma di Business Intelligence avanzata

Introduzione a Qlik Sense, piattaforma di Business Intelligence avanzata

Applicazioni Cloud Native: definizione, vantaggi e tecnologie

Applicazioni Cloud Native: definizione, vantaggi e tecnologie

Power Apps Tutorial – Case Study: come costruire una business app da zero

Power Apps Tutorial – Case Study: come costruire una business app da zero

Il futuro del gaming tra F2P, GaaS, Crypto e Play to Earn

Il futuro del gaming tra F2P, GaaS, Crypto e Play to Earn

Power Apps Basics: interfacce, implementazione & vantaggi

Power Apps Basics: interfacce, implementazione & vantaggi

Strumenti di Business Intelligence: QlikSense & Power BI a confronto

Strumenti di Business Intelligence: QlikSense & Power BI a confronto

Introduzione a Serverless: non solo Lambda Function

Introduzione a Serverless: non solo Lambda Function

Metaverso: siamo pronti a cogliere l’opportunità?

Metaverso: siamo pronti a cogliere l’opportunità?

Recap Flutter Forward 2023: le 7 novità più interessanti

Recap Flutter Forward 2023: le 7 novità più interessanti

Let's Redux React to a Game

Let's Redux React to a Game

Introduzione a PowerShell

Introduzione a PowerShell

Pago con carta: i trend dei pagamenti digitali e il futuro delle carte di credito

Pago con carta: i trend dei pagamenti digitali e il futuro delle carte di credito

NFT World: il fenomeno NFT tra metaverso, business e GameFi

NFT World: il fenomeno NFT tra metaverso, business e GameFi

Quick Escape Room

Quick Escape Room

Orbyta Invaders Ignition

Orbyta Invaders Ignition

Il lancio della nuova Identity di Orbyta parte dal Metaverso!

Il lancio della nuova Identity di Orbyta parte dal Metaverso!

development

design

metaverse

brand identity

Database a grafo in SQL Server

Database a grafo in SQL Server

Data Science Job Roles: i 4 ruoli più richiesti nel settore

Data Science Job Roles: i 4 ruoli più richiesti nel settore

Teoria dei giochi: Propagazione delle strategie

Teoria dei giochi: Propagazione delle strategie

The chosen one: .NET 5

The chosen one: .NET 5

Network Science e Social Network Analysis

Network Science e Social Network Analysis

Isolation levels on SSMS

Isolation levels on SSMS

Teoria dei Grafi

Teoria dei Grafi

Creare un podcast in automatico a partire da audio vocali e musica

Creare un podcast in automatico a partire da audio vocali e musica

Teoria dei Giochi

Teoria dei Giochi

Recommender systems: principali metodologie degli algoritmi di suggerimento

Recommender systems: principali metodologie degli algoritmi di suggerimento

Introduction to Quantum Computing and Qiskit

Introduction to Quantum Computing and Qiskit

System Versioned Tables

System Versioned Tables

Vim o non Vim

Vim o non Vim

I vantaggi di un Message Broker

I vantaggi di un Message Broker

PlayStation 5 e l'accesso ai dati: un cambio architetturale?

PlayStation 5 e l'accesso ai dati: un cambio architetturale?

Protezione dei Web Services

Protezione dei Web Services

need more info?

contattaci