LoginSignup

This article is a Private article. Only a writer and users who know the URL can access it.
Please change open range to public in publish setting if you want to share this article with other users.

More than 5 years have passed since last update.

SSRSをコマンドで操作する

Last updated at Posted at 2016-07-02

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"
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up