PowerShell http://blogs.ugidotnet.org/nettools/category/PowerShell.aspx PowerShell it-IT Davide Mauri Subtext Version 2.6.0.0 SQL Conference 2007 http://blogs.ugidotnet.org/nettools/archive/2007/04/24/76400.aspx <P>L'anno scorso &#232; piaciuta cosi tanto che cosi anche quest'anno si replica. Sto parlando della <A href="http://www.sqlconference.it/">SQL Conference 2007</A>, che si terr&#224; a Milano presso la sede Microsoft dal 12 al 14 giugno.</P> <P>Quest'anno la conferenza viene proposta in 3 giorni, in forte collaborazione con Microsoft ed il team di sviluppo stesso di SQL Server, con la quale abbiamo stretto e rinnovato l'amicizia nell'appena trascorso MVP Summit.</P> <P>Per quanto mi riguarda mi occuper&#242; di due sessioni:</P> <P><A title="SQL Server 2005: analisi prestazioni e ottimizzazione" href="http://www.sqlconference.it/sessioni.aspx#C314" target=_self>C314 - SQL Server 2005: analisi prestazioni e ottimizzazione</A><BR><A title="SMO: Server Management Objects" href="http://www.sqlconference.it/sessioni.aspx#C316" target=_self>C316 - SMO: Server Management Objects</A> </P> <P>la prima &#232; un evergreen e non ha bisogno di presentazioni, la seconda invece &#232; dedicata ad una tecnologia non molto conosciuta ma invece davvero notevole che permette di automatizzare SQL Server (ed il resto dei suoi componenti) in modo davvero impressionante. Vi consiglio vivamente di seguirla, sono sicuro che scoprirete cose molto interessanti!</P><img src="http://blogs.ugidotnet.org/nettools/aggbug/76400.aspx" width="1" height="1" /> Davide Mauri http://blogs.ugidotnet.org/nettools/archive/2007/04/24/76400.aspx Tue, 24 Apr 2007 08:59:00 GMT http://blogs.ugidotnet.org/nettools/archive/2007/04/24/76400.aspx#feedback 1 http://blogs.ugidotnet.org/nettools/comments/commentRss/76400.aspx http://blogs.ugidotnet.org/nettools/services/trackbacks/76400.aspx Powershell & SQL Server = Automazione totale http://blogs.ugidotnet.org/nettools/archive/2007/04/16/75608.aspx <P>Settimana scorsa ho avuto l'occasione di iniziare ad usare PowerShell in produzione. Devo dire che non ne vedevo l'ora, dopo aver visto le bellissime cose che pu&#242; fare, anche grazie ai suggerimenti di <A href="http://www.pulsarit.net/cs/blogs/claudiog/default.aspx">Claudio</A> che me ne decanta sempre la potenza e la flessibilit&#224;.</P> <P>Dopo pochi minuti&nbsp;di utilizzo di PowerShell sono entrato nella fase "esaltazione pura": PowerShell &#232; un semplicemente stupendo! Avevo la necessit&#224; di estrarre da una serie di cubi di Analysis Server 2005 tutte le dimensioni e tutte le misure in modo da poterle mettere su excel ed iniziare a fare un'analisi approfondita delle necessit&#224; del cliente. Le dimensioni e le misure erano tante, quindi ho subito pensato ad un modo per evitare di fare tutto a manina. Ovviamente .NET ed AMO (Analysis Server Management Objects) sono stato subiti presi in considerazione, insieme allo sviluppo di una piccola console application che facesse quello che mi serviva. Per&#242; un'applicazione console, deve cmq essere compilata, richiede una certa conoscenza di Visual Studio e di .NET per essere manutenuta....cose che avrei preferito evitare, visto e considerato che sul progetto non ci lavoraono solo sviluppatori ma soprattutto DBA/DBDev&nbsp;e Sistemisti.</P> <P>Ho voluto provare ad usare PowerShell che, essendo appunto una Shell di comandi, &#232; pi&#249; facile da far utilizzare anche ai non-sviluppatori. Beh, devo dire che PowerShell fara contentissimi tutti, Sistemisti, DBA e Sviluppatori! Unendo la potenza di .NET con la possibilit&#224; di accedere alle risorse del sistema operativo e delle applicazioni (tramite COM o .NET)...si pu&#242; automatizzare praticamente qualsiasi cosa in brevissimo tempo (in questo la <EM>pipeline</EM> aiuta moltissimo). Ecco le poche righe di codice nessarie per fare quello che mi serviva:</P> <P><FONT face="Courier New" size=2>[System.Reflection.Assembly]::LoadFrom('C:\Program Files\Microsoft SQL Server\90\SDK\Assemblies\Microsoft.AnalysisServices.DLL')</FONT></P> <P><FONT face="Courier New" size=2>$server = New-Object 'Microsoft.AnalysisServices.Server'<BR>$server.Connect('localhost')</FONT></P> <P><FONT face="Courier New" size=2>$database = $server.databases.FindByName('Margine')<BR>$cube = $database.cubes[0]<BR>$cube.Dimensions | select-object Name, Dimension | Export-Csv 'c:\CUBO_Margine_Dimensioni.csv' -NoTypeInformation<BR>$cube.MeasuresGroup | % { $_.Measures} | select Parent, Name | Export-Csv 'c:\CUBO_Margine_Misure.csv' -NoTypeInformation</FONT></P> <P>Le persone che hanno visto all'opera PowerShell sono rimaste a bocca aperta! <A title="" href="#"><IMG src="http://www.davidemauri.it/emoticone/appagato.gif" border=0></A></P> <P>Pi&#249; tempo passa pi&#249; il .NET Framework manifesta tutta la sua grandiosa bellezza, e PowerShell ne &#232; che un fantastico esempio!</P><img src="http://blogs.ugidotnet.org/nettools/aggbug/75608.aspx" width="1" height="1" /> Davide Mauri http://blogs.ugidotnet.org/nettools/archive/2007/04/16/75608.aspx Mon, 16 Apr 2007 17:34:00 GMT http://blogs.ugidotnet.org/nettools/archive/2007/04/16/75608.aspx#feedback 2 http://blogs.ugidotnet.org/nettools/comments/commentRss/75608.aspx http://blogs.ugidotnet.org/nettools/services/trackbacks/75608.aspx