Exportiert die Freigaben von Server1 und kopiert auf  Server2 eine cmd-Datei, mit dem diese sofort wiederhergestellt werden können, wobei davon ausgegangen wird, dass die Pfade auf den Servern identisch sind!

Gedacht für einen Standby-Server, der die Daten von Server1 kopiert hat.

Dazu sollte auch das Script move_home_profile.cmd beachtet werden! 

@echo off
setlocal
set DEBUG=on
rem ******************************************************************
rem *** ShareExport.cmd                                            ***
rem ***                                                            ***
rem *** Exportiert die Freigaben eines Servers                     ***
rem ***                                                            ***
rem ******************************************************************
rem *** Verfasser: Juergen Etterer (DIGITAL LABS.)                 ***
rem ***                                                            ***
rem ***  Versions-Historie:                                        ***
rem ***    0.1 16.09.2004 J.Ett. Grundidee                         ***
rem ***                                                            ***
rem ******************************************************************

set STARTFILE=%~n0
rem *** WORKPATH enthält den Pfad, in dem dieses Script liegt
set WORKPATH=%~dp0
rem *** Das ERRORFLAG wird gesetzt, sobald EIN Fehler aufgetreten ist!
set ERRORFLAG=ok

call :GENTIMESTAMP
rem echo DATESTAMP:%DATESTAMP%
rem echo TIMESTAMP:%TIMESTAMP%

set SRCSRV=%1
set DESSRV=Server2
if .%SRCSRV%==. set /p SRCSRV="Servername(SRC): "

rem call :PFC1
if %ERRORFLAG% NEQ ok call :ERROROUT & goto :EOF

call :COPYSHARES

echo.
echo '%SHARESCRIPT%' erzeugt.
echo.

endlocal
pause
goto :EOF


rem -----------------------------------------------------------------------
:PFC1
if %DEBUG%==on echo [DBG] %0
if not exist %WORKPATH%..\bin\rmtshare.exe set ERRORFLAG=bin\rmtshare.exe
goto :EOF

rem -----------------------------------------------------------------------
:COPYSHARES
rem *** Erzeugt ein Script, mit dessen Hilfe die Freigaben automatisch erzeugt werden
rem set SHARESCRIPT=%WORKPATH%CreateShares_%SRCSRV%_%DATESTAMP%_%TIMESTAMP%.cmd
set SHARESCRIPT=\\%DESSRV%\D$\CreateShares_%DESSRV%.cmd
if exist %SHARESCRIPT% del %SHARESCRIPT%
echo rem *** %SHARESCRIPT% erzeugt %DATESTAMP% %TIMESTAMP% ***>>%SHARESCRIPT%
call :GETSHARES
if exist shares.tmp del shares.tmp
goto :EOF

rem -----------------------------------------------------------------------
:GETSHARES
if %DEBUG%==on echo [DBG] %0
if exist shares.tmp del shares.tmp
for /F "skip=4 tokens=1,2" %%i in ('rmtshare.exe \\%SRCSRV%') do call :CHECKSHARE "%%i" "%%j"
goto :EOF

rem -----------------------------------------------------------------------
:CHECKSHARE
if %1=="The" if %2=="command" goto :EOF
if %DEBUG%==on echo [DBG]   %0 %1 %2
set WORKSHARE=%1
if "%WORKSHARE:~2,1%"=="$" goto :EOF
if %WORKSHARE%=="IPC$" goto :EOF
if %WORKSHARE%=="ADMIN$" goto :EOF
if %WORKSHARE%=="NETLOGON" goto :EOF
if %WORKSHARE%=="SYSVOL" goto :EOF
if %WORKSHARE%=="Resources$" goto :EOF
if /I %WORKSHARE%=="%SRCSRV%.LOG" goto :EOF
if %WORKSHARE%=="print$" goto :EOF

set WORKSHARE=%WORKSHARE:"=%
echo *** %WORKSHARE% ***
rem echo %WORKSHARE%>shares.tmp
rem type shares.tmp
rem pause
call :PARSESHARE %WORKSHARE%
goto :EOF

rem -----------------------------------------------------------------------
:PARSESHARE
if %DEBUG%==on echo [DBG]   %0 %1
rem set WORKSHARE=%1
rmtshare.exe \\%SRCSRV%\%WORKSHARE%>shares2.tmp
if exist sharerights.tmp del sharerights.tmp
rem *** Holen wir mal den vollen Pfad ab...
for /F "tokens=1*" %%i in ('findstr /B /C:Path shares2.tmp') do set SHAREPATH=%%j
rem *** dann ziehen wir die Berechtigungen raus
for /F "tokens=1,2 skip=6 delims=: " %%i in (shares2.tmp) do call :EXTRACTRIGHTS "%%i" "%%j"
if exist shares2.tmp del shares2.tmp
set RIGHTS=
for /F "tokens=1,2" %%i in (sharerights.tmp) do call :BUILDGRANT %%i %%j
echo %WORKPATH%bin\rmtshare.exe \\%DESSRV%\%WORKSHARE%="%SHAREPATH%" /UNLIMITED %RIGHTS% >>%SHARESCRIPT%
if exist sharerights.tmp del sharerights.tmp
goto :EOF

rem -----------------------------------------------------------------------
:EXTRACTRIGHTS
if %1=="The" if %2=="command" goto :EOF
if %DEBUG%==on echo [DBG]     %0 %1 %2 %3 %4
set WORKUSER=%1
set WORKUSER=%WORKUSER:"=%
if "%WORKUSER:~0,13%"=="VORDEFINIERT\" set WORKUSER=%WORKUSER:~13%
if %WORKUSER%==\Jeder set WORKUSER=Jeder
set WORKRIGHTS=%2
if %WORKRIGHTS%=="<unknown" set WORKRIGHTS=READ
set WORKRIGHTS=%WORKRIGHTS:"=%
echo %WORKUSER%:%WORKRIGHTS%>>sharerights.tmp
goto :EOF

rem -----------------------------------------------------------------------
:BUILDGRANT
if %DEBUG%==on echo [DBG]     %0 %1 %2
set RIGHTS=%RIGHTS%/GRANT %1 %2
goto :EOF


:GENTIMESTAMP
rem **************************************************************************
rem *** Generiert Datum und Uhrzeit in umgekehrter Notation                ***
rem **************************************************************************
for /F "tokens=1,2 delims= " %%i in ('date /t') do call :BUILDDATESTAMP %%i %%j
for /F "tokens=1,2,3 delims=: " %%i in ('time /t') do call :BUILDTIMESTAMP=%%i %%j %%k
goto :EOF

:BUILDDATESTAMP
rem **************************************************************************
rem *** Baut das Datum zusammen (Fallunterschiedung Deutsch / Englisch)    ***
rem **************************************************************************
if .%2==. (set ANLAYSEDATE=%1) else (set ANLAYSEDATE=%2)
if .%ANLAYSEDATE:~2,1%==./ for /F "tokens=1,2,3 delims=/" %%i in ("%ANLAYSEDATE%") do set DATESTAMP=%%k%%i%%j
if .%ANLAYSEDATE:~2,1%==.. for /F "tokens=1,2,3 delims=." %%i in ("%ANLAYSEDATE%") do set DATESTAMP=%%k%%j%%i
goto :EOF

:BUILDTIMESTAMP
rem **************************************************************************
rem *** Baut die Uhrzeit zusammen (Fallunterscheidung Deutsch / Englisch)  ***
rem **************************************************************************
set TIMEHH=%1
set TIMEMM=%2
set TIMEAP=%3
if .%TIMEMM:~2,1% NEQ . set TIMEAP=%TIMEMM:~2,1%& set TIMEMM=%TIMEMM:~0,2%
if .%TIMEHH:~1,1%==.  set TIMEHH=0%TIMEHH%
set TIMESTAMP=%TIMEAP%%TIMEHH%%TIMEMM%
set TIMESTAMP=%TIMESTAMP: =%
goto :EOF

Wir nutzen Cookies auf unserer Website. Einige von ihnen sind essenziell für den Betrieb der Seite, während andere uns helfen, diese Website und die Nutzererfahrung zu verbessern (Tracking Cookies). Sie können selbst entscheiden, ob Sie die Cookies zulassen möchten. Bitte beachten Sie, dass bei einer Ablehnung womöglich nicht mehr alle Funktionalitäten der Seite zur Verfügung stehen.