Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

369 lines
15 KiB

@perl -x -w %0 %*
@goto :eof
#!perl
################################################################################
#
# Script begins here. Above is overhead to make a happy batch file.
#
################################################################################
use srTest;
use Cwd;
my $dev = substr(cwd(),0,2);
my $opOpt = "";
my $sfOpt = "";
#
# the command to execute
#
# Operator defintions:
# nnn: Commands to execute (can be search for)
# ! internal PERL commands to be executed silently
# ... anything else is a command to bshell
#
#
SrRun (
#link file, file relative
"1:Create link to \\lntest\\a.exe from\n \\lntest\\b.exe, file relative, no overwrite",
"!mkdir '$dev/lntest/', 0",
"!unlink '$dev/lntest/b.exe'", #make sure test files don't exist
"op $opOpt /f\\$dev\\lntest\\a.exe /dzj /pzd",
"sf $sfOpt /i0 /pf /cc /fnb.exe",
"cl /i0",
"2:Create link to \\lntest\\a.exe from\n \\lntest\\b.exe, file relative, overwrite, not allowed",
"!mkdir '$dev/lntest/', 0",
"!unlink '$dev/lntest/b.exe'",
"!crfile '$dev/lntest/b.exe'",
"op $opOpt /f\\$dev\\lntest\\a.exe /dzj /pzd",
"sf $sfOpt /i0 /pf /cc /fnb.exe",
"cl /i0",
"3:Create link to \\lntest\\a.exe from\n \\lntest\\b.exe, file relative, overwrite",
"!mkdir '$dev/lntest/', 0",
"!unlink '$dev/lntest/b.exe'",
"!crfile '$dev/lntest/b.exe'",
"op $opOpt /f\\$dev\\lntest\\a.exe /dzj /pzd",
"sf $sfOpt /i0 /pt /cc /fnb.exe",
"cl /i0",
"4:Create link to \\lntest\\a.exe from\n \\lntest\\b.dat, file relative, to unmonitored, no overwrite",
"!mkdir '$dev/lntest/', 0",
"!unlink '$dev/lntest/b.dat'",
"op $opOpt /f\\$dev\\lntest\\a.exe /dzj /pzd",
"sf $sfOpt /i0 /pf /cc /fnb.dat",
"cl /i0",
"5:Create link to \\lntest\\a.exe from\n \\lntest\\b.dat, file relative, to unmonitored, overwrite",
"!mkdir '$dev/lntest/', 0",
"!unlink '$dev/lntest/b.dat'",
"!crfile '$dev/lntest/b.dat'",
"op $opOpt /f\\$dev\\lntest\\a.exe /dzj /pzd",
"sf $sfOpt /i0 /pt /cc /fnb.dat",
"cl /i0",
"6:Create link to \\lntest\\a.dat from\n \\lntest\\b.exe, file relative, to interesting, no overwrite",
"!mkdir '$dev/lntest/', 0",
"!unlink '$dev/lntest/b.exe'",
"op $opOpt /f\\$dev\\lntest\\a.dat /dzj /pzd",
"sf $sfOpt /i0 /pf /cc /fnb.exe",
"cl /i0",
"7:Create link to \\lntest\\a.dat from\n \\lntest\\b.exe, file relative, to interesting, overwrite",
"!mkdir '$dev/lntest/', 0",
"!unlink '$dev/lntest/b.exe'",
"!crfile '$dev/lntest/b.exe'",
"op $opOpt /f\\$dev\\lntest\\a.dat /dzj /pzd",
"sf $sfOpt /i0 /pt /cc /fnb.exe",
"cl /i0",
#Create link to, via shortname
"8:Create link to \\lntest\\alongf~1.exe from\n \\lntest\\anotherLongFileName.exe, file relative, via shortname",
"!mkdir '$dev/lntest/', 0",
"!unlink '$dev/lntest/anotherLongFileName.exe'",
"!crfile '$dev/lntest/aLongFileName.exe'",
"op $opOpt /f\\$dev\\lntest\\alongf~1.exe /dzj /pzb",
"sf $sfOpt /i0 /pf /cc /fnanotherLongFileName.exe",
"cl /i0",
#Create link to, to shortname, no overwrite
"9:Create link to \\lntest\\a.exe from\n \\lntest\\alongf~1.exe, file relative, no overwrite",
"!mkdir '$dev/lntest/', 0",
"!unlink '$dev/lntest/alongf~1.exe'",
"op $opOpt /f\\$dev\\lntest\\a.exe /dzj /pzd",
"sf $sfOpt /i0 /pf /cc /fnalongf~1.exe",
"cl /i0",
#Create link to, to shortname, overwrite
"10:Create link to \\lntest\\a.exe from\n \\lntest\\alongf~1.exe, file relative, overwrite",
"!mkdir '$dev/lntest/', 0",
"!unlink '$dev/lntest/alongf~1.exe'",
"!unlink '$dev/lntest/aLongFileName.exe'",
"!crfile '$dev/lntest/aLongFileName.exe'",
"op $opOpt /f\\$dev\\lntest\\a.exe /dzj /pzd",
"sf $sfOpt /i0 /pt /cc /fnalongf~1.exe",
"cl /i0",
#Create link to, to it own shortname
"11:Create link to \\lntest\\aLongFileName.exe from\n \\lntest\\alongf~1.exe, file relative, to its own shortname",
"!mkdir '$dev/lntest/', 0",
"!unlink '$dev/lntest/alongf~1.exe'",
"!unlink '$dev/lntest/aLongFileName.exe'",
"!crfile '$dev/lntest/aLongFileName.exe'",
"op $opOpt /f\\$dev\\lntest\\aLongFileName.exe /dzj /pzd",
"sf $sfOpt /i0 /pt /cc /fnalongf~1.exe",
"cl /i0",
#Link directory, file relative, with files
"12:Link directory \\lntestDirectory from\n \\lnDirectoryTest, file relative, with files, not allowed",
"!mkdir '$dev/lntestDirectory/', 0",
"!crfile '$dev/lntestDirectory/1.exe', 0",
"!crfile '$dev/lntestDirectory/2.exe', 0",
"!crfile '$dev/lntestDirectory/3.dat', 0",
"!unlink <$dev/lnDirectoryTest/*>",
"!rmdir '$dev/lnDirectoryTest'",
"op $opOpt /f\\$dev\\lntestDirectory /dzaj /pzb /nza",
"sf $sfOpt /i0 /pf /cc /fnlnDirectoryTest",
"cl /i0",
"13:Create link to \\lntest\\a.dat from\n \\lntest\\b.dat, file relative, no overwrite",
"!mkdir '$dev/lntest/', 0",
"!unlink '$dev/lntest/b.dat'", #make sure test files don't exist
"op $opOpt /f\\$dev\\lntest\\a.dat /dzj /pzd",
"sf $sfOpt /i0 /pf /cc /fnb.dat",
"cl /i0",
#Create link to over directory (fails)
"14:Create link to \\lntest\\a.exe from\n directory \\lntest\\subdir, file relative, will fail",
"!mkdir '$dev/lntest/', 0",
"!mkdir '$dev/lntest/subdir/', 0",
"op $opOpt /f\\$dev\\lntest\\a.exe /dzj /pzd",
"sf $sfOpt /i0 /pt /cc /fnsubdir",
"cl /i0",
#Create link from directory to file (fails)
"15:Link directory \\lntest\\subdir1 to\n directory \\lntest\\aaa.exe, file relative, overwrite file with directory, will fail ",
"!mkdir '$dev/lntest/', 0",
"!mkdir '$dev/lntest/subdir1', 0",
"!rmdir '$dev/lntest/aaa.exe'",
"!crfile '$dev/lntest/aaa.exe', 0",
"op $opOpt /f\\$dev\\lntest\\subdir1 /dzaj /pzb /nza",
"sf $sfOpt /i0 /pt /cc /fnaaa.exe",
"cl /i0",
#Create link to, full path
"41:Create link to \\lntest1\\a.exe from\n \\lntest2\\b.exe, full path, no overwrite",
"!mkdir '$dev/lntest1/', 0",
"!mkdir '$dev/lntest2/', 0",
"!unlink '$dev/lntest2/b.exe'",
"op $opOpt /f\\$dev\\lntest1\\a.exe /dzj /pzd",
"sf $sfOpt /i0 /pf /cc /fn\\??\\$dev\\lntest2\\b.exe",
"cl /i0",
"42:Create link to \\lntest1\\a.exe from\n \\lntest2\\b.exe, full path, overwrite, not allowed",
"!mkdir '$dev/lntest1/', 0",
"!mkdir '$dev/lntest2/', 0",
"!unlink '$dev/lntest2/b.exe'",
"!crfile '$dev/lntest2/b.exe'",
"op $opOpt /f\\$dev\\lntest1\\a.exe /dzj /pzd",
"sf $sfOpt /i0 /pf /cc /fn\\??\\$dev\\lntest2\\b.exe",
"cl /i0",
"43:Create link to \\lntest1\\a.exe from\n \\lntest2\\b.exe, full path, overwrite",
"!mkdir '$dev/lntest1/', 0",
"!mkdir '$dev/lntest2/', 0",
"!unlink '$dev/lntest2/b.exe'",
"!crfile '$dev/lntest2/b.exe'",
"op $opOpt /f\\$dev\\lntest1\\a.exe /dzj /pzd",
"sf $sfOpt /i0 /pt /cc /fn\\??\\$dev\\lntest2\\b.exe",
"cl /i0",
"44:Create link to \\lntest1\\a.exe from\n \\lntest2\\b.dat, full path, to unmonitored, no overwrite",
"!mkdir '$dev/lntest1/', 0",
"!mkdir '$dev/lntest2/', 0",
"!unlink '$dev/lntest2/b.dat'",
"!unlink '$dev/lntest2/b.dat'",
"op $opOpt /f\\$dev\\lntest1\\a.exe /dzj /pzd",
"sf $sfOpt /i0 /pf /cc /fn\\??\\$dev\\lntest2\\b.dat",
"cl /i0",
"45:Create link to \\lntest1\\a.exe from\n \\lntest2\\b.dat, full path, to unmonitored, overwrite",
"!mkdir '$dev/lntest1/', 0",
"!mkdir '$dev/lntest2/', 0",
"!unlink '$dev/lntest2/b.dat'",
"!crfile '$dev/lntest2/b.dat'",
"op $opOpt /f\\$dev\\lntest1\\a.exe /dzj /pzd",
"sf $sfOpt /i0 /pt /cc /fn\\??\\$dev\\lntest2\\b.dat",
"cl /i0",
"46:Create link to \\lntest1\\a.dat from\n \\lntest2\\b.exe, full path, to interesting, no overwrite",
"!mkdir '$dev/lntest1/', 0",
"!mkdir '$dev/lntest2/', 0",
"!unlink '$dev/lntest2/b.exe'",
"op $opOpt /f\\$dev\\lntest1\\a.dat /dzj /pzd",
"sf $sfOpt /i0 /pf /cc /fn\\??\\$dev\\lntest2\\b.exe",
"cl /i0",
"47:Create link to \\lntest1\\a.dat from\n \\lntest2\\b.exe, full path, to interesting, overwrite",
"!mkdir '$dev/lntest1/', 0",
"!mkdir '$dev/lntest2/', 0",
"!unlink '$dev/lntest2/b.exe'",
"!crfile '$dev/lntest2/b.exe'",
"op $opOpt /f\\$dev\\lntest1\\a.dat /dzj /pzd",
"sf $sfOpt /i0 /pt /cc /fn\\??\\$dev\\lntest2\\b.exe",
"cl /i0",
#Create link to, via shortname
"48:Create link to \\lntest1\\alongf~1.exe from\n \\lntest2\\anotherLongFileName.exe, full path, via shortname",
"!mkdir '$dev/lntest1/', 0",
"!mkdir '$dev/lntest2/', 0",
"!unlink '$dev/lntest2/anotherLongFileName.exe'",
"!crfile '$dev/lntest1/aLongFileName.exe'",
"op $opOpt /f\\$dev\\lntest1\\alongf~1.exe /dzj /pzb",
"sf $sfOpt /i0 /pf /cc /fn\\??\\$dev\\lntest2\\anotherLongFileName.exe",
"cl /i0",
#Create link to, to shortname, no overwrite
"49:Create link to \\lntest\\a.exe from\n \\lntest\\alongf~1.exe, full path, no overwrite",
"!mkdir '$dev/lntest/', 0",
"!unlink '$dev/lntest/alongf~1.exe'",
"op $opOpt /f\\$dev\\lntest\\a.exe /dzj /pzd",
"sf $sfOpt /i0 /pf /cc /fn\\??\\$dev\\lntest\\alongf~1.exe",
"cl /i0",
#Create link to, to shortname, overwrite
"50:Create link to \\lntest\\a.exe from\n \\lntest\\alongf~1.exe, full path, overwrite",
"!mkdir '$dev/lntest/', 0",
"!unlink '$dev/lntest/alongf~1.exe'",
"!unlink '$dev/lntest/aLongFileName.exe'",
"!crfile '$dev/lntest/aLongFileName.exe'",
"op $opOpt /f\\$dev\\lntest\\a.exe /dzj /pzd",
"sf $sfOpt /i0 /pt /cc /fn\\??\\$dev\\lntest\\alongf~1.exe",
"cl /i0",
#Create link to, to it own shortname
"51:Create link to \\lntest\\aLongFileName.exe from\n \\lntest\\alongf~1.exe, full path, to its own shortname",
"!mkdir '$dev/lntest/', 0",
"!unlink '$dev/lntest/alongf~1.exe'",
"!unlink '$dev/lntest/aLongFileName.exe'",
"!crfile '$dev/lntest/aLongFileName.exe'",
"op $opOpt /f\\$dev\\lntest\\aLongFileName.exe /dzj /pzd",
"sf $sfOpt /i0 /pt /cc /fn\\??\\$dev\\lntest\\alongf~1.exe",
"cl /i0",
#Link directory, fullpath - will fail
"52:Link to directory \\lntest1\\lntestDirectory from\n \\lntest2\\lnDirectoryTest, full path, with files, will fail",
"!mkdir '$dev/lntest1/', 0",
"!mkdir '$dev/lntest2/', 0",
"!mkdir '$dev/lntest1/lntestDirectory/', 0",
"!crfile '$dev/lntest1/lntestDirectory/1.exe', 0",
"!crfile '$dev/lntest1/lntestDirectory/2.exe', 0",
"!crfile '$dev/lntest1/lntestDirectory/3.dat', 0",
"!unlink <$dev/lntest2/lnDirectoryTest/*>",
"!rmdir '$dev/lntest2/lnDirectoryTest/'",
"op $opOpt /f\\$dev\\lntest1\\lntestDirectory /dzaj /pzb /nza",
"sf $sfOpt /i0 /pf /cc /fn\\??\\$dev\\lntest2\\lnDirectoryTest",
"cl /i0",
#link to directory, fullpath - will fail
"53:Link to directory \\lntest1\\lntestDirectory from\n \\temp\\lntestDirectory, full path, with files, to unmonitored, will fail",
"!mkdir '$dev/lntest1/', 0",
"!mkdir '$dev/temp/', 0",
"!mkdir '$dev/lntest1/lntestDirectory/', 0",
"!crfile '$dev/lntest1/lntestDirectory/1.exe', 0",
"!crfile '$dev/lntest1/lntestDirectory/2.exe', 0",
"!crfile '$dev/lntest1/lntestDirectory/3.dat', 0",
"!unlink <$dev/temp/lntestDirectory/*>",
"!rmdir '$dev/temp/lntestDirectory/'",
"op $opOpt /f\\$dev\\lntest1\\lntestDirectory /dzaj /pzb /nza",
"sf $sfOpt /i0 /pf /cc /fn\\??\\$dev\\temp\\lntestDirectory",
"cl /i0",
#link to directory, fullpath - will fail
"54:Link to directory \\temp\\lntestDirectory from\n \\lntest2\\lntestDirectory, full path, with files, to unmonitored, will fail",
"!mkdir '$dev/temp/', 0",
"!mkdir '$dev/lntest2/', 0",
"!mkdir '$dev/temp/lntestDirectory/', 0",
"!crfile '$dev/temp/lntestDirectory/1.exe', 0",
"!crfile '$dev/temp/lntestDirectory/2.exe', 0",
"!crfile '$dev/temp/lntestDirectory/3.dat', 0",
"!unlink <$dev/lntest2/lntestDirectory/*>",
"!rmdir '$dev/lntest2/lntestDirectory/'",
"op $opOpt /f\\$dev\\temp\\lntestDirectory /dzaj /pzb /nza",
"sf $sfOpt /i0 /pf /cc /fn\\??\\$dev\\lntest2\\lntestDirectory",
"cl /i0",
#Create link to, path relative
"81:Create link to \\lntest\\subdir1\\a.exe from\n \\lntest\\subdir2\\b.exe, directory relative, no overwrite",
"!mkdir '$dev/lntest/', 0",
"!mkdir '$dev/lntest/subdir1/', 0",
"!mkdir '$dev/lntest/subdir2/', 0",
"!unlink '$dev/lntest/subdir2/b.exe'",
"op $opOpt /f\\$dev\\lntest\\ /dza /pzb /nza",
"op $opOpt /f\\$dev\\lntest\\subdir1\\a.exe /dzj /pzd",
"sf $sfOpt /i1 /pf /cc /r0 /fnsubdir2\\b.exe",
"cl /i0",
"cl /i1",
"82:Create link to \\lntest\\subdir1\\a.exe from\n \\lntest\\subdir2\\b.exe, full path, overwrite, not allowed",
"!mkdir '$dev/lntest/', 0",
"!mkdir '$dev/lntest/subdir1/', 0",
"!mkdir '$dev/lntest/subdir2/', 0",
"!unlink '$dev/lntest/subdir2/b.exe'",
"!crfile '$dev/lntest/subdir2/b.exe'",
"op $opOpt /f\\$dev\\lntest\\ /dza /pzb /nza",
"op $opOpt /f\\$dev\\lntest\\subdir1\\a.exe /dzj /pzd",
"sf $sfOpt /ii /pf /cc /r0 /fnsubdir2\\b.exe",
"cl /i0",
"cl /i1",
"83:Create link to \\lntest\\subdir1\\a.exe from\n \\lntest\\subdir2\\b.exe, full path, overwrite",
"!mkdir '$dev/lntest/', 0",
"!mkdir '$dev/lntest/subdir1/', 0",
"!mkdir '$dev/lntest/subdir2/', 0",
"!unlink '$dev/lntest/subdir2/b.exe'",
"!crfile '$dev/lntest/subdir2/b.exe'",
"op $opOpt /f\\$dev\\lntest\\ /dza /pzb /nza",
"op $opOpt /f\\$dev\\lntest\\subdir1\\a.exe /dzj /pzd",
"sf $sfOpt /i1 /pt /cc /r0 /fnsubdir2\\b.exe",
"cl /i1",
"cl /i0",
#Link streams
"100:Link to stream \\lntest\\a.exe:stream1 from\n :stream2, will fail",
"!mkdir '$dev/lntest/', 0",
"!crfile '$dev/lntest/a.exe', 0",
"!crfile '$dev/lntest/a.exe:stream1', 0",
"op $opOpt /f\\$dev\\lntest\\a.exe:stream1 /dzj /pzb",
"sf $sfOpt /i0 /pf /cc /fn:stream2",
"cl /i0",
#Create link to stream from unmonitored to monitored space
"101:Create link to \\lntest\\a.dat with stream :stream1 from\n \\lntest\\b.exe",
"!mkdir '$dev/lntest/', 0",
"!unlink '$dev/lntest/b.exe'",
"!crfile '$dev/lntest/a.dat', 0",
"!crfile '$dev/lntest/a.dat:stream1', 0",
"op $opOpt /f\\$dev\\lntest\\a.dat /dzj /pzb",
"sf $sfOpt /i0 /pf /cc /fnb.exe",
"cl /i0",
);