Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
SQL Server 2014 Analysis Services (SSAS) incluye un proveedor de Analysis Services PowerShell (SQLAS) y cmdlets, permitiéndole usar Windows PowerShell para navegar, administrar y consultar objetos de Analysis Services.
Analysis Services PowerShell consta de lo siguiente:
SQLASproveedor usado para navegar por la jerarquía de objetos de administración de análisis (AMO).Invoke-ASCmdcmdlet usado para ejecutar script MDX, DMX o XMLA.Cmdlets específicos para tareas rutinarias como el procesamiento, la gestión de roles, la gestión de particiones, la copia de seguridad y la restauración.
En este artículo
Versiones y modos admitidos de Analysis Services
Requisitos de autenticación y consideraciones de seguridad
Tareas de PowerShell de Analysis Services
Para obtener más información sobre la sintaxis y los ejemplos, consulte la Referencia de PowerShell de Analysis Services.
Prerrequisitos
Windows PowerShell 2.0 debe estar instalado. Se instala de forma predeterminada en versiones más recientes de los sistemas operativos Windows. Para obtener más información, consulte Instalación de Windows PowerShell 2.0
Debe instalar una característica de SQL Server que incluya el módulo y las bibliotecas cliente de SQL Server PowerShell (SQLPS). La manera más fácil de hacerlo es instalar SQL Server Management Studio, que incluye la característica de PowerShell y las bibliotecas cliente automáticamente. El módulo SQL Server PowerShell (SQLPS) contiene los proveedores y cmdlets de PowerShell para todas las características de SQL Server, incluyendo el módulo SQLASCmdlets y el proveedor SQLAS que se usan para navegar por la jerarquía de objetos de Servicios de Análisis.
Debe importar el módulo SQLPS para poder usar el SQLAS proveedor y los cmdlets. El proveedor SQLAS es una extensión del SQLServer proveedor. Hay varias maneras de importar el módulo SQLPS. Para obtener más información, consulte Importación del módulo SQLPS.
El acceso remoto a una instancia de Analysis Services requiere que habilite la administración remota y el uso compartido de archivos. Para obtener más información, vea Habilitar administración remota en este tema.
Versiones y modos admitidos de Analysis Services
Actualmente, Analysis Services PowerShell se admite en cualquier edición de SQL Server 2014 Analysis Services que se ejecute en Windows Server 2008 R2, Windows Server 2008 SP1 o Windows 7.
En la tabla siguiente se muestra la disponibilidad de PowerShell de Analysis Services en contextos diferentes.
| Contexto | Disponibilidad de características de PowerShell |
|---|---|
| Instancias y bases de datos multidimensionales | Es compatible con la administración local y remota. La partición de mezcla requiere una conexión local. |
| Instancias tabulares y bases de datos | Se soporta la administración local y remota. Para obtener más información, consulte un blog de agosto de 2011 sobre Administración de modelos tabulares mediante PowerShell. |
| PowerPivot para instancias y bases de datos de SharePoint | Soporte limitado. Puede usar conexiones HTTP y el proveedor SQLAS para ver la información de la instancia y la base de datos. Sin embargo, no está permitido el uso de los comandos cmdlet. No debe usar Analysis Services PowerShell para realizar copias de seguridad y restaurar la base de datos PowerPivot en memoria, ni debe agregar ni quitar roles, procesar datos ni ejecutar script XMLA arbitrario. Con fines de configuración, PowerPivot para SharePoint tiene compatibilidad integrada con PowerShell que se proporciona por separado. Para obtener más información, vea Referencia de PowerShell para PowerPivot para SharePoint. |
| Conexiones nativas a cubos locales "Data Source=c:\backup\test.cub" |
No está soportado. |
| Conexiones HTTP a archivos de conexión del modelo semántico de BI (.bism) en SharePoint "Origen de datos=https://server/shared_docs/name.bism" |
No está soportado. |
| Conexiones incrustadas a bases de datos PowerPivot "Origen de datos=$Embedded$" |
No está soportado. |
| Contexto del servidor local en procedimientos almacenados de Analysis Services "Origen de datos=*" |
No está soportado. |
Requisitos de autenticación y consideraciones de seguridad
Al conectarse a Analysis Services, debe realizar la conexión mediante una identidad de usuario de Windows. En la mayor parte, se realiza una conexión mediante la seguridad integrada de Windows, donde la identidad del usuario actual establece el contexto de seguridad en el que se realizan las operaciones del servidor. Sin embargo, los métodos de autenticación adicionales estarán disponibles al configurar el acceso HTTP a Analysis Services. En esta sección se explica cómo el tipo de conexión determina qué opciones de autenticación puede usar.
Las conexiones a Analysis Services se caracterizan como conexiones nativas o conexiones HTTP. Una conexión nativa es una conexión directa desde una aplicación cliente al servidor. En una sesión de PowerShell, el cliente de PowerShell usa el proveedor OLE DB para Analysis Services para conectarse directamente a una instancia de Analysis Services. Una conexión nativa siempre se realiza mediante la seguridad integrada de Windows, donde Analysis Services PowerShell se ejecuta como el usuario actual. Analysis Services no admite la suplantación. Si desea realizar una operación como usuario específico, debe iniciar la sesión de PowerShell como ese usuario.
Las conexiones HTTP se realizan indirectamente a través de IIS, lo que permite opciones de autenticación adicionales, como la autenticación básica, para conectarse a una instancia de Analysis Services. Dado que IIS admite la suplantación, puede proporcionar una cadena de conexión que incluya las credenciales que IIS usará para suplantar al realizar una conexión. Para proporcionar credenciales, puede usar el parámetro -Credential.
Uso del parámetro -Credential en PowerShell
El parámetro -Credential toma un objeto PSCredential que especifica un nombre de usuario y una contraseña. En Analysis Services PowerShell, el parámetro -Credential está disponible para los cmdlets que realizan una solicitud de conexión a Analysis Services, en lugar de los cmdlets que se ejecutan en el contexto de una conexión existente. Los cmdlets que realizan una solicitud de conexión incluyen Invoke-ASCmd, Backup-ASDatabase y Restore-ASDatabase. Para estos cmdlets, se puede usar el parámetro -Credential, suponiendo que se cumplen los siguientes criterios:
El servidor está configurado para el acceso HTTP, lo que significa que IIS controla la conexión, lee el nombre de usuario y la contraseña y suplanta esa identidad de usuario al conectarse a Analysis Services. Para obtener más información, vea Configurar el acceso HTTP a Analysis Services en Internet Information Services (IIS) 8.0.
El directorio virtual de IIS que se creó para el acceso HTTP de Analysis Services está configurado para la autenticación básica.
El nombre de usuario y la contraseña proporcionados por el objeto de credencial se resuelven en una identidad de usuario de Windows. Analysis Services usa esta identidad como usuario actual. Si el usuario no es un usuario de Windows o carece de permisos suficientes para realizar la operación solicitada, se producirá un error en la solicitud.
Para crear un objeto de credencial, puede usar el cmdlet Get-Credential para recopilar las credenciales del operador. A continuación, puede usar el objeto de credencial en un comando que se conecta a Analysis Services. En el ejemplo siguiente se muestra un enfoque. En este ejemplo, la conexión es a una instancia local (SQLSERVER:\SQLAS\HTTP_DS) configurada para el acceso HTTP.
$cred = Get-Credential adventureworks\dbadmin
Invoke-ASCmd -Inputfile:"c:\discoverconnections.xmla" -Credential:$cred
Al usar la autenticación básica, siempre debe usar HTTPS con SSL para que el nombre de usuario y las contraseñas se envíen a través de una conexión cifrada. Para obtener más información, consulte Configuración de la capa de sockets seguros en IIS 7.0 y Configuración de la autenticación básica (IIS 7).
Recuerde que las credenciales, las consultas y los comandos que proporcione en PowerShell se pasan sin cambios a la capa de transporte. La inclusión de contenido confidencial en los scripts aumenta el riesgo de un ataque por inyección malintencionado.
Proporcionar una contraseña como un objeto Microsoft.Secure.String
Algunas operaciones, como la copia de seguridad y restauración, admiten opciones de cifrado que se activan al proporcionar una contraseña en el comando. Proporcionar la contraseña indica a Analysis Services que cifre o descifre el archivo de copia de seguridad. En Analysis Services, esta contraseña se crea como un objeto de cadena segura. En el ejemplo siguiente se proporciona una ilustración de cómo recopilar una contraseña del operador en tiempo de ejecución.
$pwd = read-host -AsSecureString -Prompt "Password"
$pwd -is [System.IDisposable]
Ahora puede realizar copias de seguridad o restaurar un archivo de base de datos cifrado, pasando la variable $pwd al parámetro password. Para ver un ejemplo completo que combina esta ilustración con otros cmdlets, consulte Backup-ASDatabase cmdlet y cmdletRestore-ASDatabase.
Como paso de seguimiento, quite la contraseña y la variable de la sesión.
$pwd.Dispose()
Remove-Variable -Name pwd
Tareas de PowerShell de Analysis Services
Puede ejecutar Analysis Services PowerShell desde el entorno de administración de Windows PowerShell o desde un símbolo del sistema de Windows. No se admite la ejecución de PowerShell de Analysis Services desde SQL Server Management Studio.
En esta sección se describen las tareas comunes para usar PowerShell de Analysis Services.
Cargar el proveedor de Analysis Services y los cmdlets
El proveedor de Analysis Services es una extensión del proveedor raíz de SQL Server que está disponible al importar el módulo SQLPS. Los cmdlets de Analysis Services se cargan simultáneamente; También puede cargarlos de forma independiente si desea usarlos sin el proveedor.
Ejecute el cmdlet Import-module para cargar SQLPS que incluye toda la funcionalidad de PowerShell de Analysis Services. Si no puede importar el módulo, puede cambiar temporalmente la directiva de ejecución a sin restricciones para cargar el módulo. Para obtener más información, consulte Importación del módulo SQLPS.
Import-Module "sqlps"Como alternativa, use
import-module "sqlps" -disablenamecheckingpara suprimir la advertencia sobre los nombres de verbo no aprobados.Para cargar solo los cmdlets de Analysis Services específicos de la tarea, sin el proveedor de Analysis Services o el cmdlet Invoke-ASCmd, puede cargar el módulo SQLASCmdlets como una operación independiente.
Import-Module "sqlascmdlets"
Habilitación de la administración remota
Para poder usar Analysis Services PowerShell con una instancia remota de Analysis Services, primero debe habilitar la administración remota y el uso compartido de archivos. El siguiente error indica un problema de configuración de firewall: "El servidor RPC no está disponible. (Excepción de HRESULT: 0x800706BA)".
Compruebe que los equipos locales y remotos tengan las versiones de SQL Server 2014 Analysis Services (SSAS) de las herramientas de cliente y servidor.
En el servidor remoto que hospeda una instancia de Analysis Services, abra el puerto TCP 2383 en firewall de Windows. Si instaló Analysis Services como una instancia con nombre o usa un puerto personalizado, el número de puerto será diferente. Para obtener más información, vea Configurar firewall de Windows para permitir el acceso a Analysis Services.
En el servidor remoto, compruebe que los siguientes servicios están iniciados: Servicio de Llamada a Procedimiento Remoto (RPC), Servicio Auxiliar TCP/IP NetBIOS, Servicio Instrumental de Administración de Windows (WMI), Administración Remota de Windows (WS-Management).
En el servidor remoto, inicie el complemento del Editor de directivas de grupo (gpedit.msc).
Abra Configuración del equipo, abra Plantillas administrativas, red, conexiones de red, Firewall de Windows y, a continuación, abra Perfil de dominio.
Haga doble clic en Firewall de Windows: permitir la excepción de administración remota entrante, seleccione Habilitado, a continuación, haga clic en Aceptar.
Haga doble clic en Firewall de Windows: permitir la excepción de uso compartido de archivos entrantes e impresoras, seleccione Habilitado y, a continuación, haga clic en Aceptar.
En el equipo local que tiene las herramientas de cliente, use los siguientes cmdlets para comprobar la administración remota, sustituyendo por el nombre real del servidor el marcador de posición remote-server-name. Omita el nombre de la instancia si Analysis Services está instalado como instancia predeterminada. Debe haber importado previamente el módulo SQLPS para que el comando funcione.
PS SQLSERVER:\> cd sqlas PS SQLSERVER:\sqlas> cd <remote-server-name\instance-name> PS SQLSERVER:\sqlas\<remote-server-name\instance-name> dir
En algunos casos, puede ser necesaria una configuración adicional. Es posible que tenga que escribir lo siguiente en el servidor remoto para poder emitir comandos desde otro equipo:
Enable-PSRemoting
Conexión a un objeto de Analysis Services
El proveedor de PowerShell de Analysis Services admite la navegación de la jerarquía de objetos de Analysis Services y establece el contexto para ejecutar comandos. El proveedor es una extensión del proveedor raíz SQLSERVER disponible a través del módulo SQLPS. Después de cargar el módulo SQLPS, puede navegar por la ruta.
Puede conectarse a una instancia local o remota, pero algunos cmdlets solo se ejecutan en una instancia local (es decir, merge-partition). Puede usar una conexión nativa o una conexión HTTP para los servidores de Analysis Services que configuró para el acceso HTTP. En las ilustraciones siguientes se muestra la ruta de navegación para las conexiones HTTP y nativas. En las ilustraciones siguientes se muestra la ruta de navegación para las conexiones HTTP y nativas.
Conexiones nativas a Analysis Services
El ejemplo siguiente es una demostración de cómo usar una conexión nativa para navegar por la jerarquía de objetos. Desde el proveedor, puede emitir un comando dir para ver la información de la instancia. Puede usar cd para ver objetos de esa instancia.
PS SQLSERVER:> cd sqlas
PS SQLSERVER\sqlas:> dir
PS SQLSERVER\sqlas:> cd localhost\default
PS SQLSERVER\sqlas\localhost\default:> dir
Debería ver las siguientes colecciones: conjuntos, bases de datos, roles y trazas. Si continúa usando cd y dir, puede ver el contenido de cada colección.
Conexiones HTTP a Analysis Services
Las conexiones HTTP son útiles si configuró el servidor para el acceso HTTP mediante las instrucciones de este tema: Configuración del acceso HTTP a Analysis Services en Internet Information Services (IIS) 8.0
Suponiendo que una dirección URL del servidor de https://localhost/olap/msmdpump.dll, una conexión podría ser similar a la siguiente:
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
Debería ver las siguientes colecciones: Ensambles, Bases de Datos, Roles y Seguimientos. Si no puede ver el contenido de estas colecciones, compruebe la configuración de autenticación en el directorio virtual OLAP. Asegúrese de que el acceso anónimo está deshabilitado. Si usa la autenticación de Windows, asegúrese de que la cuenta de usuario de Windows tiene permisos administrativos en la instancia de Analysis Services.
Administrar el servicio
Compruebe que el servicio se está ejecutando. Devuelve el estado, el nombre y el nombre visible de los servicios de SQL Server, incluidos Analysis Services (MSSQLServerOLAPService) y el Motor de Base de Datos.
Get-Service mssql*
Devuelve propiedades sobre un proceso, incluido el identificador de proceso, el recuento de identificadores y el uso de memoria:
Get-Process msmdsrv
Reinicia el servicio cuando emite el siguiente cmdlet desde el shell de administrador:
Restart-Service mssqlserverolapservice
Obtener ayuda para PowerShell de Analysis Services
Use cualquiera de los siguientes cmdlets para comprobar la disponibilidad de los cmdlets y obtener más información sobre servicios, procesos y objetos.
Get-Helpdevuelve la ayuda integrada para un cmdlet de Analysis Services, incluidos ejemplos:Get-Help invoke-ascmd -ExamplesGet-Commanddevuelve una lista de los once cmdlets de PowerShell de Analysis Services:Get-Command -module SQLASCmdletsGet-Memberdevuelve propiedades o métodos de un servicio o proceso.Get-Service mssqlserverolapservice | Get-Member -Type PropertyGet-Service mssqlserverolapservice | Get-Member -Type MethodGet-Process msmdsrv | Get-Member -Type PropertyGet-Membertambién se puede usar para devolver propiedades o métodos de un objeto (por ejemplo, métodos AMO en el objeto de servidor) mediante el proveedor SQLAS para especificar la instancia del servidor.PS SQLSERVER:\sqlas\localhost\default > $serverObj = New-Object Microsoft.AnalysisServices.Server PS SQLSERVER:\sqlas\localhost\default > $serverObj = | Get-Member -Type MethodGet-PSdrivedevuelve una lista de los proveedores que están instalados actualmente. Si importó el módulo SQLPS, verá elSQLServerproveedor en la lista (SQLAS forma parte del proveedor SQLServer y nunca aparece por separado en la lista):Get-PSDrive
Véase también
Instalación de SQL Server PowerShell
Administración de modelos tabulares mediante PowerShell (blog)
Configuración del acceso HTTP a Analysis Services en Internet Information Services (IIS) 8.0