﻿========================================================================

SharePoint バックアップアプリケーション

Exceed One Backup
             for SharePoint and OneDrive

製造・販売　：　株式会社エクシード・ワン

========================================================================

このファイルでは『Exceed One backup』（以下、本製品といいます）の
利用方法およびその他の重要な情報について説明します。
最新情報については株式会社エクシード・ワン（以下、当社といいます）
ウェブサイトを参照ください。


------------------------------------------------------------------------
目次
------------------------------------------------------------------------

１．アプリケーション概要
２．動作環境
３．製品の種類
４．使用許諾契約
５．利用方法
６．問い合わせ・購入方法
７．その他
８．更新履歴


------------------------------------------------------------------------
１．アプリケーション概要
------------------------------------------------------------------------

本製品はSharePoint Online と OneDrive for Business のデータをファイル
単位でローカルストレージにバックアップします。

【機能概要】
 
 ・サイト内のドキュメント（ファイル）およびデータベース情報の保存
 ・サイト構成と同じ構造で保存先にフォルダーを作成し保存
 ・データベースの内容はXMLファイルとして保存



------------------------------------------------------------------------
２．動作環境
------------------------------------------------------------------------
SharePoint
　・SharePoint Online (Office365)

OS
　・Microsoft Windows 10（21H2 以降）, 11
　・Microsoft Windows Server 2022 以降（.NET Framework 4.8.1 が必要なため、Windows Server 2016・2019 は対象外）

.Net Framework
　・.NET Framework 4.8.1


------------------------------------------------------------------------
３．製品の種類
------------------------------------------------------------------------

本製品は機能およびライセンス形態により以下の種類（エディション）があります。

【フリーエディション】
　・　無償でご利用いただけます。
　・　機能に一部制限があります。

【プロフェッショナルエディション】
　・　有償版です。
　・　下記を除く本製品の全ての機能が利用できます。
　　　　対象外サイト：個人サイト・グループサイト

【プロフェッショナル プラス エディション】
　・　有償版です。
　・　本製品の全ての機能が利用できます。


------------------------------------------------------------------------
４．使用許諾契約
------------------------------------------------------------------------

本製品の使用にあたっては、別紙『ソフトウェア使用許諾契約書』に
同意いただく必要があります。
同意いただけない場合は本製品を使用できません。
なお、フリーエディションに限り以下の個別条件を適用します。

【フリーエディションの個別条件】
機能を制限した本製品の「フリーエディション」については無償での使用を
許諾します。


------------------------------------------------------------------------
５．利用方法
------------------------------------------------------------------------

【インストール】
　・適当なフォルダーを作成し、解凍してできたフォルダーを任意の
　　場所にコピーしてください。
　・バックアップ対象とするSharePointに本製品のアクセス権を設定して
　　ください。
　・Azure ADにアプリケーション登録とアクセス権を設定してください。

【アンインストール】
　・SharePointから本製品のアクセス権限を削除してください。
　・Azure ADからアプリケーションを削除してください。
　・ライセンス登録されている場合は、メニューより「登録解除」から
　　ライセンスを解除してください。
　・インストール時に作成したフォルダーごとファイルを削除してください。

【証明書のパスワード】
　・メニューの「証明書作成」で作る証明書（Certs\EOB.pfx）は、この PC 専用のパスワードで
　　守ります。パスワードは自動で作り、Windows の機能（DPAPI）で暗号化して
　　Certs\EOB.pfx.key に置きます。別の PC にコピーしても使えないため、別の PC では
　　証明書を作り直して Entra ID に登録してください。
　・前の版で作った証明書は、全製品で共通のパスワードで守られています。次のコマンドで、
　　この PC 専用のパスワードに守り直せます（鍵は同じなので Entra ID の登録はそのままです）。
    EOBCmd.exe /c:EOBBatch.xml /protectcert

【復元（プロフェッショナル以上）】
　バックアップしたファイルやリストを、コマンドで SharePoint に戻せます。
　元の場所のほか、別のライブラリ・フォルダーや、新しいライブラリにも戻せます。

　EOBCmd.exe /c:設定ファイル /restore:戻すフォルダー /to:戻す先の URL
    [/ifexists:skip|overwrite|rename] [/dryrun | /yes] [/create] [/l:ログファイル]

　　/restore:  バックアップ先の中の、戻したいライブラリ・フォルダー・リストのフォルダー
    /to:       戻す先の SharePoint のライブラリ・フォルダー・リストの URL
    /ifexists: 同じ名前のファイルがあるとき
               skip（既定）飛ばす / overwrite 上書き / rename 「名前 (1).拡張子」で置く
    /dryrun:   確認だけ。何を戻すかを表示し、SharePoint は変えません
    /yes:      確認せずに実行します（タスク スケジューラーなどから使うとき）
    /create:   戻す先のライブラリ・フォルダー・リストがなければ作ります

　・/yes を付けないと、先に計画（作るフォルダー、新規・上書き・別名・スキップの
    ファイル数、上書きするファイルの一覧）を表示し、「復元を実行しますか？ (Y/N)」と
    聞きます。Y 以外を入力したときや、入力できないときは中止します（終了コード -41）。
　・作成日時・更新日時を戻します。同じサイト コレクションに戻すときは、作成者・
    更新者も戻します（その人がサイトにいる場合）。
　・リストは、戻す先がリストのとき、保存した XML からアイテムと添付ファイルを
    作り直します。戻す先のリストがなければ、/create でリストと列も作ります（カスタム
    リストだけ。列の定義 _def_<リスト名>.xml は、この版からバックアップで保存します）。
　・上書きしたファイルの前の内容は、バージョン履歴が有効なら SharePoint に残ります。

　例（まず確認だけ → 確認して実行）
    EOBCmd.exe /c:EOBBatch.xml "/restore:c:\Backup\contoso_sharepoint_com\sites\Sales\Shared Documents"
               /to:https://contoso.sharepoint.com/sites/Sales/Restore /dryrun
    EOBCmd.exe /c:EOBBatch.xml "/restore:c:\Backup\contoso_sharepoint_com\sites\Sales\Shared Documents"
               /to:https://contoso.sharepoint.com/sites/Sales/Restore /create
    （例は読みやすいように折り返しています。実際は 1 行で入力してください）


【サポート用ログ】
　問い合わせのときに、直近のログと環境情報をまとめた zip を送れます。
　テナント名・サイト URL・ユーザー名・ID などの秘密情報は自動で仮名に置き換えます。
　仮名と実際の値の対応表（EOBLogMap.txt）は zip には入らず、お客さまの PC にだけ保存します。

　コマンド
    EOBCmd.exe /c:設定ファイル /supportlog
    EOBCmd.exe /c:設定ファイル /supportlog:出力先のパス.zip

　画面版は、ヘルプ メニューの「サポート用ログを作成...」から使えます。
　サインインしてから作ると、マスクの精度が上がります。


　それぞれの具体的な設定方法はマニュアルを参照してください。


------------------------------------------------------------------------
６．問い合わせ・購入方法
------------------------------------------------------------------------
本製品に関するお問い合わせ、ライセンスの購入方法などについては
当社ウェブサイトおよび製品URLを参照ください。

製造・販売　：　株式会社エクシード・ワン

【当社ウェブサイト】
http://www.exceedone.co.jp/

【製品URL】
http://www.exceedone.co.jp/eob/


------------------------------------------------------------------------
７．その他
------------------------------------------------------------------------

本文中の会社名や商品名は各社の商標または登録商標です。


------------------------------------------------------------------------
８．更新履歴
------------------------------------------------------------------------
2015/02/04  ver 1.0.0
・リリース

2015/03/25  ver 1.0.0.1
・表示の不具合を修正

2015/05/07  ver 1.0.0.2
・入力値から空白文字を削除する処理を追加
	
2015/06/12  ver 1.5.0
・バッチ実行機能を追加
・自動取得モードを追加

2015/08/26  ver 1.6.0
・プロフェッショナル プラス エディションを追加
・"SharePoint 管理センター"がないプランの対応を追加

2016/03/01  ver 1.7.0
・グループのドキュメントライブラリに対応

2016/06/24  ver 1.7.1
・ダウンロード処理を最適化
・260文字以上のパス名に対応
・2GB以上のファイルに対応

2017/01/30  ver 1.7.2
・シングルクーテーションが含まれているファイル名に対応

2018/11/28  ver 1.7.3
・シャープとパーセントが含まれているファイル名に対応

2020/04/22  ver 1.7.4
・先進認証対応(SharePointOnlineCredentials --> AccessToken)

2021/07/02  ver 1.7.5
・TLS1.1/1.2に対応 ※NET Framework 4.6.0に変更(TLS 1.1 / TLS 1.2 に対応済み)

2025/10/31  ver 2.0.1
・認証を証明書認証に変更
	変更前：Microsoft Graph(Authorization Code + PKCE フロー)、SharePoint(Azure Access Control Services (ACS))
	変更後：(Client Credentials フロー(証明書認証)) ※Client Secretは、SharePointで使用できないため、証明書に変更しました。
・.Net Framework 4.8.1に対応(.NET Framework 4.6.0からバージョンアップ))

2026/07/17  ver 2.0.2
・処理速度の改善とタイムアウトによる異常終了の対策を実施しました。
	- アクセストークンの取得方法を最適化しました。
	  従来はファイル1件ごとにアクセストークンを取得していたため、大量のファイルを
	  含むサイトでは処理速度の低下やタイムアウト（「タスクが取り消されました」）による
	  異常終了が発生する場合がありました。サイト単位でトークンをキャッシュして再利用
	  するように変更し、この問題を改善しました。
	- ファイルダウンロード時のHTTP通信にタイムアウト（各10分）を明示的に設定しました。
	  大容量ファイルのダウンロードが既定のタイムアウト（100秒）で中断される問題を
	  防止します。
	- SharePoint Online のアクセス制限（スロットリング：HTTP 429/503）や一時的な通信
	  エラーが発生した場合、自動的に一定時間待機してリトライするようにしました。
	  サーバーから待機時間（Retry-After）が指定された場合はその指示に従います。
	  リトライしても回復しないファイルは、そのファイルのみスキップしてファイル名を
	  ログに記録し、処理を継続します（1ファイルの失敗で全体が止まりません）。
・ログ出力を強化しました。
	- エラーで異常終了した際、原因調査に必要な詳細情報（例外の種類・メッセージ・
	  HTTPステータス・内部例外・スタックトレース）を実行ログ(EOBLogs\EOBLog_yyyymmdd_hhmmss.txt)へ
	  出力するようにしました。この詳細エラーログは常時出力されます。
	- 処理件数や経過時間などのパフォーマンス情報を定期的に出力する機能を追加しました。
	  （後述の「パフォーマンスログ」を参照）

	【パフォーマンスログ（オプション）】
	・ログ出力量が増えるため、既定では無効です。
	・有効にすると、以下の情報がログ(EOBLogs\EOBLog_yyyymmdd_hhmmss.txt)に出力されます。
		- 一定間隔（約60秒ごと）の処理進捗
		  例) [PERF] Progress: Items=1,234, Files=567, Errors=0, Elapsed=00:12:34
			  Items  … 処理したデータベース(リスト)アイテム件数
			  Files  … ダウンロードしたファイル件数
			  Errors … エラー件数
			  Elapsed… 経過時間
		- ファイルごとのダウンロードサイズと所要時間
		  例) [PERF] Download: 1,048,576 bytes, 320 ms : (保存先ファイルパス)
	・有効化の方法：
	  設定ファイル(EOBConfig.xml / バッチ用のXML)に以下のタグを追加してください。
		<PerfLog>true</PerfLog>
	  無効にする場合は false を指定するか、タグを削除してください（既定は無効）。
	  ※メイン画面の「パフォーマンスログを出力する(EOBLog.txt)」チェックボックスからも
		有効／無効を切り替えできます（バックアップ設定の保存時に EOBConfig.xml に反映されます）。
	  ※メイン画面の「並列度」で、1～4を選択できます。標準値は2です。

	【ログの出力先】
	・ログファイルは、EOB.exe(本体プログラム)と同じフォルダーの EOBLogs フォルダーに出力されます。
		- 実行ログ／進捗情報／エラー詳細 … EOBLogs\EOBLog_yyyymmdd_hhmmss.txt
		- デバッグ詳細(デバッグモード有効時のみ) … EOBLogs\EOBDebug_yyyymmdd_hhmmss.txt
	・進捗情報やエラーメッセージは、画面上(バッチ実行時はコンソール画面)にも
	  表示されます。
	・エラー発生時の詳細情報は、画面には表示されず EOBLogs\EOBLog_yyyymmdd_hhmmss.txt にのみ記録されます。
	・メイン画面の「古いログを削除する」チェックボックスを有効にすると、EOBLogs フォルダー内の
	  30日より古いログ(EOBLog_*.txt / EOBDebug_*.txt)を自動削除します（既定は無効です）。
	  保持日数は 0～9999 日で設定できます。0 は無期限（削除しない）です。

	【性能検証結果（社内測定）】
	・測定日：2026/07/27
	・測定条件：同一対象（Items=3,495 / Files=3,449）、Errors=0
	・実測結果（Elapsed）：
		- 並列処理数 1：00:05:06
		- 並列処理数 2：00:02:46
		- 並列処理数 4：00:02:39
	・比較：
		- 並列処理数4は、並列処理数1に対して約48.0%短縮
		- 並列処理数4は、並列処理数2に対して約4.2%短縮
	※ 上記は ver 2.0.3 で修正した「同時通信数が2に制限される」不具合が残った状態での
	  測定結果です。並列処理数2→4の短縮が4.2%にとどまっているのはこのためです。
	  修正後の測定結果は ver 2.0.3 の項を参照してください。

2026/07/29  ver 2.0.3
・SharePoint のリスト情報取得時のタイムアウトによる異常終了に対策しました。
	- リスト情報・アイテム情報を取得する通信の待ち時間を延長しました。
	- リスト取得処理でタイムアウトが発生した場合、自動的に再試行するようにしました。
	  再試行回数は最大3回で、一定時間待機した後、接続情報を再生成して再実行します。
	- 1回の通信で取得する件数を抑制し、応答が重くなりすぎることを防止しました。
	- 再試行しても取得できなかった対象のみをSKIPとして記録し、処理全体は継続します。
	  （1件の失敗でバックアップ全体が停止しません）
・並列処理が効かない不具合を修正しました。
	- SharePoint への同時通信数が内部的に「2」に制限されていたため、並列処理数を3以上に
	  設定しても処理時間がほとんど短縮されない状態でした。この制限を解除し、設定した
	  並列処理数がそのまま通信に反映されるようにしました。
	- あわせて、ファイルダウンロード時のメモリ確保方法、ログファイルへの書き込み方法、
	  および画面の履歴表示を見直し、処理中の負荷を軽減しました。
	  ※ログの内容・出力先はこれまでと変わりません。
・タイムアウト等のエラー発生時に、ログおよび画面の履歴エリアへエラー種別・内容・発生箇所を
  わかりやすく表示するように改善しました。
・メイン画面およびバージョン画面のタイトルにバージョンを表示するようにしました。
・パフォーマンスログの出力内容を追加しました。
	- SharePoint からのリスト情報取得(CSOM)1回あたりの所要時間を出力します。
	  例) [PERF] Query[T10]: 250 ms : GetListFiles LIST ID: xxxxxxxx-xxxx-...
	- ダウンロードの出力に処理スレッド番号を付加しました。
	  例) [PERF] Download[T10]: 1,048,576 bytes, 320 ms : (保存先ファイルパス)

	【性能検証結果（社内測定）】
	・測定日：2026/07/29
	・測定条件：同一対象（Items=3,495 / Files=3,449）、Errors=0
	・実測結果（Elapsed）：
		- 並列処理数 1：00:06:30
		- 並列処理数 2：00:03:25
		- 並列処理数 4：00:02:30
	・比較：
		- 並列処理数4は、並列処理数1に対して約61.5%短縮
		- 並列処理数4は、並列処理数2に対して約26.8%短縮
	※ 並列処理数は1～4の範囲で設定でき、範囲外の値は自動的に補正されます。
	  設定を省略した場合は2で動作します。
	※ 並列処理数を大きくすると SharePoint 側の同時アクセス制限(HTTP 429)を受けやすく
	  なります。制限を受けた場合は自動的に待機・再試行するため処理は継続しますが、
	  環境によっては2のほうが安定する場合があります。

	【今後の改善予定（ver 2.0.5 以降）】
	・上記の測定では、SharePoint からリスト情報を取得する通信(136回・合計約33秒)が
	  処理全体の約2割を占めていました。この通信中はファイルのダウンロードが待機状態と
	  なるため、次に取得する情報を先読みする方式(プリフェッチ)の導入を検討しています。
	※ 現時点での検討内容であり、実装時期・内容をお約束するものではありません。

2026/07/31  ver 2.0.4
・リスト(カスタムリスト等)の添付ファイルがバックアップされない不具合を修正しました。
	- 添付ファイルのダウンロード先アドレスの組み立てで区切り記号("/")が重複しており、
	  SharePoint 側が別の場所として解釈するため、ファイルが存在していても
	  「404 見つかりません」となり SKIP されていました。
	  例) .../Attachments/169//(ファイル名)  ※本来は .../Attachments/169/(ファイル名)
	- ドキュメントライブラリ内のファイル、およびリストのアイテム情報(一覧データ)は
	  影響を受けません。本事象はリストの「添付ファイル」のみに発生していました。
	※ ver 2.0.3 以前で取得したバックアップデータには、リストの添付ファイルが含まれて
	  いない可能性があります。本バージョン適用後に改めてバックアップを実行し、
	  添付ファイルが保存されることをご確認ください。
・フリーエディションで、エラー件数と SKIP 一覧が実際の2倍になる不具合を修正しました。
	- ダウンロードに失敗して保存されなかったファイルに対しても容量集計がサイズを
	  取得しようとしていたため、2件目のエラーとして計上されていました。
	  あわせて、失敗原因とは無関係な FileNotFoundException がログに記録されて
	  いました。
	- 保存されなかったファイルを容量集計の対象から除外するようにしました。
	  ダウンロードに失敗したファイルは、フリーエディションの容量上限の集計対象から
	  も外れます。
	※ プロフェッショナルエディションおよびプロフェッショナル プラス エディションでは
	  発生しません。

	【動作確認結果（社内テスト）】
	・確認日：2026/07/31
	・テストデータ：カスタムリストに以下の4アイテムを用意
		- アイテム01：添付1件（日本語ファイル名）
		- アイテム02：添付3件
		- アイテム03：添付なし
		- アイテム04：添付1件（半角スペース・記号を含む名前）
		  例) file +plus 'apos (paren) ,comma.txt
	  ※ SharePoint の仕様により、リストの添付ファイル名に「#」「%」は使用できないため
		テスト対象から除外しています。
	・確認結果（同一サイト・同一条件で実行）
							ver 2.0.3	ver 2.0.4
		添付ファイルの保存件数	  0件		  5件
		エラー件数(Errors)		 10件		  0件
		SKIP件数				 10件		  0件
		アイテム件数(Items)		643件		643件
		ファイル件数(Files)		624件		624件
	・ver 2.0.3 では添付ファイルが1件も保存されず、ログに
	  「Attachments/(アイテムID)//(ファイル名)」に対する404が記録されました。
	・ver 2.0.4 では計5ファイルがすべて保存され、404およびエラーは発生しませんでした。
	  添付なしのアイテムには Attachments フォルダーが作成されないことも確認しています。
	・Items/Files が両バージョンで同一であり、添付ファイル以外の動作に影響がないことを
	  確認しました。
	・フリーエディションとプロフェッショナルエディションの双方で実行し、いずれも同じ
	  結果となることを確認しました。
	  ※ 上記の「エラー件数10件」はフリーエディションでの値です。二重計上によるもので、
		プロフェッショナルエディションでは同じ状態でも5件と表示されます。

2026/11/04  ver 2.0.6
・かんたん復元：バックアップしたファイルやリストを、画面から SharePoint に戻せるようになりました。
	- メニューの「復元」→「SharePoint へ復元」から、復元ダイアログを開きます。
	- 戻すフォルダー・戻す先の URL・同じ名前のファイルがあるときの扱い（飛ばす・上書き・
	  変更があれば上書き・別名）を選べます。
	- 「参照」ボタンで、保存先の中からサイトやライブラリを一覧で選べます（バックアップ一覧ブラウザ）。
	- 「確認だけ」（ドライラン）で、実際に書き込まずに復元の内容を確かめられます。
	- 復元中は進捗ダイアログに件数・経過時間を表示し、途中で中止もできます。
	- リストのアイテムも復元できます（カスタムリスト。作成日時・更新日時・作成者・更新者を元どおりに）。
	- リストの列の定義がなければ、バックアップから自動で作成します（/CREATE オプション）。
	- 5,200 件のリストを約 2 分 17 秒、455 ファイルを約 2 分 40 秒で復元（並列 4、社内測定）。
	  ※ プロフェッショナル エディション以上の機能です。フリー エディションではお使いいただけません。
・バックアップの高速化：2 回目以降のバックアップが大幅に速くなりました。
	- 前回から変わっていないリストは読み込みを飛ばします（約 95% 短縮）。
	- 変わったリストは、変わったアイテムだけを読みます（変更トークン方式）。
	- 添付ファイルの一覧をアイテム取得時にまとめて取ります（往復の回数を削減）。
	- 社内測定（リスト 8・アイテム 5,690・ファイル 460）：1 回目 38 秒 → 変更なし 2 秒、一部変更 4 秒。
・画面のモダン化：Segoe UI フォント、フラットボタン、薄い配色に変更しました。
	- 高 DPI（125%・150%）で文字やコントロールがぼやけない・はみ出さないようにしました。
・ツリーの検索：サイト名・リスト名をインクリメンタル検索で絞り込めます。
・サイト種類の選択：一般・OneDrive・グループを選んで読み込めます。不要な種類を外すと読み込みが速くなります。
・サイト一覧のキャッシュ：前回のサイト一覧を覚えておき、起動時の待ち時間を短縮します。
・ログの改善：
	- ログレベルを「標準・詳細・調査用」の 3 段階に統一しました。「次の 1 回だけ詳細」も使えます。
	- 1 行の書式を統一し（日時・レベル・スレッド ID・メッセージ）、バックアップ終了時にまとめを出力します。
・証明書のパスワードを PC ごとのランダムなパスワードに変更しました（DPAPI で保護）。
	- 前の版の証明書はそのまま使えます。ログに守り直しの案内が出ます。
・設定メニューから「接続設定」を削除しました（「取得」ボタンから接続できます）。
・証明書が見つからない場合やパスワードが合わない場合に、分かりやすい案内メッセージを表示します。
・ベトナム語の画面に対応しました（設定 → 言語 → Tiếng Việt）。
・バッチ（EOBCmd）の /L: オプションが効かない不具合を修正しました。

2026/11/02  ver 2.0.5
・配布するファイルを減らしました（118 個 → 12 個）。
	- これまで EOB.exe と同じフォルダーに置いていた DLL（約 70 個）と日本語のリソース
	  (ja\EOB.resources.dll) を、EOB.exe の中に入れました。
	- サインイン用の Microsoft.Identity.Client.NativeInterop.dll と runtimes フォルダーは、
	  これまでどおりファイルのまま入っています。
	- 機能・設定ファイル・ログはこれまでと変わりません。前の版のフォルダーに上書きする
	  場合は、古い DLL が残っていても動作します（新しいフォルダーに置き直すことを推奨します）。
・EOB.exe と EOBCmd.exe にコード署名（株式会社エクシード・ワンの電子署名）を付けました。
・EOBCmd.exe のバージョンを本体と同じ 2.0.5 にしました（これまでは 1.7.5 のままでした）。

[EOF]