PowerShell: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
fix "code" |
|||
(94 versioni intermedie di 61 utenti non mostrate) | |||
Riga 1:
{{Software
|Nome = PowerShell
|Logo =
|Screenshot = Windows PowerShell 1.0 PD.png
|Didascalia = Windows Powershell in [[esecuzione (informatica)|esecuzione]] su [[Windows 7]]
|Sviluppatore = [[Microsoft Corporation]]
|UltimaVersione = <!-- Elemento Wikidata -->
|DataUltimaVersione = <!-- Elemento Wikidata -->
|UltimaVersioneBeta =
|DataUltimaVersioneBeta =
|SistemaOperativo = Windows
|Linguaggio =
|Genere = terminale
|Licenza = [[Licenza MIT]] dalla versione 6.0.0
|Lingua =
|SoftwareLibero = si
|SistemaOperativo2 = macOS
|SistemaOperativo3 = Linux
}}
'''PowerShell''', noto inizialmente come '''Microsoft Shell''', '''MSH''' o col nome in codice '''Monad''' e poi come '''Windows''' '''PowerShell''', è una [[shell (informatica)|shell]] caratterizzata dall'[[interfaccia a riga di comando]] (CLI) e da un [[linguaggio di scripting]], sviluppata da [[Microsoft]], basato sulla [[programmazione a oggetti]] e sul ''[[framework]]'' [[Microsoft .NET]].
Microsoft intendeva in origine
Costituisce inoltre la base dell'interfaccia amministrativa per [[Microsoft Exchange Server|Microsoft Exchange Server 2007]] dove qualsiasi operazione è svolta tramite riga di comando e l'interfaccia [[GUI]] è posizionata su uno strato superiore a detti comandi.
Inizialmente noto come Windows PowerShell è stato reso ''[[open source]]'' e multi piattaforma il 18 agosto 2016 con l'introduzione di PowerShell Core. Il primo è costruito su .NET Framework, il secondo su .NET Core.
== Storia ==
Ogni
Inoltre, a differenza degli ambienti [[Unix]], né command.com né cmd.exe rispettano lo standard [[POSIX|POSIX.2]]. [[Microsoft Services for UNIX|Services for UNIX]] include una [[Korn shell|pdksh]] che rispetta tale standard, ma sia questa che altre shell
Gli [[Utente (informatica)|utenti]]
[[Microsoft]] tentò quindi di porre rimedio ad alcune di
Windows Server 2003 e alcune versioni di Windows XP includono un host per script a
Una limitazione fondamentale all'automatizzazione dei task in Windows era il fatto che le sue interfacce di amministrazione native erano aperte ai tool grafici proprietari di Microsoft, e ad ogni interfaccia di script che Microsoft poteva scegliere di fornire. Poiché la GUI costituiva l'interfaccia primaria, risultava difficile fornire
Microsoft progettò PowerShell per rendere meno insormontabili questi problemi, e per rendere meno oneroso il processo di sviluppo di nuove applicazioni grafiche
Microsoft ha pubblicato la seconda [[Versione beta|beta]] pubblica di
Microsoft ha annunciato il
La prima release candidate di PowerShell è stata
La seconda release candidate è stata
La versione 1.0 è stata
La versione 2.0 è presente di serie su [[Windows 7]].
La versione 3.0, disponibile per Windows 7 SP1 e Windows 2008 Server R2 SP1 è di serie su Windows 8 e Windows Server 2012, come parte del più ampio Windows Management Framework V3, di cui fa parte anche WinRM.
La versione 6 è stata pubblicata il 2 agosto 2016 e, rende il software ''open source'' sotto [[licenza MIT]]<ref>{{Cita web|url=https://github.com/PowerShell/PowerShell/blob/master/LICENSE.txt|titolo=LICENSE.txt|sito=Powershell|editore=Github|lingua=en|accesso=2020-08-22}}</ref> e lo rende disponibile anche per Linux e Mac OS. Il nome viene infatti cambiato eliminando Windows dal nome e lasciando solo PowerShell.
== Descrizione ==
=== Principi ===
Il nome in codice di PowerShell, Monad, proviene dalla [[monadologia]] di [[Gottfried Leibniz]], una filosofia in cui l'universo è composto da elementi fondamentali, le [[monadi]], disposti in una "[[armonia prestabilita]]". In maniera simile, PowerShell è la combinazione di compiti complessi e di una serie di componenti, i ''cmdlet'' (''command-let''), che sono classi .NET progettate per sfruttare le caratteristiche dell'ambiente. La differenza fondamentale tra l'approccio Unix e quello di PowerShell risiede nel fatto che piuttosto che creare una ''[[Pipeline (software)|pipeline]]'' basata su [[Input/output|input e output]] testuali, PowerShell fa passare i dati da un ''cmdlet'' all'altra come [[Oggetto (informatica)|oggetti]] (dati dotati di una struttura ben precisa).
L'output di
=== Caratteristiche ===
* Linguaggio di scripting simile al [[C Sharp|C#]], con molte funzionalità dedicate agli utenti esperti, come il supporto diretto alle ''[[hash table]]'', i costrutti ''[[Switch (programmazione)|switch]]'' basati su [[espressioni regolari]], la scomposizione degli [[array]], la possibilità di memorizzare come dati [[Funzione anonima|metodi anonimi]] da eseguire in un secondo momento. Sono presenti, naturalmente, tutte le caratteristiche che ci si aspetta di trovare in un linguaggio di scripting, quali l'[[iterazione]] ({{Codice|codice=for|linguaggio=PowerShell}} / {{Codice|codice=foreach|linguaggio=PowerShell}} / {{Codice|codice=while|linguaggio=PowerShell}}), i costrutti condizionali ({{Codice|codice=if|linguaggio=PowerShell}} / {{Codice|codice=switch|linguaggio=PowerShell}}), i campi di [[Visibilità (programmazione)|visibilità]] delle variabili (<code>global</code> / <code>script</code> / <code>local</code> / <code>private</code>) e la possibilità di definire funzioni.
* Tutti i ''cmdlet'' ereditano alcune caratteristiche, cosa che permette all'utente di scegliere, ad esempio, il livello di interazione e la modalità di gestione degli errori; si consideri, come esempio, la "sospensione", che permette di entrare in una nuova shell di comando, indagare su un problema, e quindi continuare con il comando originale. Al programmatore viene fornito un semplice meccanismo integrato per definire le richieste da mostrare in situazioni del genere. i ''cmdlet'' che restituiscono qualcosa all'esterno supportano le opzioni <code>-WHATIF</code> e <code>-CONFIRM</code>. <code>-WHATIF</code> simula l'esecuzione della procedura, comunicandone il possibile esito all'utente. <code>-CONFIRM</code> informa l'utente su ciò che sta per accadere e gli permette di decidere cosa fare.
* Un modello ''provider'' estendibile fornisce la possibilità di accedere e manipolare non solo il [[file system]], ma anche altre strutture dati gerarchiche. Ad esempio, PowerShell integra un provider per il [[Registro di Windows]] che consente l'accesso agli alberi <code>HKLM</code> (<code>HKEY_LOCAL_MACHINE</code>) e <code>HKCU</code> (<code>HKEY_CURRENT_USER</code>). In questo modo, il registro può essere visualizzato con comandi quali {{Codice|codice=dir HKLM:\SOFTWARE\Microsoft|linguaggio=batch}} dal prompt della shell. PowerShell fornisce ''provider'' per la libreria di certificati di sicurezza, le [[Variabile d'ambiente (Windows)|variabili d'ambiente]] e di shell, le funzioni e gli alias; gli utenti possono creare loro propri provider e integrarli in PowerShell.
* Le opzioni della riga di comando sono, in genere, parole intere, ma è possibile farvi riferimento più velocemente, specificando solo il numero minimo di lettere necessario a distinguerle dalle altre (per esempio, l'opzione <code>-mostra-informazioni-dettagliate</code> può essere richiamata specificando solo <code>-m</code> se nessun'altra opzione comincia per ''m'').
* Completamento automatico dei comandi estendibile dall'utente. Si pensi che [[cmd.exe]] nelle versioni recenti di Windows può solo completare i nomi di file e directory, a differenza di ciò che accade in shell quali [[bash]] e [[zsh]].
* Possibilità di assegnare l'output di un comando ad una variabile, che diventa un oggetto o un array di oggetti visualizzabile in qualunque maniera si desideri.
==
Windows PowerShell ISE (Integrated Scripting Environment) è un’applicazione introdotta a partire da PowerShell 2.0<ref>{{Cita web|url=https://www.memexcomputer.it/windows-powershell/|titolo=Windows PowerShell: cos'è e a cosa serve (guida completa) {{!}}'L'{{!}}|autore=Stefano Serafino|sito=Memex Computer|data=2017-05-18}}</ref>. Con questa versione di PowerShell si possono eseguire comandi, provare e sottoporre a [[debug]] gli script in un’unica interfaccia utente multivista (e con grafica Windows). I riquadri sono specifici per i comandi, per gli script e per i risultati.
== Note ==
<references />
== Bibliografia ==
* {{
* {{
* {{
* {{
* {{
* {{
* {{
* {{
== Altri progetti ==
{{interprogetto}}
== Collegamenti esterni ==
* {{Collegamenti esterni}}
{{Componenti di Windows}}
{{Controllo di autorità}}
{{Portale|Informatica|Microsoft}}
[[Categoria:.NET]]
[[Categoria:Riga di comando Microsoft]]
|