Una delle utilità più speciali sviluppate da Microsoft è Windows PowerShell, una shell da riga di comando progettata appositamente per gli amministratori di sistema grazie alle sue molteplici funzionalità di supporto.
Windows PowerShell include un prompt interattivo e un ambiente di script che può essere usato indipendentemente o in combinazione con altri script.
Windows PowerShell è basato sul Common Language Runtime (CLR) di .NET Framework e .NET Framework, con cui accetta e restituisce oggetti da .NET Framework.In questo modo, abbiamo un cambiamento nell'ambiente che ci fornisce strumenti e metodi completamente nuovi e moderni per la configurazione e la gestione di Windows.
Windows PowerShell si basa sul concetto di cmdlet che è un semplice strumento da riga di comando a funzione singola integrato in Shell e sarà possibile utilizzare ciascun cmdlet separatamente o insieme ad altri per ottenere il massimo vantaggio.
Finora nelle edizioni di Windows 10 abbiamo visto l'utilizzo di Windows PowerShell con l'ambiente grafico attraverso il quale sfruttiamo appieno l'utilizzo dei cmdlet:
INGRANDIRE
Ebbene, Microsoft ha sviluppato attraverso GitHub la nuova piattaforma PowerShell Core, attualmente nella sua versione 6.0, compatibile per i sistemi Windows, macOS e Linux, essendo open source e creata per ambienti eterogenei e cloud ibrido, aumentando così i suoi livelli di gestione e amministrazione .
1. Differenze tra Windows PowerShell e PowerShell Core
A questo punto molti di noi potrebbero chiedersi cosa c'è di diverso tra queste due edizioni, beh, Solvetic farà un confronto di ciò che abbiamo in entrambe le utilità.
Windows PowerShellÈ la console conosciuta nei sistemi Windows che da più di 10 anni è il supporto degli amministratori accanto al prompt dei comandi. Alcune delle sue caratteristiche sono:
- A causa della sua dipendenza da .NET Framework, Windows PowerShell è disponibile solo sui sistemi operativi Windows.
- Windows PowerShell si avvia come powershell.exe
- Le versioni rilasciate di Windows PowerShell fino ad oggi includono 1.0, 2.0, 3.0, 4.0, 5.0 e 5.1.
- Windows PowerShell è disponibile come componente integrato del client Windows e di Windows Server.
- In Windows PowerShell 5.0 o 5.1, $ PSVersionTable.PSEdition è impostato su Desktop.
- Qualsiasi utilizzo di funzionalità basate su .NET, come i cmdlet C#, Add-Type e il richiamo di metodi .NET statici, si basa sul runtime di .NET Framework.
- Continua a essere supportato tramite correzioni di bug critici nelle ultime versioni di Windows e Windows Server.
PowerShell CorePowerShell Core è l'edizione PowerShell basata su .NET Core che possiamo anche conoscere come CoreCLR. Alcune delle sue caratteristiche sono:
- PowerShell Core è multipiattaforma, disponibile su Windows, macOS e Linux, grazie al suo design .NET Core.
- In PowerShell Core, $ PSVersionTable.PSEdition è impostato su Core.
- PowerShell Core si avvia come pwsh.exe su Windows e pwsh su macOS e Linux
- Qualsiasi utilizzo di funzionalità basate su .NET, ad esempio cmdlet C#, Add-Type e richiamo di metodi .NET statici, dipende dal runtime di .NET Core.
Piattaforme che supportano PowerShell CoreAbbiamo indicato che PowerShell Core è un'utilità multipiattaforma che possiamo utilizzare con piena compatibilità su sistemi come:
- Windows 7, 8.1 e 10
- Windows Server 2008 R2, 2012 R2, 2016
- Canale semestrale di Windows Server
- Ubuntu 14.04, 16.04 e 17.04
- Debian 8.7+ e 9
- CentOS 7
- RedHat Enterprise Linux 7
- OpenSUSE 42.2
- Fedora 25, 26
- macOS 10.12+
- Arch Linux
- Kali Linux
- AppImage
- Windows ARM32 / ARM64 (in stato di test)
- Raspbian (Stretch) (In stato di test)
Moduli disponibili in PowerShell Core 6.0Di seguito è riportato l'elenco dei moduli che possiamo usare in questa utility PowerShell Core.
- CimCmdlet
- Archivio Microsoft.PowerShell
- Microsoft.PowerShell.Diagnostics
- Microsoft.PowerShell.Host
- Microsoft.PowerShell.Management
- Microsoft.PowerShell.Security
- Microsoft.PowerShell.Utility
- Microsoft.WSMan.Management
- Gestione del pacchetto
- PowerShell Ottieni
- PSDesiredStateConfiguration
- PSDiagnostics
- PSReadLine
2. Novità di PowerShell Core 6.0
Con questa nuova edizione di PowerShell Core 6.0 avremo una serie di nuove funzionalità progettate per ottimizzare le attività di amministrazione, controllo, supporto e automazione, alcune delle quali sono:
- Aggiunto il supporto per il globbing dei comandi nativi su piattaforme Unix.
- La maggiore funzionalità rispetta il $ PAGER di Linux il che significa che possiamo usare caratteri jolly con binari o comandi nativi.
- La barra rovesciata viene automaticamente ignorata per gli argomenti dei comandi nativi.
- Il pacchetto man-page è stato aggiunto.
- Sui sistemi macOS, PowerShell Core utilizza le API os_log native per accedere al sistema di registrazione unificato di Apple. Su Linux, PowerShell usa Syslog.
- I percorsi assegnati ai cmdlet sono ora indipendenti dalla barra, entrambi / e \ funzionano come separatori di directory.
- Supporto per nomi di file e cartelle che contengono i due punti su Unix.
- Supporto per nomi di percorso completo o trattino con virgole.
- Rileva quando il parametro -LiteralPath viene utilizzato per sopprimere l'espansione con caratteri jolly per i cmdlet di navigazione.
- Modificato il primo parametro posizionale da Command a -File.
- PowerShell Core accetta l'opzione -i (o -Interactive) per indicare una shell interattiva.
- Rimossi i parametri -importsystemmodules e -psconsoleFile da pwsh.exe
- Messaggi di errore di argomento non valido per -File e -Command e codici di uscita coerenti con gli standard Unix
- PowerShell Core aggiunge il supporto per Docker
- Il protocollo PSRP (Remote Connection Protocol) di PowerShell ora funziona con il protocollo Secure Shell (SSH) oltre al PSRP basato su WinRM
- La codifica predefinita è UTF-8
- Supporto commerciale
- Get-Uptime aggiunto a Microsoft.PowerShell.Utility
- Aggiungi il supporto per l'autenticazione del certificato per i cmdlet Web
- Aggiunto supporto per le intestazioni di contenuto ai cmdlet Web
- L'inferenza del tipo è stata migliorata al completamento della tabulazione basata sui valori delle variabili di runtime degli ordini
- Utilizzo abilitato del provider del file system dal percorso UNC
Successivamente, vedremo come installare PowerShell Core sulle diverse edizioni dei sistemi operativi supportati.
3. Installa PowerShell Core su Windows 10
Passo 1
Per installare l'utility PowerShell Core su un client Windows o Windows Server come Windows 7 SP1, Server 2008 R2 e successivi, sarà necessario scaricare il pacchetto MSI dalla pagina ufficiale di GitHub al seguente link:
Passo 2
Lì selezioneremo il pacchetto più adatto alla nostra versione di Windows, in questo caso scaricheremo il pacchetto win-x64. Una volta scaricato, faremo doppio clic sul programma di installazione e seguiremo le istruzioni:
Passaggio 3
Fare clic su "Avanti" e accetteremo i termini di licenza:
Passaggio 4
Di nuovo clicchiamo su Avanti e ora definiamo il percorso in cui PowerShell Core deve essere installato in Windows 10:
Passaggio 5
Nella finestra successiva possiamo avviare il processo di installazione dell'utility:
Passaggio 6
Una volta installato vedremo quanto segue:
Passaggio 7
Possiamo chiudere la procedura guidata e accedere a PowerShell Core dal menu Start:
Passaggio 8
Una volta concordato, possiamo lavorare con PowerShell Core in base alle esigenze di gestione del momento:
INGRANDIRE
4. Installa PowerShell Core su Linux
Negli ambienti Linux, PowerShell Core è compatibile con le seguenti distribuzioni:
- Ubuntu 14.04
- Ubuntu 16.04
- Ubuntu 17.04
- Debian 8
- Debian 9
- CentOS 7
- Red Hat Enterprise Linux (RHEL) 7
- OpenSUSE 42.2
- Fedora 25
- Fedora 26
- Arch Linux
- Linux AppImage
In questo esempio useremo Ubuntu 17.04 ma Solvetic spiegherà il processo per le altre distribuzioni Linux.
Passo 1
Nel caso di Ubuntu 17.04 prima, importeremo le chiavi dal repository GPG eseguendo il seguente comando:
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
INGRANDIRE
Passo 2
Quindi, eseguiremo la seguente riga per registrare il repository Ubuntu con Microsoft:
curl https://packages.microsoft.com/config/ubuntu/17.04/prod.list | sudo tee /etc/apt/sources.list.d/microsoft.list
INGRANDIRE
Passaggio 3
Successivamente, aggiorneremo l'elenco dei pacchetti:
sudo apt-get update
INGRANDIRE
Passaggio 4
Installiamo PowerShell Core eseguendo la seguente riga:
sudo apt-get install -y powershell
INGRANDIRE
Passaggio 5
Una volta installato, eseguiamo PowerShell Core con il seguente comando:
pwsh
INGRANDIRE
Passaggio 6
Ora possiamo eseguire le normali azioni di gestione con PowerShell:
INGRANDIRE
Passaggio 7
Possiamo vedere i rispettivi risultati:
INGRANDIRE
Passaggio 8
Oltre a questo passaggio, un altro modo per installare PowerShell in Ubuntu 17.04 è scaricare il pacchetto "powershell_6.0.0-rc-1.ubuntu.17.04_amd64.deb" dalla pagina GitHub indicata in alto e quindi eseguire le seguenti righe:
sudo dpkg -i powershell_6.0.0-rc-1.ubuntu.17.04_amd64.deb sudo apt-get install -fPassaggio 9
Per disinstallare PowerShell Core in Ubuntu 17.04 eseguiamo il seguente comando:
sudo apt-get remove powershellPassaggio 10
Ora vedremo i comandi da usare nelle altre distribuzioni Linux.
Ubuntu 16.04 / 16.10
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - (importazione di chiavi GPG) curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | sudo tee /etc/apt/sources.list.d/microsoft.list (registrazione del repository Ubuntu presso Microsoft) sudo apt-get update (pacchetti di aggiornamento) sudo apt-get install -y powershell (installazione di PowerShell Core) pwsh (PowerShell Core Home )In alternativa, possiamo scaricare il pacchetto "powershell_6.0.0-rc-1.ubuntu.16.04_amd64.deb" dal sito ufficiale e quindi eseguire le seguenti righe:
sudo dpkg -i powershell_6.0.0-rc-1.ubuntu.16.04_amd64.deb sudo apt-get install -fPer disinstallare PowerShell Core eseguiamo:
sudo apt-get remove powershell
Debian 9In questo caso eseguiremo i seguenti comandi per installare i componenti di sistema:
sudo apt-get update sudo apt-get install curl gnupg apt-transport-httpsQuindi importiamo le chiavi pubbliche GPG:
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -Registriamo il prodotto Microsoft:
sudo sh -c 'echo "deb [arch = amd64] https://packages.microsoft.com/repos/microsoft-debian-stretch-prod stretch main"> /etc/apt/sources.list.d/microsoft.list 'Aggiorniamo i prodotti:
sudo apt-get updateInstalliamo PowerShell Core:
sudo apt-get install -y powershellEseguiamo l'utilità:
PwshCome la distribuzione precedente, possiamo scaricare il pacchetto "powershell_6.0.0-rc-1.debian.9_amd64.deb" e quindi eseguire quanto segue:
sudo dpkg -i powershell_6.0.0-rc-1.debian.9_amd64.deb sudo apt-get install -fPer disinstallare PowerShell Core eseguiamo:
sudo apt-get remove powershell
CentOS 7Nel caso di CentOS 7 registreremo prima il repository RedHat:
curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repoProcediamo con l'installazione di PowerShell Core:
sudo yum install -y powershellEseguiamo l'utilità:
pwshFacoltativamente possiamo scaricare il pacchetto "powershell-6.0.0_rc-1.rhel.7.x86_64.rpm" dal sito ufficiale e quindi eseguire:
sudo yum install powershell-6.0.0_rc-1.rhel.7.x86_64.rpmOppure possiamo installarlo direttamente utilizzando la seguente riga:
sudo yum install https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-rc/powershell-6.0.0_rc-1.rhel.7.x86_64.rpmPer eliminarlo eseguiamo quanto segue:
sudo yum rimuovi powershell
RedHat 7Se siamo utenti RedHat, registreremo prima il repository RedHat:
curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repoQuindi installeremo PowerShell Core con il seguente comando:
sudo yum install -y powershellEseguiamo l'utilità:
pwshUn'altra alternativa è scaricare il pacchetto "powershell-6.0.0_rc-1.rhel.7.x86_64.rpm" e quindi eseguire:
sudo yum install powershell-6.0.0_rc-1.rhel.7.x86_64.rpmOppure direttamente:
sudo yum install https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-rc/powershell-6.0.0_rc-1.rhel.7.x86_64.rpmPossiamo rimuovere PowerShell Core eseguendo:
sudo yum rimuovi powershell
Fedora 26Nel caso di Fedora 26, il primo passo è registrare la chiave di firma Microsoft:
sudo rpm --import https://packages.microsoft.com/keys/microsoft.ascQuindi registreremo il repository RedHat:
curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repoAggiorniamo l'elenco dei prodotti:
sudo dnf updateInstalliamo componenti di sistema:
sudo dnf install compat-openssl10Procediamo con l'installazione di PowerShell Core:
sudo dnf install -y powershellAvviamo l'utilità:
pwshL'altro metodo è scaricare il pacchetto "powershell-6.0.0_rc-1.rhel.7.x86_64.rpm" e quindi eseguire l'esecuzione delle seguenti righe:
sudo dnf update sudo dnf install compat-openssl10 sudo dnf install powershell-6.0.0_rc-1.rhel.7.x86_64.rpmPer rimuovere PowerShell Core in Fedora 26 useremo la seguente riga:
sudo dnf rimuovi powershell
Quindi abbiamo le diverse opzioni per gli ambienti Linux.
5. Installa PowerShell Core macOS High Sierra
Nel caso di macOS High Sierra abbiamo due opzioni di installazione di PowerShell Core.
Passo 1
Il primo è usare HomeBrew che è un gestore di pacchetti per macOS, nel caso in cui non abbiamo HomeBrew possiamo installarlo eseguendo la seguente riga nel terminale macOS High Sierra.
/usr/bin/ruby -e "$ (curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"Passo 2
Una volta installato HomeBrew eseguiremo la seguente riga:
rubinetto della birra botte / botte
INGRANDIRE
Passaggio 3
Cask è un'utilità che ci permette di installare pacchetti aggiuntivi su macOS. Una volta installato, eseguiremo la seguente riga per installare PowerShell Core:
brew cask installa powershell
INGRANDIRE
Passaggio 4
Inseriamo la nostra password e aspetteremo che il processo di download si concluda:
INGRANDIRE
Passaggio 5
In alternativa, possiamo scaricare il pacchetto powershell-6.0.0-rc-osx.10.12-x64.pkg dal sito ufficiale e una volta scaricato, faremo doppio clic su dove verrà visualizzata la seguente procedura guidata:
Passaggio 6
Lì clicchiamo su Continua e seguiremo i passaggi della procedura guidata:
Passaggio 7
Se non vogliamo utilizzare l'assistente grafico, possiamo utilizzare il terminale eseguendo il seguente comando:
sudo installer -pkg powershell-6.0.0-rc-osx.10.12-x64.pkg -target /Passaggio 8
Una volta installato possiamo eseguire il comando pwsh per accedere a PowerShell Core:
Passaggio 9
Lì eseguiremo l'esecuzione dei normali comandi di gestione:
INGRANDIRE
Passaggio 10
Per disinstallare PowerShell Core in macOS High Sierra possiamo utilizzare una delle seguenti opzioni:
brew cask uninstall powershell sudo rm -rf / usr / local / bin / pwsh / usr / local / microsoft / powershellCome possiamo vedere, PowerShell Core è un'utilità dinamica, semplice e potente che ci aiuterà a svolgere tutti i tipi di attività di supporto nei sistemi operativi più utilizzati oggi.