windows-nt/Source/XPSP1/NT/termsrv/admtools/appcmpt/install/msproj98.cmd
2020-09-26 16:20:57 +08:00

309 lines
10 KiB
Batchfile

@Echo Off
Rem #########################################################################
Rem
Rem Verify that %RootDrive% has been configured and set it for this script.
Rem
Call "%SystemRoot%\Application Compatibility Scripts\ChkRoot.Cmd"
If "%_CHKROOT%" == "FAIL" Goto Done
Call "%SystemRoot%\Application Compatibility Scripts\SetPaths.Cmd"
If "%_SETPATHS%" == "FAIL" Goto Done
Set __SharedTools=Shared Tools
If Not "%PROCESSOR_ARCHITECTURE%"=="ALPHA" goto Start0
If Not Exist "%ProgramFiles(x86)%" goto Start0
Set __SharedTools=Shared Tools (x86)
:Start0
Rem #########################################################################
Rem Set the app VendorName
SET VendorName=Microsoft
Rem #########################################################################
Rem Set the proofing tools path to the one that MS Office 2000 uses
SET ProofingPath=Proof
Rem #########################################################################
Rem Set the registry key and value under which the app stores its install root
SET AppRegKey=HKLM\Software\Microsoft\Office\8.0\Common\InstallRoot
SET AppRegValue=OfficeBin
Rem #########################################################################
Rem Set the registry key and value under which the app stores its templates path
SET AppTemplatesRegKey=HKCU\Software\Microsoft\Office\8.0\Common\FileNew\LocalTemplates
SET AppTemplatesRegValue=
Rem #########################################################################
Rem Set the registry key and value under which the apps store the custom dictionary path and name
SET AppCustomDicRegKey=HKLM\Software\Microsoft\%__SharedTools%\Proofing Tools\Custom Dictionaries
SET AppCustomDicRegValue=1
Rem #########################################################################
Rem Set some specific relative app file names and path names
SET CustomDicFile=Custom.Dic
SET AppPathName=Microsoft Project
SET AppWebPathName=Microsoft Project Web
Rem #########################################################################
Rem Set Default Paths to those used by MS Office 2000
SET AppData=%RootDrive%\%APP_DATA%
SET UserTemplatesPath=%AppData%\%VendorName%\%TEMPLATES%
SET UserCustomDicPath=%AppData%\%VendorName%\%ProofingPath%
Rem #########################################################################
Rem Get the installation location of Project 98 from the registry. If
Rem not found, assume Project isn't installed and display an error message.
Rem
..\ACRegL %Temp%\Proj98.Cmd PROJINST "%AppRegKey%" "%AppRegValue%" ""
If Not ErrorLevel 1 Goto Cont0
Echo.
Echo Unable to retrieve Project 98 installation location from the registry.
Echo Verify that Project 98 has already been installed and run this script
Echo again.
Echo.
Pause
Goto Done
:Cont0
Call %Temp%\Proj98.Cmd
Del %Temp%\Proj98.Cmd >Nul: 2>&1
..\ACRegL %Temp%\Proj98.Cmd PROJROOT "%AppRegKey%" "%AppRegValue%" "STRIPCHAR\1"
If Not ErrorLevel 1 Goto Cont01
Echo.
Echo Unable to retrieve Project 98 installation location from the registry.
Echo Verify that Project 98 has already been installed and run this script
Echo again.
Echo.
Pause
Goto Done
:Cont01
Call %Temp%\Proj98.Cmd
Del %Temp%\Proj98.Cmd >Nul: 2>&1
Rem #########################################################################
Rem Get the Templates path name from the registry
Rem
..\ACRegL %Temp%\Proj98.Cmd TemplatesPathName "%AppTemplatesRegKey%" "%AppTemplatesRegValue%" "STRIPPATH"
If Not ErrorLevel 1 Goto Cont02
SET TemplatesPathName=%TEMPLATES%
Goto Cont03
:Cont02
Call %Temp%\Proj98.Cmd
Del %Temp%\Proj98.Cmd >Nul: 2>&1
:Cont03
Rem #########################################################################
Rem If MS Office 97 is not installed, use default paths
If Not Exist "%RootDrive%\Office97" Goto SetPathNames
Rem #########################################################################
Rem If Office 97 is already installed, use MS Office 97 paths.
Rem #########################################################################
Rem Get the custom dic path name from the registry
Rem
..\ACRegL %Temp%\Proj98.Cmd AppData "%AppCustomDicRegKey%" "%AppCustomDicRegValue%" "STRIPCHAR\1"
If Not ErrorLevel 1 Goto Cont04
SET AppData=%RootDrive%\Office97
Goto Cont05
:Cont04
Call %Temp%\Proj98.Cmd
Del %Temp%\Proj98.Cmd >Nul: 2>&1
:Cont05
Rem #########################################################################
Rem Get the Templates path name from the registry
Rem
..\ACRegL %Temp%\Proj98.Cmd UserTemplatesPath "%AppTemplatesRegKey%" "%AppTemplatesRegValue%" ""
If Not ErrorLevel 1 Goto Cont06
SET UserTemplatesPath=%AppData%\%TemplatesPathName%
Goto Cont07
:Cont06
Call %Temp%\Proj98.Cmd
Del %Temp%\Proj98.Cmd >Nul: 2>&1
:Cont07
SET UserCustomDicPath=%AppData%
:SetPathNames
Rem #########################################################################
Rem Set user and common path names here
SET CommonCustomDicPath=%PROJINST%
SET CommonTemplatesPath=%PROJROOT%\%TemplatesPathName%
SET UserCustomDicFileName=%UserCustomDicPath%\%CustomDicFile%
SET UserAppTemplatesPath=%UserTemplatesPath%\%AppPathName%
SET UserAppWebTemplatesPath=%UserTemplatesPath%\%AppWebPAthName%
SET CommonAppTemplatesPath=%CommonTemplatesPath%\%AppPathName%
SET CommonAppWebTemplatesPath=%CommonTemplatesPath%\%AppWebPAthName%
Rem #########################################################################
Rem
Rem If Office 97 is installed the Project 98 install script
Rem moved the templates to the current user's directory.
Rem Put them in a global place. Proj98Usr.cmd will move them back.
Rem
If NOT Exist "%UserAppTemplatesPath%" goto skip10
If Exist "%CommonAppTemplatesPath%" goto skip10
xcopy "%UserAppTemplatesPath%" "%CommonAppTemplatesPath%" /E /I /K > Nul: 2>&1
:skip10
If NOT Exist "%UserAppWebTemplatesPath%" goto skip11
If Exist "%CommonAppWebTemplatesPath%" goto skip11
xcopy "%UserAppWebTemplatesPath%" "%CommonAppWebTemplatesPath%" /E /I /K > Nul: 2>&1
:skip11
Rem #########################################################################
Rem
Rem Make Global.mpt file read-only.
Rem Otherwise the first user to launch Project will change the ACLs
Rem
if Exist "%PROJINST%\Global.mpt" attrib +r "%PROJINST%\Global.mpt"
Rem #########################################################################
Rem
Rem Allow read access for everybody on a system DLL that is
Rem updated by Office 97.
Rem
If Exist %SystemRoot%\System32\OleAut32.Dll cacls %SystemRoot%\System32\OleAut32.Dll /E /T /G "Authenticated Users":R > NUL: 2>&1
Rem #########################################################################
Rem
Rem Create the MsForms.Twd file which is needed for
Rem Powerpoint and Excel Add-ins (File/Save as HTML, etc). When either
Rem program is run, they will replace the appropriate file with one
Rem containing the necessary data.
Rem
If Exist %systemroot%\system32\MsForms.Twd Goto Cont2
Copy Nul: %systemroot%\system32\MsForms.Twd >Nul:
Cacls %systemroot%\system32\MsForms.Twd /E /P "Authenticated Users":F > Nul: 2>&1
:Cont2
Rem #########################################################################
Rem
Rem Remove Find Fast from the Startup menu for all users.
Rem Find Fast is resource intensive and will impact system
Rem performance.
Rem
If Exist "%COMMON_STARTUP%\Microsoft Find Fast.lnk" Del "%COMMON_STARTUP%\Microsoft Find Fast.lnk"
Rem #########################################################################
Rem
Rem Change Registry Keys to make paths point to user specific
Rem directories.
Rem
Rem If not currently in Install Mode, change to Install Mode.
Set __OrigMode=Install
ChgUsr /query > Nul:
if Not ErrorLevel 101 Goto Begin
Set __OrigMode=Exec
Change User /Install > Nul:
:Begin
..\acsr "#ROOTDRIVE#" "%RootDrive%" Template\msproj98.Key msproj98.tm1
..\acsr "#__SharedTools#" "%__SharedTools%" msproj98.tm1 msproj98.tm2
Del msproj98.tm1 >Nul: 2>&1
..\acsr "#USERCUSTOMDICFILE#" "%UserCustomDicFileName%" msproj98.tm2 msproj98.Key
Del msproj98.tm2 >Nul: 2>&1
regini msproj98.key > Nul:
Rem If original mode was execute, change back to Execute Mode.
If "%__OrigMode%" == "Exec" Change User /Execute > Nul:
Set __OrigMode=
Rem #########################################################################
Rem
Rem Update proj97Usr.Cmd to reflect actual directories and
Rem add it to the UsrLogn2.Cmd script
Rem
..\acsr "#USERTEMPLATESPATH#" "%UserTemplatesPath%" ..\Logon\Template\prj98Usr.Cmd prj98Usr.tm1
..\acsr "#USERCUSTOMDICPATH#" "%UserCustomDicPath%" prj98Usr.tm1 prj98Usr.tm2
Del prj98Usr.tm1 >Nul: 2>&1
..\acsr "#COMMONTEMPLATESPATH#" "%CommonTemplatesPath%" prj98Usr.tm2 prj98Usr.tm1
Del prj98Usr.tm2 >Nul: 2>&1
..\acsr "#COMMONCUSTOMDICPATH#" "%CommonCustomDicPath%" prj98Usr.tm1 prj98Usr.tm2
Del prj98Usr.tm1 >Nul: 2>&1
..\acsr "#CUSTOMDICNAME#" "%CustomDicFile%" prj98Usr.tm2 prj98Usr.tm1
Del prj98Usr.tm2 >Nul: 2>&1
..\acsr "#APPPATHNAME#" "%AppPathName%" prj98Usr.tm1 prj98Usr.tm2
Del prj98Usr.tm1 >Nul: 2>&1
..\acsr "#APPWEBPATHNAME#" "%AppWebPathName%" prj98Usr.tm2 ..\Logon\prj98Usr.Cmd
Del prj98Usr.tm2 >Nul: 2>&1
FindStr /I prj98Usr %SystemRoot%\System32\UsrLogn2.Cmd >Nul: 2>&1
If Not ErrorLevel 1 Goto Skip1
Echo Call prj98Usr.Cmd >> %SystemRoot%\System32\UsrLogn2.Cmd
:Skip1
Rem #########################################################################
Echo.
Echo To insure proper operation of Project 98, users who are
Echo currently logged on must log off and log on again before
Echo running any application.
Echo.
Echo Microsoft Project 98 Multi-user Application Tuning Complete
Rem
Rem Get the permission compatibility mode from the registry.
Rem If TSUserEnabled is 0 we need to warn user to change mode.
Rem
..\ACRegL "%Temp%\tsuser.Cmd" TSUSERENABLED "HKLM\System\CurrentControlSet\Control\Terminal Server" "TSUserEnabled" ""
If Exist "%Temp%\tsuser.Cmd" (
Call "%Temp%\tsuser.Cmd"
Del "%Temp%\tsuser.Cmd" >Nul: 2>&1
)
If NOT %TSUSERENABLED%==0 goto SkipWarning
Echo.
Echo IMPORTANT!
Echo Terminal Server is currently running in Default Security mode.
Echo This application requires the system to run in Relaxed Security mode
Echo (permissions compatible with Terminal Server 4.0).
Echo Use Terminal Services Configuration to view and change the Terminal
Echo Server security mode.
Echo.
:SkipWarning
Pause
:done