SyncToy

導入

Download SyncToy 2.1 from Official Microsoft Download Center

インストール

インストールには.NET 2.0が必要です。これがインストールされていないと「This setup requires the .NET Framework version 2.0.50727. Please install the .NET Framework and run this setup again.」として、SyncToyをインストールできません。Windows 8以降、これはコントロールパネルの[Windows の機能の有効化または無効化]で[.NET Framework 3.5 (.NET 2.0 および 3.0 を含む)]を有効化することでインストールできます。Windows 8、Windows 8.1、および Windows 10 への .NET Framework 3.5 のインストール | Microsoft Learn

Microsoft Sync Framework

SyncToyをインストールするときに、

  • Microsoft Sync Framework 2.0 Core Components (x64) ENU
  • Microsoft Sync Framework 2.0 Provider Services (x64) ENU

もインストールされます。Google対抗なのか?! Microsoft Sync Frameworkの正体(1/2) - @IT 一色政彦 (2007/11/20)

使用方法

フォルダ ペアの選択

まず[Create New Folder Pair]で、同期の対象となる2つのフォルダを指定します。同期方法を[Synchronize]としない場合は左側のフォルダが基準となるため、同期方法によっては左右の指定に注意します。

対象とされたフォルダにはそれぞれ、SyncToy_***.datの名前のファイルが作成されます。フォルダ ペアを削除すると、これらのファイルも削除されます。Synctoy .dat files

フォルダ ペアの変更

指定したフォルダは変更できないため、その必要があるときにはフォルダ ペアを削除した上で、再度ペアを作成します。

同期方法の設定

方法 方向 動作
Synchronize 双方向 リネームと削除を、双方のフォルダで行う
Echo 左から右 リネームと削除を、左から右のフォルダに対して行う
Contribute リネームを、左から右のフォルダに対して行う。削除はしない

オプション

フォルダ ペアの表示下部にある[Change options]から、同期の方法を設定できます。

  • Inclusion/Exclusion (包含/除外)
    • Files to include … 包含するファイル拡張子のリスト。ワイルドカードを使用し、セミコロンで区切る。(List file extensions (e.g., "*.jpg;*.bmp") to include. Use wildcards, and separate entries with semicolons.)
    • Files to excludes
    • Exclude read-only files
    • Exclude hidden files
    • Exclude system files
    • Select subfolder … 包含、除外するフォルダをフォルダツリーで指定する。(Specify what subfolders to include. The default is to include all subfolders, but you can use this option to unselect folders that you do not want to include. )
  • Active for run all … [All Folder Pairs]での同期に含める。(If this folder pair could be part of a frequent SyncToy set of actions, such as nightly backups, select this option.)
  • Save overwritten files in the Recycle Bin … 削除または上書きされるときに、ごみ箱へ送る。(Select this option to send files that are deleted or overwritten to the recycle bin.)
  • Check file contents … 2つのファイルが同一のときに、名前、サイズ、日付に加えて、ファイルの内容も調査する。(Specify to examine file contents in addition to name, size and date to determine if two files are identical.)

処理内容の確認

[Preview]ボタンをクリックすると、どのように同期が処理されるか事前に確認できます。不要な処理は、そこで個別に解除できます。内容を確認し問題がなければ[Run]を、さもなくば[Close]でメインウィンドウへ戻ります。

処理結果の確認

同期に失敗した場合には、結果ウィンドウの左上のリンクからその詳細を確認できます。またはメインウィンドウのメニューの【File → View log】からも、ログを確認できます。このログファイルの実体は、%LOCALAPPDATA%\Microsoft\SyncToy\2.0\SyncToyLog.logにあります。

ログの設定

ログに記録する内容は、インストールフォルダ (%PROGRAMFILES%\SyncToy 2.1) にあるSyncToy.configの

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.diagnostics>
    <switches>
      <add name="SyncToyTraceLevel" value="Info" />
    </switches>
  </system.diagnostics>
</configuration>

"Info"を"Verbose"に変更することで、より詳細に取得できます。

トラブル対処法

処理の失敗

  • Exception during preview: The FileSyncProvider failed while detecting changes.」同期中にその対象のドライブをフォーマットしたときに発生します。
  • No active folder pairs to run.」同期の実行前に、その対象のフォルダのSyncToy_***.datを削除したときに発生します。
  • Folder Pair endpoint does not exist」SyncToy_***.datを削除したときに発生します。
  • Exception during run: The FileSyncProvider received an unexpected error while applying a synchronized change. Deleting file
  • Exception during run: エラー HRESULT E_FAIL が COM コンポーネントの呼び出しから返されました。

同期の失敗

原因を特定できなくてもログでエラーとなったファイルを確認できるため、問題のファイルをエクスプローラなどで手動でコピーすることで同期できます。そのときはログで対象のファイルを右クリックし、[Open Source File Location]と[Open Target File Location]でそれらのファイルの場所をエクスプローラで開けます。

別のプロセスが使用中

同期に失敗し、ログに「Error: Unknown error. プロセスはファイルにアクセスできません。別のプロセスが使用中です。 (HRESULT からの例外: 0x80070020)」と記録されることがあります。これはセキュリティソフトが原因となることがあるようです。HRESULT: 0x80070020 The process cannot be completed because the file is in use by another process

一方で「Error: Cannot read from the source file ***. プロセスはファイルにアクセスできません。別のプロセスが使用中です。 (HRESULT からの例外: 0x80070020) Copying ***」のように記録されるときは、原因は文字通りであり、エラーとなったファイルを閉じます。

アクセスできない

Error: Cannot read from the source file *** アクセスが拒否されました。 (HRESULT からの例外: 0x80070005 (E_ACCESSDENIED))

ファイルのアクセス権の問題であり、その用途によって対策を講じます。

  • 別のユーザーのファイルならば、そのユーザーのアカウントで同期を実行する。
  • 同期が必要ないファイルならば、同期の対象から除外する。
  • 同期が必要なファイルならば、アクセス権を修正する。

またはセキュリティソフトによって、アクセスが阻害されている場合もあります。

同期中に修正された

Error: The source file has been modified during the synchronization process. Item changed unexpectedly during synchronization.

エラーとなったファイルを手動でコピーします。

ネットワーク パスが見つからない

Error: Cannot write to the destination file. ネットワーク パスが見つかりません。 (HRESULT からの例外: 0x80070035)

ネットワーク経由で接続しているならば、一方または双方の接続が切断されている可能性があります。またはファイアウォールが原因の場合があるため、一時的にそれを無効化してみます。

ネットワーク名を利用できない

Error: Unknown error. 指定されたネットワーク名は利用できません。 (HRESULT からの例外: 0x80070040)

予期しないネットワーク エラー

Error: Unknown error. 予期しないネットワーク エラーが発生しました。 (HRESULT からの例外: 0x8007003B)

複数のダウンロードサイトから、まとめて検索