Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
SQL Server 2014 Analysis Services (SSAS) enthält einen Analysis Services PowerShell (SQLAS)-Anbieter und Cmdlets, sodass Sie mithilfe von Windows PowerShell in Analysis Services-Objekten navigieren, verwalten und abfragen können.
Analysis Services PowerShell besteht aus den folgenden Komponenten:
SQLASAnbieter, der für die Navigation in der AMO-Hierarchie (Analysis Management Object) verwendet wird.Invoke-ASCmdCmdlet, das zum Ausführen von MDX-, DMX- oder XMLA-Skripts verwendet wird.Aufgabenspezifische Cmdlets für Routinevorgänge, z. B. Verarbeitung, Rollenverwaltung, Partitionsverwaltung, Sicherung und Wiederherstellung.
In diesem Artikel
Unterstützte Versionen und Modi von Analysis Services
Überlegungen zu Authentifizierungsanforderungen und Sicherheit
PowerShell-Aufgaben für Analysis Services
Weitere Informationen zu Syntax und Beispielen finden Sie in der PowerShell-Referenz für Analysis Services.
Voraussetzungen
Windows PowerShell 2.0 muss installiert sein. Sie wird standardmäßig in neueren Versionen der Windows-Betriebssysteme installiert. Weitere Informationen finden Sie unter Installieren von Windows PowerShell 2.0
Sie müssen ein SQL Server-Feature installieren, das das SQL Server PowerShell (SQLPS)-Modul und Clientbibliotheken enthält. Am einfachsten installieren Sie SQL Server Management Studio, das die PowerShell-Funktion und Clientbibliotheken automatisch enthält. Das SQL Server PowerShell (SQLPS)-Modul enthält die PowerShell-Anbieter und Cmdlets für alle SQL Server-Features, einschließlich des SQLASCmdlets-Moduls und des SQLAS-Anbieters, der für die Navigation in der Analysis Services-Objekthierarchie verwendet wird.
Sie müssen das SQLPS-Modul importieren, bevor Sie den SQLAS Anbieter und cmdlets verwenden können. Der SQLAS-Anbieter ist eine Erweiterung des SQLServer Anbieters. Es gibt mehrere Möglichkeiten zum Importieren des SQLPS-Moduls. Weitere Informationen finden Sie unter Importieren des SQLPS-Moduls.
Für den Remotezugriff auf eine Analysis Services-Instanz müssen Sie die Remoteverwaltung und Dateifreigabe aktivieren. Weitere Informationen finden Sie unter "Remoteverwaltung aktivieren" in diesem Thema.
Unterstützte Versionen und Modi von Analysis Services
Derzeit wird Analysis Services PowerShell für jede Edition von SQL Server 2014 Analysis Services unterstützt, die unter Windows Server 2008 R2, Windows Server 2008 SP1 oder Windows 7 ausgeführt wird.
Die folgende Tabelle zeigt die Verfügbarkeit von Analysis Services PowerShell in verschiedenen Kontexten.
| Kontext | Verfügbarkeit von PowerShell-Features |
|---|---|
| Multidimensionale Instanzen und Datenbanken | Unterstützt für lokale und Fernverwaltung. Für die Merge-Partition ist eine lokale Verbindung erforderlich. |
| Tabellarische Instanzen und Datenbanken | Unterstützt für die lokale und Remoteverwaltung. Weitere Informationen finden Sie in einem Blog vom August 2011 zum Verwalten von tabellarischen Modellen mithilfe von PowerShell. |
| PowerPivot für SharePoint-Instanzen und -Datenbanken | Eingeschränkter Support. Sie können HTTP-Verbindungen und den SQLAS-Anbieter verwenden, um Instanz- und Datenbankinformationen anzuzeigen. Die Verwendung der Cmdlets wird jedoch nicht unterstützt. Sie dürfen nicht Analysis Services PowerShell verwenden, um die PowerPivot-Datenbank im Arbeitsspeicher zu sichern und wiederherzustellen, noch dürfen Rollen, Prozessdaten oder beliebige XMLA-Skripts hinzugefügt oder entfernt werden. Für Konfigurationszwecke verfügt PowerPivot für SharePoint über integrierte PowerShell-Unterstützung, die separat bereitgestellt wird. Weitere Informationen finden Sie in der PowerShell-Referenz für PowerPivot für SharePoint. |
| Native Verknüpfungen mit lokalen Würfeln "Datenquelle=c:\backup\test.cub" |
Nicht unterstützt. |
| HTTP-Verbindungen mit BI-Semantikmodelldateien (.bism) in SharePoint "Datenquelle=https://server/shared_docs/name.bism" |
Nicht unterstützt. |
| Eingebettete Verbindungen mit PowerPivot-Datenbanken "Datenquelle=$Embedded$" |
Nicht unterstützt. |
| Lokaler Serverkontext in gespeicherten Prozeduren von Analysis Services "Datenquelle=*" |
Nicht unterstützt. |
Überlegungen zu Authentifizierungsanforderungen und Sicherheit
Beim Herstellen einer Verbindung mit Analysis Services müssen Sie die Verbindung mit einer Windows-Benutzeridentität herstellen. In den meisten Fällen wird eine Verbindung mit der integrierten Windows-Sicherheit hergestellt, bei der die Identität des aktuellen Benutzers den Sicherheitskontext festlegt, unter dem Servervorgänge ausgeführt werden. Zusätzliche Authentifizierungsmethoden werden jedoch verfügbar, wenn Sie den HTTP-Zugriff auf Analysis Services konfigurieren. In diesem Abschnitt wird erläutert, wie der Verbindungstyp bestimmt, welche Authentifizierungsoptionen Sie verwenden können.
Verbindungen mit Analysis Services sind entweder als systemeigene Verbindungen oder HTTP-Verbindungen gekennzeichnet. Eine systemeigene Verbindung ist eine direkte Verbindung von einer Clientanwendung mit dem Server. In einer PowerShell-Sitzung verwendet der PowerShell-Client den OLE DB-Anbieter für Analysis Services, um eine direkte Verbindung mit einer Analysis Services-Instanz herzustellen. Eine systemeigene Verbindung wird immer mithilfe der integrierten Windows-Sicherheit hergestellt. Dabei wird Analysis Services PowerShell als der aktuell angemeldete Benutzer ausgeführt. Analysis Services unterstützt keinen Identitätswechsel. Wenn Sie einen Vorgang als bestimmten Benutzer ausführen möchten, müssen Sie die PowerShell-Sitzung als diesen Benutzer starten.
HTTP-Verbindungen werden indirekt über IIS hergestellt, sodass zusätzliche Authentifizierungsoptionen wie die Standardauthentifizierung eine Verbindung mit einer Analysis Services-Instanz herstellen können. Da IIS den Identitätswechsel unterstützt, können Sie eine Verbindungszeichenfolge bereitstellen, die Anmeldeinformationen enthält, die IIS zum Identitätswechsel verwendet, wenn eine Verbindung hergestellt wird. Um Anmeldeinformationen bereitzustellen, können Sie den parameter -Credential verwenden.
Verwenden des -Credential-Parameters in PowerShell
Der parameter -Credential akzeptiert ein PSCredential-Objekt, das einen Benutzernamen und ein Kennwort angibt. In Analysis Services PowerShell ist der -Credential Parameter für Cmdlets verfügbar, die eine Verbindungsanforderung an Analysis Services stellen, im Gegensatz zu Cmdlets, die im Kontext einer vorhandenen Verbindung ausgeführt werden. Cmdlets, die eine Verbindungsanforderung stellen, umfassen Invoke-ASCmd, Backup-ASDatabase und Restore-ASDatabase. Für diese Cmdlets kann der -Credential-Parameter verwendet werden, vorausgesetzt, die folgenden Kriterien sind erfüllt:
Der Server ist für den HTTP-Zugriff konfiguriert, was bedeutet, dass IIS die Verbindung verarbeitet, den Benutzernamen und das Kennwort liest und diese Benutzeridentität beim Herstellen einer Verbindung mit Analysis Services imitiert. Weitere Informationen finden Sie unter Configure HTTP Access to Analysis Services on Internet Information Services (IIS) 8.0.
Das virtuelle IIS-Verzeichnis, das für den HTTP-Zugriff von Analysis Services erstellt wurde, ist für die Standardauthentifizierung konfiguriert.
Der vom Anmeldeinformationsobjekt bereitgestellte Benutzername und das Kennwort werden in eine Windows-Benutzeridentität überführt. Analysis Services verwendet diese Identität als aktueller Benutzer. Wenn der Benutzer kein Windows-Benutzer ist oder über ausreichende Berechtigungen zum Ausführen des angeforderten Vorgangs verfügt, schlägt die Anforderung fehl.
Zum Erstellen eines Anmeldeinformationsobjekts können Sie das cmdlet Get-Credential verwenden, um die Anmeldeinformationen vom Operator zu sammeln. Anschließend können Sie das Anmeldeinformationsobjekt für einen Befehl verwenden, der eine Verbindung mit Analysis Services herstellt. Im folgenden Beispiel wird ein Ansatz veranschaulicht. In diesem Beispiel ist die Verbindung mit einer lokalen Instanz (SQLSERVER:\SQLAS\HTTP_DS) konfiguriert, die für den HTTP-Zugriff konfiguriert ist.
$cred = Get-Credential adventureworks\dbadmin
Invoke-ASCmd -Inputfile:"c:\discoverconnections.xmla" -Credential:$cred
Bei Verwendung der Standardauthentifizierung sollten Sie immer HTTPS mit SSL verwenden, damit Benutzername und Kennwörter über eine verschlüsselte Verbindung gesendet werden. Weitere Informationen finden Sie unter Konfigurieren der Secure Sockets Layer in IIS 7.0 und Configure Basic Authentication (IIS 7).For more information, see Configure Secure Sockets Layer in IIS 7.0 and Configure Basic Authentication (IIS 7).
Denken Sie daran, dass Anmeldeinformationen, Abfragen und Befehle, die Sie in PowerShell bereitstellen, unverändert an die Transportebene übergeben werden. Das Einschließen vertraulicher Inhalte in Ihre Skripts erhöht das Risiko einer böswilligen Injektion.
Bereitstellen eines Kennworts als Microsoft.Secure.String-Objekt
Einige Vorgänge, z. B. Sicherung und Wiederherstellung, unterstützen Verschlüsselungsoptionen, die aktiviert werden, wenn Sie ein Kennwort im Befehl angeben. Bereitstellung des Passworts signalisiert den Analysis-Diensten, die Sicherungsdatei zu verschlüsseln oder zu entschlüsseln. In Analysis Services wird dieses Kennwort als sicheres Zeichenfolgenobjekt instanziiert. Das folgende Beispiel zeigt, wie Sie zur Laufzeit ein Kennwort vom Operator sammeln.
$pwd = read-host -AsSecureString -Prompt "Password"
$pwd -is [System.IDisposable]
Sie können jetzt eine verschlüsselte Datenbankdatei sichern oder wiederherstellen und die $pwd Variable an den Kennwortparameter übergeben. Ein vollständiges Beispiel, das diese Abbildung mit anderen Cmdlets kombiniert, finden Sie unter Backup-ASDatabase Cmdlet und Restore-ASDatabase Cmdlet.
Entfernen Sie als Nachverfolgungsschritt sowohl das Kennwort als auch die Variable aus der Sitzung.
$pwd.Dispose()
Remove-Variable -Name pwd
PowerShell-Aufgaben für Analysis Services
Sie können Analysis Services PowerShell über die Windows PowerShell-Verwaltungsshell oder eine Windows-Eingabeaufforderung ausführen. Das Ausführen von Analysis Services PowerShell aus SQL Server Management Studio wird nicht unterstützt.
In diesem Abschnitt werden allgemeine Aufgaben für die Verwendung von Analysis Services PowerShell beschrieben.
Laden des Analysis Services-Anbieters und der Cmdlets
Der Analysis Services-Anbieter ist eine Erweiterung des SQL Server-Stammanbieters, der beim Importieren des SQLPS-Moduls verfügbar wird. Analysis Services-Cmdlets werden gleichzeitig geladen. Sie können sie auch unabhängig laden, wenn Sie sie ohne den Anbieter verwenden möchten.
Führen Sie das Cmdlet Import-Module aus, um SQLPS zu laden, das alle PowerShell-Funktionen von Analysis Services enthält. Wenn Sie das Modul nicht importieren können, können Sie die Ausführungsrichtlinie vorübergehend in "uneingeschränkt" ändern, um das Modul zu laden. Weitere Informationen finden Sie unter Importieren des SQLPS-Moduls.
Import-Module "sqlps"Alternativ können Sie die Warnung zu nicht genehmigten Verbnamen mit
import-module "sqlps" -disablenamecheckingunterdrücken.Um nur die aufgabenspezifischen Analysis Services-Cmdlets zu laden, ohne den Analysis Services-Anbieter oder das Cmdlet Invoke-ASCmd, können Sie das SQLASCmdlets-Modul als unabhängigen Vorgang laden.
Import-Module "sqlascmdlets"
Remoteverwaltung aktivieren
Bevor Sie Analysis Services PowerShell mit einer Remote analysis Services-Instanz verwenden können, müssen Sie zuerst die Remoteverwaltung und Dateifreigabe aktivieren. Der folgende Fehler weist auf ein Firewallkonfigurationsproblem hin: "Der RPC-Server ist nicht verfügbar. (Ausnahme von HRESULT: 0x800706BA)".
Stellen Sie sicher, dass sowohl lokale als auch Remotecomputer über die SQL Server 2014 Analysis Services (SSAS)-Versionen der Client- und Servertools verfügen.
Öffnen Sie auf dem Remoteserver, auf dem eine Analysis Services-Instanz gehostet wird, den TCP-Port 2383 in der Windows-Firewall. Wenn Sie Analysis Services als benannte Instanz installiert haben oder einen benutzerdefinierten Port verwenden, unterscheidet sich die Portnummer. Weitere Informationen finden Sie unter Konfigurieren der Windows-Firewall zum Zulassen des Analysis Services-Zugriffs.
Überprüfen Sie auf dem Remoteserver, ob die folgenden Dienste gestartet werden: RemoteProzeduraufruf (RPC)-Dienst, TCP/IP NetBIOS-Hilfsdienst, Windows Management Instrumentation (WMI)-Dienst, Windows Remote Management (WS-Management) Dienst.
Starten Sie auf dem Remoteserver das Gruppenrichtlinienobjekt-Editor-Snap-In (gpedit.msc).
Öffnen Sie computerkonfiguration, öffnen Sie administrative Vorlagen, öffnen Sie Netzwerk, öffnen Sie Netzwerkverbindungen, öffnen Sie die Windows-Firewall, und öffnen Sie dann das Domänenprofil.
Doppelklicken Sie auf die Windows-Firewall: Ausnahme für die eingehende Remoteverwaltung zulassen, wählen Sie "Aktiviert" aus, und klicken Sie dann auf "OK".
Doppelklicken Sie auf Windows-Firewall: Ausnahme für eingehende Dateien und Druckerfreigabe zulassen, wählen Sie Aktiviert, und klicken Sie dann auf OK.
Verwenden Sie auf dem lokalen Computer, der die Client-Tools enthält, die folgenden Cmdlets, um die Remoteverwaltung zu überprüfen, indem Sie den tatsächlichen Servernamen anstelle des Platzhalters für den Remoteservernamen verwenden. Lassen Sie den Instanznamen aus, wenn Analysis Services als Standardinstanz installiert ist. Sie müssen das SQLPS-Modul zuvor importiert haben, damit der Befehl funktioniert.
PS SQLSERVER:\> cd sqlas PS SQLSERVER:\sqlas> cd <remote-server-name\instance-name> PS SQLSERVER:\sqlas\<remote-server-name\instance-name> dir
In einigen Fällen kann eine zusätzliche Konfiguration erforderlich sein. Möglicherweise müssen Sie Folgendes auf dem Remoteserver eingeben, bevor Sie Befehle von einem anderen Computer aus ausgeben können:
Enable-PSRemoting
Herstellen einer Verbindung mit einem Analysis Services-Objekt
Der Analysis Services-PowerShell-Anbieter unterstützt die Navigation der Analysis Services-Objekthierarchie und legt den Kontext für die Ausführung von Befehlen fest. Der Anbieter ist eine Erweiterung des SQLSERVER-Stammanbieters, der über das SQLPS-Modul verfügbar ist. Nachdem Sie das SQLPS-Modul geladen haben, können Sie im Pfad navigieren.
Sie können eine Verbindung mit einer lokalen oder Remoteinstanz herstellen, aber einige cmdlets laufen nur auf einer lokalen Instanz, nämlich Merge-Partition. Sie können eine systemeigene Verbindung oder eine HTTP-Verbindung für Analysis Services-Server verwenden, die Sie für den HTTP-Zugriff konfiguriert haben. Die folgenden Abbildungen zeigen den Navigationspfad für systemeigene und HTTP-Verbindungen. Die folgenden Abbildungen zeigen den Navigationspfad für systemeigene und HTTP-Verbindungen.
Systemeigene Verbindungen mit Analysis Services
Das folgende Beispiel zeigt, wie sie eine systemeigene Verbindung zum Navigieren in der Objekthierarchie verwenden. Vom Anbieter können Sie eine dir ausstellen, um Instanzeninformationen anzuzeigen. Sie können zum Anzeigen von Objekten dieser Instanz verwenden cd .
PS SQLSERVER:> cd sqlas
PS SQLSERVER\sqlas:> dir
PS SQLSERVER\sqlas:> cd localhost\default
PS SQLSERVER\sqlas\localhost\default:> dir
Die folgenden Auflistungen sollten angezeigt werden: Assemblies, Datenbanken, Rollen und Traces. Indem Sie weiterhin cd und dir verwenden, können Sie den Inhalt jeder Sammlung anzeigen.
HTTP-Verbindungen mit Analysis Services
HTTP-Verbindungen sind nützlich, wenn Sie Ihren Server für den HTTP-Zugriff mithilfe der Anweisungen in diesem Thema konfiguriert haben: Konfigurieren des HTTP-Zugriffs auf Analysis Services für Internetinformationsdienste (IIS) 8.0
Unter der Annahme einer Server-URL von https://localhost/olap/msmdpump.dll könnte eine Verbindung wie folgt aussehen:
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
Die folgenden Auflistungen sollten angezeigt werden: Assemblys, Datenbanken, Rollen und Ablaufverfolgungen. Wenn Sie den Inhalt dieser Sammlungen nicht anzeigen können, überprüfen Sie die Authentifizierungseinstellungen im virtuellen OLAP-Verzeichnis. Stellen Sie sicher, dass der anonyme Zugriff deaktiviert ist. Wenn Sie die Windows-Authentifizierung verwenden, stellen Sie sicher, dass Ihr Windows-Benutzerkonto über Administratorberechtigungen für die Analysis Services-Instanz verfügt.
Verwalten des Diensts
Überprüfen Sie, ob der Dienst ausgeführt wird. Gibt Status, Name und Anzeigename für SQL Server-Dienste zurück, einschließlich Analysis Services (MSSQLServerOLAPService) und des Datenbankmoduls.
Get-Service mssql*
Gibt Eigenschaften zu einem Prozess zurück, einschließlich Prozess-ID, Handleanzahl und Speicherauslastung:
Get-Process msmdsrv
Startet den Dienst neu, wenn Sie das folgende Cmdlet aus der Administratorshell ausgeben:
Restart-Service mssqlserverolapservice
Hilfe zu Analysis Services PowerShell abrufen
Verwenden Sie eines der folgenden Cmdlets, um die Verfügbarkeit von Cmdlets zu überprüfen und weitere Informationen zu Diensten, Prozessen und Objekten zu erhalten.
Get-Helpgibt die integrierte Hilfe für ein Analysis Services-Cmdlet zurück, einschließlich Beispiele:Get-Help invoke-ascmd -ExamplesGet-Commandgibt eine Liste der elf Analysis Services PowerShell-Cmdlets zurück:Get-Command -module SQLASCmdletsGet-Membergibt Eigenschaften oder Methoden eines Diensts oder Prozesses zurück.Get-Service mssqlserverolapservice | Get-Member -Type PropertyGet-Service mssqlserverolapservice | Get-Member -Type MethodGet-Process msmdsrv | Get-Member -Type PropertyGet-Memberkann auch verwendet werden, um Eigenschaften oder Methoden eines Objekts (z. B. AMO-Methoden auf dem Serverobjekt) mithilfe des SQLAS-Anbieters zur Angabe der Serverinstanz zurückzugeben.PS SQLSERVER:\sqlas\localhost\default > $serverObj = New-Object Microsoft.AnalysisServices.Server PS SQLSERVER:\sqlas\localhost\default > $serverObj = | Get-Member -Type MethodGet-PSdrivegibt eine Liste der Anbieter zurück, die derzeit installiert sind. Wenn Sie das SQLPS-Modul importiert haben, wird derSQLServerAnbieter in der Liste angezeigt (SQLAS ist Teil des SQLServer-Anbieters und wird nie separat in der Liste angezeigt):Get-PSDrive
Siehe auch
Installieren von SQL Server PowerShell
Verwalten von tabellarischen Modellen mithilfe von PowerShell (Blog)
Konfigurieren des HTTP-Zugriffs auf Analysis Services für Internetinformationsdienste (IIS) 8.0