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 |