<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Business Intelligence</title>
        <link>http://blogs.ugidotnet.org/NetTools/category/Business Intelligence.aspx</link>
        <description>Business Intelligence</description>
        <language>it-IT</language>
        <copyright>Davide Mauri</copyright>
        <generator>Subtext Version 2.6.0.0</generator>
        <item>
            <title>Powershell &amp; SQL Server = Automazione totale</title>
            <link>http://blogs.ugidotnet.org/NetTools/archive/2007/04/16/75608.aspx</link>
            <description>&lt;P&gt;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&amp;#242; fare, anche grazie ai suggerimenti di &lt;A href="http://www.pulsarit.net/cs/blogs/claudiog/default.aspx"&gt;Claudio&lt;/A&gt; che me ne decanta sempre la potenza e la flessibilit&amp;#224;.&lt;/P&gt;
&lt;P&gt;Dopo pochi minuti&amp;nbsp;di utilizzo di PowerShell sono entrato nella fase "esaltazione pura": PowerShell &amp;#232; un semplicemente stupendo! Avevo la necessit&amp;#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&amp;#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&amp;#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&amp;nbsp;e Sistemisti.&lt;/P&gt;
&lt;P&gt;Ho voluto provare ad usare PowerShell che, essendo appunto una Shell di comandi, &amp;#232; pi&amp;#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&amp;#224; di accedere alle risorse del sistema operativo e delle applicazioni (tramite COM o .NET)...si pu&amp;#242; automatizzare praticamente qualsiasi cosa in brevissimo tempo (in questo la &lt;EM&gt;pipeline&lt;/EM&gt; aiuta moltissimo). Ecco le poche righe di codice nessarie per fare quello che mi serviva:&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;[System.Reflection.Assembly]::LoadFrom('C:\Program Files\Microsoft SQL Server\90\SDK\Assemblies\Microsoft.AnalysisServices.DLL')&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;$server = New-Object 'Microsoft.AnalysisServices.Server'&lt;BR&gt;$server.Connect('localhost')&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;$database = $server.databases.FindByName('Margine')&lt;BR&gt;$cube = $database.cubes[0]&lt;BR&gt;$cube.Dimensions | select-object Name, Dimension | Export-Csv 'c:\CUBO_Margine_Dimensioni.csv' -NoTypeInformation&lt;BR&gt;$cube.MeasuresGroup | % { $_.Measures} | select Parent, Name | Export-Csv 'c:\CUBO_Margine_Misure.csv' -NoTypeInformation&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Le persone che hanno visto all'opera PowerShell sono rimaste a bocca aperta! &lt;A title="" href="#"&gt;&lt;IMG src="http://www.davidemauri.it/emoticone/appagato.gif" border=0&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Pi&amp;#249; tempo passa pi&amp;#249; il .NET Framework manifesta tutta la sua grandiosa bellezza, e PowerShell ne &amp;#232; che un fantastico esempio!&lt;/P&gt;&lt;img src="http://blogs.ugidotnet.org/NetTools/aggbug/75608.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Davide Mauri</dc:creator>
            <guid>http://blogs.ugidotnet.org/NetTools/archive/2007/04/16/75608.aspx</guid>
            <pubDate>Mon, 16 Apr 2007 17:34:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/NetTools/archive/2007/04/16/75608.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/NetTools/comments/commentRss/75608.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/NetTools/services/trackbacks/75608.aspx</trackback:ping>
        </item>
    </channel>
</rss>