PowerShell
Windows PowerShell, noto precedentemente come Microsoft Shell o MSH (o col nome in codice Monad) è una shell caratterizzata dall'interfaccia a linea di comando (CLI) e da un linguaggio script, sviluppata da Microsoft. Tale prodotto è basato sulla programmazione a oggetti e sul framework Microsoft .NET.
Windows PowerShell 1.0 è disponibile per il download dal sito web Microsoft.
Microsoft intendeva in origine rilasciare PowerShell insieme con Windows Vista, ma in seguito ha definito delle date di rilascio diverse per PowerShell. Windows PowerShell costituisce la base dell'interfaccia amministrativa per Microsoft Exchange Server 2007 dove qualsiasi operazione è svolta tramite linea di comando e l'interfaccia GUI è posizionata su uno strato superiore a detti comandi.
PowerShell necessita della versione 2.0 del .NET Framework ed è supportato su Windows XP, Windows Server 2003, Windows Vista e Windows Server "Longhorn", disponibile nelle edizioni x86, x64 ed Itanium.
Storia
Ogni rilascio di MS-DOS e Microsoft Windows ha sempre incorporato un'interfaccia a riga di comando: command.com nelle versioni basate su MS-DOS, cmd.exe in quelle basate su Windows NT: non erano, però, in grado di riprodurre, o di automatizzare tutte le funzioni amministrative disponibili tramite GUI, sebbene la situazione sia migliorata con Windows Server 2003. Ciò era dovuto ad una combinazione di limitazioni intrinseche agli strumenti equivalenti a linea di comando o al fatto che Microsoft non ha fornito, per lungo tempo, utility affidabili di questo tipo.
Inoltre, a differenza degli ambienti Unix, nè command.com nè cmd.exe rispettano lo standard POSIX.2. Services for UNIX include una pdksh che rispetta tale standard, ma sia questa che altre shell UNIX che sono disponibili non sono in grado di compiere molti compiti di routine, che restano legati all'interfaccia grafica di Windows. Sebbena la suite di servizi per UNIX faccia ora parte di Windows Server 2003 R2, e sarà inclusa in alcune edizioni di Windows Vista, essa era, in passato, resa disponibile come componente aggiuntivo a pagamento, cosa che ne impedì l'adozione su larga scala.
Gli 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.
Esempi
- Arresta tutti i processi che iniziano con la lettera "p":
PS> get-process p* | stop-process
- Trova i processi che utilizzano più di 10 MB di memoria e arrestali:
PS> get-process | where { $_.WS -gt 10MB } | stop-process
- Calcola il numero di byte occupati dai file di una directory:
PS> get-childitem | measure-object -property length -sum
- Determina se un processo specifico è o meno ancora in esecuzione:
PS> $processToWatch = get-process notepad PS> $processToWatch.WaitForExit()
- Cambia una stringa da minuscolo a maiuscolo:
PS> "hello, world!".ToUpper()
- Inserisce la stringa "ABC" dopo il primo carattere della parola "string" così da ottenere "sABCtring":
PS> "string".Insert(1, "ABC")
- Scarica un feed RSS specifico e visualizza gli 8 titoli più recenti:
PS> $rssUrl = "http://blogs.msdn.com/powershell/rss.aspx" PS> $blog = [xml](new-object System.Net.WebClient).DownloadString($rssUrl) PS> $blog.rss.channel.item | select title -first 8
Riferimenti
Bibliografia
- Bruce Payette, Windows PowerShell in Action, ISBN 1-932394-90-7.«a founding member of the Windows PowerShell team and one of the key designers of the Windows PowerShell language»
- Andy Oakley, Monad - Introducing the MSH Command Shell and Language (the Toad book, ISBN 0-596-10009-4.
- Don Jones, An Introduction to Microsoft PowerShell.
- Don Jones, Jeffery Hicks, Windows PowerShell: TFM, ISBN 0-9776597-1-2.
- Lee Holmes, Windows PowerShell Quick Reference, ISBN 0-596-52813-2.«a developer on the Windows PowerShell team»
- Jerry Lee Ford Jr, Microsoft Windows Powershell Programming for the Absolute Beginner, ISBN 1-59863-354-6.
- Andrew Watt, Professional Windows PowerShell, ISBN 0-471-94693-1.«Windows PowerShell MVP»
Collegamenti esterni
- Homepage di PowerShell
- Channel9 Monad Interviews/Demos con Jeffrey Snover - l'Architetto di Windows PowerShell
- TechNet Script Center Interview with Jeffrey Snover - l'Architetto di Windows PowerShell
- Monad: The Future of Windows Scripting - an article in TechNet Magazine by Thomas Lee.
- Future Windows component could spur old-school script viruses - Monad's role in future security concerns, by Paul Roberts, IDG News Service
- Monad and the "First Vista Virus", a clarification by Lee Holmes, a developer on the Windows PowerShell Team
- Scripting with Windows PowerShell
- Windows PowerShell Team Blog
- The PowerShell Wiki, a collection of useful scripts for the newcomer as well as the advanced user
- Example of a commercial Windows PowerShell editing environment
- Oracle Data Provider for .NET under PowerShell
- How Windows PowerShell Works