Ma[sette]u Teknik Blog

December 9, 2005

Microsoft codename ‘Monad’ - Microsoft Command Shell (MSH)

Filed under: [General]

Monad

A quanto dice Microsoft Corp. questa innovativa command shell non verrà rilasciata
con il nuovo Windows Vista, come promesso.
Il Senior Vice President di Microsoft, Bob Muglia, in occasione del Tech Ed USAv2005
ha dichiarato che lo sviluppo di Monad porterà via un tempo che va dai 3 ai 5 anni di
sviluppo e rilascio di questa nuova interfaccia.

Monad, noto anche come MSH (Microsoft Shell), è comunque installabile e utilizzabile scaricandola dal portale Microsoft all’indirizzo :

Windows “Monad” Shell Beta 2 (for .NET Framework 2.0 RC/RTM) x86
http://www.microsoft.com/downloads/details.aspx?FamilyID=766E6908-354D-44D4-80FD-73E172B8E85D&displaylang=en

avendo prima installato il framework 2.0
.NET Framework Version 2.0 Redistributable Package (x86)
http://www.microsoft.com/downloads/details.aspx?FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5&DisplayLang=en

Le principali caratteristiche sono :

- è scritta in .Net (framework 2.0)
- Object Oriented (gli oggetti sono, ovviamente, istanze di tipi .NET che il motore di MSH si preoccupa di serializzare e trasferire)
- funziona con Windows Xp / Windows 2003
- e’ compatibile con commandi DOS/Unix
- capacità avanzate di scripting
- estensibilità dei comandi per creare script complessi, ’shell tools’ e cmdlet ( in C# , vb.net, etc )
- Object Manipulation tramite utilizzo del pipe (ridirigere l’output di un comando verso l’input di un altro)
- Controllo dei dati/periferiche del sistema
- Potenti strumenti di aliasing e output formatting (per reportistica o analisi)
- Documentazione in linea (get-help) molto simile alla ‘man’ di unix.

Ed ora un po’ di pratica.

Comandi base

get-command

oppure chiamare l’help di un comando tramite

get-help comando

per velocizzare la scrittura del comando get-help, molto utile, utilizzare gli alias.

new-alias man get-help
man comando

in questo modo avremo l’alias ‘man’ che ci restituirà l’help di un comando.

Processi & Servizi

get-process | group-object company

Monad

resituirà l’elenco dei processi ragguppati per ‘Company’

get-process | group-object company | convert-HTML | out-file c:\report.html
la stessa cosa esportata in un documento html consultabile sul browser.

get-process | where { $_.vs -gt 200000000} | stop-process -whatif
con ‘whatif’ andremo a compiere una determinata azione solo se la condizione della where risulta vera.
In questo caso andremo a stoppare quei servizi che occupano più di 200000000 di ‘Virtual Memory Size’.

get-service s*

Monad

Lista dei servizi che iniziano con la s*

gps lsass | get-member | out-printer
Andremo a stampare, sulla stampante predefinita, la get-member (enumera tutti metodi, proprietà e informazione di tipi utilizzati da quall’oggetto) del servizio lsass.

Contenuti , file, drive.

get-item C:\Test1\Apr04.doc
La vecchi Dir rivista e migliorata ci permette di visualizzare gli ‘elementi’

get-item C:\Test1\Apr04.doc | format-list
get-item C:\Test1\Apr04.doc | format-list|out-file c:\test1.txt
tramite la format, formattiamo l’output per poi ridirigerlo ancora verso file di testo o documenti html

get-drive
ci permetterà di visualizzare le informazioni di un drive quali credential, currentLocation,Name,Provider, Root e driveInfo.
Come per il disco anche il registry viene caricato nello stesso modo.

get-content
la vecchia ‘edit’ con potenzialità di elaborare file di testo e non solo, qualche esempio.

a.txt (1,1,1,1,2,3,4,5,6,7,6,6,7,7,8)
get-content c:\a.txt | get-unique | sort

avremo la lista in ordine numerico, dei valori unici del file di testo richiamato.

Questo e molto altro sarà possibile con Monad.

Questa è solamente una piccola dimostrazione di cosa si può fare, per dare l’idea
dei comandi base, ma ci si potrà rendere conto da soli , digiando get-command,
di quanto sia vasta questa nuova shell.
Come pensiero personale posso dire che mi sembra un grande passo avanti da parte di
Microsoft, che sembra volersi finalmente avvicinare al mondio ’shell’ per dare la
possibilità, a chi lo desidera, di usufruire di tutte le funzionalità del sistema
operativo (client e server) e di amministrare il tutto da shell.
Credo anche molto nella nascita di repository pubblici dove depositare i propri
script (cmdlet) e creare una fitta rete di share della conoscenza che potrebbe farci
risparmiare molto tempo durante le ‘attività’ comuni di amministrazione dei nostri sistemi.

1 Comment »

The URI to TrackBack this entry is: http://ma7u.blogsome.com/2005/12/09/microsoft-codename-monad-microsoft-command-shell-msh/trackback/

  1. Mooolto Unix-like. Personalmente sono entusiasta e non vedo l’ora di opterlòa utilizzare pesqantemente in ambito enterprise!

    Comment by Angelo — March 2, 2006 @ 2:48 pm

RSS feed for comments on this post.

Leave a comment

Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>