Freigeben über


Verwenden von PowerShell zum Überprüfen von Power Pivot für SharePoint

Gilt für: SQL Server 2019 und frühere Analysis Services Azure Analysis Services Fabric/Power BI Premium

Von Bedeutung

Data Mining wurde in SQL Server 2017 Analysis Services veraltet und wurde jetzt in SQL Server 2022 Analysis Services nicht mehr unterstützt. Die Dokumentation wird nicht für veraltete und nicht mehr unterstützte Features aktualisiert. Weitere Informationen finden Sie unter "Analysis Services-Abwärtskompatibilität".

Es ist kein Power Pivot für SharePoint-Installations- oder Wiederherstellungsvorgang abgeschlossen, ohne einen soliden Überprüfungstest bestanden zu haben, der bestätigt, dass Ihre Dienste und Daten betriebsbereit sind. In diesem Artikel zeigen wir Ihnen, wie Sie diese Schritte mit Windows PowerShell ausführen. Wir setzen jeden Schritt in einen eigenen Abschnitt, damit Sie direkt zu bestimmten Vorgängen wechseln können. Führen Sie beispielsweise das Skript im Abschnitt "Datenbanken " dieses Themas aus, um den Namen der Dienstanwendung und Inhaltsdatenbanken zu überprüfen, wenn Sie sie für die Wartung oder Sicherung planen möchten.

Ein vollständiges PowerShell-Skript ist am Ende des Themas enthalten. Verwenden Sie das vollständige Skript als Ausgangspunkt, um ein benutzerdefiniertes Skript für die Überwachung Ihrer vollständigen Power Pivot für SharePoint-Bereitstellung zu erstellen.

Vorbereiten der PowerShell-Umgebung

Die Schritte in diesem Abschnitt bereiten Ihre PowerShell-Umgebung vor. Die Schritte sind möglicherweise nicht erforderlich, je nachdem, wie Ihre Skriptumgebung derzeit konfiguriert ist.

PowerShell-Berechtigungen

Öffnen Sie ein PowerShell-Fenster oder die PowerShell ISE (Integrierte Skriptumgebung) mit Administratorrechten. Wenn Sie beim Ausführen von Befehlen keine Administratorrechte haben, wird eine Fehlermeldung wie folgt angezeigt:

Get-SPLogEvent: Sie müssen über Computeradministratorberechtigungen verfügen, um dieses Cmdlet auszuführen.

SharePoint und Power Pivot für SharePoint Modul

Wenn beim Ausführen von SharePoint-verwandten Cmdlets eine Fehlermeldung wie folgt angezeigt wird, führen Sie den Befehl Add-PSSnapin aus:

Der Begriff "Get-PowerPivotSystemService" wird nicht als Name eines Cmdlets, einer Funktion, einer Skriptdatei oder eines operierbaren Programms erkannt. Prüfen Sie die Schreibweise des Namens bzw. stellen Sie sicher, dass der Pfad korrekt angegeben wurde, und versuchen Sie es erneut.

Add-PSSnapin Microsoft.Sharepoint.Powershell -EA 0  

Windows PowerShell

PowerPivot im allgemeinen SharePoint-Anwendungssatz Sie können optional die Mehrheit der Komponenten in der Zentraladministration mithilfe des PowerPivot-Verwaltungsdashboards überprüfen. Um das Dashboard in der Zentraladministration zu öffnen, klicken Sie auf "Allgemeine Anwendungseinstellungen", und klicken Sie dann im Power Pivot auf "Verwaltungsdashboard". Weitere Informationen zum Dashboard finden Sie unter Power Pivot-Verwaltungsdashboard und Nutzungsdaten.

Symptome und empfohlene Aktionen

Die folgende Tabelle enthält eine Liste der Symptome oder Probleme und den vorgeschlagenen Abschnitt dieses Themas, um das Problem zu beheben.

Symptom Siehe den Abschnitt
Die Datenaktualisierung wird nicht ausgeführt. Lesen Sie den Abschnitt Zeitgeberaufträge und prüfen Sie, ob der Zeitgeberauftrag für die Online-Aktualisierung von Power Pivot-Daten online ist.
Verwaltungsdashboarddaten sind alt Lesen Sie den Abschnitt Zeitgeberaufträge und überprüfen Sie, ob der Zeitgeberauftrag des Management-Dashboards online ist.
Einige Teile des Verwaltungsdashboards Wenn Sie Power Pivot für SharePoint in einer Farm installieren, die über die Topologie der Zentraladministration verfügt, ohne Excel Services oder Power Pivot für SharePoint, müssen Sie die Microsoft ADOMD.NET-Clientbibliothek herunterladen und installieren, wenn Sie vollzugriff auf die integrierten Berichte im Power Pivot-Verwaltungsdashboard wünschen. Einige Berichte im Dashboard verwenden ADOMD.NET für den Zugriff auf interne Daten, die Berichtsdaten für die Power Pivot-Abfrageverarbeitung und den Serverstatus in der Farm bereitstellt.

Analysis Services-Windows-Dienst

Das Skript in diesem Abschnitt überprüft die Instanz von SQL Server Analysis Services im SharePoint-Modus. Überprüfen Sie, ob der Dienst ausgeführt wird.

get-service | select name, displayname, status | where {$_.Name -eq "msolap`$powerpivot"} | format-table -property * -autosize | out-default  

Beispielausgabe

Name              DisplayName                                Status  
----              -----------                                ------  
MSOLAP$POWERPIVOT SQL Server Analysis Services (POWERPIVOT) Running  

PowerPivotSystemService und PowerPivotEngineService

Die Skripts in diesem Abschnitt überprüfen die Power Pivot für SharePoint-Systemdienste. Es gibt einen Systemdienst für eine SharePoint 2013-Bereitstellung und zwei Dienste für eine SharePoint 2010-Bereitstellung.

PowerPivotSystemService

Überprüfen Sie, ob der Status online ist.

Get-PowerPivotSystemService | select typename, status, applications, farm | format-table -property * -autosize | out-default  

Beispielausgabe

TypeName                                  Status Applications                             Farm  
--------                                  ------ ------------                             ----  
SQL Server PowerPivot Service Application Online {Default PowerPivot Service Application} SPFarm Name=SharePoint_Config_77d8ab0744a34e8aa27c806a2b8c760c  

PowerPivotEngineService

Hinweis

Überspringen Sie dieses Skript, wenn Sie SharePoint 2013 verwenden. PowerPivotEngineService ist nicht Teil einer SharePoint 2013-Bereitstellung. Wenn Sie das Cmdlet Get-PowerPivotEngineService in SharePoint 2013 ausführen, wird eine Fehlermeldung wie folgt angezeigt. Diese Fehlermeldung wird zurückgegeben, auch wenn Sie den befehl Add-PSSnapin ausgeführt haben, der im Abschnitt "Voraussetzungen" dieses Themas beschrieben ist.

Der Begriff "Get-PowerPivotEngineService" wird nicht als Name eines Cmdlets erkannt.

Überprüfen Sie in einer SharePoint 2010-Bereitstellung den Status "Online".

Get-PowerPivotEngineService | select typename, status, name, instances, farm | format-table -property * -autosize | out-default   

Beispielausgabe

TypeName  : SQL Server Analysis Services  
Status    : Online  
Name      : MSOLAP$POWERPIVOT  
Instances : {POWERPIVOT}  
Farm      : SPFarm Name=SharePoint_Config  

Power Pivot Service-Anwendungen und Proxys

Überprüfen Sie, ob der Status "Online" lautet. Die Excel Services-Anwendung verwendet keine Dienstanwendungsdatenbank und gibt daher keinen Datenbanknamen zurück. Beachten Sie die datenbank, die von der Power Pivot-Dienstanwendung verwendet wird, damit Sie überprüfen können, ob die Datenbank im Datenbankabschnitt weiter unten in diesem Thema online ist.

Power Pivot- und Excel Service-Anwendung(en)

Überprüfen Sie für eine SharePoint 2010-Bereitstellung den Status "Online".

Get-PowerPivotServiceApplication | select typename,name, status, unattendedaccount, applicationpool, farm, database  
Get-SPExcelServiceApplication | select typename, DisplayName, status  

Beispielausgabe

TypeName          : PowerPivot Service Application  
Name              : PowerPivotServiceApplication1  
Status            : Online  
UnattendedAccount : PowerPivotUnattendedAccount  
ApplicationPool   : SPIisWebServiceApplicationPool Name=sqlbi_serviceapp  
Farm              : SPFarm Name=SharePoint_Config  
Database          : GeminiServiceDatabase Name=PowerPivotServiceApplication1_19648f3f2c944e27acdc6c20aab8487a  
  
TypeName    : Excel Services Application Web Service Application  
DisplayName : Excel Services Application  
Status      : Online  

Dienstanwendungspool

Hinweis

Im folgenden Codebeispiel wird zuerst die Applicationpool-Eigenschaft der Standardmäßigen Power Pivot für SharePoint-Dienstanwendung zurückgegeben. Der Name wird aus der Zeichenfolge analysiert und verwendet, um den Status des Anwendungspoolobjekts abzurufen.

Überprüfen Sie, ob der Status online ist. Wenn der Status nicht online ist oder beim Durchsuchen der Power Pivot-Website "HTTP-Fehler" angezeigt wird, überprüfen Sie, ob die Identitätsanmeldeinformationen in den IIS-Anwendungspools weiterhin korrekt sind. Der IIS-Poolname ist der Wert der ID-Eigenschaft, die vom Befehl Get-SPServiceApplicationPool zurückgegeben wird.

$poolname=[string](Get-PowerPivotServiceApplication | select -property applicationpool)  
$position=$poolname.lastindexof("=")  
$poolname=$poolname.substring($position+1)  
$poolname=$poolname.substring(0,$poolname.length-1)  
Get-SPServiceApplicationPool | select name, status, processaccountname, id | where {$_.Name -eq $poolname} | format-table -property * -autosize | out-default  

Beispielausgabe

Name                           Status ProcessAccountName Id  
----                           ------ ------------------ -------   
SharePoint Web Services System Online DOMAIN\account     89b50ec3-49e3-4de7-881a-2cec4b8b73ea  

Hinweis Der Anwendungspool kann auch auf der Seite "Zentraladministration " "Dienstanwendungen verwalten" überprüft werden. Klicken Sie auf den Namen der Dienstanwendung, und klicken Sie dann im Menüband auf Eigenschaften .

Power Pivot- und Excel-Dienstanwendungsproxys

Überprüfen Sie, ob der Status online ist.

Get-SPServiceApplicationProxy |  select typename, status, unattendedaccount, displayname | where {$_.TypeName -like "*powerpivot*" -or $_.TypeName -like "*excel services*"} | format-table -property * -autosize | out-default  

Beispielausgabe

TypeName                                                 Status UnattendedAccount           DisplayName  
--------                                                 ------ -----------------           -----------  
PowerPivot Service Application Proxy                     Online PowerPivotUnattendedAccount PowerPivotServiceApplication1  
Excel Services Application Web Service Application Proxy Online                             Excel Services Application  

Datenbanken

Das folgende Skript gibt den Status der Dienstanwendungsdatenbanken und aller Inhaltsdatenbanken zurück. Überprüfen Sie, ob der Status "Online" lautet.

Get-SPDatabase | select name, status, server, typename | where {$_.TypeName -eq "content database" -or $_.TypeName -like "*Gemini*"} | format-table -property * -autosize | out-default  

Beispielausgabe

Name                                                                       Status Server                  TypeName   
----                                                                       ------ ------                  --------   
DefaultPowerPivotServiceApplicationDB-38422181-2b68-4ab2-b2bb-9c00c39e5a5e Online SPServer Name=TESTSERVER Microsoft.AnalysisServices.SPAddin.GeminiServiceDatabase  
DefaultWebApplicationDB-f0db1a8e-4c22-408c-b9b9-153bd74b0312               Online TESTSERVER\POWERPIVOT    Content Database   
SharePoint_Admin_3cadf0b098bf49e0bb15abd487f5c684                          Online TESTSERVER\POWERPIVOT    Content Database  
  

SharePoint Funktionen

Überprüfen Sie, ob die Site-, Web- und Farm-Features online sind.

Get-SPFeature | select displayname, status, scope, farm | where {$_.displayName -like "*powerpivot*"} | format-table -property * -autosize | out-default  

Beispielausgabe

DisplayName     Status Scope Farm                           
-----------     ------ ----- ----                           
PowerPivotSite  Online  Site SPFarm Name=SharePoint_Config  
PowerPivotAdmin Online   Web SPFarm Name=SharePoint_Config  
PowerPivot      Online  Farm SPFarm Name=SharePoint_Config  

Zeitgesteuerte Aufgaben

Überprüfen Sie, ob Zeitarbeiten Online sind. Power Pivot EngineService ist in SharePoint 2013 nicht installiert, daher listet das Skript keine EngineService-Zeitgeberaufträge in einer SharePoint 2013-Bereitstellung auf.

Get-SPTimerJob | where {$_.service -like "*power*" -or $_.service -like "*mid*"} | select status, displayname, LastRunTime, service | format-table -property * -autosize | out-default  

Beispielausgabe

  
      Status DisplayName                                                                          LastRunTime          Service                               
------ -----------                                                                          -----------          -------                               
Online Health Analysis Job (Daily, SQL Server Analysis Services, All Servers)               4/9/2014 12:00:01 AM EngineService Name=MSOLAP$POWERPIVOT  
Online Health Analysis Job (Hourly, SQL Server Analysis Services, All Servers)              4/9/2014 1:00:01 PM  EngineService Name=MSOLAP$POWERPIVOT  
Online Health Analysis Job (Weekly, SQL Server Analysis Services, All Servers)              4/6/2014 12:00:10 AM EngineService Name=MSOLAP$POWERPIVOT  
Online PowerPivot Management Dashboard Processing Timer Job                                 4/8/2014 3:45:38 AM  MidTierService  
Online PowerPivot Health Statistics Collector Timer Job                                     4/9/2014 1:00:12 PM  MidTierService  
Online PowerPivot Data Refresh Timer Job                                                    4/9/2014 1:09:36 PM  MidTierService  
Online Health Analysis Job (Daily, SQL Server PowerPivot Service Application, All Servers)  4/9/2014 12:00:00 AM MidTierService  
Online Health Analysis Job (Daily, SQL Server PowerPivot Service Application, Any Server)   4/9/2014 12:00:00 AM MidTierService  
Online Health Analysis Job (Weekly, SQL Server PowerPivot Service Application, All Servers) 4/6/2014 12:00:03 AM MidTierService  
Online Health Analysis Job (Weekly, SQL Server PowerPivot Service Application, Any Server)  4/6/2014 12:00:03 AM MidTierService  
Online PowerPivot Setup Extension Timer Job                                                 4/1/2014 1:40:31 AM  MidTierService  

Gesundheitsregeln

Es gibt weniger Regeln in einer SharePoint 2013-Bereitstellung. Eine vollständige Liste der Regeln für jede SharePoint-Umgebung und eine Erläuterung zur Verwendung der Regeln finden Sie unter Konfigurieren von PowerPivot-Gesundheitsregeln.

Get-SPHealthAnalysisRule | select name, enabled, summary | where {$_.summary -like "*power*"}  | format-table -property * -autosize | out-default  

Beispielausgabe

Name                          Enabled Summary  
----                          ------- -------           
SecondaryLogonHealthRule         True PowerPivot:  Secondary Logon service (seclogon) is disabled  
DataRefreshTimerJobHealthRule    True PowerPivot: The PowerPivot Data Refresh timer job is disabled.  
ASUsageLoadHealthRule            True PowerPivot: The ratio of load events to connections is too high.  
ASMiniDumpHealthRule             True PowerPivot: One or more minidump files were found in the Logs directory, indicating a program crash  
ASUsageCubeRule                  True PowerPivot: Usage data is not getting updated at the expected frequency.  
ASADOMDNETHealthRule             True PowerPivot: ADOMD.NET is not installed on a standalone WFE that is configured for central admin  
MidTierAcctReadPermissionRule    True PowerPivot: MidTier process account should have 'Full Read' permission on all associated SPWebApplications.  

Windows- und ULS-Protokolle

Windows-Ereignisprotokoll

Der folgende Befehl durchsucht das Windows-Ereignisprotokoll nach Ereignissen im Zusammenhang mit der Instanz von SQL Server Analysis Services im SharePoint-Modus. Informationen zum Deaktivieren oder Ändern der Ereignisebene finden Sie unter Konfigurieren und Anzeigen von SharePoint-Protokolldateien und Diagnoseprotokollierung (Power Pivot für SharePoint)

Dienstname: MSOLAP$POWERPIVOT

Anzeigename in Windows-Diensten: SQL Server Analysis Services (POWERPIVOT)

Get-EventLog "application" | Where-Object {$_.source -like "msolap`$powerpivot*"}  |select timegenerated, entrytype , source, message | format-table -property * -autosize | out-default  

Beispielausgabe

TimeGenerated           EntryType Source            Message  
-------------           --------- ------            -------  
4/16/2014 1:45:19 PM  Information MSOLAP$POWERPIVOT Software usage metrics are disabled.  
4/16/2014 1:45:19 PM  Information MSOLAP$POWERPIVOT Service started. Microsoft SQL Server Analysis Services 64 Bit Evaluation (x64) RTM 12.0.1997.5.  
4/16/2014 1:45:18 PM  Information MSOLAP$POWERPIVOT The flight recorder was started.  
4/14/2014 6:45:37 PM  Information MSOLAP$POWERPIVOT Software usage metrics are disabled.  

SharePoint ULS-Protokoll, letzte 48 Stunden

Der folgende Befehl gibt Power Pivot-Nachrichten aus dem ULS-Protokoll zurück, das in den letzten 48 Stunden erstellt wurde. Passen Sie den Addhours-Parameter für Ihre Anforderung an.

Get-SPLogEvent -starttime(get-date).addhours(-48) | Where-Object {$_.Area -eq "powerpivot service" -and $_.level -eq "high"} | select timestamp, area, category, eventid,level, message| format-table -property * -autosize | out-default  

Die folgende Variante des Befehls gibt nur Protokollereignisse für die Datenaktualisierungskategorie zurück.

Get-SPLogEvent -starttime(get-date).addhours(-48) | Where-Object {$_.category -eq "data refresh" -and $_.level -eq "high"} | select timestamp, area, category, eventid, level, correlation, message  

Beispielausgabe

Timestamp   : 4/14/2014 7:15:01 PM  
Area        : PowerPivot Service  
Category    : Data Refresh  
EventID     : 43  
Level       : High  
Correlation : 5755879c-7cab-e097-8f80-f27895d44a77  
Message     : The following error occured when working with the service application, Default PowerPivot Service Application. Skipping the service application..  
  
Timestamp   : 4/14/2014 7:15:02 PM  
Area        : PowerPivot Service  
Category    : Data Refresh  
EventID     : 99  
Level       : High  
Correlation : 5755879c-7cab-e097-8f80-f27895d44a77  
Message     : EXCEPTION: System.TimeoutException: The request channel timed out while waiting for a reply after 00:00:47.0625313. Increase the timeout value passed to   
              the call to Request or increase the SendTimeout value on the Binding. The time allotted to this operation may have been a portion of a longer timeout.   
              ---> System.TimeoutException: The HTTP request to 'http://localhost:32843/SecurityTokenServiceApplication/securitytoken.svc/actas' has exceeded the   
              allotted timeout of 00:00:54.5930000. The time allotted to this operation may have been a portion of a longer timeout. ---> System.Net.WebException: The   
              operation has timed out     at System.Net.HttpWebRequest.GetResponse()     at   
              System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout...  

MSOLAP-Anbieter

Überprüfen Sie den MSOLAP-Anbieter. SQL Server 2012 (11.x) und SQL Server 2014 (12.x) Power Pivot erfordern MSOLAP.5.

$excelApp=Get-SPExcelServiceApplication  
get-spexceldataprovider -ExcelServiceApplication $excelApp |select providerid,providertype,description | where {$_.providerid -like "msolap*" } | format-table -property * -autosize | out-default  

Beispielausgabe

ProviderId ProviderType Description  
---------- ------------ -----------  
MSOLAP     Oledb        Microsoft OLE DB Provider for OLAP Services       
MSOLAP.3   Oledb        Microsoft OLE DB Provider for OLAP Services 9.0   
MSOLAP.4   Oledb        Microsoft OLE DB Provider for OLAP Services 10.0  
MSOLAP.5   Oledb        Microsoft OLE DB Provider for OLAP Services 11.0  

ADOMD.Net-Clientbibliothek

get-wmiobject -class win32_product | Where-Object {$_.name -like "*ado*"} | select name, version, vendor | format-table -property * -autosize | out-default  

Beispielausgabe

name                                                  version      vendor  
----                                                  -------      ------  
Microsoft SQL Server 2008 Analysis Services ADOMD.NET 10.1.2531.0  Microsoft Corporation  
Microsoft SQL Server 2005 Analysis Services ADOMD.NET 9.00.1399.06 Microsoft Corporation  

Regeln zur Erfassung von Gesundheitsdaten

Überprüfen Sie, ob der Status "Online" ist und Aktiviert auf "True" ist.

get-spusagedefinition | select name, status, enabled, tablename, DaysToKeepDetailedData | where {$_.name -like "powerpivot*"} | format-table -property * -autosize | out-default  

Beispielausgabe

Name                         Status Enabled TableName                   DaysToKeepDetailedData  
----                         ------ ------- ---------                   ----------------------  
PowerPivot Connections       OnlineTrue AnalysisServicesConnections  14  
PowerPivot Load Data Usage   Online    True AnalysisServicesLoads                           14  
PowerPivot Query Usage       Online    True AnalysisServicesRequests                        14  
PowerPivot Unload Data Usage Online    True AnalysisServicesUnloads                         14  

Weitere Informationen finden Sie unter Power Pivot Usage Data Collection.

Solutions

Wenn die anderen Komponenten online sind, können Sie die Überprüfung der Lösungen überspringen. Wenn die Integritätsregeln jedoch fehlen, überprüfen Sie, ob die beiden Lösungen vorhanden sind, und zeigen Sie an, ob die beiden Power Pivot-Lösungen online und bereitgestellt sind.

get-spsolution | select name, status, deployed, DeploymentState, DeployedServers | where {$_.Name -like "*powerpivot*"} | format-table -property * -autosize | out-default  

Beispielausgabe sharePoint 2013

Name                                 Status Deployed        DeploymentState DeployedServers  
----                                 ------ --------        --------------- ---------------  
powerpivotfarm14solution.wsp         Online     True         GlobalDeployed {UETESTA00}  
powerpivotfarmsolution.wsp           Online     True         GlobalDeployed {UETESTA00}  
powerpivotwebapplicationsolution.wsp Online     True WebApplicationDeployed {UETESTA00}  

Beispielausgabe sharePoint 2010

Name                 Status Deployed        DeploymentState DeployedServers   
----                 ------ --------        --------------- ---------------   
powerpivotfarm.wsp   Online     True         GlobalDeployed {uesql11spoint2}  
powerpivotwebapp.wsp Online     True WebApplicationDeployed {uesql11spoint2}  

Weitere Informationen zum Bereitstellen von SharePoint-Lösungen finden Sie unter Bereitstellen von Lösungspaketen (SharePoint Server 2010).

Manuelle Überprüfungsschritte

In diesem Abschnitt werden die Überprüfungsschritte beschrieben, die nicht mit PowerShell-Cmdlets abgeschlossen werden können.

Geplante Datenaktualisierung: Konfigurieren Sie den Aktualisierungszeitplan für eine Arbeitsmappe so, dass sie auch schnellstmöglich aktualisiert wird. Weitere Informationen finden Sie im Abschnitt "Überprüfen der Datenaktualisierung" des Zeitplans für die Datenaktualisierung und Datenquellen, die die Windows-Authentifizierung (Power Pivot für SharePoint) nicht unterstützen.

Weitere Ressourcen

IIS-Webserver-Verwaltungs-Cmdlets in Windows PowerShell.

PowerShell zum Überprüfen von Diensten, IIS-Websites und Anwendungspoolstatus in SharePoint.

Referenz zu Windows PowerShell für SharePoint 2013

Referenz zu Windows PowerShell für SharePoint Foundation 2010

Verwalten von Excel Services mit Windows PowerShell (SharePoint Server 2010)

Anzeigen und Lesen von SQL Server-Setupprotokolldateien

Verwenden des Cmdlets "Get-EvenLog"

Vollständiges PowerShell-Skript

Das folgende Skript enthält alle Befehle aus den vorherigen Abschnitten. Das Skript führt die Befehle in der gleichen Reihenfolge aus, wie sie in diesem Thema dargestellt werden. Das Skript enthält einige optionale Variationen der befehle, die in diesem Thema aufgeführt sind, falls Sie zusätzliche Filter benötigen. Die Variationen sind mit einem Kommentarzeichen (#) deaktiviert. Das Skript enthält auch einige Anweisungen zum Überprüfen des SharePoint-Modus von Reporting Services. Die Reporting Services-Anweisungen sind mit einem Kommentarzeichen (#) deaktiviert.

# This script audits services related to PowerPivot for SharePoint  
$starttime=Get-Date  
write-host -foregroundcolor DarkGray StartTime $starttime   
  
Write-Host  "Import the SharePoint PowerShell snappin"  
Add-PSSnapin Microsoft.Sharepoint.Powershell -EA 0  
  
#Write-Host ""  
Write-Host -ForegroundColor Green "Analysis Services Windows Service"  
Write-Host -ForegroundColor Green ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"  
get-service | select name, displayname, status | where {$_.Name -eq "msolap`$powerpivot"} | format-table -property * -autosize | out-default  
  
#Write-Host ""  
Write-Host -ForegroundColor Green "PowerPivotEngineService and PowerPivotSystemService"  
Write-Host -ForegroundColor Green ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"  
  
Get-PowerPivotSystemService | select typename, status, applications, farm | format-table -property * -autosize | out-default  
# If needed, you can run the following to compare job definitions specific to the service against the results of the timer job definition section  
#Get-PowerPivotSystemService | select -ExpandProperty jobdefinitions | select displayname, schedule, service | format-table -property * -autosize | out-default  
  
Get-PowerPivotEngineService | select typename, status, name, instances, farm | format-table -property * -autosize | out-default  
# If needed, you can run the following to compare job definitions specific to the service against the results of the timer job definition section  
#Get-PowerPivotEngineService | select -ExpandProperty jobdefinitions | select displayname, schedule, service | format-table -property * -autosize | out-default  
  
#Write-Host ""  
#Write-Host -ForegroundColor Green "Service Instances - optional if you want to associate services with the server"  
#Write-Host -ForegroundColor Green ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"  
#Get-SPServiceInstance | select typename, status, server, service, instance | where {$_.TypeName -like "*powerpivot*" -or $_.TypeName -like "*excel*" -or $_.TypeName -like "*Analysis Services*"} | format-table -property * -autosize | out-default  
#Get-PowerPivotEngineServiceInstance  | select typename, ASServername, status, server, service, instance  
#Get-PowerPivotSystemServiceInstance  | select typename, ASSServerName, status, server, service, instance  
  
#Write-Host ""  
Write-Host -ForegroundColor Green "PowerPivot And Excel Service Applications"  
Write-Host -ForegroundColor Green ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"  
Get-PowerPivotServiceApplication | select typename,name, status, unattendedaccount, applicationpool, farm, database   
Get-SPExcelServiceApplication | select typename,  DisplayName, status   
  
#Write-Host ""  
Write-Host -ForegroundColor Green "PowerPivot Service Application pool"  
Write-Host -ForegroundColor Green ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"  
# the following assumes there is only 1 PowerPivot Service Application, and returns that applicaitons pool name.  if you have more than one, use the 2nd version  
$poolname=[string](Get-PowerPivotServiceApplication | select -property applicationpool)  
$position=$poolname.lastindexof("=")  
$poolname=$poolname.substring($position+1)  
$poolname=$poolname.substring(0,$poolname.length-1)  
Get-SPServiceApplicationPool | select name, status, processaccountname, id | where {$_.Name -eq $poolname} | format-table -property * -autosize | out-default  
  
#Write-Host ""  
Write-Host -ForegroundColor Green "PowerPivot and Excel Service Application Proxy"  
Write-Host -ForegroundColor Green ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"  
Get-SPServiceApplicationProxy |  select typename, status, unattendedaccount, displayname | where {$_.TypeName -like "*powerpivot*" -or $_.TypeName -like "*excel services*"} | format-table -property * -autosize | out-default  
#Get-SPServiceApplicationProxy |  select typename, status, unattendedaccount, displayname | where {$_.TypeName -like "*powerpivot*" -or $_.TypeName -like "*Reporting Services*" -or $_.TypeName -like "*excel services*"} | format-table -property * -autosize | out-default  
  
#Write-Host ""  
Write-Host -ForegroundColor Green "DATABASES"  
Write-Host -ForegroundColor Green ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"  
Get-SPDatabase | select name, status, server, typename | where {$_.TypeName -eq "content database" -or $_.TypeName -like "*Gemini*"} | format-table -property * -autosize | out-default  
#Get-SPDatabase | select name, status, server, typename | where {$_.TypeName -eq "content database" -or $_.TypeName -like "*Gemini*" -or $_.TypeName -like "*ReportingServices*"}   
  
#Write-Host ""  
Write-Host -ForegroundColor Green "features"  
Write-Host -ForegroundColor Green ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"  
Get-SPFeature | select displayname, status, scope, farm| where {$_.displayName -like "*powerpivot*"} | format-table -property * -autosize | out-default  
#Get-SPFeature | select displayname, status, scope, farm | where {$_.displayName -like "*powerpivot*" -or $_.displayName -like "*ReportServer*"}  | format-table -property * -autosize | out-default  
  
#Write-Host ""  
Write-Host -ForegroundColor Green "Timer Jobs (Job Definitions) -- list is the same as seen in the 'Review timer job definitions' section of the management dashboard"  
Write-Host -ForegroundColor Green ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"  
Get-SPTimerJob | where {$_.service -like "*power*" -or $_.service -like "*mid*"} | select status, displayname, LastRunTime, service | format-table -property * -autosize | out-default  
  
#Write-Host ""  
Write-Host -ForegroundColor Green "health rules"  
Write-Host -ForegroundColor Green ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"  
Get-SPHealthAnalysisRule | select name, enabled, summary | where {$_.summary -like "*power*"}  | format-table -property * -autosize | out-default  
  
$time=Get-Date  
write-host -foregroundcolor DarkGray StartTime $starttime   
write-host -foregroundcolor DarkGray EndTime $time  
  
#Write-Host ""  
Write-Host -ForegroundColor Green "Windows Event Log data MSSQL$POWERPIVOT and "  
Write-Host -ForegroundColor Green ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"  
Get-EventLog "application" | Where-Object {$_.source -like "msolap`$powerpivot*"}  |select timegenerated, entrytype , source, message | format-table -property * -autosize | out-default  
#The following is the same command but with the Inforamtion events filtered out.  
#Get-EventLog "application" | Where-Object {$_.source -like "msolap`$powerpivot*" -and ($_.entrytype -match "error" -or $_.entrytype -match "critical" -or $_.entrytype -match "warning")}  |select timegenerated, entrytype , source, message | format-table -property * -autosize | out-default  
  
#Write-Host ""  
Write-Host -ForegroundColor Green "ULS Log data"  
Write-Host -ForegroundColor Green ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"  
Get-SPLogEvent -starttime(get-date).addhours(-48) | Where-Object {$_.Area -eq "powerpivot service" -and $_.level -eq "high"} | select timestamp, area, category, eventid,level, correlation, message| format-table -property * -autosize | out-default  
#the following example filters for the category 'data refresh'  
#Get-SPLogEvent -starttime(get-date).addhours(-48) | Where-Object {$_.category -eq "data refresh" -and $_.level -eq "high"} | select timestamp, area, category, eventid, level, correlation, message  
  
$time=Get-Date  
write-host -foregroundcolor DarkGray StartTime $starttime   
write-host -foregroundcolor DarkGray EndTime $time  
  
#Write-Host ""  
Write-Host -ForegroundColor Green "MSOLAP data provider for Excel Servivces, service application"  
Write-Host -ForegroundColor Green ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"  
$excelApp=Get-SPExcelServiceApplication  
get-spexceldataprovider -ExcelServiceApplication $excelApp |select providerid,providertype,description | where {$_.providerid -like "msolap*" } | format-table -property * -autosize | out-default  
  
Write-Host -ForegroundColor Green "ADOMD.net client library"  
Write-Host -ForegroundColor Green ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"  
get-wmiobject -class win32_product | Where-Object {$_.name -like "*ado*"} | select name, version, vendor | format-table -property * -autosize | out-default  
  
#Write-Host ""  
Write-Host -ForegroundColor Green "Usage Data Rules"  
Write-Host -ForegroundColor Green ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"  
get-spusagedefinition | select name, status, enabled, tablename, DaysToKeepDetailedData | where {$_.name -like "powerpivot*"} | format-table -property * -autosize | out-default  
  
Write-Host -ForegroundColor Green "Solutions"  
Write-Host -ForegroundColor Green ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"  
get-spsolution | select name, status, deployed, DeploymentState, DeployedServers | where {$_.Name -like "*powerpivot*"} | format-table -property * -autosize | out-default  
  
$time=Get-Date  
write-host -foregroundcolor DarkGray StartTime $starttime   
write-host -foregroundcolor DarkGray EndTime $time