SSRSのユーティリティの種類
●レポート サーバーのコマンド プロンプト ユーティリティ (SSRS)
https://msdn.microsoft.com/ja-jp/library/ms157252.aspx
Sharepoint統合モードの場合はNo.1か2のどちらか。Nativeの場合は1で決まり。
No. | 名前 | コマンドファイル | サポートされる配置モード | 説明 |
---|---|---|---|---|
1 | RSSユーティリティ | rs.exe | Native&Sharepoint | VB.NETで書いたソース(.rssファイル)を実行する事が可能 |
2 | Powershell | Sharepoint | PowershellからSSRSを操作する管理スクリプト | |
3 | RSConfigユーティリティ | rsconfig.exe | Native | レポートサーバーへの接続設定を管理するユーティリティ |
4 | Rskeymgmt ユーティリティ | rskeymgmt.exe | Native | 暗号化キーを管理するためのユーティリティ |
やりたい事(目的)から自動化する方法を検索する場合は、下記のマトリクスが参考になる。
●配置タスクおよび管理タスクのスクリプト作成
https://msdn.microsoft.com/ja-jp/library/ms159720.aspx
レポートファイルの配備の自動化
配備の自動化の仕組みについては、下記を参照。基本的にはSOAP APIサービスを使用したXML Webサービスの1つであるレポートサーバーWebサービスを介して操作を行う。
●レポート サーバー Web サービス
https://technet.microsoft.com/ja-jp/library/ms152787(v=sql.120).aspx
レポートサーバーWebサービスの利用方法には大きく3つあり、(1)rs.exeを介してVB.NETのスクリプトを実行する方法、(2).netプロキシを作成して実行する方法、(3)SOAP対応アプリを1から作成する方法がある。当然、(3)が一番自由度が高いが、難易度が高くなる。逆に(1)が一番手っ取り早い方法ではあるが、開発言語はVB.NETに限られる。もしVB.NETでも問題ないようであれば、(1)をチョイスするのが一番無難なところ。
(1)のVB.NETソースファイルについては、Codeplexで既にまとまったものがあるためそちらを参考にする。ほぼ、カスタマイズなしでそのまま使えそうなレベル。
●コンテンツ移行用のサンプルスクリプト(VB.NET)
https://azuresql.codeplex.com/releases/view/115207
rs.exeを使った自動化
SQL Server 2008 R2以降では、Sharepoint統合、Nativeの両方で使用する事が可能。
- 構文
rs {-?}
{-i input_file=}
{-s serverURL}
{-u username}
{-p password}
{-e endpoint}
{-l time_out}
{-b batchmode}
{-v globalvars=}
{-t trace}
- ファイルの場所 \Program Files\Microsoft SQL Server\110\Tools\Binn ※64bit環境の場合はx86の方に格納されているので注意。
引数の詳細等は下記を参照。
https://msdn.microsoft.com/ja-jp/library/ms162839(v=sql.120).aspx
サンプルスクリプト「ssrs_migration.rss」のパラメータは下記を参照。
https://msdn.microsoft.com/ja-jp/library/dn531017.aspx#bkmk_download_script
- ファイルをアップロードする例
rs.exe -i ssrs_migration.rss -e Mgmt2010 -s http://SourceServer/ReportServer -u Domain\User -p password -v ts="http://TargetServer/reportserver" -v tu="Domain\Userser" -v tp="password"
<解説>
-e Mgmt2010:エンドポイントを指定。詳細についてはレポート サーバー Web サービスのエンドポイントを参照。
<番外編>SSRSの構成をプログラムで設定する
例えばレポートのアップロードサイズの上限を変更したい場合。既定では4MBとなっているが、ReportManagerのWeb.config内にあるhttp runtimeにmaxrequestlengthを追加してあげると上限を変更できる。
上記設定等をプログラミングで行う場合は、Powershellで操作が可能。
Modify Microsoft Dynamics AX 2012 SSRS configuration files using PowerShell
#Build: 0.02
#Author: Munib Ahmed
#Date: 2013-01-21
#Instructions: Modify the Report Server Web.config file. ie replace MSRS10_50.ANDROMEDA with your folder name
Set-ExecutionPolicy Unrestricted
$webConfig = "C:\Program Files\Microsoft SQL Server\MSRS10_50.ANDROMEDA\Reporting Services\ReportManager\Web.config"
$currentDate = (get-date).tostring("mm_dd_yyyy-hh_mm_s") # month_day_year - hours_mins_seconds
$backup = $webConfig + "_$currentDate"
$doc = new-object System.Xml.XmlDocument
$doc.Load($webConfig)
#save a backup copy
$doc.Save($backup)
Write-Host "Backup saved as " + $backup
$node = $doc.get_DocumentElement()."system.web".httpRuntime
$attribute = $doc.CreateAttribute("maxRequestLength")
$attribute.set_Value("100000")
$node.SetAttributeNode($attribute )
$doc.Save($webConfig)
Write-Host "1) Modified the Report Manager Web.config file"