DFSレプリケーションと一時ファイル

みなさんこんにちは!

これは私の最初の出版物です。将来、頻繁に執筆することを望みます。

何かが正しく設計されていない場合は、正しい方法で修正します。



DFSレプリケーションの興味深い機能を扱う必要がありました。 また、問題自体は新しいものではありませんが、多くの人がそれをコーンで埋めることができます。



したがって、DFSレプリケーションが正常に構成されて動作する安定した作業環境があります。 レプリケーショングループが作成され、必要なすべてのサーバーが追加され、トポロジが正しく、スケジュールが正常で、すべてが正常です...レプリケートフォルダーに追加された新しいファイルがリモートサーバーにコピーされなくなるまで。



たとえば、 LAB-DC1LAB-FS1の 2つのサーバーしかないテスト環境を作成しました。 それぞれにフォルダーC:\ DFSRがあり 、その間で複製が行われます。



2つのテストファイルをLAB-DC1のこのフォルダーにコピーすると、1つだけが2番目のサーバーに複製されたことがわかります。



画像



なんで?





DFSレプリケーションメカニズムは、 一時属性が設定されているファイルを設計上コピーしないように設計されているためです。 fsutilコマンドを使用して、両方のファイルの属性を確認します。



not-a-temporary-file.txtファイルの属性は0x20です。





temporary-file.txtファイルの属性は0x120です:





これらの16進数のデコードは非常に簡単です。 考えられる各ファイル属性には、独自の16進値があります。 すべてのオプションは次のとおりです。

読み取り専用 0x1
非表示 0x2
システム 0x4
ディレクトリ 0x10
アーカイブ 0x20
装置 0x40
普通 0x80
仮設 0x100
SPARSE_FILE 0x200
REPARSE_POINT 0x400
圧縮された 0x800
オフライン 0x1000
NOT_CONTENT_INDEXED 0x2000
暗号化 0x4000


このリストから、 not-a-temporary-file.txtに「Archive」属性のみがあり、 temporary-file.txtには 「Archive」および「Temporary」属性があることがわかります。

また、 「一時」が設定されているすべてのファイルは、 DFSレプリケーションメカニズムを使用してレプリケートされません。



小さなPowerShellスクリプトを使用して、すべての添付ファイルおよびフォルダーからこの属性を削除するのは非常に簡単です。

Get-ChildItem C:\DFSR -recurse | ForEach-Object -process {if (($_.attributes -band 0x100) -eq 0x100) {$_.attributes = ($_.attributes -band 0xFEFF)}}
      
      







属性と出来上がりを削除してください! 「問題のある」 temporary-file.txtファイルがリモートサーバー正常にコピーされました。





「一時的な」ファイルがネットワーク内のどこから来たか-物語は沈黙しています。 どこかから来ました。 実験するために、ファイルの「一時」属性を手で設定できます。 これには、簡単なPowerShellスクリプトを使用することもできます。

 $file = Get-Item C:\DFSR\temporary-file.txt $file.Attributes = 0x120
      
      







以上で、この記事がDFSレプリケーションの作業に関連する問題の解決に役立つことを願っています。



最後に、2008年にブログでこのトピックに関する包括的な記事を公​​開してくれたCraig Landisに感謝します。



All Articles