Minha solução não é bonita e não usa powershell, mas eu a uso há anos para fazer exatamente o que você está tentando alcançar.
@echo off
set s1=dfsrsrvr1
set s2=dfsrsrv2
set output=%TEMP%\dfsr.txt
echo DFS Replication Backlog Report>%OUTPUT%
echo.>>%OUTPUT%
echo For each DFS replicated share, any backlog is displayed below.>>%OUTPUT%
echo The first value is the backlog from %S2% to %S1%, the second value is the reverse>>%OUTPUT%
echo.>>%OUTPUT%
echo Accounts>>%OUTPUT%
echo ========>>%OUTPUT%
dfsrdiag backlog /rgname:Accounts /rfname:Accounts /sendingmember:%S2% /receivingmember:%S1% | head -n 2 | tail -n 1 | cut -d: -f2>>%OUTPUT%
dfsrdiag backlog /rgname:Accounts /rfname:Accounts /sendingmember:%S1% /receivingmember:%S2% | head -n 2 | tail -n 1 | cut -d: -f2>>%OUTPUT%
echo.>>%OUTPUT%
blat "%OUTPUT%" -to [email protected] -server mta.example.com -f [email protected] -subject "DFS Replication Report %DATE% %TIME:~0,5%"
Depende de head
, cut
e tail
de GNU Unix Utils e blat
mailer de linha de comando .
Ele também usa o utilitário dfsrdiag
(que deve estar no seu servidor) para obter as estatísticas necessárias do serviço DFSR. No exemplo, o nome do grupo de replicação é Contas, ajuste para provar / adicionar mais grupos de replicação conforme necessário.