Passer les parametres d'un script BAT à un script POWERSHELL pour une connection SSAS sur une instance MSSQL 2012
Par Draggi le mardi, mai 6 2014, 18:14 - MDX (BI) - Lien permanent

La commande ASCMD étant devenue devenue obsolète sur les versions 2012 de MSSQL, il faut en passer par powershell pour monter un script XMLA dans une instance SSAS.
Voici quelques exemples utiles.
Voici l'extrait d'un script BAT avec un "parse" des paramètres en entrée, le cinquième paramètres étant le PATH d'un fichier de logs pour la redirection des commandes:
@ECHO OFF
Echo ########################################################################### >> "%~5" 2>&1
Echo Command : %~0 >> "%~5" 2>&1
Echo ########################################################################### >> "%~5" 2>&1
Echo Param1: %~1 >> "%~5" 2>&1
Echo Param2: %~6 >> "%~5" 2>&1
Echo Param3: %~2 >> "%~5" 2>&1
ECHO Param3&4: %~3%~4 >> "%~5" 2>&1
ECHO Date : %DATE% %TIME% >> "%~5" 2>&1
Echo --------------------------------------------------------------------------- >> "%~5" 2>&1
SET PowerShellScriptPath=%~2\MY_SSAS_POWERSHELL_SCRIPT.ps1
powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "& '%PowerShellScriptPath%' '' '%~1' '%~2' '%~3' '%~4' '%~5' '%~6'
Echo --------------------------------------------------------------------------- >> "%~5" 2>&1
Echo. >> "%~5" 2>&1
Voici maintenant un script powershell nommé MY_SSAS_POWERSHELL_SCRIPT.PS1 utilisant les paramètres passés depuis le BAT. On se connecte à l'instance directement en ayant pris soin d'importer les modules SQLPS & commandLets. On redirige la sortie vers un fichier de log passé depuis le BAT
Import-Module sqlps –DisableNameChecking
Import-module sqlascmdlets
cd \SQLAS\MYSSASSERVER\SSAS | Out-File -Encoding "UTF8" -Filepath $($args[5]) -append
Invoke-ASCmd –InputFile "$($args[2])\DiscoverConnections.xmla" | Out-File -Encoding "UTF8" -Filepath $($args[5]) -append
Voici enfin le fichier XMLA, pour info il log les informations de connexions dans le fihcier de log depuis la connexion instanciée précedemment.
<Discover xmlns="urn:schemas-microsoft-com:xml-analysis"><RequestType>DISCOVER_CONNECTIONS</RequestType>
<Restrictions />
<Properties>
<PropertyList>
<Content>Data</Content>
</PropertyList>
</Properties>
</Discover>