Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
SQL Server 2014 Analysis Services (SSAS) inclut un fournisseur et des cmdlets Analysis Services PowerShell (SQLAS) afin d'utiliser Windows PowerShell pour naviguer, administrer et interroger des objets Analysis Services.
Analysis Services PowerShell se compose des éléments suivants :
SQLASfournisseur utilisé pour naviguer dans la hiérarchie AMO (Analysis Management Object).Invoke-ASCmdapplet de commande utilisée pour exécuter un script MDX, DMX ou XMLA.Applets de commande spécifiques aux tâches pour les opérations de routine, telles que le traitement, la gestion des rôles, la gestion des partitions, la sauvegarde et la restauration.
Dans cet article
Versions et modes pris en charge d’Analysis Services
Exigences d’authentification et considérations relatives à la sécurité
Tâches PowerShell des Analysis Services
Pour plus d’informations sur la syntaxe et les exemples, consultez Référence PowerShell Analysis Services.
Conditions préalables
Windows PowerShell 2.0 doit être installé. Il est installé par défaut sur les versions plus récentes des systèmes d’exploitation Windows. Pour plus d’informations, consultez Installer Windows PowerShell 2.0
Vous devez installer une fonctionnalité SQL Server qui inclut le module SQL Server PowerShell (SQLPS) et les bibliothèques clientes. La méthode la plus simple consiste à installer SQL Server Management Studio, qui inclut automatiquement la fonctionnalité PowerShell et les bibliothèques clientes. Le module SQL Server PowerShell (SQLPS) contient les fournisseurs PowerShell et les applets de commande pour toutes les fonctionnalités SQL Server, y compris le module SQLASCmdlets et le fournisseur SQLAS utilisés pour naviguer dans la hiérarchie d’objets Analysis Services.
Vous devez importer le module SQLPS avant de pouvoir utiliser le SQLAS fournisseur et les applets de commande. Le fournisseur SQLAS est une extension du SQLServer fournisseur. Il existe plusieurs façons d’importer le module SQLPS. Pour plus d’informations, consultez Importer le module SQLPS.
L’accès à distance à une instance Analysis Services nécessite l’activation de l’administration à distance et du partage de fichiers. Pour plus d’informations, consultez Activer l’administration à distance dans cette rubrique.
Versions et modes pris en charge d’Analysis Services
Actuellement, Analysis Services PowerShell est pris en charge sur n’importe quelle édition de SQL Server 2014 Analysis Services s’exécutant sur Windows Server 2008 R2, Windows Server 2008 SP1 ou Windows 7.
Le tableau suivant montre la disponibilité de Analysis Services PowerShell dans différents contextes.
| Contexte | Disponibilité des fonctionnalités PowerShell |
|---|---|
| Instances multidimensionnelles et bases de données | Prise en charge pour l’administration locale et distante. La partition de fusion nécessite une connexion locale. |
| Instances tabulaires et bases de données | Compatibilité pour l’administration locale et distante. Pour plus d’informations, consultez un blog d’août 2011 sur la gestion des modèles tabulaires à l’aide de PowerShell. |
| PowerPivot pour les instances et bases de données SharePoint | Prise en charge limitée. Vous pouvez utiliser des connexions HTTP et le fournisseur SQLAS pour afficher les informations d’instance et de base de données. Toutefois, l’utilisation des applets de commande n’est pas prise en charge. Vous ne devez pas utiliser Analysis Services PowerShell pour sauvegarder et restaurer une base de données PowerPivot en mémoire, ni ajouter ou supprimer des rôles, traiter des données ou exécuter un script XMLA arbitraire. À des fins de configuration, PowerPivot pour SharePoint offre une prise en charge de PowerShell intégrée qui est fournie séparément. Pour plus d’informations, consultez Référence PowerShell pour PowerPivot pour SharePoint. |
| Connexions natives à des cubes locaux « Data Source=c :\backup\test.cub » |
Non pris en charge. |
| Connexions HTTP aux fichiers de connexion de modèle sémantique BI (.bism) dans SharePoint "Source de données=https://server/shared_docs/name.bism" ; |
Non pris en charge. |
| Connexions incorporées aux bases de données PowerPivot « Source de données=$Embedded$ » |
Non pris en charge. |
| Contexte de serveur local dans les procédures stockées d'Analysis Services « Source de données=* » |
Non pris en charge. |
Exigences d’authentification et considérations relatives à la sécurité
Lorsque vous vous connectez à Analysis Services, vous devez établir la connexion à l’aide d’une identité d’utilisateur Windows. Dans la plupart des cas, une connexion est établie à l’aide de la sécurité intégrée Windows, où l’identité de l’utilisateur actuel définit le contexte de sécurité sous lequel les opérations de serveur sont effectuées. Toutefois, des méthodes d’authentification supplémentaires deviennent disponibles lorsque vous configurez l’accès HTTP à Analysis Services. Cette section explique comment le type de connexion détermine les options d’authentification que vous pouvez utiliser.
Les connexions à Analysis Services sont caractérisées par des connexions natives ou des connexions HTTP. Une connexion native est une connexion directe d’une application cliente au serveur. Dans une session PowerShell, le client PowerShell utilise le fournisseur OLE DB pour Analysis Services pour se connecter directement à une instance Analysis Services. Une connexion native est toujours établie à l’aide de la sécurité intégrée Windows, où Analysis Services PowerShell s’exécute en tant qu’utilisateur actuel. Analysis Services ne prend pas en charge l’imitation. Si vous souhaitez effectuer une opération en tant qu’utilisateur spécifique, vous devez démarrer la session PowerShell en tant qu’utilisateur.
Les connexions HTTP sont effectuées indirectement via IIS, ce qui permet d’autres options d’authentification, telles que l’authentification de base, de se connecter à une instance Analysis Services. Étant donné que IIS prend en charge l’emprunt d’identité, vous pouvez fournir une chaîne de connexion qui inclut les informations d’identification que IIS utilisera pour emprunter l’identité lors de la création d’une connexion. Pour fournir des informations d’identification, vous pouvez utiliser le paramètre -Credential.
Utilisation du paramètre -Credential dans PowerShell
Le paramètre -Credential accepte un objet PSCredential qui spécifie un nom d’utilisateur et un mot de passe. Dans Analysis Services PowerShell, le paramètre -Credential est disponible pour les applets de commande qui effectuent une demande de connexion à Analysis Services, par opposition aux applets de commande qui s’exécutent dans le contexte d’une connexion existante. Les applets de commande qui effectuent une demande de connexion incluent Invoke-ASCmd, Backup-ASDatabase et Restore-ASDatabase. Pour ces applets de commande, le paramètre -Credential peut être utilisé, en supposant que les critères suivants sont remplis :
Le serveur est configuré pour l’accès HTTP, ce qui signifie que IIS gère la connexion, lit le nom d’utilisateur et le mot de passe, et emprunte l’identité de cet utilisateur lors de la connexion à Analysis Services. Pour plus d’informations, consultez Configurer l’accès HTTP à Analysis Services sur Internet Information Services (IIS) 8.0.
Le répertoire virtuel IIS créé pour l’accès HTTP Analysis Services est configuré pour l’authentification de base.
Le nom d'utilisateur et le mot de passe associés à l'objet d'informations d'identification correspondent à une identité d'utilisateur Windows. Analysis Services utilise cette identité comme utilisateur actuel. Si l’utilisateur n’est pas un utilisateur Windows ou ne dispose pas des autorisations suffisantes pour effectuer l’opération demandée, la demande échoue.
Pour créer un objet d’informations d’identification, vous pouvez utiliser l’applet de commande Get-Credential pour collecter les informations d’identification de l’opérateur. Vous pouvez ensuite utiliser l’objet d’informations d’identification sur une commande qui se connecte à Analysis Services. L’exemple suivant illustre une approche. Dans cet exemple, la connexion est à une instance locale (SQLSERVER:\SQLAS\HTTP_DS) configurée pour l’accès HTTP.
$cred = Get-Credential adventureworks\dbadmin
Invoke-ASCmd -Inputfile:"c:\discoverconnections.xmla" -Credential:$cred
Lorsque vous utilisez l’authentification de base, vous devez toujours utiliser HTTPS avec SSL afin que le nom d’utilisateur et les mots de passe soient envoyés via une connexion chiffrée. Pour plus d’informations, consultez Configurer secure Sockets Layer dans IIS 7.0 et Configurer l’authentification de base (IIS 7).
N’oubliez pas que les informations d’identification, les requêtes et les commandes que vous fournissez dans PowerShell sont passées inchangées à la couche de transport. L’inclusion de contenu sensible dans vos scripts augmente le risque d’une attaque par injection malveillante.
Fourniture d’un mot de passe en tant qu’objet Microsoft.Secure.String
Certaines opérations, telles que la sauvegarde et la restauration, prennent en charge les options de chiffrement qui sont activées lorsque vous fournissez un mot de passe dans la commande. Fournir le mot de passe indique à Analysis Services de chiffrer ou déchiffrer le fichier de sauvegarde. Dans Analysis Services, ce mot de passe est instancié en tant qu’objet de chaîne sécurisée. L’exemple suivant montre comment collecter un mot de passe à partir de l’opérateur au moment de l’exécution.
$pwd = read-host -AsSecureString -Prompt "Password"
$pwd -is [System.IDisposable]
Vous pouvez maintenant sauvegarder ou restaurer un fichier de base de données chiffré, en passant la variable $pwd au paramètre de mot de passe. Pour voir un exemple complet qui combine cette illustration avec d'autres cmdlets, consultez Backup-ASDatabase cmdlet et Restore-ASDatabase cmdlet.
En guise d’étape de suivi, supprimez à la fois le mot de passe et la variable de la session.
$pwd.Dispose()
Remove-Variable -Name pwd
Tâches PowerShell des Analysis Services
Vous pouvez exécuter Analysis Services PowerShell à partir de l'interface de gestion Windows PowerShell ou d'une invite de commandes Windows. L’exécution de Analysis Services PowerShell à partir de SQL Server Management Studio n’est pas prise en charge.
Cette section décrit les tâches courantes pour l’utilisation de Analysis Services PowerShell.
Charger le fournisseur de services d'analyse et les applets de commande Analysis Services
Le fournisseur Analysis Services est une extension du fournisseur racine SQL Server qui devient disponible lorsque vous importez le module SQLPS. Les applets de commande Analysis Services sont chargées simultanément ; vous pouvez également les charger indépendamment si vous souhaitez les utiliser sans le fournisseur.
Exécutez l’applet de commande Import-module pour charger SQLPS qui inclut toutes les fonctionnalités PowerShell d’Analysis Services. Si vous ne pouvez pas importer le module, vous pouvez modifier temporairement la stratégie d’exécution de manière illimitée à des fins de chargement du module. Pour plus d’informations, consultez Importer le module SQLPS.
Import-Module "sqlps"import-module "sqlps" -disablenamecheckingVous pouvez également supprimer l’avertissement relatif aux noms de verbes non approuvés.Pour charger uniquement les applets de commande Analysis Services spécifiques à la tâche, sans le fournisseur Analysis Services ou l’applet de commande Invoke-ASCmd, vous pouvez charger le module SQLASCmdlets en tant qu’opération indépendante.
Import-Module "sqlascmdlets"
Activer l’administration à distance
Avant de pouvoir utiliser Analysis Services PowerShell avec une instance Analysis Services distante, vous devez d’abord activer l’administration à distance et le partage de fichiers. L’erreur suivante indique un problème de configuration de pare-feu : « Le serveur RPC n’est pas disponible. (Exception de HRESULT : 0x800706BA)".
Vérifiez que les ordinateurs locaux et distants disposent des versions sql Server 2014 Analysis Services (SSAS) des outils client et serveur.
Sur le serveur distant qui héberge une instance Analysis Services, ouvrez le port TCP 2383 dans le Pare-feu Windows. Si vous avez installé Analysis Services en tant qu’instance nommée ou que vous utilisez un port personnalisé, le numéro de port sera différent. Pour plus d’informations, consultez Configurer le Pare-feu Windows pour autoriser l’accès à Analysis Services.
Sur le serveur distant, vérifiez que les services suivants sont démarrés : service d’appel de procédure distante (RPC), service d’assistance TCP/IP NetBIOS, service WMI (Windows Management Instrumentation), service Gestion à distance Windows (WS-Management).
Sur le serveur distant, démarrez le module Éditeur d’objets de stratégie de groupe (gpedit.msc).
Ouvrez Configuration de l’ordinateur, ouvrez modèles d’administration, ouvrez Réseau, ouvrez Connexions réseau, ouvrez pare-feu Windows, puis ouvrez le profil de domaine.
Double-cliquez sur Pare-feu Windows : Autoriser l’exception d’administration distante entrante, sélectionnez Activé, puis cliquez sur OK.
Double-cliquez sur Pare-feu Windows : autoriser l’exception de partage de fichiers entrants et d’imprimante, sélectionnez Activé, puis cliquez sur OK.
Sur l’ordinateur local disposant des outils clients, utilisez les applets de commande suivantes pour vérifier l’administration à distance, en remplaçant le nom de serveur réel pour l’espace réservé de nom de serveur distant . Omettez le nom de l’instance si Analysis Services est installé comme instance par défaut. Vous devez avoir précédemment importé le module SQLPS pour que la commande fonctionne.
PS SQLSERVER:\> cd sqlas PS SQLSERVER:\sqlas> cd <remote-server-name\instance-name> PS SQLSERVER:\sqlas\<remote-server-name\instance-name> dir
Dans certains cas, une configuration supplémentaire peut être nécessaire. Vous devrez peut-être taper ce qui suit sur le serveur distant avant de pouvoir y émettre des commandes à partir d’un autre ordinateur :
Enable-PSRemoting
Se connecter à un objet Analysis Services
Le fournisseur PowerShell Analysis Services prend en charge la navigation de la hiérarchie d’objets Analysis Services et définit le contexte pour les commandes en cours d’exécution. Le fournisseur est une extension du fournisseur racine SQLSERVER disponible via le module SQLPS. Après avoir chargé le module SQLPS, vous pouvez parcourir le chemin.
Vous pouvez vous connecter à une instance locale ou distante, mais certaines applets de commande s’exécutent uniquement sur une instance locale (à savoir, fusion-partition). Vous pouvez utiliser une connexion native ou une connexion HTTP pour les serveurs Analysis Services que vous avez configurés pour l’accès HTTP. Les illustrations suivantes montrent le chemin de navigation pour les connexions NATIVEs et HTTP. Les illustrations suivantes montrent le chemin de navigation pour les connexions NATIVEs et HTTP.
Connexions directes aux services d'analyse
L’exemple suivant montre comment utiliser une connexion native pour naviguer dans la hiérarchie des objets. À partir du fournisseur, vous pouvez émettre un dir message pour afficher les informations d’instance. Vous pouvez utiliser cd pour afficher les objets de cette instance.
PS SQLSERVER:> cd sqlas
PS SQLSERVER\sqlas:> dir
PS SQLSERVER\sqlas:> cd localhost\default
PS SQLSERVER\sqlas\localhost\default:> dir
Vous devez voir les collections suivantes : assemblages, bases de données, rôles et traces. Continuer à utiliser cd et dir, vous pouvez afficher le contenu de chaque collection.
Connexions HTTP à Analysis Services
Les connexions HTTP sont utiles si vous avez configuré votre serveur pour l’accès HTTP à l’aide des instructions de cette rubrique : Configurer l’accès HTTP à Analysis Services sur Internet Information Services (IIS) 8.0
En supposant une URL de serveur de https://localhost/olap/msmdpump.dll, une connexion ressemblerait à ce qui suit :
PS SQLSERVER\sqlas:> cd http_ds
PS SQLSERVER\sqlas\http_ds:> $Url=Encode-SqlName "https://localhost/olap/msmdpump.dll"
PS SQLSERVER\sqlas\http_ds:> cd $Url
PS SQLSERVER\sqlas\http_ds\http%3A%2F%2Flocalhost%2olap%2msmdpump%2Edll:> dir
Vous devez voir les collections suivantes : Assemblages, Bases de données, Rôles et Traces. Si vous ne pouvez pas afficher le contenu de ces regroupements, vérifiez les paramètres d’authentification sur le répertoire virtuel OLAP. Vérifiez que l’accès anonyme est désactivé. Si vous utilisez l’authentification Windows, assurez-vous que votre compte d’utilisateur Windows dispose d’autorisations d’administration sur l’instance Analysis Services.
Administrer le service
Vérifiez que le service fonctionne correctement. Retourne l’état, le nom et le nom d'affichage des services SQL Server, notamment Analysis Services (MSSQLServerOLAPService) et le moteur de base de données.
Get-Service mssql*
Retourne des propriétés sur un processus, notamment l’ID de processus, le nombre de handles et l’utilisation de la mémoire :
Get-Process msmdsrv
Redémarre le service lorsque vous exécutez l’applet de commande suivante dans le terminal administrateur :
Restart-Service mssqlserverolapservice
Obtenir de l’aide pour Analysis Services PowerShell
Utilisez l’une des applets de commande suivantes pour vérifier la disponibilité des applets de commande et obtenir plus d’informations sur les services, les processus et les objets.
Get-Helpretourne l’aide intégrée pour une applet de commande Analysis Services, y compris des exemples :Get-Help invoke-ascmd -ExamplesGet-Commandretourne une liste des onze applets de commande PowerShell Analysis Services :Get-Command -module SQLASCmdletsGet-Memberretourne des propriétés ou des méthodes d’un service ou d’un processus.Get-Service mssqlserverolapservice | Get-Member -Type PropertyGet-Service mssqlserverolapservice | Get-Member -Type MethodGet-Process msmdsrv | Get-Member -Type PropertyGet-Memberpeut également être utilisé pour retourner des propriétés ou des méthodes d’un objet (par exemple, des méthodes AMO sur l’objet serveur) à l’aide du fournisseur SQLAS pour spécifier l’instance de serveur.PS SQLSERVER:\sqlas\localhost\default > $serverObj = New-Object Microsoft.AnalysisServices.Server PS SQLSERVER:\sqlas\localhost\default > $serverObj = | Get-Member -Type MethodGet-PSdriveretourne une liste des fournisseurs actuellement installés. Si vous avez importé le module SQLPS, vous verrez leSQLServerfournisseur dans la liste (SQLAS fait partie du fournisseur SQLServer et n’apparaît jamais séparément dans la liste) :Get-PSDrive
Voir aussi
Installer SQL Server PowerShell
Gérer des modèles tabulaires à l’aide de PowerShell (blog)
Configurer l’accès HTTP à Analysis Services sur Internet Information Services (IIS) 8.0