SCCMにてレポートを自動生成し、メールで送付する方法

SCCMにてレポートを自動作成して、メールで送付したいケースは結構あるものと思われます。 簡単な手順で実行できますので、そのやり方を紹介します。 まず、自動生成したレポートを探します。そして「サブスクリプションの作成」を行います。 ※目的にあったレポートが規定のレポート群から見つからない場合には、カスタマイズして作成するのも良いですね。 あとはこのウィザードをすすめていけばよいだけ・・・なのですが、結構な環境で配信方法に「Windowsファイル共有」しか存在しないのではないでしょうか。 SCCMのレポートおよびレポート配信は完全にSQL ServerのReporting Servicesの機能を利用しています。ですので、Reporting Services上でメール配信の構成を予め行っておく必要があります。 以下が、その構成方法が書かれているページです。 - 電子メール配信用のレポート** ****サーバーの構成 (Reporting Services)** 残念ながら英語のみですが…。 ここでは、別途SMTPを投げつけるとメールを送信してくれるSMTPサーバーがいる場合の設定を紹介します。 SQL Server 2014 Reporting Services構成マネージャーを起動します。 SCCMが利用しているレポートサーバーインスタンスに接続します。 「電子メールの設定」に適切な設定を入力して「適用」を押します。 これでレポートサーバーへの電子メールの設定が行われました。 再度SCCMサーバーでサブスクリプションを作成します。 レポート配信手段として「電子メール」も構成可能となりました。 適宜パラーメーターを埋めます。Toの部分が「終了」になってしまっているのはローカライズのバグですね…。 配信スケジュールを設定します。 レポートパラメータを決定します。 設定したサブスクリプションはReporting Serviceのレポートマネージャーサイトから確認出来ます。

March 31, 2016 · 1 min · 胡田昌彦

PSTファイルの容量情報のレポーティング

クライアントが保持している特定のファイル形式の一覧と容量を調査したい…というニーズは結構あると思います。 ここではたとえば「ユーザーがローカルで保持しているPSTファイルの一覧と容量を調査する」という例でその実装方法を紹介したいと思います。 ### クライアント設定(ソフトウェアインベントリ) まずクライアント設定を作成します。規定のクライアント設定を変更しても良いですが、別の設定を作成したほうが柔軟に対応できるかなと思います。 この例では*.pstファイルの情報を収集するように設定しています。 作成した設定を展開していきます。 ここではもちろん任意のコレクションを選択することが出来ます。 単に待っていると下手をすると1週間とか待たなくてはいけないので「コンピューター ポリシーの取得および評価サイクル」と「ソフトウェア インベントリ サイクル」を「直ちに実行」しておきます。 これでもしばらく待つことになりますが、クライアント側のC:\Windows\CCM\LogsInventoryAgent.logを見るとソフトウェアインベントリが行われている状況が確認できます。 Inventory: *********************** Start of message processing. *********************** InventoryAgent 2015/07/08 12:25:06 10944 (0x2AC0) Inventory: Message type is InventoryAction InventoryAgent 2015/07/08 12:25:06 10944 (0x2AC0) Inventory: Temp directory = C:\Windows\CCM\Inventory\Temp\ InventoryAgent 2015/07/08 12:25:06 10944 (0x2AC0) Inventory: Clearing old collected files. InventoryAgent 2015/07/08 12:25:06 10944 (0x2AC0) Inventory: Opening store for action {00000000-0000-0000-0000-000000000002} … InventoryAgent 2015/07/08 12:25:06 10944 (0x2AC0) InventoryVersionNumber for ‘{00000000-0000-0000-0000-000000000002}’ not found. InventoryAgent 2015/07/08 12:25:06 10944 (0x2AC0) CInvState::VerifyInventoryVersionNumber: Couldn’t get version number for ‘{00000000-0000-0000-0000-000000000002}’: 80070490 InventoryAgent 2015/07/08 12:25:06 10944 (0x2AC0) Inventory: Delta report without a previous Full report; will do a Full report. InventoryAgent 2015/07/08 12:25:06 10944 (0x2AC0) Inventory: Action=Software, ReportType=Full, MajorVersion=1, MinorVersion=0 InventoryAgent 2015/07/08 12:25:06 10944 (0x2AC0) Inventory: Initialization completed in 0.046 seconds InventoryAgent 2015/07/08 12:25:06 10944 (0x2AC0) Inventory: Message [Type=InventoryAction, ActionID={00000000-0000-0000-0000-000000000002}, Report=Delta] already in queue. Message ignored. InventoryAgent 2015/07/08 12:34:38 11588 (0x2D44) CThrottler::Throttle()[{C0ED66AD-8194-49FD-9826-D0DD38AB7DAA}] - soft timeout exceeded. Throttling is now disabled for the current iteration of this task. InventoryAgent 2015/07/08 14:25:08 5980 (0x175C) Collection: Input context, scan rate in milliseconds = 2 InventoryAgent 2015/07/08 14:25:08 5980 (0x175C) Collection: Input context, skip file name = skpswi.dat InventoryAgent 2015/07/08 14:25:08 5980 (0x175C) Collection: Namespace = \.\root\ccm\invagt; Query = SELECT Name, Path, LastWriteDate, Size, CompanyName, ProductName, ProductVersion, ProductLanguage, FileVersion, FileDescription FROM FileSystemFile WHERE Name = ‘.pst’ AND Path = ‘\*’ AND SkipWindirFolders = TRUE AND IsCompressed = FALSE AND IsEncrypted = FALSE; Timeout = 14400 secs. InventoryAgent 2015/07/08 14:25:08 5980 (0x175C) Inventory: Collection Task completed in 7824.094 seconds InventoryAgent 2015/07/08 14:35:31 13364 (0x3434) Inventory: Temp report = C:\Windows\CCM\Inventory\Temp\148a9b9e-6ffc-4966-b228-bc89d47643a2.xml InventoryAgent 2015/07/08 14:35:31 13364 (0x3434) Collection: 1/1 inventory data items successfully inventoried. InventoryAgent 2015/07/08 14:35:31 13364 (0x3434) Inventory: Starting reporting task. InventoryAgent 2015/07/08 14:35:31 14508 (0x38AC) Reporting: 1 report entries created. InventoryAgent 2015/07/08 14:35:31 14508 (0x38AC) Inventory: Reporting Task completed in 0.031 seconds InventoryAgent 2015/07/08 14:35:31 14508 (0x38AC) Inventory: Successfully sent report. Destination:mp:MP_SinvEndpoint, ID: {79FE0043-18F1-4463-AB89-CF55DE7B8D14}, Timeout: 80640 minutes MsgMode: Signed, Not Encrypted InventoryAgent 2015/07/08 14:35:31 14508 (0x38AC) Inventory: Cycle completed in 7824.562 seconds InventoryAgent 2015/07/08 14:35:31 14508 (0x38AC) Inventory: Action completed. InventoryAgent 2015/07/08 14:35:31 14508 (0x38AC) Inventory: ************************ End of message processing. ************************ InventoryAgent 2015/07/08 14:35:31 14508 (0x38AC) 結果、ソフトウェアインベントリでファイルの情報を確認することができました。 削除してゴミ箱に入っているデータもレポートに含まれていますね。 ### レポートの利用 1台ずつリソースエクスプローラーで確認するのも大変なので、レポートで一括で確認してみます。 標準のレポートとしては以下のあたりがソフトウェアインベントリで収集したファイルを確認できるレポートです。 残念ながら、規定で用意されているサポートだと特定のコンピューターを指定する、特定のファイル名を指定する…ということをしないと情報が出力出来ず用途によってはちょっと不便ですね。 ここはカスタマイズしたレポートを作成する、あるいは直接SQL DBの中を覗く…という対応が良さそうです。 ### SCCMのDBスキーマ SCCMのSQL DBのスキーマはきちんと公開されています。 - SQL Server Views in System Center 2012 Configuration Manager 直接テーブルを参照するのではなく、ビューを通して参照することはサポートされています。 今回はソフトウェアインベントリの結果を参照したいので、以下が該当します。 - Software Inventory Views in Configuration Manager v_GS_SoftwareFile Lists the files and associated product IDs on each Configuration Manager client. The view can be joined to other views by using the ResourceID column. このビューの中身を見てみます。 きちんと収集されている情報が見られますね。 ### 既存のレポートの参照 コンピューター名の情報などは普通に欲しくなると思いますので、ResourceIDをキーにして紐付けばよい…のですが、自分で全部一から調べるよりも既存のレポートがどのように情報を生成しているのかを調べたほうが楽ですね。 > Select SYS.Netbios_Name0, SYS.Resource_Domain_OR_Workgr0, SF.FileName, SF.FileDescription, SF.FileVersion, SF.FileSize, SF.FileModifiedDate, SF.FilePath from fn_rbac_GS_SoftwareFile(@UserSIDs) SF join fn_rbac_R_System(@UserSIDs) SYS on SF.ResourceID = SYS.ResourceID WHERE SYS.Netbios_Name0 Like @variable Order by SF.FileName レポートは権限にもとづいて必要なもののみが表示されるように実装されているので、@UserSIDsなどがつかわれていて若干難しいですね。詳細は以下が参考になります。 - How to create an RBA capable report for ConfigMgr R2 - The Config Ninja Blog - Site Home - TechNet Blogs とりあえず、権限のコントロールは無視し、コンピューター名で絞らずに全部出すようにします。 > Select SYS.Netbios_Name0, SYS.Resource_Domain_OR_Workgr0, SF.FileName, SF.FileDescription, SF.FileVersion, SF.FileSize, SF.FileModifiedDate, SF.FilePath from v_GS_SoftwareFile SF join v_R_System SYS on SF.ResourceID = SYS.ResourceID Order by SF.FileName ...

July 10, 2015 · 3 min · 胡田昌彦

SQL Server 2014 + SCCM 2012 R2 SP1でレポートサービスポイントの構成に失敗する

SQL Server 2014 + SCCM 2012 R2 SP1という構成でレポートサービスポイントの構成に失敗する現象がありました。 > 重要度 種類 サイト コード 日付/時刻 システム コンポーネント メッセージ ID 説明エラー マイルストーン AZR 2015/07/08 8:49:12 EBSJSQL01.EBSJSC.LOCAL SMS_SRS_REPORTING_POINT 7403 レポート サーバー サービスが、レポート サービス ポイント サーバー “EBSJSQL01.EBSJSC.LOCAL” で実行されていません。レポート機能を有効にするには、サービスを開始してください。 原因は不明ですが、レポートサーバーサービスが実行されていないと言われてしまいます。名前付きインスタンスを作成する時に、一緒にレポーティングサービスも構成した環境で、たしかにサービスも上がっているのですが…。 しかたがないので、一度レポーティングサービス関連のDBを削除した上で、Reporint Services 構成マネージャーで新規データベースを作成してみました。 この状態で再度レポートポイントの役割を削除~追加すると正常に構成できました。 重要度 種類 サイト コード 日付/時刻 システム コンポーネント メッセージ ID 説明 情報 マイルストーン AZR 2015/07/08 11:00:11 EBSJSQL01.EBSJSC.LOCAL SMS_SRS_REPORTING_POINT 4629 コンポーネントのステータス サマライザーは、コンピューター “EBSJSQL01.EBSJSC.LOCAL” のコンポーネント “SMS_SRS_REPORTING_POINT” の利用可能性が “オンライン” に変更されたことを検出しました。 原因は不明ですが、対処としてはこれで良いことにしておきます。

July 8, 2015 · 1 min · 胡田昌彦

Managing Your Datacenter with Microsoft System Center Configuration Manager | Microsoft Ignite 2015 | Channel 9

Managing Your Datacenter with Microsoft System Center Configuration Manager | Microsoft Ignite 2015 | Channel 9 IgniteのSCCMでのデータセンター管理に関するセッション。かなり良い内容でした。 SCCMをこのくらい素敵に使いこなせると色々なことが相当楽になるな~という感じです。技術的に実現させることはある程度簡単に可能でも運用に載せるのは難しいんですよね…。 DBに格納されているデータに対してデータセットだけ作っておいてあげればあとはExcelなどで簡単にレポートがかなり多くの人が作成可能である…というのはまさにその通り。 System Center製品群で多数集まったデータを素敵にレポーティングしてあげることで色々と可視化可能になる…というのは技術的に簡単にできるのですが中々広められていないところなので、このあたりも力を入れつつ、OMSのようなクラウドベースの方面にも手を伸ばさないとな…という感じです。 話がそれましたが、こちら、お勧めのIgniteセッションの1つです。

July 7, 2015 · 1 min · 胡田昌彦

SCOMレポートで適切なオブジェクトを選択する方法

SCOMは管理パックを導入すると様々なレポートが使えるようになります。 基本的にはレポートを実行すれば良いのですが、その際に、「オブジェクト」をきちんと選択する必要があります。 例えば、例としてSQL Serverのレポートを見てみましょう。 レポートを実行すると、グループ、あるいはオブジェクトを追加する項目があり、そこには「フィルターオプションが適用されています。」と出ています。実際に「オプション」を確認すると「SQL Server 2014 DB Engine」というクラスのオブジェクトのみが検索されるように指定されています。 この場合、単純に管理者としては「検索」ボタンを押すだけでレポートの対象となるオブジェクトの一覧を入手でき、その中からデータを表示したいオブジェクトを選択すれば良いことになります。 このように管理パックにて適切なフィルタオプションが指定されている場合は簡単なのですが、中にはこのフィルタオプションが定義されていないレポートもあります。 例えば上記は「Active Directory Server Common Library」の「AD SAMアカウントの変更」レポートですが、フィルタオプションが定義されていないので単純に「検索」ボタンを押すと全ての種類のクラス、全てのオブジェクトが表示されてしまいます。 この状態から適切なオブジェクトを選択するのにはきちんとSCOMの「クラス」「オブジェクト」の概念を理解しておく必要があります。急がばまわれ…で、きちんとオブジェクト指向の考え方を学ぶのが一番いいと思いますが、取り急ぎ…ということであれば、レポートの説明をきちんと読めば大抵何を選べばよいのか書いてあります。 この例であれば「Active Directoryドメインコントローラーコンピューターの役割」の種類のオブジェクトを選択すれば良いと書いてあります。 きちんとフィルタオプションを定義してあげれば、その後は検索ボタンを押すだけで目的のオブジェクトのみが出てきます。 あとは、必要なものを追加してあげれば良いです。 ※違うレポートの画面になってますが、これは「AD SAMアカウントの変更」イベントが記録されておらず、レポートが出力されなかったためです。出力が出る別のレポートにしてありますが、やってることは全く同一です。 なお、レポートのパラメータは「パラメータエリアの表示/非表示」のボタンで表示を切り替えられます。 一度レポートを実行すると、パラメータエリアは自動的に非表示になるのですが、オブジェクトを追加/削除したい場合、期間を変更したい場合などには再度パラメータエリアを表示してそこからの変更が便利です。私ははじめこれに気が付かず、何度もレポート新規に実行して無駄な時間を過ごしていました…。

March 17, 2015 · 1 min · 胡田昌彦

Exchange Server 2013の管理パックに含まれるレポートが動作しない(SQL Server Reporting Servicesのデバッグ)

Operations Manager用のExchange Server 2013管理パックに含まれるレポートが動作せず、レポートを開始しようとすると「レポートを初期化できません。」というエラーが出てしまう事象が発生しました。色々と調査をして原因にたどり着きとりあえず回避はできたのですが、トラブルシューティング中にかなり紆余曲折してしまったので、「わかっている今ならこうやってすんなり対処できるはず」というものを同じような問題に遭遇する人や将来の自分のためにまとめておきます。 発生した事象 SCOM上のレポートにてExchange Server 2013関連のレポートを実行しようとすると、以下のエラーが出てしまいます。 日付: 2015/02/09 17:12:33 アプリケーション: Operations Manager アプリケーションのバージョン: 7.1.10226.0 重要度: エラー メッセージ: レポートを初期化できません。 System.ArgumentNullException: 値を Null にすることはできません。 パラメーター名: GroupList 場所 Microsoft.EnterpriseManagement.Mom.Internal.UI.Reporting.Parameters.Controls.Monitoring.ReportMonitoringObjectXmlEditorBase.LoadValues(ReportParameterInfoCollection reportParameters) 場所 Microsoft.EnterpriseManagement.Mom.Internal.UI.Reporting.Parameters.ReportParameterBlock.LoadValues() 場所 Microsoft.EnterpriseManagement.Mom.Internal.UI.Console.ReportForm.SetReportJob(Object sender, ConsoleJobEventArgs args) レポーティングサービスのWebサイトからの確認 SCOM上でのレポート実行では情報に乏しいので、実態であるレポーティングサービスのWebからも確認します。 同様にエラーになります。「ReportRules」が選択式にも関わらず、何も値が入っていないのが直接の原因であることがわかりました。 ほぼすべてのレポートで同様の状態になっており、問題の原因はリンクされているレポートで発生していることもわかりました。 様々なレポートのリンク先となっているレポートにて問題を確認します。 ReportRulesが選択式にも関わらず値が入っていないためにエラーになっているのは同じ状況です。 レポートのプロパティより、ReportRulesはクエリベースのパラメータであることがわかります。Webからは確認できないので、レポートビルダーにてレポートを開き確認していきます。 レポートビルダーでのレポート定義の確認 実際にレポートビルダーでレポートを開いて確認していくと、以下のようにデータソースへの接続ができずに失敗してしまいます。 なので、前準備として、一時的にData Warehouse Mainの接続設定を変更します。 もともとは以下のように「資格情報は必要ありません」となっています。 これを以下のように「レポートサーバーに保存され、セキュリティで保護された資格情報」に変更します。 ※この接続設定変更部分はあまりよくわからずに実行している点があります。実際にこれでレポートビルダー上で資格情報を要求され、うまく確認可能になるのですが、もう少し深い理解が必要だと感じています。 準備ができたので、レポートを開いていきます。 レポートのURLは、「Reporting Services構成マネージャー」から確認できますので、そこを開きます。 問題となっているパラメータの設定を確認します。 「Exchange2013_Report_GetRelatedRules」というデータセットから値を取得していることがわかりました。次は「Exchange2013_Report_GetRelatedRules」データセットを確認します。 ...

February 11, 2015 · 2 min · 胡田昌彦

System Center Configuration Manager クライアントプッシュインストールのReporting Servicesでの結果確認方法

SCCM 2012 SP1にてクライアントプッシュインストールを複数台のコンピューターに対して行いました。結果はccm.logに出力されている…のですが、ログを追うのも辛いですし、コンソールに表示されるのも時間がかかる…。何か他にいい方法は無いものかと探していたら、レポートの中にいいものがありました。 特に、このレポートはリアルタイムでSQL Databaseを直接叩いて結果を取得しているようで、ついさっき行ったオペレーションがすぐに反映されてくるのでとてもいいです。これでうまくいっていないものだけ個別にログを追いかけることができそうです。

April 11, 2013 · 1 min · 胡田昌彦

System Center Configuration Manager クライアントプッシュインストールのReporting Servicesでの結果確認方法

SystemCenter関連の記事は以下のブログに移行しました。 - [System Center Blog](http://ebi.dyndns.biz/systemcenter/) この記事は以下の記事に移行しました。 - [System Center Configuration Manager クライアントプッシュインストールのReporting Servicesでの結果確認方法 | System Center Blog](http://ebi.dyndns.biz/systemcenter/2013/04/11/system-center-configuration-manager-%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E3%83%97%E3%83%83%E3%82%B7%E3%83%A5%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%AEreporting-s/)

April 11, 2013 · 1 min · 胡田昌彦

Reporting ServicesとDatabaseを別サーバーに構成する場合の接続アカウント

Reporting ServicesのサーバーとDatabaseを別々のサーバーに配置するように構成した場合に以下のエラーが発生しました。 “System.Data.SqlClinet.SqlException: Windows NT ユーザーまたはグループ’(null)’が見つかりませんでした。名前を再確認してください。” 下記ドキュメントによると、リモートデータベースに対してもサービスアカウントで構成可能と書かれており、原因は不明です。 If you configure the database connection to use the service account, the account must have network permissions if the report server database is on a remote computer. Do not use the service account if the report server database is on a different domain, behind a firewall, or if you are using workgroup security instead of domain security. Use a SQL Server database user account instead. ...

January 30, 2013 · 1 min · 胡田昌彦

SCOM 2012 SP1 Betaインストール

SystemCenter Operation Manager 2012 SP1 Betaをインストールしてみました。またしてもいくつかハマりどころがありましたので紹介します。 基本的にはインストーラーにしたがって進めればいいのですが…前提条件がかなり多く、それぞれインストーラーが教えてくれるのですが、結構面倒くさくわかりにくかったです。例の.NET Framework 3.5の代替パスを指定したインストールも必要です。正式版がでたら前提条件をインストールするPowerShellスクリプトでも用意しないとな、と思いました。 (2013/01/18追記)以下に機能の追加コマンドだけまとめておきました。 - SystemCenter Operations Manager(SCOM) 2012 SP1インストールの前提条件をクリアするPowerShellコマンドレット で、いつもどおり問題が…。インストーラーの言うとおりに役割、機能を追加してもASP.NET 4.xまわりのエラーが消えません。 きちんとASP.NET 4.5を導入した上で、制限を「許可」に設定しても、このチェックをくりあできません。 検索してみると、以前のバージョンからよく引っかかる問題のようで多数ヒットします。 System Center Operations Manager 2012 Beta – Installation | Gefufna ですが、情報はSCOM2012 on Windows Server 2008ばかり。そして、Windows Server 2012では「aspnet_regiis.exe -r」コマンドは使えないようです。 そもそもIISマネージャーには登録されているので、状況が異なるようです。というか前提条件のチェックプログラムのバグのように見えます。 下の方の「ASP.NET 4.x Registration Check」のエラーに関してもASP.NET 4.5をインストール済みなので、こちらも同様ですね・・・。 何をやってもだめなので一度諦めました。そして再度インストーラーを起動すると・・・。 前提条件をクリアできちゃいました・・・。ずっと「Verify Prerequisites Again」ボタンを押して再評価していたのですが、この2つの項目に関しては一度インストーラーを終了させないとダメだったみたいです・・・。またしても無駄に時間を過ごしてしまいました・・・。(なんだかんだで1時間くらいは無駄に…) やっと進みましたが、次はSQL Serverの指定でつまづきます。 SQL Serverに接続できません・・・。 これは、×の上にマウスフォーカスを当てることで、エラーの内容を確認できました。 「Full-Text Search」コンポーネントが必要とのことなので既存のSQLサーバーに機能を追加します。 これでインストール出来るようになりました。 ところで、評価環境なので、適当にコンポーネントを配置してしまっているのですが、分散型で展開するにはちょっと頭をひねらないといけないようです。 http://technet.microsoft.com/ja-jp/library/hh298610.aspx 分散型管理グループでは、Operations Manager の各機能が複数のサーバーに分散されます。たとえば、オペレーション データベースを 1 台目のサーバーにインストールし、Web コンソールを 2 台目のサーバーに、レポート サーバーをさらに別のサーバーにインストールできます。 このように書かれているので全部自由に配置出来るように読めますが、実際には以下のように組み合わせに制限があるようです。 ...

November 30, 2012 · 1 min · 胡田昌彦

SCOM 2012 SP1 Betaインストール

SystemCenter関連の記事は以下のブログに移行しました。 - [System Center Blog](http://ebi.dyndns.biz/systemcenter/) この記事は以下の記事に移行しました。 - [SCOM 2012 SP1 Betaインストール | System Center Blog](http://ebi.dyndns.biz/systemcenter/2012/11/30/scom-2012-sp1-beta%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB/)

November 30, 2012 · 1 min · 胡田昌彦