PowerShell: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Gsdefender2 (discussione | contributi)
+pezzo di testo
Gsdefender2 (discussione | contributi)
mNessun oggetto della modifica
Riga 15:
Gli [[Utente (informatica)|utenti]] sono stati allontanati dalla mancanza di documentazione adeguata delle funzionalità a linea di comando. Per covnerso, molte applicazioni grafiche in Unix sono solo [[wrapper]] per tool a riga di comando, che sono corredati di documentazione.
 
[[Microsoft]] tentò di porre rimedio ad alcune di queste limitazioni introducendo [[Windows Script Host]] nel 1998, in concomitanza col rilascio di [[Windows 98]]. Si trattava di un nuovo livello di scripting che poteva implementare un buon numero di [[linguaggio di scripting|linguaggi di scripting]] per controllare le applicazioni. Tuttavia, lo Script Host aveva anche significative limitazioni: non era integrato con la shell, la sua documentazione non era molto accessibile, e fu presto considerato un pericolo per la sicurezza del sistema, dopo che diversi [[Virus (informatica)|virus]] misero in luce la debolezza sostanziale del suo modello di sicurezza.
 
Windows Server 2003 e alcune versioni di Windows XP includono un host per script a linea di comando denominato Cscript.exe (si tratta, essenzialmente, di una porzione autonoma del Windows Script Host di cui sopra), non integrato con la shell preesistente (cmd.exe). Questi [[sistema operativo|sistemi operativi]] forniscono anche altre righe di comando ''[[ad hoc]]'' (ad esempio [[netsh]]), anch'esse non del tutto integrate.
Riga 44:
==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, le ''cmdlets'' (''command lets'', serie di comandi), 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" (lett. ''tubo'') basata su input ed output testuali, PowerShell fa passare i dati da una cmdlet all'altra come ''oggetti'' (dati dotati di una struttura ben precisa).
 
L'output di una cmdlet, se si tenta di accedervi tramite riga di coamndo, viene automaticamente convertito in testo; se, invece, si tenta di utilizzarlo in un'altra cmdlet, esso verrà convertito nell'oggetto più appropriato per l'input di quell'altra cmdlet. In questo modo, varie utility comunemente utilizzate nelle pipelines Unix, quali [[grep]] ed [[awk]], non sono più necessarie, e si permette una combinazione interattiva o in un ambiente di scripting dei singoli elementi, cosa che avrebbe, diversamente, richiesto un [[linguaggio di programmazione]] più complesso.
 
<!--