DFSRがちゃんと動作しているかどうかは、dfsrdiagのPropagationTestにゃんかで調べることが出来るが、微妙に胡散臭いので愚直でシンプルにゃ方法でテストしてみる。
dfsr_test_dir.lst
\\server1\share\home1\user100
\\server2\share\home1\user100
\\server3\share\home1\user100
----
\\server1\share\home2\user101
\\server2\share\home2\user101
\\server3\share\home2\user101
----
dfsr_test_list.bat
@echo off
for /f "usebackq delims=" %%a in (`type "%~1"`) do call :sub1 "%%a"
goto :EOF
:sub1
if "%~1"=="----" (
call :sub2 "%~1"
) else (
call :sub3 "%~1"
)
exit /b
:sub2
@echo %str%
set str=
exit /b
:sub3
set str=%str% "%~1"
exit /b
dfsr_test.bat
@echo off
for /f "usebackq delims=" %%d in (`call dfsr_test_list.bat dfsr_test_dir.lst`) do call :pretest %%d
for /f "usebackq delims=" %%d in (`call dfsr_test_list.bat dfsr_test_dir.lst`) do call :test %%d
goto :EOF
:pretest
@echo pretest : %1
if not exist "%~1" (@echo %1 not exist & pause)
if exist "%~1\test_*" dir /s /b "%~1\test_*"
shift
if not "%~1"=="" goto :pretest
exit /b
:test
for %%a in (%*) do (call :test_sub1 %%a %*)
exit /b
:test_sub1
set write_dir=%~1
shift
set dirname=test_%random%_%random%_%random%_%random%_%random%_%random%_%random%
set c=md "%write_dir%\%dirname%"
%c% || (@echo ERR : %c% & pause)
@echo Wrote : %write_dir%
:loop
set rep_dir=%~1
call :echo2 "Rep : %rep_dir% : "
:loop_wait
if not exist "%rep_dir%\%dirname%" ping -n 2 localhost >NUL
if not exist "%rep_dir%\%dirname%" call :echo2 "."
if not exist "%rep_dir%\%dirname%" goto :loop_wait
@echo ok
shift
if not "%~1"=="" goto :loop
set c=rd "%write_dir%\%dirname%"
%c% || (@echo ERR : %c% & pause)
exit /b
:echo2
setlocal
set n=%~1
set /p <NUL dummy=%~1
endlocal
exit /b
と、まぁ見りゃ分かるが、テストしたい各DFSRフォルダをリストしておいて食わせると、それぞれのフォルダにダミーディレクトリを掘って、他の鯖に複製されまで待つ。これを各鯖毎に行うので、一方向しか複製されてにゃいとかいう場合も見えるはず。
ディレクトリが多いと少々時間がかかる。並列化しようか迷ったがまぁややこしくにゃるだろうからシンプルに。あと作ったダミーディレクトリは削除完了待ちしてにゃいので、DFSRが不調であれば残る可能性がある。