Reporting Services SharePoint モード用の PowerShell コマンドレット
適用対象: SQL Server Reporting Services (2016) SharePoint ❌ Power BI Report Server
以前のバージョンの SQL Server Reporting Services (SSRS) に関するコンテンツについては、「What is SQL Server Reporting Services?」をご覧ください。
SQL Server 2016 Reporting Services SharePoint モードをインストールすると、SharePoint モードのレポート サーバーをサポートするために PowerShell コマンドレットがインストールされます。 コマンドレットは 3 つのカテゴリの機能をサポートしています。
Reporting Services SharePoint 共有サービスおよびプロキシのインストール。
Reporting Services サービス アプリケーションおよび関連付けられたプロキシのプロビジョニングと管理。
Reporting Services 機能 (拡張機能や暗号化キーなど) の管理。
Note
SharePoint と Reporting Services の統合は、SQL Server 2016 以降では使用できません。
コマンドレットの概要
コマンドレットを実行するには、SharePoint 管理シェルを開く必要があります。 Microsoft Windows に付属しているグラフィカル ユーザー インターフェイス エディター ( Windows PowerShell Integrated Scripting Environment (ISE) ) を使用することもできます。 詳細については、「 Windows Server での Windows PowerShell の開始) を使用することもできます。 次のコマンドレット概要では、サービス アプリケーション "データベース" への参照は、Reporting Services サービス アプリケーションによって作成および使用されたすべてのデータベースを参照します。 これには、構成、警告、および一時データベースが含まれます。
PowerShell の例を入力すると、次のようなエラー メッセージが表示されます。
- Install-SPRSService : 用語 'Install-SPRSService' は、
コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。 名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください。
次のいずれかの問題が発生しています。
Reporting Services SharePoint モードがインストールされていないため、Reporting Services コマンドレットはインストールされません。
SharePoint 管理シェルでなく、Windows PowerShell または Windows PowerShell ISE で PowerShell コマンドを実行しました。 SharePoint 管理シェルを使用するか、次のコマンドで SharePoint スナップインを Windows PowerShell ウィンドウに追加します。
Add-PSSnapin Microsoft.SharePoint.PowerShell
詳細については、「Windows PowerShell を使用して SharePoint 2013 を管理する」をご覧ください。
SharePoint 管理シェルを開いてコマンドレットを実行する
[スタート] ボタンを選びます。
[Microsoft SharePoint 製品] グループを選択します。
SharePoint 管理シェルを選択します。
コマンドレットのコマンド ライン ヘルプを表示するには、PowerShell のコマンド プロンプトで 'Get-Help' コマンドを使用します。 次に例を示します。
Get-Help Get-SPRSServiceApplicationServers
共有サービスとプロキシ コマンドレット
次の表に、Reporting Services SharePoint 共有サービス用の PowerShell コマンドレットを示します。
コマンドレット | 説明 |
---|---|
Install-SPRSService | Reporting Services 共有サービスをインストールして登録するか、アンインストールします。 この操作は、SharePoint モードの SQL Server Reporting Services がインストールされているコンピューター上でのみ行うことができます。 インストールの場合は、以下の 2 つの操作が行われます。 \- Reporting Services サービスがファームにインストールされます。 \- Reporting Services サービス インスタンスが現在のコンピューターにインストールされます。 アンインストールの場合は、以下の 2 つの操作が行われます。 \- Reporting Services サービスが現在のコンピューターからアンインストールされます。 \- Reporting Services サービスがファームからアンインストールされます。 Reporting Services サービスがインストールされているファーム内に他のコンピューターが存在する場合や Reporting Services サービス アプリケーションがファーム内で引き続き実行されている場合は、警告メッセージが表示されます。 |
Install-SPRSServiceProxy | SharePoint ファーム内で Reporting Services サービス プロキシをインストールして登録するか、アンインストールします。 |
Get-SPRSProxyUrl | Reporting Services サービスにアクセスするための URL を取得します。 |
Get-SPRSServiceApplicationServers | Reporting Services 共有サービスのインストールを含む、ローカル SharePoint ファーム内のすべてのサーバーを取得します。 このコマンドレットは、どのサーバーで共有サービスを実行していてアップグレードする必要があるかを調べる目的に適しており、Reporting Services のアップグレードに役立ちます。 |
サービス アプリケーションとプロキシ コマンドレット
次の表には、Reporting Services サービス アプリケーションとそれらに関連付けられたプロキシ用の PowerShell コマンドレットが含まれています。
コマンドレット | 説明 |
---|---|
Get-SPRSServiceApplication | 1 つ以上の Reporting Services サービス アプリケーション オブジェクトを取得します。 |
New-SPRSServiceApplication | 新しい Reporting Services サービス アプリケーションと、それに関連付けられたデータベースを作成します。 LogonType パラメーター: レポート サーバーが、レポート サーバー データベースへのアクセスに SSRS Application Pool アカウントと SQL Server ログインのどちらを使用するかを指定します。 有効な値は次のとおりです。 0 Windows 認証 1 SQL Server 2 アプリケーション プール アカウント (既定) |
Remove-SPRSServiceApplication | 指定した Reporting Services サービス アプリケーションを削除します。 このコマンドレットは、関連付けられたデータベースも削除します。 |
Set-SPRSServiceApplication | 既存の Reporting Services サービス アプリケーションのプロパティを編集します。 |
New-SPRSServiceApplicationProxy | 新しい Reporting Services サービス アプリケーション プロキシを作成します。 |
Get-SPRSServiceApplicationProxy | 1 つ以上の Reporting Services サービス アプリケーション プロキシを取得します。 |
Dismount-SPRSDatabase | Reporting Services サービス アプリケーションのサービス アプリケーション データベースをマウント解除します。 |
Remove-SPRSDatabase | Reporting Services サービス アプリケーション用のサービス アプリケーション データベースを削除します。 |
Set-SPRSDatabase | Reporting Services サービス アプリケーションに関連付けられたデータベースのプロパティを設定します。 |
Mount-SPRSDatabase | Reporting Services サービス アプリケーション用のデータベースをマウントします。 |
New-SPRSDatabase | 指定した Reporting Services サービス アプリケーション用の新しいサービス アプリケーション データベースを作成します。 |
Get-SPRSDatabaseCreationScript | Reporting Services サービス アプリケーション用に、データベース作成スクリプトを画面に出力します。 その後、SQL Server Management Studio でスクリプトを実行できます。 |
Get-SPRSDatabase | 1 つ以上の Reporting Services サービス アプリケーション データベースを取得します。 Set-SPRSDatabase コマンドレットを使用して querytimeout などのプロパティを変更できるように、このコマンドを使用してサービス アプリケーション データベースの ID を取得します。 この記事の例「Reporting Service アプリケーション データベースのプロパティの取得と設定」を参照してください。 |
Get-SPRSDatabaseRightsScript | Reporting Services サービス アプリケーション用に、データベース権限スクリプトを画面に出力します。 これを実行すると、対象のユーザーとデータベースの入力を求めるプロンプトが表示され、権限を変更するための Transact-SQL が返されます。 その後、SQL Server Management Studio でこのスクリプトを実行できます。 |
Get-SPRSDatabaseUpgradeScript | データベース アップグレード スクリプトを画面に出力します。 このスクリプトは、Reporting Services サービス アプリケーション データベースを、現在の Reporting Services インストールのデータベース バージョンにアップグレードします。 |
Reporting Services カスタム機能コマンドレット
コマンドレット | 説明 |
---|---|
Update-SPRSEncryptionKey | 指定した Reporting Services サービス アプリケーションの暗号化キーを更新し、そのデータを再暗号化します。 |
Restore-SPRSEncryptionKey | 以前にバックアップした、Reporting Services サービス アプリケーションの暗号化キーを復元します。 |
Remove-SPRSEncryptedData | 指定した Reporting Services サービス アプリケーションの暗号化されたデータを削除します。 |
Backup-SPRSEncryptionKey | 指定した Reporting Services サービス アプリケーションの暗号化キーをバックアップします。 |
New-SPRSExtension | 新しい拡張機能を Reporting Services サービス アプリケーションに登録します。 |
Set-SPRSExtension | 既存の Reporting Services 拡張機能のプロパティを設定します。 |
Remove-SPRSExtension | Reporting Services サービス アプリケーションから拡張機能を削除します。 |
Get-SPRSExtension | Reporting Services サービス アプリケーションの 1 つ以上の Reporting Services 拡張機能を取得します。 有効な値は次のとおりです。 配送 DeliveryUI レンダー Data Security 認証 EventProcessing ReportItems デザイナー ReportItemDesigner ReportItemConverter ReportDefinitionCustomization |
Get-SPRSSite | "ReportingService" 機能が有効になっているかどうかに基づいて SharePoint サイトを取得します。 既定では、"ReportingService" 機能が有効になっているサイトが返されます。 |
基本的なサンプル
名前に 'SPRS' を含んでいるコマンドレットの一覧を返します。 この一覧には Reporting Services コマンドレットの完全な一覧を示しています。
Get-command -noun *SPRS*
または、より詳細な情報を使用して、commandlist.txt という名前のテキスト ファイルにパイプします。
Get-command -noun *SPRS* | Select name, definition | Format-List | Out-File c:\commandlist.txt
Reporting Services SharePoint サービスおよびサービス プロキシをインストールします。
Install-SPRSService
Install-SPRSServiceProxy
Reporting Services サービスを開始します。
get-spserviceinstance -all |where {$_.TypeName -like "SQL Server Reporting*"} | Start-SPServiceInstance
SharePoint 管理シェルから次のコマンドを入力すると、ログ ファイルからフィルター処理された行のリストが返されます。 このコマンドは、"ssrscustomactionerror" を含む行がフィルター処理します。 この例では、rssharepoint.msi のインストール時に作成されたログ ファイルが検索対象となっています。
Get-content -path C:\Users\testuser\AppData\Local\Temp\rs_sp_0.log | select-string "ssrscustomactionerror"
詳細なサンプル
次のサンプルに加えて、「手順 1 - 4 に対応する Windows PowerShell スクリプト」記事内の「Windows PowerShell スクリプト」を参照してください。
Reporting Services サービス アプリケーションとプロキシの作成
このサンプル スクリプトは次のタスクを完了します。
Reporting Services サービス アプリケーションとプロキシを作成する。 このスクリプトは、"My App Pool" というアプリケーション プールが既に存在することを前提としています。
作成したプロキシを既定のプロキシ グループに追加する。
ポート 80 の Web アプリケーションのコンテンツ データベースに、サービス アプリケーション アクセス権を付与する。 このスクリプトは、サイト
https://sitename
が既に存在することを前提としています。
# Create service application and service application proxy
$appPool = Get-SPServiceApplicationPool "My App Pool"
$serviceApp = New-SPRSServiceApplication "My RS Service App" -ApplicationPool $appPool
$serviceAppProxy = New-SPRSServiceApplicationProxy -Name "My RS Service App Proxy" -ServiceApplication $serviceApp
# Add service application proxy to default proxy group. Any web application that uses the default proxy group will now be able to use this service application.
Get-SPServiceApplicationProxyGroup -default | Add-SPServiceApplicationProxyGroupMember -Member $serviceAppProxy
# Grant application pool account access to the port 80 web application's content database.
$webApp = Get-SPWebApplication "https://sitename"
$appPoolAccountName = $appPool.ProcessAccount.LookupName()
$webApp.GrantAccessToProcessIdentity($appPoolAccountName)
Reporting Services 配信拡張機能の確認と更新
次の PowerShell スクリプトの例では、My RS Service App
という名前のサービス アプリケーションについて、レポート サーバーの電子メール配信拡張機能の構成を更新します。 SMTP サーバー (<email server name>
) と差出人の電子メール別名 (<your FROM email address>
) の値を更新します。
$app=get-sprsserviceapplication -Name "My RS Service App"
$emailCfg = Get-SPRSExtension -identity $app -ExtensionType "Delivery" -name "Report Server Email" | select -ExpandProperty ConfigurationXml
$emailXml = [xml]$emailCfg
$emailXml.SelectSingleNode("//SMTPServer").InnerText = "<email server name>"
$emailXml.SelectSingleNode("//SendUsing").InnerText = "2"
$emailXml.SelectSingleNode("//SMTPAuthenticate").InnerText = "2"
$emailXml.SelectSingleNode("//From").InnerText = '<your FROM email address>'
Set-SPRSExtension -identity $app -ExtensionType "Delivery" -name "Report Server Email" -ExtensionConfiguration $emailXml.OuterXml
上の例で、サービス アプリケーションの正確な名前がわからない場合は、最初のステートメントを書き換えて、サービス アプリケーションを部分名検索に基づいて取得することもできます。 次に例を示します。
$app=get-sprsserviceapplication | where {$_.name -like " ssrs_testapp *"}
次のスクリプトは、"Reporting Services Application" という名前のサービス アプリケーションのレポート サーバー電子メール配信拡張機能の現在の構成値を返します。最初の手順では、変数 $app の値を、"My RS Service App" という名前のサービス アプリケーションのオブジェクトに設定します。
2 番目のステートメントは、変数 $app 内のサービス アプリケーション オブジェクト用の "レポート サーバー メール" 配信拡張機能を取得し、configurationXML を選択します。
$app=get-sprsserviceapplication -Name "Reporting Services Application"
Get-SPRSExtension -identity $app -ExtensionType "Delivery" -name "Report Server Email" | select -ExpandProperty ConfigurationXml
前述の 2 つのステートメントを次のように書き直して 1 つのステートメントにすることもできます。
get-sprsserviceapplication -Name "Reporting Services Application" | Get-SPRSExtension -ExtensionType "Delivery" -name "Report Server Email" | select -ExpandProperty ConfigurationXml
Reporting Service アプリケーション データベースのプロパティの取得と設定
次の例では、set コマンドに指定するデータベースの GUID (ID) を確認できるように、最初にデータベースとプロパティの一覧を返します。 プロパティの一覧については、「 Get-SPRSDatabase | format-list
」を参照してください。
get-SPRSDatabase | select id, querytimeout,connectiontimeout, status, server, ServiceInstance
次の出力は例です。 変更するデータベースの ID を確認し、SET コマンドレットでその ID を使用します。
Id : 56f8d1bc-cb04-44cf-bd41-a873643c5a14
QueryTimeout : 120
ConnectionTimeout : 15
Status : Online
Server : SPServer Name=uetestb01
ServiceInstance : SPDatabaseServiceInstance
Set-SPRSDatabase -identity 56f8d1bc-cb04-44cf-bd41-a873643c5a14 -QueryTimeout 300
値が設定されていることを確認するには、もう一度 GET コマンドレットを実行します。
Get-SPRSDatabase -identity 56f8d1bc-cb04-44cf-bd41-a873643c5a14 | select id, querytimeout,connectiontimeout, status, server, ServiceInstance
Reporting Services データ拡張機能の一覧表示
次の例では、各 Reporting Services サービス アプリケーションの間をループし、それぞれの現在のデータ拡張機能を一覧表示します。
$apps = Get-SPRSServiceApplication
foreach ($app in $apps)
{
Write-host -ForegroundColor "yellow" Service App Name $app.Name
Get-SPRSExtension -identity $app -ExtensionType "Data" | select name,extensiontype | Format-Table -AutoSize
}
出力例:
Name ExtensionType
---- -------------
SQL Data
SQLAZURE Data
SQLPDW Data
OLEDB Data
OLEDB-MD Data
ORACLE Data
ODBC Data
XML Data
SHAREPOINTLIST Data
Reporting Services サブスクリプション所有者の変更と一覧表示
「PowerShell を使用した Reporting Services サブスクリプション所有者の変更および一覧表示とサブスクリプションの実行」を参照してください。