(view source code of sharemig.bat as plain text)
@ECHO OFF
:: Check Windows version -- Windows 2000 or later
IF NOT "%OS%"=="Windows_NT" GOTO Syntax
VER | FIND.EXE "Windows NT" >NUL
IF NOT ERRORLEVEL 1 GOTO Syntax
:: Check command line arguments -- none required
IF NOT "%~1"=="" GOTO Syntax
:: Save a list of ALL shares found on the source server
NET.EXE SHARE > "%~dp0%ComputerName%_originalshares.txt" 2>&1
:: List only the shares that should be recreated on the target server
:: Note: Remove the FINDSTR filters for VPHOME and VPLOGON
:: if Norton AntiVirus is not installed on the servers
NET.EXE SHARE | FIND.EXE /I /V " Spooled " | FINDSTR.EXE /I /V /R /B /C:"PRINT\$" | FINDSTR.EXE /I /V /R /B /C:"IPC\$" | FINDSTR.EXE /I /V /R /B /C:"ADMIN\$" | FINDSTR.EXE /I /V /R /B /C:"[A-Z]\$" | FINDSTR.EXE /I /V /R /B /C:"VPHOME" | FINDSTR.EXE /I /V /R /B /C:"VPLOGON" > "%~dp0%ComputerName%_netshares.txt"
:: Add a prompt for confirmation to the automatically generated batch files
> "%~dp0%ComputerName%_recreate_shares.bat" ECHO @ECHO OFF
>> "%~dp0%ComputerName%_recreate_shares.bat" ECHO CLS
>> "%~dp0%ComputerName%_recreate_shares.bat" ECHO ECHO.
>> "%~dp0%ComputerName%_recreate_shares.bat" ECHO ECHO You are about to recreate %ComputerName%'s shares.
>> "%~dp0%ComputerName%_recreate_shares.bat" ECHO IF /I NOT "%%ComputerName%%"=="%ComputerName%" ECHO This server is NOT the one that generated this batch file.
>> "%~dp0%ComputerName%_recreate_shares.bat" ECHO PAUSE
>> "%~dp0%ComputerName%_recreate_shares.bat" ECHO VER ^| FIND.EXE "Windows 2000" ^>NUL
>> "%~dp0%ComputerName%_recreate_shares.bat" ECHO IF ERRORLEVEL 1 (SET Grant=/GRANT:Everyone,FULL) ELSE (SET Grant=)
>> "%~dp0%ComputerName%_recreate_shares.bat" ECHO ECHO ON
> "%~dp0%ComputerName%_delete_shares.bat" ECHO @ECHO OFF
>> "%~dp0%ComputerName%_delete_shares.bat" ECHO CLS
>> "%~dp0%ComputerName%_delete_shares.bat" ECHO ECHO.
>> "%~dp0%ComputerName%_delete_shares.bat" ECHO ECHO You are about to delete all shares migrated from %ComputerName%.
>> "%~dp0%ComputerName%_delete_shares.bat" ECHO IF /I NOT "%%ComputerName%%"=="%ComputerName%" ECHO This server is NOT the one that generated this batch file.
>> "%~dp0%ComputerName%_delete_shares.bat" ECHO PAUSE
>> "%~dp0%ComputerName%_delete_shares.bat" ECHO ECHO ON
:: Read the list of shares to be migrated and generate the required batch files
FOR /F "skip=4 tokens=1" %%A IN ('TYPE "%~dp0%ComputerName%_netshares.txt" 2^>NUL ^| FINDSTR.EXE /R /B /I /V /C:"The command completed successfully\." ^| FINDSTR.EXE /R /B /V /C:" " ^| SORT') DO CALL :ReadShare %%A
:: Done
TITLE Ready
GOTO:EOF
:ReadShare
:: Display progress.
TITLE %~1
:: Retrieve the path associated with the share name and add the share to both batch files
FOR /F "tokens=1*" %%a IN ('NET.EXE SHARE %1 2^>NUL ^| FINDSTR.EXE /R /B /I /C:"Path"') DO (
>> "%~dp0%ComputerName%_recreate_shares.bat" ECHO NET.EXE SHARE %1="%%~b" %%Grant%%
>> "%~dp0%ComputerName%_delete_shares.bat" ECHO VER ^| NET.EXE SHARE %1 /DELETE
)
GOTO:EOF
:Syntax
ECHO.
ECHO ShareMig.bat, Version 1.00 for Windows 2000 / Windows Server 2003
ECHO Prepare a migration of all shares from the current server to a new one.
ECHO.
ECHO Usage: SHAREMIG.BAT
ECHO.
ECHO When run on a server, this batch file will generate 4 files:
ECHO.
ECHO %%COMPUTERNAME%%_ORIGINALSHARES.TXT text file listing ALL shares;
ECHO %%COMPUTERNAME%%_NETSHARES.TXT list of shares to be migrated;
ECHO %%COMPUTERNAME%%_RECREATE_SHARES.BAT use this batch file to recreate
ECHO the shares on the new server;
ECHO %%COMPUTERNAME%%_DELETE_SHARES.BAT undo and test batch file to delete
ECHO the migrated shares again;
ECHO.
ECHO where %%COMPUTERNAME%% is the name of the server this batch file was executed on.
ECHO Usually %%COMPUTERNAME%%_RECREATE_SHARES.BAT is the only file you'll need on the
ECHO new server; %%COMPUTERNAME%%_DELETE_SHARES.BAT is for testing purposes only.
ECHO If all else fails, use the generated text files as a reference for manual
ECHO (re)creation of the shares.
ECHO.
ECHO Written by Rob van der Woude
ECHO http://www.robvanderwoude.com
page last modified: 2024-04-16; loaded in 0.0086 seconds