home *** CD-ROM | disk | FTP | other *** search
Wrap
INI File | 1997-10-08 | 302.5 KB | 8,648 lines
;*********************************************************************** ; ; OEMNPRNW.INF ; ; Novell IntranetWare Client for Windows NT base installation INF ; ; ;*********************************************************************** ; ; The following is the version info for Novell ; ;VeRsIoN=v4.12 Novell Client Install for Windows NT (970923) ;CoPyRiGhT=copyright 1992-1997, by Novell, INC. All rights reserved. ;----------------------------------------------------------------------- ; OPTION TYPE ; ----------- ; This identifies the Option type we are dealing with. The different ; possible types are: ; ; COMPUTER, DISPLAY, MOUSE, KEYBOARD, LAYOUT, SCSI, PRINTER, ... ; ; Types specific to networking: ; ; NetAdapter, a netcard / adapter combination or just a netcard ; NetDriver, just a netcard driver ; NetTransport, a complete NDIS-compliant TDI transport stack ; NetService, an NT networking service ; NetWork, a complete network ensemble. ; NetProvider, a complete network which supports NT MPR protocol ;----------------------------------------------------------------------- [Identification] OptionType = NetProvider ;----------------------------------------------------------------------- ; OPTION LIST ; ----------- ; This section lists the OEM Option key names. These keys are locale ; independent and used to represent the option in a locale independent ; manner. ; ;----------------------------------------------------------------------- [Options] NWFS [InitBaseVars] KeyNull = "" MAXIMUM_ALLOWED = 33554432 KeyInfo = {} RegistryErrorIndex = NO_ERROR NoTitle = 0 CurrentControlSet = "SYSTEM\CurrentControlSet" ServicesBaseName = $(CurrentControlSet)"\Services" [OdiNSupVars] OdiNSupServiceName = "ODINSUP" OdiNSupParameters = $(!NTN_ServiceBase)"\"$(OdiNSupServiceName)"\Parameters" OdiNSupLinkage = $(!NTN_ServiceBase)"\"$(OdiNSupServiceName)"\Linkage" OdiNSupCardName = "Bind" OdiNSupCardInstance = "BoardInstance" [OdiVars] OdiLoadDriverName = "OdiLoad" OdiModules = "ODI_Modules" OdiLinkName = "OdiLoadName" OdiModuleName = $(!NTN_ServiceBase)"\"$(OdiLoadDriverName)"\"$(OdiModules) NetworkCardsKeyName = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards" [CurrentVersion] MajorVersion = 4 MinorVersion = 12 ProductVersion = $(MajorVersion)"."$(MinorVersion) ;----------------------------------------------------------------------- ; CONSTANTS FOR USING DIALOGS ;----------------------------------------------------------------------- [FileConstants] ; ; File names, etc. ; UtilityInf = "UTILITY.INF" subroutineinf = "SUBROUTN.INF" NwSubsInf = "NWSUBS.INF" NwLangIdDll = "NWLANGID.DLL" NwSetupDll = "nwsetup.dll" SoftwareType = "service" Exit_Code = 0 ; ; Product Info ; Manufacturer = "Novell" UserModeRoot = "%SystemRoot%" System32Root = $(UserModeRoot)"\System32" SoftwareBinHome = $(System32Root)"\NetWare\" DriverBinHome = $(System32Root)"\Drivers\" NetWareEventFile = $(System32Root)"\nls\"$(NLSDirName)"\nwevents.dll" ODINetWareEventFile = $(System32Root)"\nls\"$(NLSDirName)"\odintmsg.dll" ; ; Services ; ; ; MUP: if not already installed ; ProductMUPDisplayName = "Mup" ProductMUPTitle = "Mup" ProductMUPControl = service ProductMUPHidden = 0 ProductMUPInstrumentation = FALSE ProductMUPName = "Mup" ProductMUPImagePath = "\SystemRoot\System32\drivers\mup.sys" ProductMUPSvcType = "transport" ProductMUPGroup = "Network" ProductMUPDependList = {} ProductMUPEventFile = "" ; ; TDI: if not already installed ; ProductTDIDisplayName = "Tdi" ProductTDITitle = "Tdi" ProductTDIControl = service ProductTDIHidden = 0 ProductTDIInstrumentation = FALSE ProductTDIName = "Tdi" ProductTDIImagePath = "\SystemRoot\System32\drivers\TDI.sys" ProductTDISvcType = "kernelauto" ProductTDIGroup = "Network" ProductTDIDependList = {} ProductTDIEventFile = "" ; ; SpxApi: Driver for Spx Api's. ; ; ProductSPXAPIControl = service ; ProductSPXAPIHidden = 0 ; ProductSPXAPIInstrumentation = TRUE ; ProductSPXAPIName = "SpxApi" ; ProductSPXAPIImagePath = $(SoftwareBinHome)spxapi.sys ; ProductSPXAPISvcType = "systemauto" ; ProductSPXAPIGroup = "" ; ProductSPXAPIDependList = {"+TDI"} ; ProductSPXAPIEventFile = $(NetWareEventFile) ; ; IpxApi: Driver for Ipx Api's. ; ; ProductIPXAPIControl = service ; ProductIPXAPIHidden = 0 ; ProductIPXAPIInstrumentation = TRUE ; ProductIPXAPIName = "IpxApi" ; ProductIPXAPIImagePath = $(SoftwareBinHome)ipxapi.sys ; ProductIPXAPISvcType = "systemauto" ; ProductIPXAPIGroup = "" ; ProductIPXAPIDependList = {"+TDI"} ; ProductIPXAPIEventFile = $(NetWareEventFile) ; ; NWSIPX32: Driver for Sipx Api's. ; ProductNWSIPX32Control = service ProductNWSIPX32Hidden = 0 ProductNWSIPX32Instrumentation = TRUE ProductNWSIPX32Name = "NWSIpx32" ProductNWSIPX32ImagePath = $(SoftwareBinHome)nwsipx32.sys ProductNWSIPX32SvcType = "systemauto" ProductNWSIPX32Group = "" ProductNWSIPX32DependList = {"NwlnkIpx", "NwlnkSpx", "+NetWare Services", "+TDI"} ProductNWSIPX32EventFile = $(NetWareEventFile) ; ; SRoute: ODI Source Routing ; ProductSROUTEControl = service ProductSROUTEHidden = 0 ProductSROUTEInstrumentation = FALSE ProductSROUTEName = "OdiSourceRouting" ProductSROUTEImagePath = $(SoftwareBinHome)sroute.sys ProductSROUTESvcType = "kerneldisable" ProductSROUTEGroup = "" ProductSROUTEDependList = {"+ODI Drivers"} ProductSROUTEEventFile = $(ODINetWareEventFile) ; ; NwFs: NetWare Workstation ; ProductNWFSControl = component ProductNWFSHidden = 0 ProductNWFSReviewBindings = 1 ProductNWFSInstrumentation = TRUE ProductNWFSName = "NetWareWorkstation" ProductNWFSImagePath = $(SoftwareBinHome)nwfs.sys ProductNWFSSvcType = "systemauto" ProductNWFSSoftType = "service" ProductNWFSGroup = "NetworkProvider" ProductNWFSDependList = {"+TDI", "+NetWare Services", "Mup", "NwlnkIpx"} ProductNWFSEventFile = $(NetWareEventFile) ProductNWFSKeySoftware = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductNWFSName)"\CurrentVersion" NetRuleNWFSSoftwareType = "nwfs nwFileSys" NetRuleNWFSSoftwareUse = "service yes yes" NetRuleNWFSSoftwareBindForm = """Nwfs"" yes yes container" NetRuleNWFSSoftwareClass = {"nwFileSys basic"} NetRuleNWFSSoftwareBindable = {"nwFileSys ipxTransport non non 100"} ; ; ; ; IpxSpx: Transport ; ; ; ; ProductIPXSPXControl = component ; ProductIPXSPXHidden = 0 ; ProductIPXSPXInstrumentation = TRUE ; ProductIPXSPXName = "IpxSpx" ; ProductIPXSPXImagePath = $(SoftwareBinHome)ipxspx.sys ; ProductIPXSPXSvcType = "kernelautostart" ; ProductIPXSPXSoftType = "transport" ; ProductIPXSPXGroup = "TDI" ; ProductIPXSPXDependList = {"+ODI Drivers"} ; ProductIPXSPXEventFile = $(NetWareEventFile) ; ProductIPXSPXKeySoftware = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductIPXSPXName)"\CurrentVersion" ; ; NetRuleIPXSPXSoftwareType = "ipxspx nwTransport" ; NetRuleIPXSPXSoftwareUse = "transport yes yes" ; NetRuleIPXSPXSoftwareBindForm = """IpxSpx"" yes yes simple" ; NetRuleIPXSPXSoftwareClass = {"nwTransport basic"} ; NetRuleIPXSPXSoftwareBindable = {"nwTransport nwOdiLoader non non 80", + ; "nwTransport nwNwIPDriver non non 90", + ; "nwTransport nwOdiVMIDDriver non non 70"} ; ; OdiLoad: ODI Adapter Driver Loader. ; ProductODILOADControl = component ProductODILOADHidden = 1 ProductODILOADInstrumentation = TRUE ProductODILOADName = "OdiLoad" ProductODILOADImagePath = $(SoftwareBinHome)odiload.sys ProductODILOADSvcType = "kerneldisable" ProductODILOADSoftType = "driver" ProductODILOADGroup = "ODI Drivers" ProductODILOADDependList = {"+ODI"} ProductODILOADEventFile = $(ODINetWareEventFile) ProductODILOADKeySoftware = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductODILOADName)"\CurrentVersion" NetRuleODILOADSoftwareType = "odiLoad nwOdiLoader" NetRuleODILOADSoftwareUse = "driver yes yes" NetRuleODILOADSoftwareBindForm = """Odiload"" yes yes simple" NetRuleODILOADSoftwareClass = {"nwOdiLoader basic","nwAdapter basic yes"} NetRuleODILOADSoftwareBindable = {"nwOdiLoader nwAdapter non exclusive 100"} ; ; Lsl: Link Support Layer. ; ProductLSLControl = service ProductLSLHidden = 1 ProductLSLInstrumentation = TRUE ProductLSLName = "LSL" ProductLSLImagePath = $(SoftwareBinHome)lsl.sys ProductLSLSvcType = "kerneldisable" ProductLSLGroup = "ODI" ProductLSLDependList = {"+NetWare Services"} ProductLSLEventFile = $(ODINetWareEventFile) ; ; NBI: Netware Bus Interface ; ProductNBIControl = service ProductNBIHidden = 1 ProductNBIInstrumentation = TRUE ProductNBIName = "NBI" ProductNBIImagePath = $(SoftwareBinHome)nbi.sys ProductNBISvcType = "kerneldisable" ProductNBIGroup = "ODI" ProductNBIDependList = {"+NetWare Services"} ProductNBIEventFile = $(ODINetWareEventFile) ; ; ResMgr: NetWare Resource Manager ; ProductRESMGRControl = component ProductRESMGRHidden = 1 ProductRESMGRInstrumentation = TRUE ProductRESMGRName = "ResMgr" ProductRESMGRImagePath = $(SoftwareBinHome)resmgr.sys ProductRESMGRSvcType = "kernelautostart" ProductRESMGRSoftType = "service" ProductRESMGRGroup = "NetWare Services" ProductRESMGRDependList = {} ProductRESMGREventFile = $(NetWareEventFile) ProductRESMGRKeySoftware = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductRESMGRName)"\CurrentVersion" ; ; ; ; RECONNECT: Auto Reconnect service ; ; ; ; ProductRECONNECTControl = service ; ProductRECONNECTHidden = 0 ; ProductRECONNECTInstrumentation = FALSE ; ProductRECONNECTName = "NetWareAutoReconnect" ; ProductRECONNECTImagePath = $(System32Root)\reconsvc.exe ; ProductRECONNECTSvcType = "serviceauto" ; ProductRECONNECTGroup = "" ; ProductRECONNECTDependList = {"NetWareWorkstation"} ; ProductRECONNECTEventFile = $(NetWareEventFile) ; ; ; ; VMLID: Auto VMLID service ; ; ; ; ProductVMLIDControl = component ; ProductVMLIDHidden = 1 ; ProductVMLIDInstrumentation = FALSE ; ProductVMLIDName = "OdiVMLID" ; ProductVMLIDImagePath = $(SoftwareBinHome)vmlid.sys ; ProductVMLIDSvcType = "kernelautostart" ; ProductVMLIDSoftType = "service" ; ProductVMLIDGroup = "ODI Drivers" ; ProductVMLIDDependList = {"+NDIS","+ODI"} ; ProductVMLIDEventFile = $(NetWareEventFile) ; ProductVMLIDKeySoftware = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductVMLIDName)"\CurrentVersion" ; ; NetRuleVMLIDSoftwareType = "odivmlid nwOdiVMLIDDriver" ; NetRuleVMLIDSoftwareUse = "service yes yes" ; NetRuleVMLIDSoftwareBindForm = """OdiVMLID"" yes yes container" ; NetRuleVMLIDSoftwareClass = {"nwOdiVMLIDDriver basic"} ; NetRuleVMLIDSoftwareBindable = {"nwOdiVMLIDDriver ndisDriver non non 100"} ; ; NWPOPUP: NWPOPUP message service ; ProductNWPOPUPControl = service ProductNWPOPUPHidden = 0 ProductNWPOPUPInstrumentation = FALSE ProductNWPOPUPName = "NWPopUp" ProductNWPOPUPImagePath = $(System32Root)\nwmsgsvc.exe ProductNWPOPUPSvcType = "serviceauto" ProductNWPOPUPGroup = "" ProductNWPOPUPDependList = {"NetWareWorkstation"} ProductNWPOPUPEventFile = $(NetWareEventFile) ; ; Provider ; ProductProviderName = "NetWare Services" ProductProviderImagePath = $(System32Root)"\netware.dll" ProductProviderDevice = "\Device\NetWareRedirector" ProductProviderClass = 3 ; ; Registry key names ; ProductKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductNWFSName)"\CurrentVersion" ParamKeyName = $(!NTN_ServiceBase)"\"$(ProductNWFSName)"\Parameters" ServiceNameList = ^(ServiceNames, 1) UpdateServiceNameList = ^(UpdateServiceNames, 1) ExtendedFunctionList = ^(ExtendedFunctionNames, 1) [ServiceNames] ; ; referenced by ServiceNameList ; SVC_1 = "NWFS" ; SVC_2 = "IPXSPX" SVC_3 = "LSL" SVC_4 = "RESMGR" SVC_5 = "ODILOAD" SVC_6 = "MUP" SVC_7 = "TDI" ; SVC_8 = "SPXAPI" ; SVC_9 = "IPXAPI" SVC_10 = "NWSIPX32" SVC_11 = "SROUTE" ; SVC_12 = "RECONNECT" ; SVC_13 = "VMLID" SVC_14 = "NWPOPUP" SVC_15 = "NBI" [UpdateServiceNames] ; ; referenced by UpdateRoutine ; SVC_1 = "NWFS" ; SVC_2 = "IPXSPX" SVC_3 = "LSL" SVC_4 = "RESMGR" SVC_5 = "ODILOAD" ; SVC_6 = "SPXAPI" ; SVC_7 = "IPXAPI" SVC_8 = "NWSIPX32" SVC_9 = "SROUTE" ; SVC_10 = "RECONNECT" ; SVC_11 = "VMLID" SVC_12 = "NWPOPUP" SVC_13 = "NBI" [ExtendedFunctionNames] ; ; referenced by ExtendedFunctionList ; EXFN_1 = "AuthenticationPackage" EXFN_2 = "NetworkProvider" EXFN_3 = "NetWarePrintServices" ; EXFN_4 = "ServiceGroupOrder" [GeneralConstants] ; ; Program flow control variables. ; from = "" to = "" ; ; Return codes; Exit_Code is set to one of these ; ExitCodeOk = 0 ExitCodeCancel = 1 ExitCodeFatal = 2 KeyNull = "" MAXIMUM_ALLOWED = 33554432 RegistryErrorIndex = NO_ERROR KeyProduct = "" KeyParameters = "" TRUE = 1 FALSE = 0 NoTitle = 0 ExitState = "Active" OldVersionExisted = $(FALSE) [ExtendedConstants] SvcList = {"NetWare Services", "ODI", "ODI Drivers"} PkgName = "nwv1_0" ProviderName = "NetWareWorkstation" NetWarePrintProviderName = "NetWare Print Services" PrintProvider = "System\CurrentControlSet\Control\Print\Providers" [IpxSpxConstants] FrameTypeName = "Frame Type" CardTypeName = "Card Name" CardName = "" CardInstance = "Card Instance" CardInstanceNum = "" BindValueName = "bindings" IpxNtCardInstance = "Nt Card Instance" [date] ; ; Now is a list which contains { Sec from 1-1-1970, Year, Month, Day, Hour, ; Minute, Second } ; Now = {} ? $(!LIBHANDLE) GetSystemDate [DetectDiskSpace] VolumeList = {} ? $(!LIBHANDLE) GetHardDriveLetters VolumeFreeList = {} ? $(!LIBHANDLE) GetHardDriveFreeSpace VolumeFSList = {} ? $(!LIBHANDLE) GetHardDriveFileSystems [DetectSystemMemory] SystemMemory = "" ? $(!LIBHANDLE) GetMemorySize [ProcessorDetect] !STF_PROCESSOR = "" ? $(!LIBHANDLE) GetProcessor ;--------------------------------------------------------------------------- ; 1. Identify ; ; DESCRIPTION: To verify that this INF deals with the same type of options ; as we are choosing currently. ; ; INPUT: None ; ; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL ; $($R1): Option Type (COMPUTER ...) ; $($R2): Diskette description ;--------------------------------------------------------------------------- [Identify] read-syms Identification set Status = STATUS_SUCCESSFUL set Identifier = $(OptionType) set Media = #("Source Media Descriptions", 1, 1) Return $(Status) $(Identifier) $(Media) ;------------------------------------------------------------------------ ; 2. ReturnOptions: ; ; DESCRIPTION: To return the option list supported by this INF and the ; localised text list representing the options. ; ; ; INPUT: $($0): Language used. ( ENG | FRN | ... ) ; ; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL | ; STATUS_NOLANGUAGE ; STATUS_FAILED ; ; $($R1): Option List ; $($R2): Option Text List ;------------------------------------------------------------------------ [ReturnOptions] set Status = STATUS_FAILED set OptionList = {} set OptionTextList = {} ; ; Check if the language requested is supported ; set LanguageList = ^(LanguagesSupported, 1) Ifcontains(i) $($0) in $(LanguageList) goto returnoptions else set Status = STATUS_NOLANGUAGE goto finish_ReturnOptions endif ; ; form a list of all the options and another of the text representing ; returnoptions = + set OptionList = ^(Options, 1) set OptionTextList = ^(OptionsText$($0), 1) set Status = STATUS_SUCCESSFUL finish_ReturnOptions = + Return $(Status) $(OptionList) $(OptionTextList) ;----------InstallOption------------------------------------------------- ; ; InstallOption: ; ; This section is shelled to by main installation processing ; or by NCPASHEL.INF during reconfig, removal, update, etc. ; ; ; FUNCTION: To copy files representing Options ; To configure the installed option ; To update the registry for the installed option ; ; INPUT: $($0): Language to use ; $($1): OptionID to install ; $($2): SourceDirectory ; $($3): AddCopy (YES | NO) ; $($4): DoCopy (YES | NO) ; $($5): DoConfig (YES | NO) ; ; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL | ; STATUS_NOLANGUAGE | ; STATUS_USERCANCEL | ; STATUS_FAILED ; ;------------------------------------------------------------------------ [InstallOption] ; ; Flush this INF file from the control panel ; FlushInf "OEMNPRNW.INF" ; ; extract parameters ; set Option = $($1) set SrcDir = $($2) set AddCopy = $($3) set DoCopy = $($4) set DoConfig = $($5) set NLSDirName = $($6) set OriginalAddCopy = $($3) set OriginalDoCopy = $($4) set OriginalDoConfig = $($5) ; ; Check if the language requested is supported ; set LanguageList = ^(LanguagesSupported, 1) Ifcontains(i) $($0) NOT-IN $(LanguageList) Return STATUS_NOLANGUAGE endif detect ProcessorDetect ifstr(i) $(!STF_PROCESSOR) == "I386" set !STF_PLATFORM = "I386" else-ifstr(i) $(!STF_PROCESSOR) == "I486" set !STF_PLATFORM = "I386" else-ifstr(i) $(!STF_PROCESSOR) == "I586" set !STF_PLATFORM = "I386" else-ifstr(i) $(!STF_PROCESSOR) == "R4000" set !STF_PLATFORM = "Mips" else set !STF_PLATFORM = "Alpha" endif StartWait ; ; define all the constants ; set-subst LF = "\n" read-syms GeneralConstants read-syms ExtendedConstants read-syms FileConstants read-syms CurrentVersion read-syms DialogConstants$(!STF_LANGUAGE) read-syms FileConstants$(!STF_LANGUAGE) read-syms InstallOption$(!STF_LANGUAGE) Set !G:DebugOutputControl = 0 ifstr(i) $(!NTN_Origination) == "NCPA" set Continue = "OK" endif set CanInstall = "NO" ; ; Find out what NT's version is ; set CurrentVersion = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion" OpenRegKey $(!REG_H_LOCAL) "" $(CurrentVersion) $(MAXIMUM_ALLOWED) CurrentVersionKey ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) GetRegValue $(CurrentVersionKey) "CurrentVersion" VersionList ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) set VersionListData = *($(VersionList), 4) Split-string $(VersionListData) "." SplitVersionList Set NTMajorVersion = *($(SplitVersionList), 1) Set NTMinorVersion = *($(SplitVersionList), 3) Debug-OutPut "Windows NT current version is "$(VersionListData) Debug-OutPut "Windows NT Major version is "$(NTMajorVersion) Debug-OutPut "Windows NT Minor version is "$(NTMinorVersion) ifint $(NTMajorVersion) == "3" ifint $(NTMinorVersion) >= "51" set CanInstall = "YES" endif else ifint $(NTMajorVersion) > "3" set CanInstall = "YES" endif endif else Debug-Output "OEMNPRNW.INF: Error getting NT version" endif CloseRegKey $(CurrentVersionKey) else Debug-Output "OEMNPRNW.INF: Error opening "$(CurrentVersion) endif ifstr(i) $(CanInstall) == "NO" Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(WrongNTVersionMessage) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif goto end endif ; ; Is this an Advanced Server ; Debug-Output "OEMNPRNW.INF: Checking to see if advanced server" set AdvancedServer = "NO" Set TempKeyName = "SYSTEM\CurrentControlSet\Control\ProductOptions" OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) Set ValueName = "ProductType" GetRegValue $(TempKey) $(ValueName) ValueList Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) set ValueListData = *($(ValueList), 4) set AdvancedServer = "YES" ifstr(i) $(ValueListData) == "WinNT" set AdvancedServer = "NO" Debug-Output "OEMNPRNW.INF: AdvancedServer is "$(AdvancedServer) endif else Debug-Output "OEMNPRNW.INF: Failed to get ProductType" endif CloseRegKey $(TempKey) else Debug-Output "OEMNPRNW.INF: Failed to open ProductOptions key" endif ifstr(i) $(!InstallSAMRedir) == "YES" ifstr(i) $(AdvancedServer) == "NO" Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(SAMServerMessage) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set CommonStatus = STATUS_USERCANCEL goto end endif endif ; ; This call checks the STF_ variables and sets the NWU variables. ; Shell "" UnattendedInstallOption ; ; Get the data from the Unattended file. ; ifstr(i) $(!NWUnattendedFile) != "" Shell $(!NWUnattendedFile) ReadDefaultData, $(!NWUnattendedSection) ifstr(i) $($R0) != "STATUS_SUCCESSFUL" Debug-Output "Shell to read the NW Parameter values from an Unattend.txt file Failed." Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "Warning", $(UnattendFileReadFailed) ifstr(i) $($R1) == "CANCEL" set CommonStatus = STATUS_USERCANCEL goto end endif endif Shell "" WizardToManagerFix ; make workstation manager parms bwd compatible with wizard ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif endif ; ; Save the old language dir so we know if the language is changed ; set OldNLSDirName = "" set NovellParameters = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\Parameters" OpenRegKey $(!REG_H_LOCAL) "" $(NovellParameters) $(MAXIMUM_ALLOWED) KeyNovellParameters ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) GetRegValue $(KeyNovellParameters) "NWLanguage" NWLanguageList ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) set ValueType = *($(NWLanguageList), 3) ifstr(i) $(ValueType) == $(!REG_VT_SZ) set OldNLSDirName = *($(NWLanguageList), 4) else-ifstr(i) $(ValueType) == $(!REG_VT_MULTI_SZ) set LanguageList = *($(NWLanguageList), 4) set OldNLSDirName = *($(LanguageList), 1) endif endif CloseRegKey $(KeyNovellParameters) Endif ; ; Set new product title if SAM Redirection ; ifstr(i) $(AdvancedServer) == "YES" ifstr(i) $(!InstallSAMRedir) == "YES" set ProductNWFSDisplayName = $(ProductNWFSDisplayNameSAM) set ProCaption = $(ProCaptionSAM) set FunctionTitle = $(FunctionTitleSAM) endif endif detect date set-title $(FunctionTitle) set to = Begin set from = Begin ; ; Assume all is well. ; set CommonStatus = STATUS_SUCCESSFUL Begin = + ; ; Set the debug output level ; Set OEM_ABANDON_SERVICES = {} Set OEM_ABANDON_COMPONENTS = {} Ifstr(i) $(!NTN_InstallMode) == deinstall set StartLabel = removenetware else-Ifstr(i) $(!NTN_InstallMode) == update set StartLabel = updatenetware else-Ifstr(i) $(!NTN_InstallMode) == bind set StartLabel = bindnetware else-Ifstr(i) $(!NTN_InstallMode) == configure Set StartLabel = configurenetware else set StartLabel = installnetware ; ; Turn on all the options. ; ForListDo $(ServiceNameList) Set Do$($) = TRUE EndForListDo endif set from = $(fatal) set to = $(fatal) goto $(StartLabel) ;----------------------------------------------- ; Installation Section ;----------------------------------------------- installnetware = + ; ; Check whether the same version of the software exists ; OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\NetWareWorkStation" $(MAXIMUM_ALLOWED) KeyProduct ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) ; ; Same version already existed in the local machine ; CloseRegKey $(KeyProduct) Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(NetWareClientInstalledMessage) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set CommonStatus = STATUS_USERCANCEL goto end endif ; ; Ask user to agree to license ; ; Error checking data in the Variables ifstr(i) $(!AcceptLicenseAgreement) != "" ifstr(i) $(!AcceptLicenseAgreement) == "yes" goto AcceptLicenseAgreementValid else-ifstr(i) $(!AcceptLicenseAgreement) == "no" goto AcceptLicenseAgreementValid else ; Error case the Variable AcceptLicenseAgreement does not contains valid YES or NO but does contain something. set DlgType = "MessageBox" set STF_MB_TITLE = $(FunctionTitle) set STF_MB_TEXT = "AcceptLicenseAgreement"$(ClientParamError) set STF_MB_TYPE = 3 set STF_MB_ICON = 4 set STF_MB_DEF = 1 ui start "NoAdapter" Ifstr(i) $(DLGEVENT) == "NO" set CommonStatus = STATUS_USERCANCEL goto end else ; set variable to blank set !AcceptLicenseAgreement = "" endif endif AcceptLicenseAgreementValid = + endif ifstr(i) $(!AcceptLicenseAgreement) != "yes" shell "" AgreeToLicense $(SrcDir) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError else-ifstr(i) $($R0) != STATUS_SUCCESSFUL ; ; Set common status and exit ; set CommonStatus = $($R0) goto end endif endif ; ; Check free disk space on system drive ; shell "" CheckSystemDriveSpace ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError else-ifstr(i) $($R0) != STATUS_SUCCESSFUL set CommonStatus = STATUS_USERCANCEL goto end endif ; ; Check for Microsoft's redirector ; OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_SoftwareBase)"\Microsoft\NWCWorkstation\CurrentVersion" $(MAXIMUM_ALLOWED) KeyProduct ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) ; ; Microsoft redirector found ; Tell the user that we are going to remove the MS Client for them ; and Add our Client then reboot ; Debug-Output "Found Microsoft Redirector." CloseRegKey $(KeyProduct) ; ; Check the NWUnattend variables before displaying the dialog to the user. ; ; Error checking data in the Variables ifstr(i) $(!AskRemoveMSNetWareClient) != "" ifstr(i) $(!AskRemoveMSNetWareClient) == "yes" goto AskRemoveMSNetWareClientValid else-ifstr(i) $(!AskRemoveMSNetWareClient) == "no" goto AskRemoveMSNetWareClientValid else ; Error case the Variable AskRemoveMSNetWareClient does not contains valid YES or NO but does contain something. set DlgType = "MessageBox" set STF_MB_TITLE = $(FunctionTitle) set STF_MB_TEXT = "AskRemoveMSNetWareClient"$(ClientParamError) set STF_MB_TYPE = 3 set STF_MB_ICON = 4 set STF_MB_DEF = 1 ui start "NoAdapter" Ifstr(i) $(DLGEVENT) == "NO" set CommonStatus = STATUS_USERCANCEL goto end else ; set variable to blank set !AskRemoveMSNetWareClient = "" endif endif AskRemoveMSNetWareClientValid = + endif ; Error checking data in the Variables ifstr(i) $(!RemoveMSNetWareClient) != "" ifstr(i) $(!RemoveMSNetWareClient) == "yes" goto RemoveMSNetWareClientValid else-ifstr(i) $(!RemoveMSNetWareClient) == "no" goto RemoveMSNetWareClientValid else ; Error case the Variable RemoveMSNetWareClient does not contains valid YES or NO but does contain something. set DlgType = "MessageBox" set STF_MB_TITLE = $(FunctionTitle) set STF_MB_TEXT = "RemoveMSNetWareClient"$(ClientParamError) set STF_MB_TYPE = 3 set STF_MB_ICON = 4 set STF_MB_DEF = 1 ui start "NoAdapter" Ifstr(i) $(DLGEVENT) == "NO" set CommonStatus = STATUS_USERCANCEL goto end else set !RemoveMSNetWareClient = "" endif endif RemoveMSNetWareClientValid = + endif ; Check the ACU variable ifstr(i) $(!NWACU) == "YES" ifstr(i) $(!AskRemoveMSNetWareClient) == "" set !AskRemoveMSNetWareClient = "no" endif else-ifstr(i) $(!NWACU) == "NO" ifstr(i) $(!AskRemoveMSNetWareClient) == "" set !AskRemoveMSNetWareClient = "yes" endif endif ifstr(i) $(!AskRemoveMSNetWareClient) == "no" ifstr(i) $(!RemoveMSNetWareClient) != "" ifstr(i) $(!RemoveMSNetWareClient) == "no" set CommonStatus = STATUS_USERCANCEL goto end else-ifstr(i) $(!RemoveMSNetWareClient) == "yes" ; ; Remove the MS Client for NetWare and install Novell's Client ; goto RemoveMSClient endif else ; $(!RemoveMSNetWareClient) is empty so default to remove and continue goto RemoveMSClient endif else askToRemoveMSClient = + ; ; Ask the user if they want to remove the MS Client for NetWare ; ifstr(i) $(!RemoveMSNetWareClient) == "NO" set STF_MB_DEF = 2 else set STF_MB_DEF = 1 endif set DlgType = "MessageBox" set STF_MB_TITLE = $(FunctionTitle) set STF_MB_TEXT = $(RemoveMSClientMessageText) set STF_MB_TYPE = 3 set STF_MB_ICON = 4 ui start "NoAdapter" Ifstr(i) $(DLGEVENT) == "NO" set CommonStatus = STATUS_USERCANCEL goto end endif endif RemoveMSClient = + ; ; Save the install value before we call the deinstall section of the MS inf. ; set saveValue = $(!NTN_InstallMode) set !NTN_InstallMode = deinstall Shell "oemnsvnw.inf" InstallOption, $(!STF_LANGUAGE), "NWWKSTA", "A:\", "YES", "YES", "NO" ifint $($ShellCode) != $(!SHELL_CODE_OK) Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(RemoveMSClientFailedMessage) goto ShellCodeError endif set !NTN_InstallMode = $(saveValue) Endif LibraryProcedure Status1, $(!LIBHANDLE), CheckFileExistance, $(!STF_WINDOWSSYSPATH)"\netware.drv" ifstr(i) $(Status1) == "YES" LibraryProcedure Status1, $(!LIBHANDLE), DelFile, $(!STF_WINDOWSSYSPATH)"\netware.drv" endif EndWait ; ; Install NWLINK if not already installed. Our client now depends ; on NWLINK. ; shell "" Install-NWLINK ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError else-ifstr(i) $($R0) != STATUS_SUCCESSFUL goto fatal endif ifstr(i) $(!NWACU) == "YES" set DoCopy = "YES" Debug-Output "OEMNPRNW.INF: InstallOption: DoCopy = "$(DoCopy) endif Ifstr(i) $(DoCopy) == "YES" ; ; Get source location ; Shell "", DoAskSource, $(!STF_CWDDIR), $(SrcDir) YES Ifint $($ShellCode) != $(!SHELL_CODE_OK) Goto ShellCodeError Else-Ifstr(i) $($R0) == STATUS_FAILED Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL" ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set Error = $($R0) Goto fatal Else-Ifstr(i) $($R0) == STATUS_USERCANCEL Goto successful Endif Set SrcDir = $($R1) LibraryProcedure STATUS, $(!LIBHANDLE), AppendBackSlash $(SrcDir) ifstr(i) $(STATUS) != "ERROR" set SrcDir = $(STATUS) Endif Endif set OEM_ABANDON_ON = TRUE StartWait install "Install-NetWare-Dir" ; ; Copy all files to destination ; install "Install-Files" ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE" ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set Error = $($R0) goto fatal endif StartWait ; ; Install all enabled services mentioned in the ServiceNameList ; InstallEnabledServices = + ForListDo $(ServiceNameList) Set SvcOpt = $($) ; ; Check to see if the product to be installed is already installed ; Set TempProductKeyName = $(!NTN_ServiceBase)"\"$(Product$(SvcOpt)Name) OpenRegKey $(!REG_H_LOCAL) "" $(TempProductKeyName) $(MAXIMUM_ALLOWED) TempKey ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) Debug-Output "OMENPRNW.INF: "$(SvcOpt)" is already installed" Set Do$(SvcOpt) = FALSE Endif Ifstr(i) $(Do$(SvcOpt)) == TRUE Ifstr(i) $(Product$(SvcOpt)Control) == component Debug-Output "OEMNPRNW.INF: install component: "$(SvcOpt) Shell $(UtilityInf), AddSoftwareComponent + $(Manufacturer), + $(Product$(SvcOpt)Name), + $(Product$(SvcOpt)Name), + $(Product$(SvcOpt)DisplayName), + "oemnprnw.inf", + $(Product$(SvcOpt)ImagePath), + $(Product$(SvcOpt)SvcType), + $(Product$(SvcOpt)Group), + $(Product$(SvcOpt)DependList), "" + $(Product$(SvcOpt)EventFile), "", "", 1 Ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "OEMNPRNW.INF: AddSoftwareComponent ShellCode error "$($ShellCode)" installing "$(SvcOpt) EndWait goto ShellCodeError Endif StartWait Set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR EndWait CloseRegKey $($R1) CloseRegKey $($R2) CloseRegKey $($R3) Debug-Output "OEMNPRNW.INF: Registry error "$(RegistryErrorIndex)" installing "$(SvcOpt) EndWait goto fatalregistry Endif Set SvcVersion = $($R1) Set SvcNetRules = $($R2) Set SvcSvcKey = $($R3) Set SvcParamKey = $($R4) Set SvcLinkKey = $($R5) ifint $(Product$(SvcOpt)ReviewBindings) == 1 Set ReviewBindingsValue = 1 else Set ReviewBindingsValue = 0 Endif Set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(Product$(SvcOpt)SoftType)},+ {Hidden,$(NoTitle),$(!REG_VT_DWORD),$(Product$(SvcOpt)Hidden)},+ {Review,$(NoTitle),$(!REG_VT_DWORD),$(ReviewBindingsValue)},+ {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(MajorVersion)},+ {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(MinorVersion)},+ {Title,$(NoTitle),$(!REG_VT_SZ),$(Product$(SvcOpt)DisplayName)},+ {Description,$(NoTitle),$(!REG_VT_SZ),$(Product$(SvcOpt)DisplayName)},+ {ServiceName,$(NoTitle),$(!REG_VT_SZ),$(Product$(SvcOpt)Name)},+ {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}} Shell $(UtilityInf), AddValueList, $(SvcVersion), $(NewValueList) StartWait Ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "OEMNPRNW.INF: ShellCode error: AddValueList for version info for "$(SvcOpt) EndWait goto ShellCodeError Endif ; ; Add the NetRules info ; Set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRule$(SvcOpt)SoftwareType)},+ {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRule$(SvcOpt)SoftwareClass)}, + {bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRule$(SvcOpt)SoftwareBindable)}, + {use,$(NoTitle),$(!REG_VT_SZ),$(NetRule$(SvcOpt)SoftwareUse)}, + {bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRule$(SvcOpt)SoftwareBindForm)}, + {InfOption,$(NoTitle),$(!REG_VT_SZ),$(SvcOpt)}} Shell $(UtilityInf), AddValueList, $(SvcNetRules), $(NewValueList) StartWait Ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "OEMNPRNW.INF: AddValueList ShellCode error = "$($ShellCode) EndWait Goto ShellCodeError Endif Set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR CloseRegKey $(SvcSvcKey) CloseRegKey $(SvcParamKey) CloseRegKey $(SvcLinkKey) CloseRegKey $(SvcVersion) CloseRegKey $(SvcNetRules) Debug-Output "OEMNPRNW.INF: Registry error adding NetRules to "$(SvcOpt) EndWait goto fatalregistry Endif Else Debug-Output "OEMNPRNW.INF: install service: "$(SvcOpt) Shell $(UtilityInf), CreateService, + $(Product$(SvcOpt)Name), + $(Product$(SvcOpt)DisplayName), + $(Product$(SvcOpt)ImagePath), + $(Product$(SvcOpt)SvcType), + $(Product$(SvcOpt)Group), + $(Product$(SvcOpt)DependList), "" + $(Product$(SvcOpt)EventFile), "", "", 1 StartWait Ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "OEMNPRNW.INF: ShellCode error installing "$(SvcOpt) EndWait goto ShellCodeError Endif Set RegistryErrorIndex = $($R0) Ifstr(i) $(RegistryErrorIndex) != NO_ERROR CloseRegKey $($R1) CloseRegKey $($R2) CloseRegKey $($R3) Debug-Output "OEMNPRNW.INF: Registry error installing "$(SvcOpt) EndWait goto fatalregistry Endif Set SvcVersion = "" Set SvcNetRules = "" Set SvcSvcKey = $($R1) Set SvcParamKey = $($R2) Set SvcLinkKey = $($R3) Endif ; ; Add the NetWare Instrumentation Level. ; Ifstr(i) $(Product$(SvcOpt)Instrumentation) == TRUE SetRegValue $(SvcParamKey) {"Instrumentation Level",$(NoTitle),$(!REG_VT_SZ),"NONE"} Endif ; ; Call the service-specific installation section ; Shell "" FinishInstalling-$(SvcOpt) + $(SvcSvcKey) $(SvcParamKey) $(SvcLinkKey) + $(SvcVersion) $(SvcNetRules) $(TransportSelected) StartWait Ifstr(i) $(SvcVersion) != "" CloseRegKey $(SvcVersion) Endif Ifstr(i) $(SvcNetRules) != "" CloseRegKey $(SvcNetRules) Endif CloseRegKey $(SvcSvcKey) CloseRegKey $(SvcParamKey) CloseRegKey $(SvcLinkKey) ; ; Add this service to the list of "undoable" things in case of failure ; Set OEM_ABANDON_SERVICES = >($(OEM_ABANDON_SERVICES), $(Product$(SvcOpt)Name)) Endif EndForListDo Ifstr(i) $(CalledFromUpdate) == "YES" goto ReturnToUpdate endif ; ; Add different various parameters to the system ; Install "Install-Parameters" ; ; Install the NetWare Gina dll. ; shell "" Install-Gina ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError else-ifstr(i) $($R0) != STATUS_SUCCESSFUL ; ; Set common status and exit ; set CommonStatus = $($R0) goto setfailed endif ; ; Install our help files in the NT help ; Install "Install-Help" ; ; Install the NetWare Performance Counters. ; Install "Install-PerformanceCounters" ; ; Add the NetWare group and icons to desktop ; install "Install-NetWare-Group" Debug-Output "OEMNPRNW.INF: adding ODINSUP" ; ; Add ODINSUP hidden ; Set OldInstallMode = $(!NTN_InstallMode) Set !NTN_InstallMode = install Shell "ODINSUP.INF" InstallOption $(!STF_LANGUAGE) "ODINSUP" "" NO NO NO Set !NTN_InstallMode = $(OldInstallMode) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError Endif Debug-Output "OEMNPRNW.INF: adding NetWareIP" ; ; Add NetWareIP if the user wants ; shell "" Install-NetWareIP ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError else-ifstr(i) $($R0) != STATUS_SUCCESSFUL goto fatal endif ; ; Add the extended function stuff ; ForListDo $(ExtendedFunctionList) Shell "" InstallEx-$($) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError else-ifstr(i) $($R0) != STATUS_SUCCESSFUL Debug-Output "OEMNPRNW.INF: ExtendedFunctionFailedMessage is "$(ExtendedFunctionFailedMessage) set Error = $(ExtendedFunctionFailedMessage) goto fatal endif StartWait EndForListDo ; ; Set SAM Redirection info ; Debug-Output "OEMNPRNW.INF: adding SAM Redirection" ifstr(i) $(AdvancedServer) == "YES" ifstr(i) $(!InstallSAMRedir) == "YES" LoadLibrary $(LoadDisk3Text) $(!STF_WINDOWSSYSPATH)"\"$(NwSetupDll) NwLibHandle LibraryProcedure GUIResult $(NwLibHandle) NWCheckSAMMigrated ifstr(i) $(GUIResult) != "TRUE" ; ; If not migrated, then auto launch the migrate ; ifint $(NTMajorVersion) < "4" set TempRegKeyName = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" OpenRegKey $(!REG_H_CUSER) "" $(TempRegKeyName) $(MAXIMUM_ALLOWED) TempKey ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) ; if no new key CreateRegKey $(!REG_H_CUSER) {$(TempRegKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" TempKey ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) ; create new key Debug-Output "OEMNPRNW.INF: Failed to create 3.51 Windows key for SAM Migration utility" goto migerror1 ; if error, then done endif endif Set CommandLine = $(!STF_WINDOWSSYSPATH)"\sammig.exe" SetRegValue $(TempKey) {"run", $(NoTitle), $(!REG_VT_SZ), $(CommandLine)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to add 3.51 Run for SAM Migration utility" endif CloseRegKey $(KeyNovellParameters) else set TempRegKeyName = "SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" OpenRegKey $(!REG_H_LOCAL) "" $(TempRegKeyName) $(MAXIMUM_ALLOWED) TempKey ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) ; if no new key CreateRegKey $(!REG_H_LOCAL) {$(TempRegKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" TempKey ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) ; create new key Debug-Output "OEMNPRNW.INF: Failed to create RunOnce for SAM Migration utility" goto migerror1 ; if error, then done endif endif Set CommandLine = $(!STF_WINDOWSSYSPATH)"\sammig.exe" SetRegValue $(TempKey) {"SAM Migration", $(NoTitle), $(!REG_VT_SZ), $(CommandLine)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to add RunOnce for SAM Migration utility" endif CloseRegKey $(KeyNovellParameters) endif migerror1 = + endif FreeLibrary $(NwLibHandle) Shell "" AddServiceDependency "LanmanServer" "NetWareWorkstation" endif endif ; ; Write out the unattended variables to registry. DO THIS LAST. ; ; Write the Workstation Manager parameter to the registry here because it is set by either Setupnw.exe /w or setupnw /u. ; !Workstation_Manager_Trusted_Trees = ; !Workstation_Manager_Trusted_Trees_OverWriteValue = ifstr(i) $(!NWSetup) == "yes" ; IF we are running from setup and not in unattended mode and the Trusted trees variable is set then turn on Manager in the key Workstation Manager/Enable. ifstr(i) $(!NWUnattendedFile) == "" ifstr(i) $(!Workstation_Manager_Trusted_Trees) != "" set !Enable_Workstation_Manager = "on" set !Enable_Workstation_Manager_OverWriteValue = "yes" endif endif ifstr(i) $(!Workstation_Manager_Trusted_Trees_OverWriteValue) == "" set !Workstation_Manager_Trusted_Trees_OverWriteValue = "yes" endif endif ; Workstation Manager Parameters ; !Enable_Workstation_Manager = on ; !Enable_Workstation_Manager_OverWriteValue = yes ifstr(i) $(!Enable_Workstation_Manager) != "" set ParamRegKeyName = "SOFTWARE\Novell\NWGINA\Workstation Manager" ifstr(i) $(!Enable_Workstation_Manager) == "on" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Enabled" 1 $(!REG_VT_DWORD) $(!Enable_Workstation_Manager_OverWriteValue) else-ifstr(i) $(!Enable_Workstation_Manager) == "off" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Enabled" 0 $(!REG_VT_DWORD) $(!Enable_Workstation_Manager_OverWriteValue) else shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Enable_Workstation_Manager = "$(!Enable_Workstation_Manager)$(UnattendParameterError) ifstr(i) $($R1) == "CANCEL" set CommonStatus = STATUS_USERCANCEL goto setfailed endif endif endif ifstr(i) $(!Workstation_Manager_Trusted_Trees) != "" set ParamRegKeyName = "SOFTWARE\Novell\NWGINA\Workstation Manager" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Trusted Trees" $(!Workstation_Manager_Trusted_Trees) $(!REG_VT_SZ) $(!Workstation_Manager_Trusted_Trees_OverWriteValue) endif shell "" Write-Unattended-Variables ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError else-ifstr(i) $($R0) != STATUS_SUCCESSFUL Debug-Output "OEMNPRNW.INF: User Canceled due to a error processing the Unattended Variables." set CommonStatus = STATUS_USERCANCEL goto setfailed endif ; ; ; ; Try to detect the ndis driver that the lan man services are using ; ; ; ; Shell $(NwSubsInf) NwDetectNdisAdapter $(SrcDir) ; ifint $($ShellCode) != $(!SHELL_CODE_OK) ; Debug-Output "OEMNPRNW.INF: NwDetectNdisAdapter ShellCode error "$($ShellCOde) ; goto ShellCodeError ; endif goto successful ;----------------------------------------------- ; Configure Browser section ;----------------------------------------------- configurenetware = + Debug-Output "OEMNPRNW.INF: Configure NetWare "$(!NTN_RegBase) set CommonStatus = STATUS_USERCANCEL LoadLibrary $(LoadDisk3Text) $(!STF_WINDOWSSYSPATH)"\"$(NwSetupDll) NwLibHandle SetHelpFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt4setup.hlp" $(!MinimumID) $(!MaximumID) ifint $(NTMajorVersion) < "4" SetHelpFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt3setup.hlp" $(!MinimumID) $(!MaximumID) endif Ifstr(i) $(!NTN_RegBase) == $(ProductNWFSKeySoftware) ; ; Configure the NetWare Workstation. ; StartWait set HelpContext = $(IDH_NETWAREWRKSTATIONPARMS) LibraryProcedure LibResult $(NwLibHandle) NetWareWorkstationDialog ifstr(i) $(LibResult) == "CONTINUE" Set CommonStatus = STATUS_REBOOT endif else-ifstr(i) $(!NTN_RegBase) == $(ProductODILOADKeySoftware) ; ; Configure OdiLoad. ; ; else-ifstr(i) $(!NTN_RegBase) == $(ProductRESMGRKeySoftware) ; ; ; ; ; Configure Resmgr. ; ; ; ; Set KeyName = "SYSTEM\CurrentControlSet\Services\"$(Product$(Option)Name)"\Parameters" ; OpenRegKey $(!REG_H_LOCAL) "" $(KeyName) $(MAXIMUM_ALLOWED) KeyParameters ; Ifstr(i) $(KeyParameters) != "" ; set KeyValueList = "" ; GetRegValue $(KeyParameters) "Communication Buffers" KeyValueList ; set CommunicationBuffers = *($(KeyValueList), 4) ; ; read-syms "ResMgrDlg"$(!STF_LANGUAGE) ; ui start "ResMgrDLG" $(NwLibHandle) ; StartWait ; ; ifstr(i) $(DLGEVENT) == "CONTINUE" ; set CommunicationBuffers = *($(EditTextOut), 1) ; ifint $(CommunicationBuffers) < 1 ; set CommunicationBuffers = 1 ; else-ifint $(CommunicationBuffers) > 128 ; set CommunicationBuffers = 128 ; endif ; set KeyValueList = {"Communication Buffers",$(NoTitle),$(!REG_VT_DWORD),$(CommunicationBuffers)} ; SetRegValue $(KeyParameters) $(KeyValueList) ; ; FlushRegKey $(KeyParameters) ; Set CommonStatus = STATUS_REBOOT ; endif ; ; CloseRegKey $(KeyParameters) ; ui pop 1 ; EndWait ; endif Endif FreeLibrary $(NwLibHandle) goto successful ;----------------------------------------------- ; Binding section ;----------------------------------------------- bindnetware =+ ; ; Find what NLS directory is being used ; set NovellParameters = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\Parameters" OpenRegKey $(!REG_H_LOCAL) "" $(NovellParameters) $(MAXIMUM_ALLOWED) KeyNovellParameters ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) GetRegValue $(KeyNovellParameters) "NWLanguage" NWLanguageList ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) set ValueType = *($(NWLanguageList), 3) ifstr(i) $(ValueType) == $(!REG_VT_SZ) set NLSDirName = *($(NWLanguageList), 4) else-ifstr(i) $(ValueType) == $(!REG_VT_MULTI_SZ) set LanguageList = *($(NWLanguageList), 4) set NLSDirName = *($(LanguageList), 1) SetRegValue $(KeyNovellParameters) {"NWLanguage", $(NoTitle), $(!REG_VT_SZ), $(NLSDirName)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to add NWLanguage value to "$(SoftwareNovell)"\Parameters" endif endif LoadLibrary $(LoadDisk2Text) $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nwsetupr.dll" NwLibHandle SetHelpFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt4setup.hlp" $(!MinimumID) $(!MaximumID) ifint $(NTMajorVersion) < "4" SetHelpFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt3setup.hlp" $(!MinimumID) $(!MaximumID) endif else goto fatalregistry endif CloseRegKey $(KeyNovellParameters) else goto fatalregistry Endif Shell $(NwSubsInf) GetTotalAdapterList Set OdiProductNameList = $($R0) Set OdiTitleList = $($R1) Set OdiCardList = $($R2) Set NumberOdiAdapters = $($R3) Set NdisProductNameList = $($R4) Set NdisTitleList = $($R5) Set NdisCardList = $($R6) Set NumberNdisAdapters = $($R7) Set ODINSUPCardNumber = $($R8) Set NetWareIPCardNumList = $($R9) Set NumberNetWareIPAdapters = $($R10) ; ; Is there a ODI driver installed? ; ifint $(NumberOdiAdapters) > 0 Debug-Output "Found Odi Adapters" ; ; Set the group order to follow ; Set GroupOrderToFollow = "file system" ; ; Turn on NBI ; Debug-Output "OEMNPRNW.INF: Setting start value for "$(!NTN_ServiceBase)"\NBI" OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\NBI" $(MAXIMUM_ALLOWED) KeyProduct ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) SetRegValue $(KeyProduct) {"Start", $(NoTitle), $(!REG_VT_DWORD), 2} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to set start value for "$(!NTN_ServiceBase)"\NBI" endif CloseRegKey $(KeyProduct) else Debug-Output "OEMNPRNW.INF: Failed to open key "$(!NTN_ServiceBase)"\NBI" Endif ; ; Turn on LSL ; Debug-Output "OEMNPRNW.INF: Setting start value for "$(!NTN_ServiceBase)"\LSL" OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\LSL" $(MAXIMUM_ALLOWED) KeyProduct ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) SetRegValue $(KeyProduct) {"Start", $(NoTitle), $(!REG_VT_DWORD), 2} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to set start value for "$(!NTN_ServiceBase)"\LSL" endif CloseRegKey $(KeyProduct) else Debug-Output "OEMNPRNW.INF: Failed to open key "$(!NTN_ServiceBase)"\LSL" Endif ; ; Turn on OdiLoad ; Debug-Output "OEMNPRNW.INF: Setting start value for "$(!NTN_ServiceBase)"\OdiLoad" OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\OdiLoad" $(MAXIMUM_ALLOWED) KeyProduct ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) SetRegValue $(KeyProduct) {"Start", $(NoTitle), $(!REG_VT_DWORD), 2} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to set start value for "$(!NTN_ServiceBase)"\OdiLoad" endif CloseRegKey $(KeyProduct) else Debug-Output "OEMNPRNW.INF: Failed to open key "$(!NTN_ServiceBase)"\OdiLoad" Endif ; ; Turn on ODINSUP ; Debug-Output "OEMNPRNW.INF: Setting start value for "$(!NTN_ServiceBase)"\Odinsup" OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\Odinsup" $(MAXIMUM_ALLOWED) KeyProduct ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) SetRegValue $(KeyProduct) {"Start", $(NoTitle), $(!REG_VT_DWORD), 2} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to set start value for "$(!NTN_ServiceBase)"\Odinsup" endif CloseRegKey $(KeyProduct) else Debug-Output "OEMNPRNW.INF: Failed to open key "$(!NTN_ServiceBase)"\Odinsup" Endif ; ; Set the card for ODINSUP to bind to ; read-syms OdiNSupVars read-syms OdiVars OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\ODINSUP"$(ODINSUPCardNumber)"\Parameters" $(MAXIMUM_ALLOWED) KeyOdiNSupParameters ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) Ifint $(NumberOdiAdapters) > 1 ; ; More than one ODI adapter is installed so allow ; the user to select which one to bind to. ; Ifstr(i) $(OdiCurBindCardName) != "" Debug-Output "OEMNPRNW.INF: OdiCurBindCardName = "$(OdiCurBindCardName) Set DefaultOdiTitle = *($(OdiTitleList), ~($(OdiCardList), $(OdiCurBindCardName))) Endif Ifstr(i) $(DefaultOdiTitle) == "" Set DefaultOdiTitle = *($(OdiTitleList), 1) Endif Debug-Output "OEMNPRNW.INF: DefaultOdiTitle = "$(DefaultOdiTitle) read-syms OdinsupDlg$(!STF_LANGUAGE) ui start "ODINSUP" $(NwLibHandle) ui pop 1 ifstr(i) $(DLGEVENT) == "BACK" set AdapterSelected = "" else Set AdapterSelected = *($(DefaultOdiTitle), 1) endif Debug-Output "OEMNPRNW.INF: ODINSUP AdapterSelected = "$(AdapterSelected) Ifstr(i) $(AdapterSelected) == "" Debug-Output "OEMNPRNW.INF: Cancel Selected" Set CardToBindTo = *($(OdiProductNameList), 1) Set OdiCardInstance = 1 Else Set CardToBindTo = *($(OdiProductNameList), ~($(OdiTitleList), $(AdapterSelected))) Debug-Output "CardToBindTo = "$(CardToBindTo) Set NtAdapterNumber = *($(OdiCardList), ~($(OdiTitleList), $(AdapterSelected))) Debug-Output "NtAdapterNumber = "$(NtAdapterNumber) Set NtAdapterKeyName = $(NetworkCardsKeyName)"\"$(NtAdapterNumber) OpenRegKey $(!REG_H_LOCAL) "" $(NtAdapterKeyName) $(MAXIMUM_ALLOWED) KeyNtAdapter Ifstr(i) $(KeyNtAdapter) != "" GetRegValue $(KeyNtAdapter),"ServiceName", ServiceNameList Set ServiceName = *($(ServiceNameList), 4) CloseRegKey $(KeyNtAdapter) ; ; Open the lan man card's service\Parameters. ; OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"$(ServiceName)"\Parameters" $(MAXIMUM_ALLOWED) KeyService ifstr(i) $(KeyService) == "" Debug-Output "OEMNPRNW.INF: Can't open "$(ServiceName) Else ; ; Get the OdiLoad link. ; GetRegValue $(KeyService) $(OdiLinkName) CardInstanceList Set CardInstanceName = *($(CardInstanceList), 4) CloseRegKey $(KeyService) OpenRegKey $(!REG_H_LOCAL) "" $(OdiModuleName)"\"$(CardInstanceName) $(MAXIMUM_ALLOWED) KeyOdiCard Ifstr(i) $(KeyOdiCard) != "" GetRegValue $(KeyOdiCard) "BoardInstance" BoardInstanceList Set OdiCardInstance = *($(BoardInstanceList), 4) Debug-Output "OEMNPRNW.INF: Selected OdiCardInstance = "$(OdiCardInstance) CloseRegKey $(KeyOdiCard) Endif Endif Else Debug-Output "Can't open "$(NtAdapterKeyName) Endif Endif Else ; ; only one ODI adapter so use it. ; Set CardToBindTo = *($(OdiProductNameList), 1) Set NtAdapterNumber = *($(OdiCardList), 1) Debug-Output "OEMNPRNW.INF: ODISUP bound to "$(CardToBindTo) Endif SetRegValue $(KeyOdiNSupParameters) {$(OdiNSupCardName), $(NoTitle), $(!REG_VT_SZ), $(CardToBindTo)} Ifstr(i) $(OdiCardInstance) == "" Debug-Output "OEMNPRNW.INF: OdiCardInstance set to default." Set OdiCardInstance = "1" Endif SetRegValue $(KeyOdiNSupParameters) {$(OdiNSupCardInstance),$(NoTitle),$(!REG_VT_DWORD),$(OdiCardInstance)} ; ; Get the adapter's media type and set odinsup the same. ; OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\"$(CardToBindTo)$(NtAdapterNumber)"\Parameters" $(MAXIMUM_ALLOWED) KeyAdapterService ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) GetRegValue $(KeyAdapterService) "MediaType" MediaTypeList ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) set MediaType = *($(MediaTypeList), 4) SetRegValue $(KeyOdiNSupParameters) {"MediaType",$(NoTitle),$(!REG_VT_DWORD),$(MediaType)} endif CloseRegKey $(KeyAdapterService) endif CloseRegKey $(KeyOdiNSupParameters) Endif Else-ifint $(NumberNdisAdapters) > 0 Debug-Output "Found NDIS Adapters" ; ; Set the group order to follow ; Set GroupOrderToFollow = "NDIS" ; ; Turn off NBI ; OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\NBI" $(MAXIMUM_ALLOWED) KeyProduct ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) SetRegValue $(KeyProduct) {"Start", $(NoTitle), $(!REG_VT_DWORD), 4} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to set start value for "$(!NTN_ServiceBase)"\NBI" endif CloseRegKey $(KeyProduct) else Debug-Output "OEMNPRNW.INF: Failed to open key "$(!NTN_ServiceBase)"\NBI" Endif ; ; Turn off LSL ; OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\LSL" $(MAXIMUM_ALLOWED) KeyProduct ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) SetRegValue $(KeyProduct) {"Start", $(NoTitle), $(!REG_VT_DWORD), 4} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to set start value for "$(!NTN_ServiceBase)"\LSL" endif CloseRegKey $(KeyProduct) else Debug-Output "OEMNPRNW.INF: Failed to open key "$(!NTN_ServiceBase)"\LSL" Endif ; ; Turn off OdiLoad ; OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\OdiLoad" $(MAXIMUM_ALLOWED) KeyProduct ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) SetRegValue $(KeyProduct) {"Start", $(NoTitle), $(!REG_VT_DWORD), 4} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to set start value for "$(!NTN_ServiceBase)"\OdiLoad" endif CloseRegKey $(KeyProduct) else Debug-Output "OEMNPRNW.INF: Failed to open key "$(!NTN_ServiceBase)"\OdiLoad" Endif ; ; Turn off ODINSUP ; OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\Odinsup" $(MAXIMUM_ALLOWED) KeyProduct ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) SetRegValue $(KeyProduct) {"Start", $(NoTitle), $(!REG_VT_DWORD), 4} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to set start value for "$(!NTN_ServiceBase)"\Odinsup" endif CloseRegKey $(KeyProduct) else Debug-Output "OEMNPRNW.INF: Failed to open key "$(!NTN_ServiceBase)"\Odinsup" Endif ; ; Turn off ODI Source Routing ; OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\OdiSourceRouting" $(MAXIMUM_ALLOWED) KeyProduct ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) SetRegValue $(KeyProduct) {"Start", $(NoTitle), $(!REG_VT_DWORD), 4} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to set start value for "$(!NTN_ServiceBase)"\OdiSourceRouting" endif CloseRegKey $(KeyProduct) else Debug-Output "OEMNPRNW.INF: Failed to open key "$(!NTN_ServiceBase)"\OdiSourceRouting" Endif Else Debug-Output "Found no Adapters" ; ; Set the group order to follow ; Set GroupOrderToFollow = "file system" ; ; Checking to see if RAS is installed. ; OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_SoftwareBase)"\Microsoft\RemoteAccess" $(MAXIMUM_ALLOWED) TempKey ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) ; ; Can't find RAS either. ; Let the user know that there are not any LAN or WAN adapters ; set DlgType = "MessageBox" set STF_MB_TITLE = $(NoLanAdapterInstalledTitle) set STF_MB_TEXT = $(NoLanAdapterInstalledText) set STF_MB_TYPE = 1 set STF_MB_ICON = 2 set STF_MB_DEF = 1 ui start "NoAdapter" else CloseRegKey $(TempKey) Endif Endif ifint $(NTMajorVersion) == "4" ifint $(NumberNetWareIPAdapters) > 0 Debug-Output "Found NetWareIP Adapters" ; ; Set the group order to follow ; Set GroupOrderToFollow = "file system" endif endif ; ; Check to see if mup has been marked for delete. ; Set TempKeyName = $(!NTN_ServiceBase)"\Mup" OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Deleting the delete flag for mup" DeleteRegValue $(TempKey) "DeleteFlag" ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to delete Mups Delete Flag" endif CloseRegKey $(TempKey) else Debug-Output "OEMNPRNW.INF: Failed to open "$(TempKeyName) endif ; ; Set the group Order ; Shell $(NwSubsInf) InstallEx-ServiceGroupOrder $(GroupOrderToFollow) $(SvcList) Ifstr(i) $($R0) != NO_ERROR set CommonStatus = STATUS_NO_EFFECT Endif FreeLibrary $(NwLibHandle) goto end ;----------------------------------------------- ; Removenetware section ;----------------------------------------------- removenetware = + StartWait LoadLibrary $(LoadDisk3Text) $(!STF_WINDOWSSYSPATH)"\"$(NwSetupDll) NwLibHandle ; ; Remove the SAM Redirection changes made to server ; ifstr(i) $(AdvancedServer) == "YES" Set TempKeyName = $(!NTN_ServiceBase)"\LanmanServer" OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) GetRegValue $(TempKey) "DependOnService" ValueData Set ValueList = *($(ValueData), 4) CloseRegKey $(TempKey) ifcontains(i) "NetWareWorkstation" in $(ValueList) ; ; if SAM has been migrated, warn the user ; LibraryProcedure GUIResult $(NwLibHandle) NWCheckSAMMigrated ifstr(i) $(GUIResult) == "TRUE" set DlgType = "MessageBox" set STF_MB_TITLE = $(FunctionTitle) set STF_MB_TEXT = $(RemoveSAMMessageText) set STF_MB_TYPE = 3 set STF_MB_ICON = 4 set STF_MB_DEF = 2 ui start "NoAdapter" Ifstr(i) $(DLGEVENT) == "NO" set CommonStatus = STATUS_USERCANCEL goto end endif LibraryProcedure Status1, $(!LIBHANDLE), CheckFileExistance, $(!STF_WINDOWSSYSPATH)"\mssamsrv.dll" ifstr(i) $(Status1) == "YES" Debug-Output "OEMNPRNW.INF: renaming mssamsrv.dll to samsrv.dll" LibraryProcedure GUIResult $(NwLibHandle) NWRenameFile $(!STF_WINDOWSSYSPATH)"\samsrv.dll" $(!STF_WINDOWSSYSPATH)"\nwsamsrv.dll" LibraryProcedure GUIResult $(NwLibHandle) NWRenameFile $(!STF_WINDOWSSYSPATH)"\mssamsrv.dll" $(!STF_WINDOWSSYSPATH)"\samsrv.dll" endif endif Shell "" RemoveServiceDependency "LanmanServer" "NetWareWorkstation" Debug-Output "OEMNPRNW.INF: deleting files for SAM redirection" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nwsamsrv.dll" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\sammig.exe" Endif Endif Endif LibraryProcedure GUIResult $(NwLibHandle) NWCleanUpNetWare ; ; Remove the group that gets created on the desktop ; install Remove-NetWare-Group FreeLibrary $(NwLibHandle) goto end ;----------------------------------------------- ; Upgrade Software section ;----------------------------------------------- updatenetware = + StartWait ; ; Assume all is well ; set CommonStatus = STATUS_SUCCESSFUL ; ; Mark for no upgrade allowed by default ; Set CanUpgrade = "NO" ; ; Check the current version. Allow upgrade if current version is equal ; to or greater than installed version. ; OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_SoftwareBase)"\"$(Manufacturer) $(MAXIMUM_ALLOWED) SoftwareNovell Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) GetRegValue $(SoftwareNovell) "CurrentVersion" VersionList ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) set VersionListData = *($(VersionList), 4) Split-string $(VersionListData) "." SplitVersionList Set NWMajorVersion = *($(SplitVersionList), 1) Set NWMinorVersion = *($(SplitVersionList), 3) Debug-OutPut "Installed NetWare Client version is "$(VersionListData) Debug-OutPut "Installed NetWare Client Major version is "$(NWMajorVersion) Debug-OutPut "Installed NetWare Client Minor version is "$(NWMinorVersion) ifint $(MajorVersion) == $(NWMajorVersion) ifint $(MinorVersion) >= $(NWMinorVersion) set CanUpgrade = "YES" endif else ifint $(MajorVersion) > $(NWMajorVersion) set CanUpgrade = "YES" endif endif else Debug-Output "OEMNPRNW.INF: Error getting NetWare Client version" endif CloseRegKey $(SoftwareNovell) Endif ; ; Temporarily disable upgrade if needed ; ; set CanUpgrade = "NO" ; ; Check the upgrade flag to see if upgrade allowed. ; ; ifstr(i) $(CanUpgrade) == "NO" ; Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(UpgradeButtonMessage) ; ; ifint $($ShellCode) != $(!SHELL_CODE_OK) ; goto ShellCodeError ; endif ; goto end ; endif ; ; Check free disk space on system drive DISABLED 1/23/96 FOR UPDATE MODE ; ; shell "" CheckSystemDriveSpace ; ifint $($ShellCode) != $(!SHELL_CODE_OK) ; goto ShellCodeError ; else-ifstr(i) $($R0) != STATUS_SUCCESSFUL ; set CommonStatus = STATUS_USERCANCEL ; goto end ; endif LibraryProcedure STATUS, $(!LIBHANDLE), AppendBackSlash $(SrcDir) ifstr(i) $(STATUS) != "ERROR" set SrcDir = $(STATUS) Endif OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductNWFSName)"\CurrentVersion\NetRules" $(MAXIMUM_ALLOWED) SoftwareNovell Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) GetRegValue $(SoftwareNovell) "InfName" CurrentName Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) set !UG_Filename = *($(CurrentName), 4) Endif CloseRegKey $(SoftwareNovell) Endif ; ; Check for ODI Drivers ; Shell $(NwSubsInf) GetTotalAdapterList Set OdiProductNameList = $($R0) Set OdiTitleList = $($R1) Set OdiCardList = $($R2) Set NumberOdiAdapters = $($R3) Set NdisProductNameList = $($R4) Set NdisTitleList = $($R5) Set NdisCardList = $($R6) Set NumberNdisAdapters = $($R7) Set ODINSUPCardNumber = $($R8) Set NetWareIPCardNumList = $($R9) Set NumberNetWareIPAdapters = $($R10) ; ; If ODI adapters installed, check to see if they are using the ; old inf files to install and remove. ; set RemovedODIAdapters = 0 set ODIInfOptionList = {} ifint $(NumberOdiAdapters) > 0 LibraryProcedure Status1, $(!LIBHANDLE), CheckFileExistance, $(!STF_WINDOWSSYSPATH)"\oemnadna.inf" ifstr(i) $(Status1) == "YES" Debug-Output "OEMNPRNW.INF: Old ODI drivers installed" set CardsKeyName = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards" ForListDo $(OdiCardList) ; ; Find the associated inf file name ; set ODICard = $($) set TempKeyName = $(CardsKeyName)"\"$(ODICard)"\NetRules" OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) GetRegValue $(TempKey) "InfName" ValueData ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) Set InfName = *($(ValueData), 4) GetRegValue $(TempKey) "InfOption" ValueData ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) Set InfOption = *($(ValueData), 4) ; ; Add to option list so we can make an atempt at ; readding the ODI Adapter later ; Set ODIInfOptionList = >($(ODIInfOptionList), $(InfOption)) ; ; Call the inf to remove the ODI Adapter ; set OldInstallMode = $(!NTN_InstallMode) set !NTN_InstallMode = deinstall set OldNTN_RegBase = $(!NTN_RegBase) set !NTN_RegBase = $(CardsKeyName)"\"$(ODICard) Shell $(InfName) InstallOption, $(!STF_LANGUAGE), $(InfOption), "", "YES", "YES", "NO" ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set !NTN_RegBase = $(OldNTN_RegBase) set !NTN_InstallMode = $(OldInstallMode) ; ; set flag so message will be displayed at end of upgrade ; set RemovedODIAdapters = 1 else Debug-Output "OEMNPRNW.INF: Failed to get InfOption value" CloseRegKey $(TempKey) endif else Debug-Output "OEMNPRNW.INF: Failed to get InfName value" CloseRegKey $(TempKey) endif CloseRegKey $(TempKey) else Debug-Output "OEMNPRNW.INF: Failed to open key "$(TempKeyName) endif EndForListDo endif endif Debug-Output "OEMNPRNW.INF: ODIInfOptionList is "$(ODIInfOptionList) ; ; If NWIP is installed, check to see if they are using the ; old NWIP.SYS. ; set RemovedNWIP = 0 Set TempKeyName = $(!NTN_ServiceBase)"\NWIP" OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Old NWIP installed. Must remove it." CloseRegKey $(TempKey) ; ; Save NWIP parameters ; Set TempKeyName = $(!NTN_ServiceBase)"\NWIP\Parameters" OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) set DomainName = "" set Compatibility = "" set AutoRetries = "" set AutoRetrySecs = "" set NSQBroadcast = "" set NearestIPServer = {} set PreferredDSS = {} GetRegValue $(TempKey) "NetWare/IP Domain" KeyValueList ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) set DomainName = *($(KeyValueList), 4) else Debug-Output "OEMNPRNW.INF: Failed to get NWIP DomainName" endif GetRegValue $(TempKey) "1.1Compatibility" KeyValueList ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) set Compatibility = *($(KeyValueList), 4) else Debug-Output "OEMNPRNW.INF: Failed to get NWIP 1.1 Compatibility" endif GetRegValue $(TempKey) "AutoRetries" KeyValueList ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) set AutoRetries = *($(KeyValueList), 4) else Debug-Output "OEMNPRNW.INF: Failed to get NWIP AutoRetries" endif GetRegValue $(TempKey) "AutoRetry Secs" KeyValueList ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) set AutoRetrySecs = *($(KeyValueList), 4) else Debug-Output "OEMNPRNW.INF: Failed to get NWIP AutoRetry Secs" endif GetRegValue $(TempKey) "NSQ Broadcast" KeyValueList ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) set NSQBroadcast = *($(KeyValueList), 4) else Debug-Output "OEMNPRNW.INF: Failed to get NWIP NSQ Broadcast" endif GetRegValue $(TempKey) "Nearest NetWare/IP Server" KeyValueList ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) set NearestIPServer = *($(KeyValueList), 4) else Debug-Output "OEMNPRNW.INF: Failed to get NWIP Nearest NetWare/IP Server" endif GetRegValue $(TempKey) "Preferred DSS" KeyValueList ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) set PreferredDSS = *($(KeyValueList), 4) else Debug-Output "OEMNPRNW.INF: Failed to get NWIP Preferred DSS" endif CloseRegKey $(TempKey) Debug-Output "OEMNPRNW.INF: DomainName = "$(DomainName) Debug-Output "OEMNPRNW.INF: Compatibility = "$(Compatibility) Debug-Output "OEMNPRNW.INF: AutoRetries = "$(AutoRetries) Debug-Output "OEMNPRNW.INF: AutoRetrySecs = "$(AutoRetrySecs) Debug-Output "OEMNPRNW.INF: NSQBroadcast = "$(NSQBroadcast) Debug-Output "OEMNPRNW.INF: NearestIPServer = "$(NearestIPServer) Debug-Output "OEMNPRNW.INF: PreferredDSS = "$(PreferredDSS) ; ; Set a global varible that the installation of NetWareIP can look ; at later to see if it needs to pop-up the property sheets to ; configure NetWareIP at that point. Since we saved the parameters ; from the old installation of NWIP, set the variable. ; set !HaveNetWareIPParameters = "YES" else Debug-Output "OEMNPRNW.INF: Failed to open key "$(!NTN_ServiceBase)"\NWIP\Parameters" endif ; ; Call old NWIP inf file to remove NWIP ; set OldInstallMode = $(!NTN_InstallMode) set !NTN_InstallMode = deinstall Shell "oemnsvip.inf" InstallOption, $(!STF_LANGUAGE), "NWIP", "", "YES", "YES", "NO" ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set !NTN_InstallMode = $(OldInstallMode) ; ; set flag so message will be displayed at end of upgrade ; set RemovedNWIP = 1 endif ; ; Install NWLINK if not already installed. Our client now depends ; on NWLINK. ; shell "" Install-NWLINK ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError else-ifstr(i) $($R0) != STATUS_SUCCESSFUL goto fatal endif ; ; Create directories for language dependent files ; install "Install-NetWare-Dir" ; ; Copy all files to destination ; set AddCopy = "YES" set DoCopy = "YES" Install "Install-Files" ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE" ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set Error = $($R0) goto fatal endif set AddCopy = $(OriginalAddCopy) set DoCopy = $(OriginalDoCopy) StartWait ; ; Create the NetWare group and icons ; install "Install-NetWare-Group" ; ; Add different various parameters to the system ; Install "Install-Parameters" ; ; Install the NetWare Gina dll. ; shell "" Install-Gina ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError else-ifstr(i) $($R0) != STATUS_SUCCESSFUL ; ; Set common status and exit ; set CommonStatus = $($R0) goto setfailed endif ; ; Install our help files in the NT help ; Install "Install-Help" ; ; Load our NWSETUP.DLL library ; LoadLibrary $(LoadDisk3Text) $(!STF_WINDOWSSYSPATH)"\"$(NwSetupDll) NwLibHandle ; ; Novell.cpl changed to Nwcpl.cpl so delete old name. ; LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\novell.cpl" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\novellr.dll" ifint $(NTMajorVersion) == "4" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nwcpl.cpl" endif ; ; Delete all old NT win16 library files. ; Real 16 bit windows libraries were copied with "Install-Files" ; These files are no longer used. ; LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSPATH)"\system\nwipxspx.dll" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSPATH)"\system\netware.drv" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nwcalls.dll" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nwnet.dll" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nwclient.dll" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nwncp.dll" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nwlocale.dll" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nwcvdd.dll" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nwdrvvdd.dll" ; ; The 32 bit libraries have changed. Supwin32.dll is no longer used as ; well as the temporary psapi32.dll and prtwinnt.dll. ; LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\supwin32.dll" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\psapi32.dll" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\prtwinnt.dll" ; ; These files were originally installed in the wrong directories. New ; ones were copied to the correct directories so delete these. ; LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\netx.msg" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\vipx.msg" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nwevents.dll" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\tli_win.dll" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nwelcome.bmp" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\netware\nwmsgsvc.exe" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\netware\reconsvc.exe" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\netware\readme.hlp" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\netware\nwip.sys" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nwrights.dll" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nwshlxnt.dll" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nt3using.hlp" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nt3using.cnt" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nt4using.hlp" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nt4using.cnt" ; ; These files are now obsolete so delete them if they exist ; LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\gdos.exe" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\shellvdd.dll" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\netware\clean.exe" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\vipx.msg" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\netx.msg" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\loginwnt.hlp" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt3admin.hlp" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt4admin.hlp" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\reconsvc.exe" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nwconfig.nt" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nwauto.nt" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\netx.exe" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSPATH)"\netware.pif" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nwchgpwd.exe" ; ; Changes made to the ODI team stuff include renaming route.sys to ; sroute.sys. Delete old files and fix registry. ; LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\oemnadna.inf" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\oemnadnb.inf" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\oemnadnc.inf" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\oemnadnd.inf" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\netware\route.sys" Set TempKeyName = $(!NTN_ServiceBase)"\"$(ProductSROUTEName) OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Fixing OdiSourceRouting" SetRegValue $(TempKey) {"ImagePath", $(NoTitle), $(!REG_VT_EXPAND_SZ), "\SystemRoot\System32\NetWare\sroute.sys"} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to fix ODISourceRouting ImagePath" endif CloseRegKey $(TempKey) endif ; ; Set up to use NWLINK ; ; These files are now obsolete because we are running under ; NWLINK. Delete them if they exist ; LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\netware\ipxapi.sys" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\netware\ipxspx.sys" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\netware\spxapi.sys" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\netware\vmlid.sys" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\ipxapi.dll" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\spxapi.dll" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\wshnw.dll" ; ; Reload lines in autoexec.nt and reload performance counters ; LibraryProcedure GUIResult $(NwLibHandle) NWCleanUpAutoexec LibraryProcedure GUIResult $(NwLibHandle) NWFixUpAutoexec LibraryProcedure GUIResult $(NwLibHandle) NWUnLoadPerformanceCounters LibraryProcedure GUIResult $(NwLibHandle) NWLoadPerformanceCounters ; ; Free the NWSETUP.DLL ; FreeLibrary $(NwLibHandle) ; ; Remove the old services from the registry and from eventlog. ; Also from software section of registry. ; Set TempKeyName = $(!NTN_ServiceBase) OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Deleting all our IPXSPX services" DeleteRegTree $(TempKey) "IpxApi" ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to delete IpxApi registry key" endif DeleteRegTree $(TempKey) "IpxSpx" ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to delete IpxSpx registry key" endif DeleteRegTree $(TempKey) "OdiVMLID" ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to delete OdiVMLID registry key" endif DeleteRegTree $(TempKey) "SpxApi" ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to delete SpxApi registry key" endif DeleteRegTree $(TempKey) "NetWareAutoReconnect" ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to delete NetWareAutoReconnect registry key" endif CloseRegKey $(TempKey) else Debug-Output "OEMNPRNW.INF: Failed to open services key to delete old services" endif Set TempKeyName = $(!NTN_ServiceBase)"\EventLog\System" OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Deleting all our IPXSPX services from EventLog" DeleteRegTree $(TempKey) "IpxApi" ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to delete IpxApi registry key from EventLog" endif DeleteRegTree $(TempKey) "IpxSpx" ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to delete IpxSpx registry key from EventLog" endif DeleteRegTree $(TempKey) "OdiVMLID" ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to delete OdiVMLID registry key from EventLog" endif DeleteRegTree $(TempKey) "SpxApi" ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to delete SpxApi registry key from EventLog" endif DeleteRegTree $(TempKey) "NetWareAutoReconnect" ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to delete NetWareAutoReconnect registry key" endif CloseRegKey $(TempKey) else Debug-Output "OEMNPRNW.INF: Failed to open services\eventlog key to delete old services" endif Set TempKeyName = $(!NTN_SoftwareBase)"\Novell" OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Deleting all our IPXSPX services from Software" DeleteRegTree $(TempKey) "IpxSpx" ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to delete IpxSpx registry key from Software" endif DeleteRegTree $(TempKey) "OdiVMLID" ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to delete OdiVMLID registry key from Software" endif CloseRegKey $(TempKey) else Debug-Output "OEMNPRNW.INF: Failed to open software key to delete old services" endif ; ; Fix to change the \NWGINA\Auto Configuation key to \NWGINA\Workstation Manager ; Set TempKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\NWGINA\Workstation Manager" OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey ; open new key ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) ; if have new key, then done Set TempKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\NWGINA\Auto Configuration" OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey ; open old key ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) ; if no old, then done Debug-Output "OEMNPRNW.INF: Found \NWGINA\Auto Configuration" EnumRegValue $(TempKey) TempValueList ; get all values for old key CloseRegKey $(TempKey) ; close old key Set TempKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\NWGINA\Workstation Manager" CreateRegKey $(!REG_H_LOCAL) {$(TempKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" TempKey ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) ; create new key Debug-Output "OEMNPRNW.INF: Created \NWGINA\Workstation Manager" ForListDo $(TempValueList) SetRegValue $(TempKey) $($) ; set values in new key ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Setting \NWGINA\Workstation Manager\"*($($), 1) else Debug-Output "OEMNPRNW.INF: Error setting \NWGINA\Workstation Manager\"*($($), 1) endif EndForListDo else Debug-Output "OEMNPRNW.INF: Error creating \NWGINA\Workstation Manager" endif CloseRegKey $(TempKey) endif else CloseRegKey $(TempKey) endif ; ; Delete "SOFTWARE\Novell\NWGINA\Auto Configuration" if it exists ; Set TempKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\NWGINA" OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey ; open old key base ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) ; if no base, then done DeleteRegKey $(TempKey) "Auto Configuration" ; delete old key from base ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) ; if no value, then done Debug-Output "OEMNPRNW.INF: Deleting \NWGINA\Auto Configuration" endif endif ; ; Move the Enabled parameter from the Dynamic Local User to the Workstation Manager key ; Set TempKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\NWGINA\Dynamic Local User" OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey ; open old parameter key ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) ; if no old, then done GetRegValue $(TempKey) "Enabled" EnabledList ; get old values ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) ; if no value, then done Debug-Output "OEMNPRNW.INF: Deleting old \NWGINA\Dynamic Local User\Enabled" DeleteRegValue $(TempKey) *($(EnabledList), 1) ; delete old value CloseRegKey $(TempKey) ; close old key Set TempKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\NWGINA\Workstation Manager" OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey ; open new key ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) ; if no new key CreateRegKey $(!REG_H_LOCAL) {$(TempKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" TempKey ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) ; create new key Debug-Output "OEMNPRNW.INF: Error creating \NWGINA\Workstation Manager" goto EnabledError ; if error, then done endif endif GetRegValue $(TempKey) "Enabled" TempEnabledList ; get new value ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) ; if new value, then done SetRegValue $(TempKey) $(EnabledList) ; set new value ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Moved Enabled to \NWGINA\Workstation Manager" else Debug-Output "OEMNPRNW.INF: Error moving Enabled to \NWGINA\Workstation Manager" endif endif endif ; end of get old value CloseRegKey $(TempKey) ; closes either the old key or the new key (depending on how far we made it) endif ; end of open old key EnabledError = + ; ; Move the Trusted Trees parameter from the Dynamic Local User to the Workstation Manager key ; Set TempKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\NWGINA\Dynamic Local User" OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey ; open old parameter key ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) ; if no old, then done GetRegValue $(TempKey) "Trusted Trees" TrustedTreesList ; get old values ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) ; if no value, then done Debug-Output "OEMNPRNW.INF: Deleting old \NWGINA\Dynamic Local User\Trusted Trees" DeleteRegValue $(TempKey) *($(TrustedTreesList), 1) ; delete old value CloseRegKey $(TempKey) ; close old key Set TempKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\NWGINA\Workstation Manager" OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey ; open new key ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) ; if no new key CreateRegKey $(!REG_H_LOCAL) {$(TempKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" TempKey ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) ; create new key Debug-Output "OEMNPRNW.INF: Error creating \NWGINA\Workstation Manager" goto TrustedTreesError ; if error, then done endif endif GetRegValue $(TempKey) "Trusted Trees" TempTrustedTreesList ; get new value ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) ; if new value, then done SetRegValue $(TempKey) $(TrustedTreesList) ; set new value ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Moved Trusted Trees to \NWGINA\Workstation Manager" else Debug-Output "OEMNPRNW.INF: Error moving Trusted Trees to \NWGINA\Workstation Manager" endif endif endif ; end of get old value CloseRegKey $(TempKey) ; closes either the old key or the new key (depending on how far we made it) endif ; end of open old key TrustedTreesError = + ; ; Move the LSL Max Buffer Size parameter from NetWareWorkstation\Parameters to LSL\Parameters ; Set TempKeyName = $(!NTN_ServiceBase)"\NetWareWorkstation\Parameters" OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey ; open old parameter key ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) ; if no old, then done GetRegValue $(TempKey) "Max Buffer Size" MaxBufferSizeList ; get old values ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) ; if no value, then done Debug-Output "OEMNPRNW.INF: Deleting old \NetWareWorkstation\Parameters\Max Buffer Size" DeleteRegValue $(TempKey) *($(MaxBufferSizeList), 1) ; delete old value CloseRegKey $(TempKey) ; close old key Set TempKeyName = $(!NTN_ServiceBase)"\LSL\Parameters" OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey ; open new key ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) ; if no new key CreateRegKey $(!REG_H_LOCAL) {$(TempKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" TempKey ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) ; create new key Debug-Output "OEMNPRNW.INF: Error creating \LSL\Parameters" goto MaxBufferSizeError ; if error, then done endif endif GetRegValue $(TempKey) "Max Buffer Size" TempMaxBufferSizeList ; get new value ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) ; if new value, then done SetRegValue $(TempKey) $(MaxBufferSizeList) ; set new value ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Moved Max Buffer Size to \LSL\Parameters" else Debug-Output "OEMNPRNW.INF: Error moving Max Buffer Size to \LSL\Parameters" endif endif endif ; end of get old value CloseRegKey $(TempKey) ; closes either the old key or the new key (depending on how far we made it) endif ; end of open old key MaxBufferSizeError = + ; ; If language changes, then delete the old GINA login script and profile scripts ; ifstr(i) $(OldNLSDirName) != $(NLSDirName) Debug-Output "OEMNPRNW.INF: Language changed it was - "$(OldNLSDirName)" it is now - "$(NLSDirName) Set TempKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\NWGINA\Login Screen" OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) DeleteRegValue $(TempKey) "DefaultLoginScript" ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Deleted \NWGINA\Login Screen\DefaultLoginScript" else Debug-Output "OEMNPRNW.INF: Error Deleting \NWGINA\Login Screen\DefaultLoginScript" endif DeleteRegValue $(TempKey) "DefaultProfileScript" ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Deleted \NWGINA\Login Screen\DefaultProfileScript" else Debug-Output "OEMNPRNW.INF: Error Deleting \NWGINA\Login Screen\DefaultProfileScript" endif endif endif ; ; Remove IpxSpx from the transports value in Winsock ; Set TempKeyName = $(!NTN_ServiceBase)"\WinSock\Parameters" OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) GetRegValue $(TempKey) "Transports" ValueData Set ValueList = *($(ValueData), 4) Set NewList = {} ForListDo $(ValueList) Set Item = $($) Ifstr(i) $(Item) != "IpxSpx" Set NewList = >($(NewList), $(Item)) Endif EndForListDo SetRegValue $(TempKey) {"Transports", $(NoTitle), $(!REG_VT_MULTI_SZ), $(NewList)} Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Cant update Winsock Transports value" Endif CloseRegKey $(TempKey) else Debug-Output "OEMNPRNW.INF: Can't open key "$(TempKeyName) Endif ; ; Set up registry for new explorer. This is done with a call ; to the dll. The provider for NT 3.51 will also need to call ; this function if it detects an upgrade from NT 3.51 to 4.0 ; has occured. ; Shell "" InstallEx-NetworkProvider ; ; Remove the VipxVDD key from HKEY_LOCAL_MACHINE\Software\Novell ; if it exists ; set ProductName = "VipxVDD" set VIPXVDDManufactureBase = $(!NTN_SoftwareBase)"\"$(Manufacturer) OpenRegKey $(!REG_H_LOCAL) "" $(VIPXVDDManufactureBase) $(!REG_KEY_ALL_ACCESS) MFBaseKey ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) DeleteRegTree $(MFBaseKey) $(ProductName) ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "FATAL Registry Error: Error Deleting Key $(ProductName)" endif CloseRegKey $(MFBaseKey) else Debug-Output "FATAL Registry Error: Error Opening Key $(VIPXVDDManufactureBase)" endif ; ; Update the CurrentVersion value in SOFTWARE\NOVELL ; set TempKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer) OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) SetRegValue $(TempKey) {"CurrentVersion", $(NoTitle), $(!REG_VT_SZ), $(ProductVersion)} Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Unable to update CurrentVersion value in "$(TempKeyName) endif CloseRegKey $(TempKey) Endif ; ; The following is stuff that relates to installed services that ; need to change because of new requirements and so forth. ; ; ; Special case for ODINSUP cause he is not installed from this inf, ; therfore, he is not listed in the UpdateServiceNameList. ; Set ProductKeyName = $(!NTN_ServiceBase)"\ODINSUP" OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) ProductKey ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: ODINSUP is installed, fix it up" ; ; Set the correct path in the registry for the events file. The ; NWEVENTS.DLL file was moved to a new location. Must reflect this ; in the registry for all things that use it. ; ; Open key to the appropriate system eventlog service ; Set TempKeyName = $(!NTN_ServiceBase)"\EventLog\System\ODINSUP" OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) ; ; Set the new events log value same as LSL event log file ; SetRegValue $(TempKey) {"EventMessageFile", $(NoTitle), $(!REG_VT_EXPAND_SZ), $(ProductLSLEventFile)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to fix EventMessageFile for ODINSUP" endif ; ; Close the key ; CloseRegKey $(TempKey) else Debug-Output "OEMNPRNW.INF: Failed to open key "$(TempKeyName) endif ; ; Update the product software information ; Set TempKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\ODINSUP\CurrentVersion" OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) ; ; Set the new major version number ; SetRegValue $(TempKey) {"MajorVersion", $(NoTitle), $(!REG_VT_DWORD), $(MajorVersion)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to set new major version info for ODINSUP" endif ; ; Set the new minor version number ; SetRegValue $(TempKey) {"MinorVersion", $(NoTitle), $(!REG_VT_DWORD), $(MinorVersion)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to set new minor version info for ODINSUP" endif ; ; Set the new description and title ; SetRegValue $(TempKey) {"Description", $(NoTitle), $(!REG_VT_SZ), $(ProductODINSUPDisplayName)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to set Description for ODINSUP" endif SetRegValue $(TempKey) {"Title", $(NoTitle), $(!REG_VT_SZ), $(ProductODINSUPDisplayName)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to set Title for ODINSUP" endif ; ; Close the key ; CloseRegKey $(TempKey) else Debug-Output "OEMNPRNW.INF: Failed to open key "$(TempKeyName) endif ; ; Fix the display name ; SetRegValue $(ProductKey) {"DisplayName", $(NoTitle), $(!REG_VT_SZ), $(ProductODINSUPDisplayName)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to update DisplayName for "$(UpdateSvcOpt) endif ; ; Close the first key ; CloseRegKey $(ProductKey) endif ForListDo $(UpdateServiceNameList) Set UpdateSvcOpt = $($) ; ; Check to see if the product to be fixed is there ; Set ProductKeyName = $(!NTN_ServiceBase)"\"$(Product$(UpdateSvcOpt)Name) OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) ProductKey ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: "$(UpdateSvcOpt)" is installed, fix it up" ; ; Set the correct path in the registry for the events file. The ; NWEVENTS.DLL file was moved to a new location. Must reflect this ; in the registry for all things that use it. ; ; Open key to the appropriate system eventlog service ; Set TempKeyName = $(!NTN_ServiceBase)"\EventLog\System\"$(Product$(UpdateSvcOpt)Name) OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) ; ; Set the new events log value ; SetRegValue $(TempKey) {"EventMessageFile", $(NoTitle), $(!REG_VT_EXPAND_SZ), $(Product$(UpdateSvcOpt)EventFile)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to fix EventMessageFile for "$(UpdateSvcOpt) endif ; ; Close the key ; CloseRegKey $(TempKey) else Debug-Output "OEMNPRNW.INF: Failed to open key "$(TempKeyName) endif ; ; Update the product software information ; Set TempKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(Product$(UpdateSvcOpt)Name)"\CurrentVersion" OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) ; ; Set the new major version number ; SetRegValue $(TempKey) {"MajorVersion", $(NoTitle), $(!REG_VT_DWORD), $(MajorVersion)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to set new major version info for "$(UpdateSvcOpt) endif ; ; Set the new minor version number ; SetRegValue $(TempKey) {"MinorVersion", $(NoTitle), $(!REG_VT_DWORD), $(MinorVersion)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to set new minor version info for "$(UpdateSvcOpt) endif ; ; Set the new description and title ; SetRegValue $(TempKey) {"Description", $(NoTitle), $(!REG_VT_SZ), $(Product$(UpdateSvcOpt)DisplayName)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to update Description for "$(UpdateSvcOpt) endif SetRegValue $(TempKey) {"Title", $(NoTitle), $(!REG_VT_SZ), $(Product$(UpdateSvcOpt)DisplayName)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to update Title for "$(UpdateSvcOpt) endif ; ; Close the key ; CloseRegKey $(TempKey) else Debug-Output "OEMNPRNW.INF: Failed to open key "$(TempKeyName) endif ; ; Fix the display name ; SetRegValue $(ProductKey) {"DisplayName", $(NoTitle), $(!REG_VT_SZ), $(Product$(UpdateSvcOpt)DisplayName)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to update DisplayName for "$(UpdateSvcOpt) endif ; ; Add new values to Netware Workstation if needed. ; Open the parameters key ; ifstr(i) $(UpdateSvcOpt) == "NWFS" ; ; Set up redirector to be of group NetworkProvider ; SetRegValue $(ProductKey) {"Group", $(NoTitle), $(!REG_VT_SZ), "NetworkProvider"} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to update group for "$(UpdateSvcOpt) endif ; ; Update the parameters for redirector ; Set TempKeyName = $(!NTN_ServiceBase)"\"$(Product$(UpdateSvcOpt)Name)"\Parameters" OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) ; ; The name of the packet signature value changed. Read old ; value name and set the new signature level value if needed. ; GetRegValue $(TempKey) "Packet Signature" SignatureList ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) set SignatureListData = *($(SignatureList), 4) SetRegValue $(TempKey) {"Signature Level", $(NoTitle), $(!REG_VT_DWORD), $(SignatureListData)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to update signature level for "$(UpdateSvcOpt) endif DeleteRegValue $(TempKey) "Packet Signature" ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to delete the Packet Signature for NWGINA.DLL" endif else GetRegValue $(TempKey) "Signature Level" SignatureList ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) SetRegValue $(TempKey) {"Signature Level", $(NoTitle), $(!REG_VT_DWORD), 1} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to add signature level value for "$(UpdateSvcOpt) endif else Debug-Output "OEMNPRNW.INF: Signature level value for "$(UpdateSvcOpt)" is already set" endif endif ; ; Preferred tree and context values have changed. Read old ; values and transfer to the new Tree, context pair values. ; GetRegValue $(TempKey) "Preferred Tree" TreeList ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) set TreeListData = *($(TreeList), 4) GetRegValue $(TempKey) "Name Context" ContextList ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) set ContextListData = *($(ContextList), 4) CreateRegKey $(TempKey) {"Trees", $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" TreesKey ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) SetRegValue $(TreesKey) {$(TreeListData), $(NoTitle), $(!REG_VT_SZ), $(ContextListData)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to update tree and context pair value for "$(UpdateSvcOpt) endif CloseRegKey $(TreesKey) else Debug-Output "OEMNPRNW.INF: Failed to create Trees key for "$(UpdateSvcOpt) endif else Debug-Output "OEMNPRNW.INF: Failed to get Name Context value for "$(UpdateSvcOpt) endif else Debug-Output "OEMNPRNW.INF: Failed to get Preferred Tree value for "$(UpdateSvcOpt) endif DeleteRegValue $(TempKey) "Name Context" ; ; Set up redirector to use NWLINK ; SetRegValue $(TempKey) {"IPX TDI Provider", $(NoTitle), $(!REG_VT_SZ), "\Device\NwLnkIpx"} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to set up redirector to use NWLINK" endif ; ; Close the key ; CloseRegKey $(TempKey) else Debug-Output "OEMNPRNW.INF: Failed to open key "$(TempKeyName) endif ; ; Set the new service dependencies for NWFS ; Set TempKeyName = $(!NTN_ServiceBase)"\"$(Product$(UpdateSvcOpt)Name)"\Linkage" OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) ; ; Set the new service dependencies for NWFS ; SetRegValue $(TempKey) {"OtherDependencies", $(NoTitle), $(!REG_VT_MULTI_SZ), {"Mup", "NwlnkIpx", "+NetWare Services", "+TDI"}} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to update service dependencies for "$(UpdateSvcOpt) endif ; ; Close the key ; CloseRegKey $(TempKey) else Debug-Output "OEMNPRNW.INF: Failed to open key "$(TempKeyName) endif ; ; On 3.5 or 3.5b clients, the inf file "oemnprnw.inf" did not ; exist, therefore, the InfName value was set to oemsetup.inf ; (or the munged file name). This is not the correct file to ; run when doing bindings reviews now that the client has been ; upgraded. We need to set the InfName so NT runs the correct ; Inf file during bindings reviews. ; Set TempKeyName = $(ProductNWFSKeySoftware)"\NetRules" OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) ; ; Get the old InfName for NWFS ; GetRegValue $(TempKey) "InfName" KeyValueList ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) set InfName = *($(KeyValueList), 4) ifstr(i) $(InfName) != "oemnprnw.inf" ; ; Delete the old inf file ; LoadLibrary $(LoadDisk3Text) $(!STF_WINDOWSSYSPATH)"\"$(NwSetupDll) NwLibHandle LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\"$(InfName) FreeLibrary $(NwLibHandle) ; ; Set the InfName for the inf file to run at review time ; SetRegValue $(TempKey) {"InfName", $(NoTitle), $(!REG_VT_SZ), "oemnprnw.inf"} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to update InfName for "$(UpdateSvcOpt) endif else Debug-Output "OEMNPRNW.INF: InfName for "$(UpdateSvcOpt)" is already correct" endif else Debug-Output "OEMNPRNW.INF: Failed to get InfName for "$(UpdateSvcOpt) endif ; ; Fix up the bindable value so we will show up in the bindings ; SetRegValue $(TempKey) {"Bindable", $(NoTitle), $(!REG_VT_MULTI_SZ), $(NetRule$(UpdateSvcOpt)SoftwareBindable)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to update InfName for "$(UpdateSvcOpt) endif ; ; Close the key ; CloseRegKey $(TempKey) else Debug-Output "OEMNPRNW.INF: Failed to open key "$(TempKeyName) endif endif ; ; Set the correct path in the registry for the two services that ; got moved. RECONSVC.EXE and NWMSGSVC.EXE were moved from ; system32\netware to system32 where all the other non driver ; executables are located. ; ifstr(i) $(UpdateSvcOpt) == "RECONNECT" ; ; Set the new Image Paths ; SetRegValue $(ProductKey) {"ImagePath", $(NoTitle), $(!REG_VT_EXPAND_SZ), $(Product$(UpdateSvcOpt)ImagePath)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to fix ImagePath for "$(UpdateSvcOpt) endif endif ifstr(i) $(UpdateSvcOpt) == "NWPOPUP" ; ; Set the new Image Paths ; SetRegValue $(ProductKey) {"ImagePath", $(NoTitle), $(!REG_VT_EXPAND_SZ), $(Product$(UpdateSvcOpt)ImagePath)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to fix ImagePath for "$(UpdateSvcOpt) endif endif ; ; Close the first key ; CloseRegKey $(ProductKey) endif EndForListDo ; ; Set up to install any services that were not part of a previous client. ; ForListDo $(ServiceNameList) Set Do$($) = TRUE EndForListDo set CalledFromUpdate = "YES" goto InstallEnabledServices ReturnToUpdate = + ifint $(RemovedODIAdapters) == 1 Debug-Output "OEMNPRNW.INF: Attempting to readd ODI LAN drivers" ForListDo $(ODIInfOptionList) set OdiDriverName = $($) Debug-Output "OEMNPRNW.INF: OdiDriverName to install is "$(OdiDriverName) ; ; get a list of all possible adapters ; Debug-Output "Shelling to OTHER.INF ReturnOemOptions" Shell "OTHER.INF" ReturnOemOptions $(!STF_LANGUAGE) NetAdapter TRUE Ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "OEMNPRNW.INF: OTHER.INF ReturnOemOptions ShellCode error "$($ShellCode) Endif Debug-Output "Return from shelling to OTHER.INF ReturnOemOptions" Ifstr(i) $($R0) == "STATUS_SUCCESSFUL" set AdapterOurINFOptions = $($R1) Debug-Output "OEMNPRNW.INF: AdapterOurINFOptions = "$(AdapterOurINFOptions) ; ; get the INF filename the ODI adapter is in ; Debug-Output "Shelling to HARDWARE.INF GetOptionFile" Shell "HARDWARE.INF" GetOptionFile $(OdiDriverName) $(AdapterOurINFOptions) Ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "OEMNPRNW.INF: HARDWARE.INF GetOptionFile ShellCode error "$($ShellCode) Endif Debug-Output "Return from shelling to HARDWARE.INF GetOptionFile" ifstr(i) $($R0) == "STATUS_SUCCESSFUL" set AdapterINF = $($R1) Debug-Output "AdapterINF is "$(AdapterINF) ; ; run the INF file to install the ODI driver ; set NwAddCopy = "NO" set NwDoCopy = "NO" set NwDoConfig = "NO" Set OldInstallMode = $(!NTN_InstallMode) Set !NTN_InstallMode = install Shell $(AdapterINF) InstallOption $(!STF_LANGUAGE) $(OdiDriverName) + $(SrcDir) $(NwAddCopy) $(NwDoCopy) $(NwDoConfig) Set !NTN_InstallMode = $(OldInstallMode) set Status = $($R0) Debug-Output "OEMNPRNW.INF: InstallOption Status = "$(Status) else Debug-Output "Error in HARDWARE.INF GetOptionFile "$($R0) endif else Debug-Output "Error in HARDWARE.INF InitOptionVars "$($R0) Endif EndForListDo else Debug-Output "OEMNPRNW.INF: Checking to see in ODI LAN drivers are installed" ; ; Flush NCPA.CPL cache on our inf file. The inf file was updated ; and we want it to run the new file. ; FlushInf "NWSUBS.INF" ; ; Check for ODI Drivers ; Shell $(NwSubsInf) GetTotalAdapterList Set OdiProductNameList = $($R0) Set OdiTitleList = $($R1) Set OdiCardList = $($R2) Set NumberOdiAdapters = $($R3) Set NdisProductNameList = $($R4) Set NdisTitleList = $($R5) Set NdisCardList = $($R6) Set NumberNdisAdapters = $($R7) Set ODINSUPCardNumber = $($R8) Set NetWareIPCardNumList = $($R9) Set NumberNetWareIPAdapters = $($R10) ; ; If ODI adapters installed, call appropriate inf to update the driver ; ifint $(NumberOdiAdapters) > 0 Debug-Output "OEMNPRNW.INF: Updating ODI LAN drivers" set CardsKeyName = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards" ForListDo $(OdiCardList) ; ; Find the associated inf file name ; set ODICard = $($) set TempKeyName = $(CardsKeyName)"\"$(ODICard)"\NetRules" OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) GetRegValue $(TempKey) "InfName" ValueData ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) Set InfName = *($(ValueData), 4) GetRegValue $(TempKey) "InfOption" ValueData ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) Set InfOption = *($(ValueData), 4) ; ; Check to see if it is an inf file that we shiped. ; It may or may not be compressed so must check for both ; Split-String $(InfName) "." InfTempList QueryListSize InfTempListSize $(InfTempList) set InfTempName = *($(InfTempList), 1) set DoODIUpdate = "NO" LibraryProcedure Status1, $(!LIBHANDLE), CheckFileExistance, $(SrcDir)"\nls\"$(NLSDirName)"\"$(InfTempName)".in_" ifstr(i) $(Status1) == "YES" set DoODIUpdate = "YES" else LibraryProcedure Status1, $(!LIBHANDLE), CheckFileExistance, $(SrcDir)"\nls\"$(NLSDirName)"\"$(InfTempName)".inf" ifstr(i) $(Status1) == "YES" set DoODIUpdate = "YES" endif endif ifstr(i) $(DoODIUpdate) == "YES" Debug-Output "OEMNPRNW.INF: Found driver Inf "$(InfName)" on distribution media" ; ; Call the inf to update the ODI Adapter ; set NwAddCopy = "YES" set NwDoCopy = "YES" set NwDoConfig = "NO" set OldInstallMode = $(!NTN_InstallMode) set !NTN_InstallMode = update set OldNTN_RegBase = $(!NTN_RegBase) set !NTN_RegBase = $(CardsKeyName)"\"$(ODICard) Shell $(InfName) InstallOption $(!STF_LANGUAGE) $(InfOption) + $(SrcDir) $(NwAddCopy) $(NwDoCopy) $(NwDoConfig) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set !NTN_RegBase = $(OldNTN_RegBase) set !NTN_InstallMode = $(OldInstallMode) endif else Debug-Output "OEMNPRNW.INF: Failed to get InfOption value" CloseRegKey $(TempKey) endif else Debug-Output "OEMNPRNW.INF: Failed to get InfName value" CloseRegKey $(TempKey) endif CloseRegKey $(TempKey) else Debug-Output "OEMNPRNW.INF: Failed to open key "$(TempKeyName) endif EndForListDo endif Endif ifint $(RemovedNWIP) == 1 Debug-Output "OEMNPRNW.INF: Attempting to readd NetWareIP" ; ; Flush NCPA.CPL cache on our inf file. The inf file was updated ; and we want it to run the new file. ; FlushInf "OEMNSVIP.INF" ; ; Try to readd NetWareIP ; Set OldInstallMode = $(!NTN_InstallMode) Set !NTN_InstallMode = install Shell "OEMNSVIP.INF" InstallOption $(!STF_LANGUAGE) "NetWareIP" "" NO NO NO Set !NTN_InstallMode = $(OldInstallMode) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError Endif ; ; Restore NetWareIP parameters ; Set TempKeyName = $(!NTN_ServiceBase)"\NetWareIP\Parameters" OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) ifstr(i) $(DomainName) != "" SetRegValue $(TempKey) {"NWIP Domain Name", $(NoTitle), $(!REG_VT_SZ), $(DomainName)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to set NetWareIP NWIP Domain Name" endif endif ifstr(i) $(Compatibility) != "" SetRegValue $(TempKey) {"NWIP1_1 Compatibility", $(NoTitle), $(!REG_VT_DWORD), $(Compatibility)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to set NetWareIP NWIP1_1 Compatibility" endif endif ifstr(i) $(AutoRetries) != "" SetRegValue $(TempKey) {"AutoRetries", $(NoTitle), $(!REG_VT_DWORD), $(AutoRetries)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to set NetWareIP AutoRetries" endif endif ifstr(i) $(AutoRetrySecs) != "" SetRegValue $(TempKey) {"AutoRetry Secs", $(NoTitle), $(!REG_VT_DWORD), $(AutoRetrySecs)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to set NetWareIP AutoRetry Secs" endif endif ifstr(i) $(NSQBroadcast) != "" SetRegValue $(TempKey) {"NSQ Broadcast", $(NoTitle), $(!REG_VT_DWORD), $(NSQBroadcast)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to set NetWareIP NSQ Broadcast" endif endif ifstr(i) $(NearestIPServer) != {} CreateRegKey $(TempKey) {"Nearest NWIP Server", $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" NearestServerKey set Index = 0 ForListDo $(NearestIPServer) SetRegValue $(NearestServerKey) {$(Index), $(NoTitle), $(!REG_VT_SZ), $($)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to set NetWareIP Nearest NWIP Server" endif set-add Index = $(Index), 1 EndForListDo endif CloseRegKey $(NearestServerKey) ifstr(i) $(PreferredDSS) != {} CreateRegKey $(TempKey) {"Preferred DSS", $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" PreferredDSSKey set Index = 0 ForListDo $(PreferredDSS) SetRegValue $(PreferredDSSKey) {$(Index), $(NoTitle), $(!REG_VT_SZ), $($)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to set NetWareIP Nearest NWIP Server" endif set-add Index = $(Index), 1 EndForListDo endif CloseRegKey $(PreferredDSSKey) CloseRegKey $(TempKey) else Debug-Output "OEMNPRNW.INF: Failed to open key "$(!NTN_ServiceBase)"\NWIP\Parameters" endif else Debug-Output "OEMNPRNW.INF: Checking to see in NetWareIP is installed" ; ; Flush NCPA.CPL cache on our inf file. The inf file was updated ; and we want it to run the new file. ; FlushInf "NWSUBS.INF" ; ; Check for NetWareIP Drivers ; Shell $(NwSubsInf) GetTotalAdapterList Set OdiProductNameList = $($R0) Set OdiTitleList = $($R1) Set OdiCardList = $($R2) Set NumberOdiAdapters = $($R3) Set NdisProductNameList = $($R4) Set NdisTitleList = $($R5) Set NdisCardList = $($R6) Set NumberNdisAdapters = $($R7) Set ODINSUPCardNumber = $($R8) Set NetWareIPCardNumList = $($R9) Set NumberNetWareIPAdapters = $($R10) ifint $(NumberNetWareIPAdapters) > 0 Debug-Output "OEMNPRNW.INF: Updating NetWareIP" ; ; Call NetWareIP inf file to update NetWareIP ; Set OldInstallMode = $(!NTN_InstallMode) Set !NTN_InstallMode = update Shell "oemnsvip.inf" InstallOption, $(!STF_LANGUAGE), "NetWareIP", "", "YES", "YES", "NO" Set !NTN_InstallMode = $(OldInstallMode) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif else ; ; Add NetWareIP if the user wants ; shell "" Install-NetWareIP ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError else-ifstr(i) $($R0) != STATUS_SUCCESSFUL goto fatal endif endif Endif ; ; Set SAM Redirection info ; ifstr(i) $(AdvancedServer) == "YES" ifstr(i) $(!InstallSAMRedir) == "YES" LoadLibrary $(LoadDisk3Text) $(!STF_WINDOWSSYSPATH)"\"$(NwSetupDll) NwLibHandle LibraryProcedure GUIResult $(NwLibHandle) NWCheckSAMMigrated ifstr(i) $(GUIResult) != "TRUE" ifint $(NTMajorVersion) < "4" set TempRegKeyName = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows" OpenRegKey $(!REG_H_CUSER) "" $(TempRegKeyName) $(MAXIMUM_ALLOWED) TempKey ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) ; if no new key CreateRegKey $(!REG_H_CUSER) {$(TempRegKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" TempKey ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) ; create new key Debug-Output "OEMNPRNW.INF: Failed to create 3.51 Windows key for SAM Migration utility" goto migerror2 ; if error, then done endif endif Set CommandLine = $(!STF_WINDOWSSYSPATH)"\sammig.exe" SetRegValue $(TempKey) {"run", $(NoTitle), $(!REG_VT_SZ), $(CommandLine)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to add 3.51 Run for SAM Migration utility" endif CloseRegKey $(KeyNovellParameters) else set TempRegKeyName = "SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" OpenRegKey $(!REG_H_LOCAL) "" $(TempRegKeyName) $(MAXIMUM_ALLOWED) TempKey ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) ; if no new key CreateRegKey $(!REG_H_LOCAL) {$(TempRegKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" TempKey ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) ; create new key Debug-Output "OEMNPRNW.INF: Failed to create RunOnce for SAM Migration utility" goto migerror2 ; if error, then done endif endif Set CommandLine = $(!STF_WINDOWSSYSPATH)"\sammig.exe" SetRegValue $(TempKey) {"SAM Migration", $(NoTitle), $(!REG_VT_SZ), $(CommandLine)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to add RunOnce for SAM Migration utility" endif CloseRegKey $(KeyNovellParameters) endif migerror2 = + endif FreeLibrary $(NwLibHandle) Shell "" AddServiceDependency "LanmanServer" "NetWareWorkstation" endif endif ; ; Write out the unattended variables to registry ; ; Write the Workstation Manager parameter to the registry here because it is set by either Setupnw.exe /w or setupnw /u. ; !Workstation_Manager_Trusted_Trees = ; !Workstation_Manager_Trusted_Trees_OverWriteValue = ifstr(i) $(!NWSetup) == "yes" ; IF we are running from setup and not in unattended mode and the Trusted trees variable is set then turn on Manager in the key Workstation Manager/Enable. ifstr(i) $(!NWUnattendedFile) == "" ifstr(i) $(!Workstation_Manager_Trusted_Trees) != "" set !Enable_Workstation_Manager = "on" set !Enable_Workstation_Manager_OverWriteValue = "yes" endif endif ifstr(i) $(!Workstation_Manager_Trusted_Trees_OverWriteValue) == "" set !Workstation_Manager_Trusted_Trees_OverWriteValue = "yes" endif endif ; Workstation Manager Parameters ; !Enable_Workstation_Manager = on ; !Enable_Workstation_Manager_OverWriteValue = yes ifstr(i) $(!Enable_Workstation_Manager) != "" set ParamRegKeyName = "SOFTWARE\Novell\NWGINA\Workstation Manager" ifstr(i) $(!Enable_Workstation_Manager) == "on" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Enabled" 1 $(!REG_VT_DWORD) $(!Enable_Workstation_Manager_OverWriteValue) else-ifstr(i) $(!Enable_Workstation_Manager) == "off" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Enabled" 0 $(!REG_VT_DWORD) $(!Enable_Workstation_Manager_OverWriteValue) else shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Enable_Workstation_Manager = "$(!Enable_Workstation_Manager)$(UnattendParameterError) ifstr(i) $($R1) == "CANCEL" set CommonStatus = STATUS_USERCANCEL goto setfailed endif endif endif ifstr(i) $(!Workstation_Manager_Trusted_Trees) != "" set ParamRegKeyName = "SOFTWARE\Novell\NWGINA\Workstation Manager" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Trusted Trees" $(!Workstation_Manager_Trusted_Trees) $(!REG_VT_SZ) $(!Workstation_Manager_Trusted_Trees_OverWriteValue) endif shell "" Write-Unattended-Variables ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError else-ifstr(i) $($R0) != STATUS_SUCCESSFUL Debug-Output "OEMNPRNW.INF: User Canceled due to a error processing the Unattended Variables." set CommonStatus = STATUS_USERCANCEL goto setfailed endif ; ; Set the reboot flag ; Set CommonStatus = STATUS_SUCCESSFUL ; ; Escape hatches ; successful = + goto end ; ; warning display ; warning = + Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif ifstr(i) $($R1) == "OK" goto $(to) else-ifstr(i) $($R1) == "CANCEL" goto $(from) else goto end endif ; ; non fatal error display ; nonfatalinfo = + Set CommonStatus = STATUS_USERCANCEL Set Severity = STATUS goto nonfatalmsg nonfatal = + Set Severity = NONFATAL goto nonfatalmsg nonfatalmsg = + ifstr(i) $(Error) == "" Set Severity = NONFATAL Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL" ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set Error = $($R0) endif Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif ifstr(i) $($R1) == "OK" goto $(from) else goto "end" endif ; ; Registry is broken ; fatalregistry = + Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set Error = $($R0) goto fatal ; ; fatal error display ; fatal = + ifstr(i) $(Error) == "" Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL" ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif set Error = $($R0) endif Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error) ifint $($ShellCode) != $(!SHELL_CODE_OK) goto ShellCodeError endif goto setfailed ; ; Shelling error ; ShellCodeError = + set DlgType = "MessageBox" set STF_MB_TITLE = $(ShellCodeErrorTitle) set STF_MB_TEXT = $(ShellCodeErrorText) set STF_MB_TYPE = 1 set STF_MB_ICON = 3 set STF_MB_DEF = 1 ui start "ShellCodeError" goto setfailed setfailed = + set CommonStatus = STATUS_FAILED ; ; If OEM_ABANDON_ON, we need to clean up the registry ; ifstr(i) $(OEM_ABANDON_ON) == TRUE set OEM_ABANDON_ON = FALSE Debug-Output "OEMNPRNW.INF: About to start removing netware" goto removenetware endif goto end end = + EndWait goto term term = + Return $(CommonStatus) ;************************************************************************* ; SHELL SECTIONS ;************************************************************************* ;************************************************************************* ;----------WizardToManagerFix---------------------------------------- ; ; ; SECTION: WizardToManagerFix ; ; PURPOSE: This section is shelled to just after the unattended variables are loaded. ; The parameters for Workstation_Wizard have been changed to Workstation_Manager. ; If the UNATTEND.TXT is using the old (Wizard) vaiables, this function will use them. ; ; ARGUMENTS: None ; ; RETURNS: None ; ; REFERENCES: None ; ; MODIFIES: None ; ;************************************************************************* [WizardToManagerFix] ifstr(i) $(!Enable_Workstation_Manager) == "" ; if manager set then use it ifstr(i) $(!Enable_Workstation_Wizard) != "" ; else if wizard set then use it set !Enable_Workstation_Manager = $(!Enable_Workstation_Wizard) Debug-Output "OEMNPRNW.INF: (wizard fix) !Enable_Workstation_Manager = "$(!Enable_Workstation_Manager) endif endif ifstr(i) $(!Enable_Workstation_Manager_OverWriteValue) == "" ifstr(i) $(!Enable_Workstation_Wizard_OverWriteValue) != "" set !Enable_Workstation_Manager_OverWriteValue = $(!Enable_Workstation_Wizard_OverWriteValue) Debug-Output "OEMNPRNW.INF: (wizard fix) !Enable_Workstation_Manager_OverWriteValue = "$(!Enable_Workstation_Manager_OverWriteValue) endif endif ifstr(i) $(!Workstation_Manager_Trusted_Trees) == "" ifstr(i) $(!Workstation_Wizard_Trusted_Trees) != "" set !Workstation_Manager_Trusted_Trees = $(!Workstation_Wizard_Trusted_Trees) Debug-Output "OEMNPRNW.INF: (wizard fix) !Workstation_Manager_Trusted_Trees = "$(!Workstation_Manager_Trusted_Trees) endif endif ifstr(i) $(!Workstation_Manager_Trusted_Trees_OverWriteValue) == "" ifstr(i) $(!Workstation_Wizard_Trusted_Trees_OverWriteValue) != "" set !Workstation_Manager_Trusted_Trees_OverWriteValue = $(!Workstation_Wizard_Trusted_Trees_OverWriteValue) Debug-Output "OEMNPRNW.INF: (wizard fix) !Workstation_Manager_Trusted_Trees_OverWriteValue = "$(!Workstation_Manager_Trusted_Trees_OverWriteValue) endif endif Return ;----------UnattendedInstallOption---------------------------------------- ; ; ; SECTION: UnattendedInstallOption: ; ; PURPOSE: This section is shelled to by the Install Option. It looks at the three MS Unattended variables and then ; sets the Novell specific variable for NWACU and the NWUnattended file. ; Our install for both setup.exe /ACU and Unattended install from MS then uses NWACU and the NWUnattended variables. ; ; ARGUMENTS: None ; ; RETURNS: None ; ; REFERENCES: None ; ; MODIFIES: None ; ;************************************************************************* [UnattendedInstallOption] read-syms GeneralConstants read-syms FileConstants ifstr(i) $(!STF_GUI_UNATTENDED) == "NO" ifstr(i) $(!STF_UNATTENDED) == "YES" set !NWACU = "YES" endif else-ifstr(i) $(!STF_GUI_UNATTENDED) == "YES" ifstr(i) $(!NWUnattendedFile) == "" set !NWACU = "YES" set !NWUnattendedFile = $(!STF_UNATTENDED) set !NWUnattendedSection = $(!STF_UNATTENDED_SECTION) endif endif Return ;************************************************************************* ;----------Write-Unattended-Variables----------------------------------- ; ; ; SECTION: Write-Unattended-Variables: ; ; PURPOSE: This section writes the unattended variables to the ; registry. ; ; ARGUMENTS: None ; ; RETURNS: None ; ; REFERENCES: Called at end of install section and the update section ; ; MODIFIES: None ; ;************************************************************************* [Write-Unattended-Variables] ; If the /U parameter is passed from Setupnw.exe then call this section to set the defaults. ; Add the values in the unattended file to the registry. set UnattendReturnStatus = STATUS_SUCCESSFUL ifstr(i) $(!NWUnattendedFile) != "" Shell "" NetWareParameterValues ifstr(i) $($R0) != "STATUS_SUCCESSFUL" set UnattendReturnStatus = STATUS_USERCANCEL endif endif Return $(UnattendReturnStatus) ;----------NetWareParameterValues------------------------------------------------- ; ; NetWareParameterValues ; ; It sets all of the Client Values to the data specified in the Unattend.txt file. ; ;------------------------------------------------------------------------ [NetWareParameterValues] read-syms GeneralConstants read-syms FileConstants read-syms InstallOption$(!STF_LANGUAGE) set UnattendReturnStatus = STATUS_SUCCESSFUL ifstr(i) $(!MajorInternalVersion) != "" Split-String $(!MajorInternalVersion) "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\/<>~!%^()[]{}." MajorVersionList QueryListSize ListSize $(MajorVersionList) ifint $(ListSize) == 1 ifint $(!MajorInternalVersion) >= "0" set ParamRegKeyName = "SOFTWARE\Novell\NetWareWorkstation\CurrentVersion" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "MajorInternalVersion" $(!MajorInternalVersion) $(!REG_VT_DWORD) "YES" else goto MajorVersionInvalid endif else MajorVersionInvalid = + shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "MajorInternalVersion = "$(!MajorInternalVersion)$(UnattendParameterError) ifstr(i) $($R1) == "CANCEL" set UnattendReturnStatus = STATUS_USERCANCEL goto endOfUnattend endif endif endif ifstr(i) $(!MinorInternalVersion) != "" Split-String $(!MinorInternalVersion) "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\/<>~!%^()[]{}." MinorVersionList QueryListSize ListSize $(MinorVersionList) ifint $(ListSize) == 1 ifint $(!MinorInternalVersion) >= "0" set ParamRegKeyName = "SOFTWARE\Novell\NetWareWorkstation\CurrentVersion" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "MinorInternalVersion" $(!MinorInternalVersion) $(!REG_VT_DWORD) "YES" else goto MinorVersionInvalid endif else MinorVersionInvalid = + shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "MinorInternalVersion = "$(!MinorInternalVersion)$(UnattendParameterError) ifstr(i) $($R1) == "CANCEL" set UnattendReturnStatus = STATUS_USERCANCEL goto endOfUnattend endif endif endif ; NWGINA Parameters ; "DefaultBinderyServer" parameter. ifstr(i) $(!Preferred_Bindery_Server) != "" set ParamRegKeyName = "SOFTWARE\Novell\NWGINA\Install Update" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "DefaultBinderyServer" $(!Preferred_Bindery_Server) $(!REG_VT_SZ) $(!Preferred_Bindery_Server_OverWriteValue) endif ; Client Page ifstr(i) $(!Preferred_Server) != "" set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareWorkstation\Parameters" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Preferred Server" $(!Preferred_Server) $(!REG_VT_SZ) $(!Preferred_Server_OverWriteValue) set ParamRegKeyName = "SOFTWARE\Novell\NWGINA\Install Update" OpenRegKey $(!REG_H_LOCAL) "" $(ParamRegKeyName) $(MAXIMUM_ALLOWED) KeyParamNovell ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Error opening Key Error Code = "$(RegLastError) Debug-Output "OEMNPRNW.INF: Error opening key so create it "$(ParamRegKeyName) CreateRegKey $(!REG_H_LOCAL) {$(ParamRegKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyParamNovell endif CloseRegKey $(KeyParamNovell) endif ifstr(i) $(!Preferred_Tree) != "" set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareWorkstation\Parameters" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Preferred Tree" $(!Preferred_Tree) $(!REG_VT_SZ) $(!Preferred_Tree_OverWriteValue) set ParamRegKeyName = "SOFTWARE\Novell\NWGINA\Install Update" OpenRegKey $(!REG_H_LOCAL) "" $(ParamRegKeyName) $(MAXIMUM_ALLOWED) KeyParamNovell ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Error opening Key Error Code = "$(RegLastError) Debug-Output "OEMNPRNW.INF: Error opening key so create it "$(ParamRegKeyName) CreateRegKey $(!REG_H_LOCAL) {$(ParamRegKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyParamNovell endif CloseRegKey $(KeyParamNovell) endif ; Loop through all of the possible Tree and Name Context pairs. set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareWorkstation\Parameters\Trees" set Index = 1 topOfLoop = + ifstr(i) $(!Tree_List$(Index)) != "" ifstr(i) $(!Default_Context_List$(Index)) != "" ; Read the registry and see if the key exists, duplicate trees are not allowed. OpenRegKey $(!REG_H_LOCAL) "" $(ParamRegKeyName) $(MAXIMUM_ALLOWED) SoftwareNovellKey Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) GetRegValue $(SoftwareNovellKey) $(!Tree_List$(Index)) ContextValue Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) ; The tree they are trying to add in already in the list. If overwrite is yes add the value else goto next ifstr(i) $(!Tree_List_OverWriteValue$(Index)) != "YES" CloseRegKey $(SoftwareNovellKey) goto nextTreePair endif endif CloseRegKey $(SoftwareNovellKey) endif ; Write the pair to the registry shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) $(!Tree_List$(Index)) $(!Default_Context_List$(Index)) $(!REG_VT_SZ) $(!Tree_List_OverWriteValue$(Index)) endif endif nextTreePair = + set-add Index = $(Index), 1 ifstr(i) $(!Tree_List$(Index)) != "" goto topOfLoop endif ; This loop is to translate from a letter into the coresponding number a=1 b=2 c=3 ... to store in the registry. ifstr(i) $(!First_Network_Drive) != "" set AlphabetList = { a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z } ForListDo $(AlphabetList) ifstr(i) $(!First_Network_Drive) == $($) set FoundValidValue = "yes" set ParamRegKeyName = "SOFTWARE\Novell\Parameters" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "First Network Drive" $(#) $(!REG_VT_DWORD) $(!First_Network_Drive_OverWriteValue) endif EndForListDo ifstr(i) $(FoundValidValue) != "yes" shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "First Network Drive = "$(!First_Network_Drive)$(UnattendParameterError) ifstr(i) $($R1) == "CANCEL" set UnattendReturnStatus = STATUS_USERCANCEL goto endOfUnattend endif endif endif ; Advanced Setting Parameters. ; !Receive_Broadcast_Messages = All | Server Only | None ; !Receive_Broadcast_Messages_OverWriteValue = yes ifstr(i) $(!Receive_Broadcast_Messages) != "" set ParamRegKeyName = "SOFTWARE\Novell\Broadcast" ifstr(i) $(!Receive_Broadcast_Messages) == "All" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Mode" 0 $(!REG_VT_DWORD) $(!Receive_Broadcast_Messages_OverWriteValue) else-ifstr(i) $(!Receive_Broadcast_Messages) == "Server Only" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Mode" 1 $(!REG_VT_DWORD) $(!Receive_Broadcast_Messages_OverWriteValue) else-ifstr(i) $(!Receive_Broadcast_Messages) == "None" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Mode" 2 $(!REG_VT_DWORD) $(!Receive_Broadcast_Messages_OverWriteValue) else shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Receive_Broadcast_Messages = "$(!Receive_Broadcast_Messages)$(UnattendParameterError) ifstr(i) $($R1) == "CANCEL" set UnattendReturnStatus = STATUS_USERCANCEL goto endOfUnattend endif endif endif ifstr(i) $(!DOS_Name) != "" set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareWorkstation\Parameters" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "DOS Name" $(!DOS_Name) $(!REG_VT_SZ) $(!DOS_Name_OverWriteValue) endif ; !Large_Internet_Packets = on ; !Large_Internet_Packets_OverWriteValue = yes ifstr(i) $(!Large_Internet_Packets) != "" set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareWorkstation\Parameters" ifstr(i) $(!Large_Internet_Packets) == "on" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Large Internet Packets" 1 $(!REG_VT_DWORD) $(!Large_Internet_Packets_OverWriteValue) else-ifstr(i) $(!Large_Internet_Packets) == "off" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Large Internet Packets" 0 $(!REG_VT_DWORD) $(!Large_Internet_Packets_OverWriteValue) else shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Large_Internet_Packets = "$(!Large_Internet_Packets)$(UnattendParameterError) ifstr(i) $($R1) == "CANCEL" set UnattendReturnStatus = STATUS_USERCANCEL goto endOfUnattend endif endif endif ; !LIP_Start_Size = 65535 ; !LIP_Start_Size_OverRightValue = yes ifstr(i) $(!LIP_Start_Size) != "" set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareWorkstation\Parameters" ifint $(!LIP_Start_Size) >= "1" ifint $(!LIP_Start_Size) <= "65535" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "LIP Start Size" $(!LIP_Start_Size) $(!REG_VT_DWORD) $(!LIP_Start_Size_OverWriteValue) else ; error case greater than max goto LIP_Start_SizeError endif else LIP_Start_SizeError = + shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "LIP_Start_Size = "$(!LIP_Start_Size)$(UnattendParameterError) ifstr(i) $($R1) == "CANCEL" set UnattendReturnStatus = STATUS_USERCANCEL goto endOfUnattend endif endif endif ;!Long_Machine_Type = IBM_PC ;!Long_Machine_Type_OverWriteValue = yes ifstr(i) $(!Long_Machine_Type) != "" set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareWorkstation\Parameters" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Long Machine Type" $(!Long_Machine_Type) $(!REG_VT_SZ) $(!Long_Machine_Type_OverWriteValue) endif ; !LSL_Max_Buffer_Size = 4736 ; !LSL_MAX_Buffer_Size_OverWriteValue = yes ifstr(i) $(!LSL_Max_Buffer_Size) != "" set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\LSL\Parameters" ifint $(!LSL_Max_Buffer_Size) >= "100" ifint $(!LSL_Max_Buffer_Size) <= "24682" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Max Buffer Size" $(!LSL_Max_Buffer_Size) $(!REG_VT_DWORD) $(!LSL_Max_Buffer_Size_OverWriteValue) else ; error case greater than max goto LSL_Max_Buffer_SizeError endif else LSL_Max_Buffer_SizeError = + shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "LSL_Max_Buffer_Size = "$(!LSL_Max_Buffer_Size)$(UnattendParameterError) ifstr(i) $($R1) == "CANCEL" set UnattendReturnStatus = STATUS_USERCANCEL goto endOfUnattend endif endif endif ; !Minimum_Time_To_Net = 0 ; !Minimum_Time_To_Net_OverWriteValue = yes ifstr(i) $(!Minimum_Time_To_Net) != "" set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareWorkstation\Parameters" ifint $(!Minimum_Time_To_Net) >= "0" ifint $(!Minimum_Time_To_Net) <= "65535" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Minimum Time To Net" $(!Minimum_Time_To_Net) $(!REG_VT_DWORD) $(!Minimum_Time_To_Net_OverWriteValue) else ; error case greater than max goto Minimum_Time_To_NetError endif else Minimum_Time_To_NetError = + shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Minimum_Time_To_Net = "$(!Minimum_Time_To_Net)$(UnattendParameterError) ifstr(i) $($R1) == "CANCEL" set UnattendReturnStatus = STATUS_USERCANCEL goto endOfUnattend endif endif endif ; !Opportunistic_Locking = on ; !Opportunistic_Locking_OverWriteValue = yes ifstr(i) $(!Opportunistic_Locking) != "" set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareWorkstation\Parameters" ifstr(i) $(!Opportunistic_Locking) == "on" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Opportunistic Locking" 1 $(!REG_VT_DWORD) $(!Opportunistic_Locking_OverWriteValue) else-ifstr(i) $(!Opportunistic_Locking) == "off" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Opportunistic Locking" 0 $(!REG_VT_DWORD) $(!Opportunistic_Locking_OverWriteValue) else shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Opportunistic_Locking = "$(!Opportunistic_Locking)$(UnattendParameterError) ifstr(i) $($R1) == "CANCEL" set UnattendReturnStatus = STATUS_USERCANCEL goto endOfUnattend endif endif endif ; !Burst_Mode = on ; !Burst_Mode_OverWriteValue = yes ifstr(i) $(!Burst_Mode) != "" set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareWorkstation\Parameters" ifstr(i) $(!Burst_Mode) == "on" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Burst Mode" 1 $(!REG_VT_DWORD) $(!Burst_Mode_OverWriteValue) else-ifstr(i) $(!Burst_Mode) == "off" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Burst Mode" 0 $(!REG_VT_DWORD) $(!Burst_Mode_OverWriteValue) else shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Burst_Mode = "$(!Burst_Mode)$(UnattendParameterError) ifstr(i) $($R1) == "CANCEL" set UnattendReturnStatus = STATUS_USERCANCEL goto endOfUnattend endif endif endif ; !Pburst_Read_Window_Size =24 or 255 ; !Pburst_Read_Window_Size_OverWriteValue = yes ifstr(i) $(!Pburst_Read_Window_Size) != "" set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareWorkstation\Parameters" ifint $(!Pburst_Read_Window_Size) >= "1" ifint $(!Pburst_Read_Window_Size) <= "65536" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Max Read Burst Size" $(!Pburst_Read_Window_Size) $(!REG_VT_DWORD) $(!Pburst_Read_Window_Size_OverWriteValue) else ; error case greater than max goto Pburst_Read_Window_SizeError endif else Pburst_Read_Window_SizeError = + shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Pburst_Read_Window_Size = "$(!Pburst_Read_Window_Size)$(UnattendParameterError) ifstr(i) $($R1) == "CANCEL" set UnattendReturnStatus = STATUS_USERCANCEL goto endOfUnattend endif endif endif ; !Pburst_Write_Window_Size = 10 or 255 ; !Pburst_Write_Window_Size_OverWriteValue = yes ifstr(i) $(!Pburst_Write_Window_Size) != "" set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareWorkstation\Parameters" ifint $(!Pburst_Write_Window_Size) >= "1" ifint $(!Pburst_Write_Window_Size) <= "65536" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Max Write Burst Size" $(!Pburst_Write_Window_Size) $(!REG_VT_DWORD) $(!Pburst_Write_Window_Size_OverWriteValue) else ; error case greater than max goto Pburst_Write_Window_SizeError endif else Pburst_Write_Window_SizeError = + shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Pburst_Write_Window_Size = "$(!Pburst_Write_Window_Size)$(UnattendParameterError) ifstr(i) $($R1) == "CANCEL" set UnattendReturnStatus = STATUS_USERCANCEL goto endOfUnattend endif endif endif ; !Short_Machine_Type = ; !Short_Machine_Type_OverWriteValue = yes ifstr(i) $(!Short_Machine_Type) != "" set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareWorkstation\Parameters" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Short Machine Type" $(!Short_Machine_Type) $(!REG_VT_SZ) $(!Short_Machine_Type_OverWriteValue) endif ; !Signature_Level = 1 ; !Signature_Level_OverWriteValue = yes ifstr(i) $(!Signature_Level) != "" set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareWorkstation\Parameters" ifint $(!Signature_Level) >= "0" ifint $(!Signature_Level) <= "3" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Signature Level" $(!Signature_Level) $(!REG_VT_DWORD) $(!Signature_Level_OverWriteValue) else ; error case greater than max goto sigError endif else sigError = + shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Signature_Level = "$(!Signature_Level)$(UnattendParameterError) ifstr(i) $($R1) == "CANCEL" set UnattendReturnStatus = STATUS_USERCANCEL goto endOfUnattend endif endif endif ; Graphical Login section. ; !Display_Connection_Page = no ; !Display_Connection_Page_OverWriteValue = yes ifstr(i) $(!Display_Connection_Page) != "" set ParamRegKeyName = "SOFTWARE\Novell\Graphical Login" ifstr(i) $(!Display_Connection_Page) == "yes" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Connection Tab" 1 $(!REG_VT_DWORD) $(!Display_Connection_Page_OverWriteValue) else-ifstr(i) $(!Display_Connection_Page) == "no" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Connection Tab" 0 $(!REG_VT_DWORD) $(!Display_Connection_Page_OverWriteValue) else shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Display_Connection_Page = "$(!Display_Connection_Page)$(UnattendParameterError) ifstr(i) $($R1) == "CANCEL" set UnattendReturnStatus = STATUS_USERCANCEL goto endOfUnattend endif endif endif ; !Login_To_Tree = yes ; !Login_To_Tree_OverWriteValue = yes ; !Login_To_Server = no ; !Login_To_Server_OverWriteValue = yes ; Error checking for junk in the variable. ifstr(i) $(!Login_To_Tree) != "" ifstr(i) $(!Login_To_Tree) != "yes" ifstr(i) $(!Login_To_Tree) != "no" shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Login_To_Tree = "$(!Login_To_Tree)$(UnattendParameterError) set !Login_To_Tree = "" ifstr(i) $($R1) == "CANCEL" set UnattendReturnStatus = STATUS_USERCANCEL goto endOfUnattend endif endif endif endif ; Error checking for junk in the variable. ifstr(i) $(!Login_To_Server) != "" ifstr(i) $(!Login_To_Server) != "yes" ifstr(i) $(!Login_To_Server) != "no" shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Login_To_Server = "$(!Login_To_Server)$(UnattendParameterError) set !Login_To_Server = "" ifstr(i) $($R1) == "CANCEL" set UnattendReturnStatus = STATUS_USERCANCEL goto endOfUnattend endif endif endif endif ; !Login_To_Tree = yes ; !Login_To_Tree_OverWriteValue = yes ; !Login_To_Server = no ; !Login_To_Server_OverWriteValue = yes set ParamRegKeyName = "SOFTWARE\Novell\Graphical Login" ifstr(i) $(!Login_To_Tree) != "" ifstr(i) $(!Login_To_Server) != "" set ParamRegKeyName = "SOFTWARE\Novell\Graphical Login" ifstr(i) $(!Login_To_Tree) == "yes" ifstr(i) $(!Login_To_Server) == "no" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Tree Login" 1 $(!REG_VT_DWORD) $(!Login_To_Tree_OverWriteValue) set NWGinaParamRegKeyName = "SOFTWARE\Novell\NWGINA\Install Update" OpenRegKey $(!REG_H_LOCAL) "" $(NWGinaParamRegKeyName) $(MAXIMUM_ALLOWED) NWGinaKeyParamNovell ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) CreateRegKey $(!REG_H_LOCAL) {$(NWGinaParamRegKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" NWGinaKeyParamNovell endif CloseRegKey $(NWGinaKeyParamNovell) else shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Login_To_Tree = "$(!Login_To_Tree)" Login_To_Server = "$(!Login_To_Server)$(UnattendTreeServerParameterError) ifstr(i) $($R1) == "CANCEL" set UnattendReturnStatus = STATUS_USERCANCEL goto endOfUnattend endif endif else-ifstr(i) $(!Login_To_Tree) == "no" ifstr(i) $(!Login_To_Server) == "Yes" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Tree Login" 0 $(!REG_VT_DWORD) $(!Login_To_Tree_OverWriteValue) set NWGinaParamRegKeyName = "SOFTWARE\Novell\NWGINA\Install Update" OpenRegKey $(!REG_H_LOCAL) "" $(NWGinaParamRegKeyName) $(MAXIMUM_ALLOWED) NWGinaKeyParamNovell ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) CreateRegKey $(!REG_H_LOCAL) {$(NWGinaParamRegKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" NWGinaKeyParamNovell endif CloseRegKey $(NWGinaKeyParamNovell) else shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Login_To_Tree = "$(!Login_To_Tree)" Login_To_Server = "$(!Login_To_Server)$(UnattendTreeServerParameterError) ifstr(i) $($R1) == "CANCEL" set UnattendReturnStatus = STATUS_USERCANCEL goto endOfUnattend endif endif endif else ; Server is blank and Tree has data. ifstr(i) $(!Login_To_Tree) == "yes" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Tree Login" 1 $(!REG_VT_DWORD) $(!Login_To_Tree_OverWriteValue) set NWGinaParamRegKeyName = "SOFTWARE\Novell\NWGINA\Install Update" OpenRegKey $(!REG_H_LOCAL) "" $(NWGinaParamRegKeyName) $(MAXIMUM_ALLOWED) NWGinaKeyParamNovell ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) CreateRegKey $(!REG_H_LOCAL) {$(NWGinaParamRegKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" NWGinaKeyParamNovell endif CloseRegKey $(NWGinaKeyParamNovell) else-ifstr(i) $(!Login_To_Tree) == "no" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Tree Login" 0 $(!REG_VT_DWORD) $(!Login_To_Tree_OverWriteValue) set NWGinaParamRegKeyName = "SOFTWARE\Novell\NWGINA\Install Update" OpenRegKey $(!REG_H_LOCAL) "" $(NWGinaParamRegKeyName) $(MAXIMUM_ALLOWED) NWGinaKeyParamNovell ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) CreateRegKey $(!REG_H_LOCAL) {$(NWGinaParamRegKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" NWGinaKeyParamNovell endif CloseRegKey $(NWGinaKeyParamNovell) endif endif else-ifstr(i) $(!Login_To_Server) != "" ; Tree is blank and Server has data ifstr(i) $(!Login_To_Server) == "yes" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Tree Login" 0 $(!REG_VT_DWORD) $(!Login_To_Server_OverWriteValue) set NWGinaParamRegKeyName = "SOFTWARE\Novell\NWGINA\Install Update" OpenRegKey $(!REG_H_LOCAL) "" $(NWGinaParamRegKeyName) $(MAXIMUM_ALLOWED) NWGinaKeyParamNovell ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) CreateRegKey $(!REG_H_LOCAL) {$(NWGinaParamRegKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" NWGinaKeyParamNovell endif CloseRegKey $(NWGinaKeyParamNovell) else-ifstr(i) $(!Login_To_Server) == "no" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Tree Login" 1 $(!REG_VT_DWORD) $(!Login_To_Server_OverWriteValue) set NWGinaParamRegKeyName = "SOFTWARE\Novell\NWGINA\Install Update" OpenRegKey $(!REG_H_LOCAL) "" $(NWGinaParamRegKeyName) $(MAXIMUM_ALLOWED) NWGinaKeyParamNovell ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) CreateRegKey $(!REG_H_LOCAL) {$(NWGinaParamRegKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" NWGinaKeyParamNovell endif CloseRegKey $(NWGinaKeyParamNovell) endif endif ; !Bindery_Connections = yes ; !Bindery_Connections_OverWriteValue = yes ifstr(i) $(!Bindery_Connections) != "" set ParamRegKeyName = "SOFTWARE\Novell\Graphical Login" ifstr(i) $(!Bindery_Connections) == "yes" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Bindery Connections" 1 $(!REG_VT_DWORD) $(!Bindery_Connections_OverWriteValue) else-ifstr(i) $(!Bindery_Connections) == "no" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Bindery Connections" 0 $(!REG_VT_DWORD) $(!Bindery_Connections_OverWriteValue) else shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Bindery Connection = "$(!Bindery_Connections)$(UnattendParameterError) ifstr(i) $($R1) == "CANCEL" set UnattendReturnStatus = STATUS_USERCANCEL goto endOfUnattend endif endif endif ; !Clear_Current_Connections = yes ; !Clear_Current_Connections_OverWriteValue = yes ifstr(i) $(!Clear_Current_Connections) != "" set ParamRegKeyName = "SOFTWARE\Novell\Graphical Login" ifstr(i) $(!Clear_Current_Connections) == "yes" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Clear Connections" 1 $(!REG_VT_DWORD) $(!Clear_Current_Connections_OverWriteValue) else-ifstr(i) $(!Clear_Current_Connections) == "no" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Clear Connections" 0 $(!REG_VT_DWORD) $(!Clear_Current_Connections_OverWriteValue) else shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Clear_Current_Connections = "$(!Clear_Current_Connections)$(UnattendParameterError) ifstr(i) $($R1) == "CANCEL" set UnattendReturnStatus = STATUS_USERCANCEL goto endOfUnattend endif endif endif ; !Display_Script_Page = ; !Display_Script_Page_OverWriteValue = yes ifstr(i) $(!Display_Script_Page) != "" set ParamRegKeyName = "SOFTWARE\Novell\Graphical Login" ifstr(i) $(!Display_Script_Page) == "yes" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Script Tab" 1 $(!REG_VT_DWORD) $(!Display_Script_Page_OverWriteValue) else-ifstr(i) $(!Display_Script_Page) == "no" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Script Tab" 0 $(!REG_VT_DWORD) $(!Display_Script_Page_OverWriteValue) else shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Display_Script_Page = "$(!Display_Script_Page)$(UnattendParameterError) ifstr(i) $($R1) == "CANCEL" set UnattendReturnStatus = STATUS_USERCANCEL goto endOfUnattend endif endif endif ;!Login_Script = ;!Login_Script_OverWriteValue = yes ifstr(i) $(!Login_Script) != "" set ParamRegKeyName = "SOFTWARE\Novell\Graphical Login\Scripts\1" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "" $(!Login_Script) $(!REG_VT_SZ) $(!Login_Script_OverWriteValue) endif ;!Profile_Script = ;!Profile_Script_OverWriteValue = yes ifstr(i) $(!Profile_Script) != "" set ParamRegKeyName = "SOFTWARE\Novell\Graphical Login\Profiles\1" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "" $(!Profile_Script) $(!REG_VT_SZ) $(!Profile_Script_OverWriteValue) endif ;!Display_Results = no ;!Display_Results_OverWriteValue = yes ifstr(i) $(!Display_Results) != "" set ParamRegKeyName = "SOFTWARE\Novell\Graphical Login" ifstr(i) $(!Display_Results) == "yes" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Display Results" 1 $(!REG_VT_DWORD) $(!Display_Results_OverWriteValue) else-ifstr(i) $(!Display_Results) == "no" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Display Results" 0 $(!REG_VT_DWORD) $(!Display_Results_OverWriteValue) else shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Display_Results = "$(!Display_Results)$(UnattendParameterError) ifstr(i) $($R1) == "CANCEL" set UnattendReturnStatus = STATUS_USERCANCEL goto endOfUnattend endif endif endif ;!Close_Script_Results_Automatically = yes ;!Close_Script_Results_Automatically_OverWriteValue = yes ifstr(i) $(!Close_Script_Results_Automatically) != "" set ParamRegKeyName = "SOFTWARE\Novell\Graphical Login" ifstr(i) $(!Close_Script_Results_Automatically) == "yes" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Close Results" 1 $(!REG_VT_DWORD) $(!Close_Script_Results_Automatically_OverWriteValue) else-ifstr(i) $(!Close_Script_Results_Automatically) == "no" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Close Results" 0 $(!REG_VT_DWORD) $(!Close_Script_Results_Automatically_OverWriteValue) else shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Close_Script_Results_Automatically = "$(!Close_Script_Results_Automatically)$(UnattendParameterError) ifstr(i) $($R1) == "CANCEL" set UnattendReturnStatus = STATUS_USERCANCEL goto endOfUnattend endif endif endif ;!Run_Scripts = no ;!Run_Scripts_OverWriteValue = yes ifstr(i) $(!Run_Scripts) != "" set ParamRegKeyName = "SOFTWARE\Novell\Graphical Login" ifstr(i) $(!Run_Scripts) == "yes" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Login Script" 1 $(!REG_VT_DWORD) $(!Run_Scripts_OverWriteValue) else-ifstr(i) $(!Run_Scripts) == "no" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Login Script" 0 $(!REG_VT_DWORD) $(!Run_Scripts_OverWriteValue) else shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Run_Scripts = "$(!Run_Scripts)$(UnattendParameterError) ifstr(i) $($R1) == "CANCEL" set UnattendReturnStatus = STATUS_USERCANCEL goto endOfUnattend endif endif endif ;!Display_Variables_Page = no ;!Display_Variables_Page_OverWriteValue = yes ifstr(i) $(!Display_Variables_Page) != "" set ParamRegKeyName = "SOFTWARE\Novell\Graphical Login" ifstr(i) $(!Display_Variables_Page) == "yes" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Script Variable Tab" 1 $(!REG_VT_DWORD) $(!Display_Variables_Page_OverWriteValue) else-ifstr(i) $(!Display_Variables_Page) == "no" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Script Variable Tab" 0 $(!REG_VT_DWORD) $(!Display_Variables_Page_OverWriteValue) else shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Display_Variables_Page = "$(!Display_Variables_Page)$(UnattendParameterError) ifstr(i) $($R1) == "CANCEL" set UnattendReturnStatus = STATUS_USERCANCEL goto endOfUnattend endif endif endif ; %2 = ; %2_OverWriteValue = yes ifstr(i) $(!%2) != "" set ParamRegKeyName = "SOFTWARE\Novell\Graphical Login\Variables\2" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "" $(!%2) $(!REG_VT_SZ) $(!%2_OverWriteValue) endif ; %3 = ; %3_OverWriteValue = yes ifstr(i) $(!%3) != "" set ParamRegKeyName = "SOFTWARE\Novell\Graphical Login\Variables\3" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "" $(!%3) $(!REG_VT_SZ) $(!%3_OverWriteValue) endif ; %4 = ; %4_OverWriteValue = yes ifstr(i) $(!%4) != "" set ParamRegKeyName = "SOFTWARE\Novell\Graphical Login\Variables\4" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "" $(!%4) $(!REG_VT_SZ) $(!%4_OverWriteValue) endif ; %5 = ; %5_OverWriteValue = yes ifstr(i) $(!%5) != "" set ParamRegKeyName = "SOFTWARE\Novell\Graphical Login\Variables\5" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "" $(!%5) $(!REG_VT_SZ) $(!%5_OverWriteValue) endif ;!Display_RAS_Page = no ;!Display_RAS_Page_OverWriteValue = yes ifstr(i) $(!Display_RAS_Page) != "" set ParamRegKeyName = "SOFTWARE\Novell\Graphical Login" ifstr(i) $(!Display_RAS_Page) == "yes" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Dialup Networking Tab" 1 $(!REG_VT_DWORD) $(!Display_RAS_Page_OverWriteValue) else-ifstr(i) $(!Display_RAS_Page) == "no" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Dialup Networking Tab" 0 $(!REG_VT_DWORD) $(!Display_RAS_Page_OverWriteValue) else shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Display_RAS_Page = "$(!Display_RAS_Page)$(UnattendParameterError) ifstr(i) $($R1) == "CANCEL" set UnattendReturnStatus = STATUS_USERCANCEL goto endOfUnattend endif endif endif ; !Save_Settings_When_Exiting_Login = no ; !Save_Settings_When_Exiting_Login_OverWriteValue = yes ifstr(i) $(!Save_Settings_When_Exiting_Login) != "" set ParamRegKeyName = "SOFTWARE\Novell\Graphical Login" ifstr(i) $(!Save_Settings_When_Exiting_Login) == "yes" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Save On Exit" 1 $(!REG_VT_DWORD) $(!Save_Settings_When_Exiting_Login_OverWriteValue) else-ifstr(i) $(!Save_Settings_When_Exiting_Login) == "no" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Save On Exit" 0 $(!REG_VT_DWORD) $(!Save_Settings_When_Exiting_Login_OverWriteValue) else shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Save_Settings_When_Exiting_Login = "$(!Save_Settings_When_Exiting_Login)$(UnattendParameterError) ifstr(i) $($R1) == "CANCEL" set UnattendReturnStatus = STATUS_USERCANCEL goto endOfUnattend endif endif endif ; Advanced Login Property Page Parameters ; !Policy_Path = ; !Policy_Path_OverWriteValue = yes ifstr(i) $(!Policy_Path) != "" set ParamRegKeyName = "SOFTWARE\Novell\NWGINA\Policy Support" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Policy Path" $(!Policy_Path) $(!REG_VT_SZ) $(!Policy_Path_OverWriteValue) endif ; !NetWare_Storage_Of_Roaming_Profiles = yes ; !NetWare_Storage_Of_Roaming_Profiles_OverWriteValue = yes ifstr(i) $(!NetWare_Storage_Of_Roaming_Profiles) != "" set ParamRegKeyName = "SOFTWARE\Novell\NWGINA\Roaming Profiles" ifstr(i) $(!NetWare_Storage_Of_Roaming_Profiles) == "yes" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "NetWare Storage" 1 $(!REG_VT_DWORD) $(!NetWare_Storage_Of_Roaming_Profiles_OverWriteValue) else-ifstr(i) $(!NetWare_Storage_Of_Roaming_Profiles) == "no" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "NetWare Storage" 0 $(!REG_VT_DWORD) $(!NetWare_Storage_Of_Roaming_Profiles_OverWriteValue) else shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "NetWare_Storage_Of_Roaming_Profiles = "$(!NetWare_Storage_Of_Roaming_Profiles)$(UnattendParameterError) ifstr(i) $($R1) == "CANCEL" set UnattendReturnStatus = STATUS_USERCANCEL goto endOfUnattend endif endif endif ; !Storage_Type = "Home Directory" | "File System Pointer" ; !Storage_Type_OverWriteValue = yes ifstr(i) $(!Storage_Type) != "" set ParamRegKeyName = "SOFTWARE\Novell\NWGINA\Roaming Profiles" ifstr(i) $(!Storage_Type) == "Home Directory" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Storage Type" $(!Storage_Type) $(!REG_VT_SZ) $(!Storage_Type_OverWriteValue) else-ifstr(i) $(!Storage_Type) == "File System Pointer" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Storage Type" $(!Storage_Type) $(!REG_VT_SZ) $(!Storage_Type_OverWriteValue) else shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Storage_Type = "$(!Storage_Type)$(UnattendParameterError) ifstr(i) $($R1) == "CANCEL" set UnattendReturnStatus = STATUS_USERCANCEL goto endOfUnattend endif endif endif ; !File_System_Pointer_Path = ; !File_System_Pointer_Path_OverWriteValue = yes ifstr(i) $(!File_System_Pointer_Path) != "" set ParamRegKeyName = "SOFTWARE\Novell\NWGINA\Roaming Profiles" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "File System Pointer Path" $(!File_System_Pointer_Path) $(!REG_VT_SZ) $(!File_System_Pointer_Path_OverWriteValue) endif ; !Bitmap_Filename = ; !Bitmap_Filename_OverWriteValue = yes ifstr(i) $(!Bitmap_Filename) != "" set ParamRegKeyName = "SOFTWARE\Novell\NWGINA\Welcome Screen" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Bitmap" $(!Bitmap_Filename) $(!REG_VT_SZ) $(!Bitmap_Filename_OverWriteValue) endif ; !Welcome_Screen_Caption = ; !Welcome_Screen_Caption_OverWriteValue = yes ifstr(i) $(!Welcome_Screen_Caption) != "" set ParamRegKeyName = "SOFTWARE\Novell\NWGINA\Welcome Screen" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Header Message" $(!Welcome_Screen_Caption) $(!REG_VT_SZ) $(!Welcome_Screen_Caption_OverWriteValue) endif ; NWIP Parameters ; !Remote_Config = on ; !Remote_Config_OverWriteValue = yes ifstr(i) $(!Remote_Config) != "" set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareIP\Parameters" ifstr(i) $(!Remote_Config) == "on" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Remote Config" 1 $(!REG_VT_DWORD) $(!Remote_Config_OverWriteValue) else-ifstr(i) $(!Remote_Config) == "off" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Remote Config" 0 $(!REG_VT_DWORD) $(!Remote_Config_OverWriteValue) else shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Remote_Config = "$(!Remote_Config)$(UnattendParameterError) ifstr(i) $($R1) == "CANCEL" set UnattendReturnStatus = STATUS_USERCANCEL goto endOfUnattend endif endif endif ; !NWIP_Domain_Name = ; !NWIP_Domain_Name_OverWriteValue = yes ifstr(i) $(!NWIP_Domain_Name) != "" set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareIP\Parameters" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "NWIP Domain Name" $(!NWIP_Domain_Name) $(!REG_VT_SZ) $(!NWIP_Domain_Name_OverWriteValue) endif ; !AutoRetries = 0 ; !AutoRetries_OverWriteValue = yes ifstr(i) $(!AutoRetries) != "" set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareIP\Parameters" ifint $(!AutoRetries) >= "0" ifint $(!AutoRetries) <= "10" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "AutoRetries" $(!AutoRetries) $(!REG_VT_DWORD) $(!AutoRetries_OverWriteValue) else ; error case greater than max goto AutoRetriesError endif else AutoRetriesError = + shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "AutoRetries = "$(!AutoRetries)$(UnattendParameterError) ifstr(i) $($R1) == "CANCEL" set UnattendReturnStatus = STATUS_USERCANCEL goto endOfUnattend endif endif endif ; !AutoRetry_Secs = 10 ; !AutoRetry_Secs_OverWriteValue = yes ifstr(i) $(!AutoRetry_Secs) != "" set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareIP\Parameters" ifint $(!AutoRetry_Secs) >= "5" ifint $(!AutoRetry_Secs) <= "99" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "AutoRetry Secs" $(!AutoRetry_Secs) $(!REG_VT_DWORD) $(!AutoRetry_Secs_OverWriteValue) else ; error case greater than max goto AutoRetry_SecsError endif else AutoRetry_SecsError = + shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "AutoRetry_Secs = "$(!AutoRetry_Secs)$(UnattendParameterError) ifstr(i) $($R1) == "CANCEL" set UnattendReturnStatus = STATUS_USERCANCEL goto endOfUnattend endif endif endif ; !NSQ_Broadcast = on ; !NSQ_Broadcast_OverWriteValue = yes ifstr(i) $(!NSQ_Broadcast) != "" set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareIP\Parameters" ifstr(i) $(!NSQ_Broadcast) == "on" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "NSQ Broadcast" 1 $(!REG_VT_DWORD) $(!NSQ_Broadcast_OverWriteValue) else-ifstr(i) $(!NSQ_Broadcast) == "off" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "NSQ Broadcast" 0 $(!REG_VT_DWORD) $(!NSQ_Broadcast_OverWriteValue) else shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "NSQ_Broadcast = "$(!NSQ_Broadcast)$(UnattendParameterError) ifstr(i) $($R1) == "CANCEL" set UnattendReturnStatus = STATUS_USERCANCEL goto endOfUnattend endif endif endif ; !NWIP1_1_Compatibility = off ; !NWIP1_1_Compatibility_OverWriteValue = yes ifstr(i) $(!NWIP1_1_Compatibility) != "" set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareIP\Parameters" ifstr(i) $(!NWIP1_1_Compatibility) == "on" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "NWIP1_1 Compatibility" 1 $(!REG_VT_DWORD) $(!NWIP1_1_Compatibility_OverWriteValue) else-ifstr(i) $(!NWIP1_1_Compatibility) == "off" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "NWIP1_1 Compatibility" 0 $(!REG_VT_DWORD) $(!NWIP1_1_Compatibility_OverWriteValue) else shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "NWIP1_1_Compatability = "$(!NWIP1_1_Compatibility)$(UnattendParameterError) ifstr(i) $($R1) == "CANCEL" set UnattendReturnStatus = STATUS_USERCANCEL goto endOfUnattend endif endif endif ; !Use_Custom_Port = off ; !Use_Custom_Port_OverWriteValue = yes ifstr(i) $(!Use_Custom_Port) != "" set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareIP\Parameters" ifstr(i) $(!Use_Custom_Port) == "on" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Use Custom Port" 1 $(!REG_VT_DWORD) $(!Use_Custom_Port_OverWriteValue) else-ifstr(i) $(!Use_Custom_Port) == "off" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Use Custom Port" 0 $(!REG_VT_DWORD) $(!Use_Custom_Port_OverWriteValue) else shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Use_Custom_Port = "$(!Use_Custom_Port)$(UnattendParameterError) ifstr(i) $($R1) == "CANCEL" set UnattendReturnStatus = STATUS_USERCANCEL goto endOfUnattend endif endif endif ; !Port_Number = ABCD ; !Port_Number_OverWriteValue = yes ifstr(i) $(!Port_Number) != "" Split-String $(!Port_Number) "ghijklmnopqrstuvwxyzGHIJKLMNOPQRSTUVWXYZ\/<>~!%^()[]{}.-" PortNumberList QueryListSize ListSize $(PortNumberList) ifint $(ListSize) == 1 set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareIP\Parameters" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "Port Number" $(!Port_Number) $(!REG_VT_SZ) $(!Port_Number_OverWriteValue) else shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", "Port Number = "$(!Port_Number)$(UnattendParameterError) ifstr(i) $($R1) == "CANCEL" set UnattendReturnStatus = STATUS_USERCANCEL goto endOfUnattend endif endif endif ; NWIP Servers Page ; !Nearest_NWIP_Server1 = ; !Nearest_NWIP_Server1_OverWriteValue = yes ifstr(i) $(!Nearest_NWIP_Server1) != "" set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareIP\Parameters\Nearest NWIP Server" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "0" $(!Nearest_NWIP_Server1) $(!REG_VT_SZ) $(!Nearest_NWIP_Server1_OverWriteValue) endif ; !Nearest_NWIP_Server2 = ; !Nearest_NWIP_Server2_OverWriteValue = yes ifstr(i) $(!Nearest_NWIP_Server2) != "" set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareIP\Parameters\Nearest NWIP Server" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "1" $(!Nearest_NWIP_Server2) $(!REG_VT_SZ) $(!Nearest_NWIP_Server2_OverWriteValue) endif ; !Nearest_NWIP_Server3 = ; !Nearest_NWIP_Server3_OverWriteValue = yes ifstr(i) $(!Nearest_NWIP_Server3) != "" set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareIP\Parameters\Nearest NWIP Server" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "2" $(!Nearest_NWIP_Server3) $(!REG_VT_SZ) $(!Nearest_NWIP_Server3_OverWriteValue) endif ; !Nearest_NWIP_Server4 = ; !Nearest_NWIP_Server4_OverWriteValue = yes ifstr(i) $(!Nearest_NWIP_Server4) != "" set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareIP\Parameters\Nearest NWIP Server" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "3" $(!Nearest_NWIP_Server4) $(!REG_VT_SZ) $(!Nearest_NWIP_Server4_OverWriteValue) endif ; !Nearest_NWIP_Server5 = ; !Nearest_NWIP_Server5_OverWriteValue = yes ifstr(i) $(!Nearest_NWIP_Server5) != "" set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareIP\Parameters\Nearest NWIP Server" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "4" $(!Nearest_NWIP_Server5) $(!REG_VT_SZ) $(!Nearest_NWIP_Server5_OverWriteValue) endif ; !Preferred_DSS1 = ; !Preferred_DSS1_OverWriteValue = yes ifstr(i) $(!Preferred_DSS1) != "" set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareIP\Parameters\Preferred DSS" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "0" $(!Preferred_DSS1) $(!REG_VT_SZ) $(!Preferred_DSS1_OverWriteValue) endif ; !Preferred_DSS2 = ; !Preferred_DSS2_OverWriteValue = yes ifstr(i) $(!Preferred_DSS2) != "" set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareIP\Parameters\Preferred DSS" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "1" $(!Preferred_DSS2) $(!REG_VT_SZ) $(!Preferred_DSS2_OverWriteValue) endif ; !Preferred_DSS3 = ; !Preferred_DSS3_OverWriteValue = yes ifstr(i) $(!Preferred_DSS3) != "" set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareIP\Parameters\Preferred DSS" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "2" $(!Preferred_DSS3) $(!REG_VT_SZ) $(!Preferred_DSS3_OverWriteValue) endif ; !Preferred_DSS4 = ; !Preferred_DSS4_OverWriteValue = yes ifstr(i) $(!Preferred_DSS4) != "" set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareIP\Parameters\Preferred DSS" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "3" $(!Preferred_DSS4) $(!REG_VT_SZ) $(!Preferred_DSS4_OverWriteValue) endif ; !Preferred_DSS5 = ; !Preferred_DSS5_OverWriteValue = yes ifstr(i) $(!Preferred_DSS5) != "" set ParamRegKeyName = "SYSTEM\CurrentControlSet\Services\NetWareIP\Parameters\Preferred DSS" shell "" NWParameterRegSet $(!REG_H_LOCAL) $(ParamRegKeyName) "4" $(!Preferred_DSS5) $(!REG_VT_SZ) $(!Preferred_DSS5_OverWriteValue) endif endOfUnattend = + Return $(UnattendReturnStatus) ;----------NWParameterRegSet------------------------------------------------- ; ; NWParameterRegSet ; ; It sets all of the Client Values to the data specified in the Unattend.txt file. ; ;------------------------------------------------------------------------ [NWParameterRegSet] read-syms InitBaseVars set ParamRegHive = $($0) set ParamRegKeyName = $($1) set ParamValueName = $($2) set ParamValueData = $($3) set ParamValueDataType = $($4) ; $(!REG_VT_SZ) set OverWriteValue = $($5) Debug-Output "OEMNPRNW.INF: NWParameterRegSet for "$(ParamValueName)" "$(ParamValueData) OpenRegKey $(ParamRegHive) "" $(ParamRegKeyName) $(MAXIMUM_ALLOWED) KeyParamNovell ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Error opening Key Error Code = "$(RegLastError) Debug-Output "OEMNPRNW.INF: Error opening key so create it "$(ParamRegKeyName) CreateRegKey $(!REG_H_LOCAL) {$(ParamRegKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyParamNovell endif ifstr(i) $(OverWriteValue) == "yes" ;If OverWrite = yes, write the value in the registry. ; Now do a reg Slam. ifstr(i) $(KeyParamNovell) != "" SetRegValue $(KeyParamNovell) {$(ParamValueName), 0 ,$(ParamValueDataType),$(ParamValueData)} Debug-Output "OEMNPRNW.INF: Writing value, OverWrite = YES." CloseRegKey $(KeyParamNovell) else Debug-Output "OEMNPRNW.INF: Error the KeyParamNovell was blank ." endif ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Error creating Software\Novell\Parameters" endif else ; If OverWrite is NO then check to see if the registry contains a value. If the registry is blank then write the value. ; Now do a reg Read. ifstr(i) $(KeyParamNovell) != "" GetRegValue $(KeyParamNovell) $(ParamValueName) ValList ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Error reading key "$(ParamRegKeyName) endif Debug-Output "OEMNPRNW.INF: GetRegValue = "*($(ValList), 4) ifstr(i) *($(ValList), 4) == "" SetRegValue $(KeyParamNovell) {$(ParamValueName), 0 ,$(ParamValueDataType),$(ParamValueData)} Debug-Output "OEMNPRNW.INF: Writing value, Overwrite = NO" endif CloseRegKey $(KeyParamNovell) else Debug-Output "OEMNPRNW.INF: Error KeyParamNovell was blank ." endif endif Return ;************************************************************************* ; ; SECTION: GetInfFileNameFromRegistry ; ; PURPOSE: get the inf file name from the product' NetRules section. ; ; ARGUMENTS: $0 product key handle ; (ie, system\software\Microsoft\Lance\CurrentVersion) ; ; RETURNS: $R0 Inf file name. ; ; REFERENCES: Nothing ; ; MODIFIES: Nothing ; ; ;************************************************************************* [GetInfFileNameFromRegistry] read-syms InitBaseVars set KeyProduct = $($0) set InfName = "" OpenRegKey $(KeyProduct) "" "NetRules" $(!REG_KEY_READ) NetRuleKey Ifstr(i) $(NetRuleKey) != $(KeyNull) GetRegValue $(NetRuleKey) "InfName" NetRuleInfNameList set NetRuleInfName = *($(NetRuleInfNameList), 4) Split-String $(NetRuleInfName), "\", FilenameList QueryListSize ListSize $(FilenameList) set InfName = *($(FilenameList), $(ListSize)) CloseRegKey $(NetRuleKey) endif return $(InfName) ; ; Helper sections: service-specific installation and removal functions ; [CheckSystemDriveSpace] read-syms InstallOption$(!STF_LANGUAGE) detect DetectDiskSpace GetDriveInPath NtDrive $(!STF_WINDOWSSYSPATH) Debug-Output "NtDrive is "$(NtDrive) Debug-Output "VolumeList is "$(VolumeList) Debug-Output "VolumeFreeList is "$(VolumeFreeList) Debug-Output "VolumeFSList is "$(VolumeFSList) ; ; Set status failed by default until we find out otherwise ; set Status = STATUS_FAILED ForListDo $(VolumeList) set CurrentVolume = *($(VolumeList), $(#)) set CurrentVolumeFree = *($(VolumeFreeList), $(#)) Ifstr(i) $(CurrentVolume) == $(NtDrive) Ifint $(CurrentVolumeFree) < 10 ; ; Let the user know that there is not enough disk space ; set DlgType = "MessageBox" set STF_MB_TITLE = $(NoDiskSpaceTitle) set STF_MB_TEXT = $(NoDiskSpaceText) set STF_MB_TYPE = 1 set STF_MB_ICON = 2 set STF_MB_DEF = 1 ui start "NoDiskSpace" set Status = STATUS_FAILED else set Status = STATUS_SUCCESSFUL endif EndIf EndForListDo Return $(Status) [AgreeToLicense] set SourceDir = $($0) set Status = STATUS_SUCCESSFUL read-syms InstallOption$(!STF_LANGUAGE) read-syms FileConstants Debug-Output "OEMNPRNW.INF: Asking user to agree to license" ; ; Ask the user if they agree to license ; LibraryProcedure STATUS, $(!LIBHANDLE), AppendBackSlash $(SourceDir) Ifstr(i) $(STATUS) != "ERROR" set SourceDir = $(STATUS) Endif LoadLibrary $(LoadDisk1Text) $(SourceDir)$(NwLangIdDll) NwLibHandle LibraryProcedure LibResult $(NwLibHandle) NWLicenseAgreement FreeLibrary $(NwLibHandle) ifstr(i) $(LibResult) == "CONTINUE" set Status = STATUS_SUCCESSFUL else set Status = STATUS_FAILED endif Return $(Status) [FinishInstalling-NWFS] read-syms GeneralConstants read-syms FileConstants Set KeyParameters = $($1) Set KeyLinkage = $($2) Set TransportSelected = $($5) ; ; Check for the pre-alpha nwfs key if it exists delete it we are now using ; the key NetWareWorkStation ; set NetWareFileSystem = "Nwfs" set PreAlphaWorkstation = $(!NTN_ServiceBase)"\"$(NetWareFileSystem) OpenRegKey $(!REG_H_LOCAL) "" $(PreAlphaWorkstation) $(MAXIMUM_ALLOWED) KeyWorkstation Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) CloseRegKey $(KeyWorkstation) OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase) $(MAXIMUM_ALLOWED) KeyServices Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) DeleteRegTree $(KeyServices) $(NetWareFileSystem) CloseRegKey $(KeyServices) Else Debug-Output "OEMNPRNW.INF: Delete Nwfs, Can't open "$(!NTN_ServiceBase) Endif Endif SetRegValue $(KeyLinkage) {"OtherDependencies", $(NoTitle), $(!REG_VT_MULTI_SZ), {"Mup", "NwlnkIpx", "+NetWare Services", "+TDI"}} SetRegValue $(KeyParameters) {"Retry Count", $(NoTitle), $(!REG_VT_DWORD), 16} SetRegValue $(KeyParameters) {"Burst Mode", $(NoTitle), $(!REG_VT_DWORD), 1} SetRegValue $(KeyParameters) {"Signature Level", $(NoTitle), $(!REG_VT_DWORD), 1} SetRegValue $(KeyParameters) {"First Time Install", $(NoTitle), $(!REG_VT_DWORD), 1} SetRegValue $(KeyParameters) {"Opportunistic Locking", $(NoTitle), $(!REG_VT_DWORD), 0} Debug-Output "Set registry for NWLINK, KeyParameters = "$(KeyParameters) SetRegValue $(KeyParameters) {"IPX TDI Provider",$(NoTitle),$(!REG_VT_SZ),"\Device\NwLnkIpx"} FIN_NWFS_Return = + Return [FinishInstalling-IPXSPX] read-syms GeneralConstants read-syms FileConstants read-syms IpxSpxConstants set ParmKey = $($1) set LinkageKey = $($2) ; ; set Parameters ; SetRegValue $(ParmKey) {$(CardTypeName),$(NoTitle),$(!REG_VT_SZ),$(CardName)} SetRegValue $(ParmKey) {$(CardInstance),$(NoTitle),$(!REG_VT_DWORD),$(CardInstanceNum)} SetRegValue $(ParmKey) {"Session Count",$(NoTitle),$(!REG_VT_DWORD),48} SetRegValue $(ParmKey) {"Window Size",$(NoTitle),$(!REG_VT_DWORD),3} SetRegValue $(ParmKey) {"Retry Count",$(NoTitle),$(!REG_VT_DWORD),10} SetRegValue $(ParmKey) {"Retry Delay Timeout",$(NoTitle),$(!REG_VT_DWORD),0} SetRegValue $(ParmKey) {"Watchdog Abort Timeout",$(NoTitle),$(!REG_VT_DWORD),30} SetRegValue $(ParmKey) {"Watchdog Listen Timeout",$(NoTitle),$(!REG_VT_DWORD),6} SetRegValue $(ParmKey) {"Watchdog Verify Timeout",$(NoTitle),$(!REG_VT_DWORD),3} ; ; set Linkage ; SetRegValue $(LinkageKey) {$(BindValueName),$(NoTitle),$(!REG_VT_SZ),"\DEVICE\IPXSPX"} Shell $(UtilityInf) AddWinsockInfo $(ProductIPXSPXName) "wshnw.dll" "14" "14" ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "OEMNPRNW.INF: AddWinsockInfo ShellCode error "$($ShellCode) endif ; ; Check for the pre-alpha Ipx service key if it exists delete it. We are now ; using the key IpxSpx ; set PreAlphaIpxName = "Ipx" set PreAlphaIpxService = $(!NTN_ServiceBase)"\"$(PreAlphaIpxName) OpenRegKey $(!REG_H_LOCAL) "" $(PreAlphaIpxService) $(MAXIMUM_ALLOWED) KeyIpx Ifstr(i) $(KeyIpx) != "" CloseRegKey $(KeyIpx) OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase) $(MAXIMUM_ALLOWED) KeyServices Ifstr(i) $(KeyServices) == "" Debug-Output "OEMNPRNW.INF: Delete Ipx, Can't open "$(!NTN_ServiceBase) Else DeleteRegTree $(KeyServices) $(PreAlphaIpxName) FlushRegKey $(KeyServices) CloseRegKey $(KeyServices) Endif Endif Return [FinishInstalling-LSL] Return [FinishInstalling-NBI] SetRegValue $($0) {"DependOnService",$(NoTitle),$(!REG_VT_MULTI_SZ),{"LSL"}} Return [FinishInstalling-RESMGR] Return [FinishInstalling-ODILOAD] Set KeyLinkage = $($2) SetRegValue $(KeyLinkage) {"OtherDependencies",$(NoTitle),$(!REG_VT_MULTI_SZ),{"+ODI"}} Return [FinishInstalling-MUP] Return [FinishInstalling-TDI] Return [FinishInstalling-SPXAPI] Return [FinishInstalling-IPXAPI] Return [FinishInstalling-NWSIPX32] SetRegValue $(KeyLinkage) {"OtherDependencies", $(NoTitle), $(!REG_VT_MULTI_SZ), {"NwlnkIpx", "NwlnkSpx", "+NetWare Services", "+TDI"}} Return [FinishInstalling-SROUTE] Return [FinishInstalling-RECONNECT] Return [FinishInstalling-VMLID] Return [FinishInstalling-NWPOPUP] Debug-Output "FinishInstalling-NWPOPUP" set KeyNwPop = $($0) FlushRegKey $(KeyNwPop) Ifstr(i) $(KeyNwPop) != "" Debug-Output "Opened Key NWPOPUP" GetRegValue $(KeyNwPop) "Type" ValueTypeList Debug-Output "TypeList = "$(ValueTypeList) set ValueType = *($(ValueTypeList), 4) Debug-Output "Type = "$(ValueType) set-add ValueType = $(ValueType),256 SetRegValue $(KeyNwPop) {"Type",$(NoTitle),$(!REG_VT_DWORD),$(ValueType)} Endif Endif Return [FinishInstalling-ODINSUP] Return [DoAskSource] read-syms DoAskSource$(!STF_LANGUAGE) Set DAS_CWDDIR = $($0) Set DAS_SRCDIR = $($1) Set DAS_BUILTIN = $($2) Set DAS_Result = STATUS_FAILED Ifstr(i) $(!STF_SRCDIR_OVERRIDE) != "" Set DAS_SRCDIR = $(!STF_SRCDIR_OVERRIDE) Set DAS_Result = STATUS_SUCCESSFUL Goto DAS_exit Endif Ifstr(i) $(DAS_BUILTIN) == YES Ifstr(i) $(!NTN_InstallPhase) == primary Ifstr(i) $(!STF_SRCDIR_WINNT) != "" Set DAS_SRCDIR = $(!STF_SRCDIR_WINNT) Endif Set DAS_Result = STATUS_SUCCESSFUL Goto DAS_exit Endif Endif Debug-Output "OEMNPRNW.INF: [DoAskSource] STF_CWDDIR = "$(DAS_CWDDIR)" STF_SRCDIR = "$(DAS_SRCDIR) Ifstr(i) $(DAS_SRCDIR) == "" Set DAS_SRCDIR = "A:\" Endif Ifstr(i) $(DAS_SRCDIR) == $(!STF_SRCDIR_USED) Set DAS_SRCDIR = $(!STF_SRCDIR_KEYED) Endif Shell "subroutn.inf" DoAskSourceEx $(DAS_SRCDIR) $(NetWareDlgText) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "UTILITY.INF: shelling SUBROUTN.INF [DoAskSource] failed" goto DAS_exit endif Set DAS_Result = $($R0) Set DAS_SRCDIR = $($R1) Set !STF_SRCDIR_USED = $($R1) Set !STF_SRCDIR_KEYED = $($R3) DAS_exit =+ Read-syms ProgressCopy$(!STF_LANGUAGE) Return $(DAS_Result) $(DAS_SRCDIR) ;************************************************************************* ; ; SECTION: Install-NetWareIP ; ; PURPOSE: Called at install or update to install the ; NetWareIP adapter. ; ; ARGUMENTS: None ; ; RETURNS: None ; ; REFERENCES: None ; ; MODIFIES: None ; ;************************************************************************* [Install-NetWareIP] read-syms GeneralConstants read-syms FileConstants read-syms InstallOption$(!STF_LANGUAGE) ; ; Assume all is well until we find out otherwise ; set CommonStatus = STATUS_SUCCESSFUL ; Error checking data in the Variables ifstr(i) $(!AskNetWareIP) != "" ifstr(i) $(!AskNetWareIP) == "yes" goto AskNetWareIPValid else-ifstr(i) $(!AskNetWareIP) == "no" goto AskNetWareIPValid else ; Error case the Variable AskNetWareIP does not contains valid YES or NO but does contain something. set DlgType = "MessageBox" set STF_MB_TITLE = $(FunctionTitle) set STF_MB_TEXT = "AskNetWareIP"$(ClientParamError) set STF_MB_TYPE = 3 set STF_MB_ICON = 4 set STF_MB_DEF = 1 ui start "NoAdapter" Ifstr(i) $(DLGEVENT) == "NO" set CommonStatus = STATUS_USERCANCEL goto end else ; set variable to blank set !AskNetWareIP = "" endif endif AskNetWareIPValid = + endif ; Error checking data in the Variables ifstr(i) $(!InstallNetWareIP) != "" ifstr(i) $(!InstallNetWareIP) == "yes" goto InstallNetWareIPValid else-ifstr(i) $(!InstallNetWareIP) == "no" goto InstallNetWareIPValid else ; Error case the Variable InstallNetWareIP does not contains valid YES or NO but does contain something. set DlgType = "MessageBox" set STF_MB_TITLE = $(FunctionTitle) set STF_MB_TEXT = "InstallNetWareIP"$(ClientParamError) set STF_MB_TYPE = 3 set STF_MB_ICON = 4 set STF_MB_DEF = 1 ui start "NoAdapter" Ifstr(i) $(DLGEVENT) == "NO" set CommonStatus = STATUS_USERCANCEL goto end else ; set variable to blank set !InstallNetWareIP = "" endif endif InstallNetWareIPValid = + endif ifstr(i) $(!AskNetWareIP) == "YES" ifstr(i) $(!InstallNetWareIP) == "YES" set STF_MB_DEF = 1 else set STF_MB_DEF = 2 endif set DlgType = "MessageBox" set STF_MB_TITLE = $(InstallNetWareIPMessageTitle) set STF_MB_TEXT = $(InstallNetWareIPMessageText) set STF_MB_TYPE = 3 set STF_MB_ICON = 4 ui start "InstallNetWareIP" Ifstr(i) $(DLGEVENT) == "YES" set !InstallNetWareIP = "YES" else set !InstallNetWareIP = "NO" endif endif ifstr(i) $(!InstallNetWareIP) == "YES" Set OldInstallMode = $(!NTN_InstallMode) Set !NTN_InstallMode = install Shell "OEMNSVIP.INF" InstallOption $(!STF_LANGUAGE) "NetWareIP" "" NO NO NO Set !NTN_InstallMode = $(OldInstallMode) ifint $($ShellCode) != $(!SHELL_CODE_OK) set CommonStatus = STATUS_FAILED goto terminate Endif set CommonStatus = $($R0) Ifstr(i) $(CommonStatus) != STATUS_SUCCESSFUL Debug-Output "OEMNPRNW.INF: Install of NetWareIP returned "$(CommonStatus) goto terminate Endif endif terminate = + Return $(CommonStatus) ;************************************************************************* ; ; SECTION: InstallEx-AuthenticationPackage ; ; PURPOSE: Called at install time to install the ; NetWare Authentication Package. ; ; ARGUMENTS: None ; ; RETURNS: None ; ; REFERENCES: None ; ; MODIFIES: None ; ;************************************************************************* [InstallEx-AuthenticationPackage] Read-syms GeneralConstants Read-syms FileConstants Read-syms ExtendedConstants read-syms InitBaseVars Set ValueName = "Authentication Packages" set Status = STATUS_SUCCESSFUL OpenRegKey $(!REG_H_LOCAL) "" "System\CurrentControlSet\Control\Lsa" $(MAXIMUM_ALLOWED) KeyLsa Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Can't open LSA key for authentication package" Set Status = STATUS_FAILED Goto IEX_Auth_Return Endif GetRegValue $(KeyLsa) $(ValueName) AuthValueList Set AuthList = *($(AuthValueList),4) Set DoIt = 1 ForListDo $(AuthList) Ifstr(i) $($) == $(PkgName) Set DoIt = 0 Endif EndForListDo Ifint $(DoIt) == 1 Set NewAuthList = >($(AuthList),$(PkgName)) SetRegValue $(KeyLsa) {$(ValueName),$(NoTitle),$(!REG_VT_MULTI_SZ),$(NewAuthList)} Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Can't update LSA value for authentication package" CloseRegKey $(KeyLsa) Set Status = STATUS_FAILED Goto IEX_Auth_Return Endif Endif CloseRegKey $(KeyLsa) IEX_Auth_Return = + Return $(Status) ;************************************************************************* ; ; SECTION: InstallEx-NetworkProvider ; ; PURPOSE: Called at install time to install the ; NetWare NetworkProvider. ; ; ARGUMENTS: None ; ; RETURNS: None ; ; REFERENCES: None ; ; MODIFIES: None ; ;************************************************************************* [InstallEx-NetworkProvider] Read-syms GeneralConstants Read-syms FileConstants Read-syms ExtendedConstants read-syms InitBaseVars read-syms InstallOption$(!STF_LANGUAGE) Set ValueName = "ProviderOrder" Set Status = STATUS_SUCCESSFUL ; ; Set up the network provider order ; OpenRegKey $(!REG_H_LOCAL) "" "System\CurrentControlSet\Control\NetworkProvider\order" $(MAXIMUM_ALLOWED) KeyPro Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) GetRegValue $(KeyPro) $(ValueName) ProValueList Set ProString = *($(ProValueList),4) ifstr(i) $(ProString) == "" ; ; We are the only one. Just set the value with our name ; SetRegValue $(KeyPro) {$(ValueName),$(NoTitle),$(!REG_VT_SZ),$(ProviderName)} Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Can't update ProviderOrder value" CloseRegKey $(KeyPro) Set Status = STATUS_FAILED goto IEX_Prov_Return Endif else ; ; Other providers are installed. Add us at the beginning. ; Split-string $(ProString) "," ProPieces Debug-Output "OEMNPRNW.INF: Provider list string is: "$(ProPieces) Set DoIt = 1 ForListDo $(ProPieces) Ifstr(i) $($) != "," Ifstr(i) $($) == $(ProviderName) Set DoIt = 0 Debug-Output "OEMNPRNW.INF: Provider already present" Endif Endif EndForListDo Ifint $(DoIt) == 1 Set NewPieces = "" Set NewPieces = >($(NewPieces),$(ProviderName)) Set NewPieces = >($(NewPieces),",") ForListDo $(ProPieces) Set NewPieces = >($(NewPieces),$($)) EndForListDo Set NewString = "" ForListDo $(NewPieces) Set NewString = $(NewString)$($) EndForListDo Debug-Output "OEMNPRNW.INF: New provider string is: "$(NewString) SetRegValue $(KeyPro) {$(ValueName),$(NoTitle),$(!REG_VT_SZ),$(NewString)} Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Can't update ProviderOrder value" CloseRegKey $(KeyPro) Set Status = STATUS_FAILED goto IEX_Prov_Return Endif Endif endif CloseRegKey $(KeyPro) else Debug-Output "OEMNPRNW.INF: Can't open NetworkProvder\order key" Set Status = STATUS_FAILED Goto IEX_Prov_Return Endif ; ; Set up the values under NetWareWorkstation ; Set WorkStation = $(!NTN_ServiceBase)"\"$(ProductNWFSName) Debug-Output "OEMNPRNW.INF: WorkStation is "$(WorkStation) OpenRegKey $(!REG_H_LOCAL) "" $(WorkStation) $(MAXIMUM_ALLOWED) WorkStationKey Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) CreateRegKey $(WorkStationKey) {"NetworkProvider", $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" ProviderKey Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) OpenRegKey $(WorkStationKey) "" "NetworkProvider" $(MAXIMUM_ALLOWED) ProviderKey Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Can't create or open NetworkProvider" CloseRegKey $(WorkstationKey) Set Status = STATUS_FAILED goto IEX_Prov_Return Endif Endif CloseRegKey $(WorkStationKey) else Debug-Output "OEMNPRNW.INF: Can't open "$(ProductNWFSName) Set Status = STATUS_FAILED goto IEX_Prov_Return Endif SetRegValue $(ProviderKey) {"Class", $(NoTitle), $(!REG_VT_DWORD), "3"} SetRegValue $(ProviderKey) {"DeviceName", $(NoTitle), $(!REG_VT_SZ), "\Device\NetWareRedirector"} SetRegValue $(ProviderKey) {"Name", $(NoTitle), $(!REG_VT_SZ), "NetWare Services"} ; ; The following items depend on which shell is running for NT. ; Find out which shell it is before continuing. ; set Winlogon = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\Winlogon" OpenRegKey $(!REG_H_LOCAL) "" $(Winlogon) $(MAXIMUM_ALLOWED) WinlogonKey Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) GetRegValue $(WinlogonKey) "Shell" ShellDataList Debug-Output "OEMNPRNW.INF: ShellDataList is "$(ShellDataList) Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) set ShellName = *($(ShellDataList), 4) Split-String $(ShellName) "." SplitList QueryListSize SplitListSize $(SplitList) Debug-Output "OEMNPRNW.INF: SplitList is "$(SplitList) Debug-Output "OEMNPRNW.INF: SplitList has "$(SplitListSize)" item(s)" set ShellName = *($(SplitList), 1) ifstr(i) $(ShellName) == "Explorer" ; ; Set up registry for new explorer. This is done with a call ; to the dll. The provider for NT 3.51 will also need to call ; this function if it detects an upgrade from NT 3.51 to 4.0 ; has occured. ; LoadLibrary $(LoadDisk3Text) $(!STF_WINDOWSSYSPATH)"\"$(NwSetupDll) NwLibHandle LibraryProcedure GUIResult $(NwLibHandle) NWSetup40Provider FreeLibrary $(NwLibHandle) else ; ; Set provider path for old provider ; SetRegValue $(ProviderKey) {"ProviderPath", $(NoTitle), $(!REG_VT_EXPAND_SZ), $(System32Root)"\netware.dll"} ; ; Set the value for the file manager add-ons ; OpenRegKey $(!REG_H_LOCAL) "" "Software\Microsoft\Windows NT\CurrentVersion\File Manager\AddOns" $(MAXIMUM_ALLOWED) TempKey Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) SetRegValue $(TempKey) {"Novell NetWare Extension",$(NoTitle),$(!REG_VT_SZ),"nwfmext.dll"} CloseRegKey $(TempKey) else Debug-Output "OEMNPRNW.INF: Can't open File Manager\AddOns key" Set Status = STATUS_FAILED Goto IEX_Prov_Return Endif endif endif endif CloseRegKey $(ProviderKey) IEX_Prov_Return = + Return $(Status) ;************************************************************************* ; ; SECTION: InstallEx-NetWarePrintServices ; ; PURPOSE: Called at install time to install the ; NetWare Print Services. ; ; ARGUMENTS: None ; ; RETURNS: None ; ; REFERENCES: None ; ; MODIFIES: None ; ;************************************************************************* [InstallEx-NetWarePrintServices] Read-syms GeneralConstants Read-syms ExtendedConstants read-syms InitBaseVars Read-syms FileConstants Set ValueName = "Name" Set OrderName = "Order" Set Status = STATUS_SUCCESSFUL OpenRegKey $(!REG_H_LOCAL) "" $(PrintProvider) $(MAXIMUM_ALLOWED) KeyPrint Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Can't open "$(PrintProvider)" key" Set Status = STATUS_FAILED Goto IEX_Nps_Return Endif CreateRegKey $(KeyPrint) {$(NetWarePrintProviderName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyProvider Ifint $(RegLastError) != !(!REG_ERROR_SUCCESS) OpenRegKey $(KeyPrint) "" $(NetWarePrintProviderName) $(MAXIMUM_ALLOWED) KeyProvider Ifint $(RegLastError) != !(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Can't open "$(NetWarePrintProviderName)" key" Set Status = STATUS_FAILED Goto IEX_Nps_Return endif Endif SetRegValue $(KeyProvider) {$(ValueName), $(NoTitle), $(!REG_VT_SZ), "nwspool.dll"} Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Can't update NetWare Print Services value" Set Status = STATUS_FAILED Goto IEX_Nps_Return Endif GetRegValue $(KeyPrint) $(OrderName) PrintProviderOrder Set ProviderOrderList = *($(PrintProviderOrder), 4) Set DoIt = 1 ForListDo $(ProviderOrderList) Set Item = $($) Ifstr(i) $(Item) == $(NetWarePrintProviderName) ; ; We're already in the list ; Set DoIt = 0 Endif EndForListDo Ifint $(DoIt) == 1 Set NewList = {} Set NewList = >($(NewList), $(NetWarePrintProviderName)) ForListDo $(ProviderOrderList) Set NewList = >($(NewList), $($)) EndForListDo SetRegValue $(KeyPrint) {$(OrderName), $(NoTitle), $(!REG_VT_MULTI_SZ), $(NewList)} Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Cant update Print Providers Order value" Set Status = STATUS_FAILED Goto IEX_Nps_Return Endif Endif CloseRegKey $(KeyProvider) CloseRegKey $(KeyPrint) IEX_Nps_Return = + Return $(Status) ;************************************************************************* ; ; SECTION: Install-NWLINK ; ; PURPOSE: Called at install time and update time to install the ; NWLINKIPX compatible transport. ; ; ARGUMENTS: None ; ; RETURNS: None ; ; REFERENCES: None ; ; MODIFIES: None ; ;************************************************************************* [Install-NWLINK] read-syms GeneralConstants read-syms FileConstants read-syms InstallOption$(!STF_LANGUAGE) ; ; Assume all is well until we find out otherwise ; set CommonStatus = STATUS_SUCCESSFUL OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_ServiceBase)"\NwLnkIpx" $(MAXIMUM_ALLOWED) KeyNWLINK ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Installing NWLINK" ; ; Ask the user if they want to install NWLINK ; set DlgType = "MessageBox" set STF_MB_TITLE = $(InstallNWLinkMessageTitle) set STF_MB_TEXT = $(InstallNWLinkMessageText) set STF_MB_TYPE = 3 set STF_MB_ICON = 4 set STF_MB_DEF = 1 ui start "InstallNWLINK" Ifstr(i) $(DLGEVENT) == "NO" Debug-Output "OEMNPRNW.INF: Don't install NWLINK" set CommonStatus = STATUS_USERCANCEL goto terminate Endif Set OldInstallMode = $(!NTN_InstallMode) Set !NTN_InstallMode = install Set OldSTF_SRCDIR_OVERRIDE = $(!STF_SRCDIR_OVERRIDE) set !STF_SRCDIR_OVERRIDE = "" Shell "oemnxpip.inf" InstallOption $(!STF_LANGUAGE) "NWLNKIPX" "" YES YES YES Set !STF_SRCDIR_OVERRIDE = $(OldSTF_SRCDIR_OVERRIDE) Set !NTN_InstallMode = $(OldInstallMode) ifint $($ShellCode) != $(!SHELL_CODE_OK) set CommonStatus = STATUS_FAILED goto terminate Endif set CommonStatus = $($R0) Ifstr(i) $(CommonStatus) != STATUS_SUCCESSFUL Debug-Output "OEMNPRNW.INF: Install of NWLINK returned "$(CommonStatus) goto terminate Endif Else CloseRegKey $(KeyNWLINK) Endif terminate = + Return $(CommonStatus) ;************************************************************************* ; ; SECTION: Install-Gina ; ; PURPOSE: Called at install or update to install the ; NetWare GINA dll. ; ; ARGUMENTS: None ; ; RETURNS: None ; ; REFERENCES: None ; ; MODIFIES: None ; ;************************************************************************* [Install-Gina] read-syms GeneralConstants read-syms FileConstants read-syms InstallOption$(!STF_LANGUAGE) ; ; Assume all is well until we find out otherwise ; set CommonStatus = STATUS_SUCCESSFUL ; ; Find out if this is a CITRIX machine. We cannot replace the GINA ; if it is. Must special case for them. ; set TempKeyName = "SYSTEM\CurrentControlSet\Control\Citrix" OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) ; ; This section will add the NWGINA.DLL for graphical authentication ; at install time and at update time if the default MSGINA.DLL ; is being used. ; set WinLogon = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\Winlogon" OpenRegKey $(!REG_H_LOCAL) "" $(WinLogon) $(MAXIMUM_ALLOWED) WinLogonKey ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) set InstallNWGina = "FALSE" GetRegValue $(WinLogonKey) "GinaDLL" GinaDLLList ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) set GinaDLLListData = *($(GinaDLLList), 4) ; ; GinaDLL value exists, only change it if it contains ; the MSGINA.DLL string. ; ifstr(i) $(GinaDLLListData) == "MSGINA.DLL" set InstallNWGina = "TRUE" else-ifstr(i) $(GinaDLLListData) == "MSGINA" set InstallNWGina = "TRUE" else-ifstr(i) $(GinaDLLListData) == "NWGINA.DLL" set InstallNWGina = "TRUE" else ; Error checking data in the Variables ifstr(i) $(!UseNetWareGINA) != "" ifstr(i) $(!UseNetWareGINA) == "yes" goto UseNetWareGINAValid else-ifstr(i) $(!UseNetWareGINA) == "no" goto UseNetWareGINAValid else ; Error case the Variable UseNetWareGINA does not contains valid YES or NO but does contain something. set DlgType = "MessageBox" set STF_MB_TITLE = $(FunctionTitle) set STF_MB_TEXT = "UseNetWareGINA"$(ClientParamError) set STF_MB_TYPE = 3 set STF_MB_ICON = 4 set STF_MB_DEF = 1 ui start "NoAdapter" Ifstr(i) $(DLGEVENT) == "NO" set CommonStatus = STATUS_USERCANCEL goto terminate else ; set variable to blank set !UseNetWareGINA = "" endif endif UseNetWareGINAValid = + endif ifstr(i) $(!UseNetWareGINA) != "yes" ; ; Ask the user if they want to replace the ; installed GINA with our NWGINA ; set DlgType = "MessageBox" set STF_MB_TITLE = $(ReplaceGINAMessageTitle) set STF_MB_TEXT = $(ReplaceGINAMessageText) set STF_MB_TYPE = 3 set STF_MB_ICON = 2 set STF_MB_DEF = 1 ui start "ReplaceGINA" Ifstr(i) $(DLGEVENT) == "NO" set InstallNWGina = "FALSE" else set InstallNWGina = "TRUE" endif else set InstallNWGina = "TRUE" endif endif else ; ; GinaDLL value did not exist. Use our GINA ; set InstallNWGina = "TRUE" endif ifstr(i) $(InstallNWGina) == "TRUE" Debug-OutPut "OEMNPRNW.INF: Setting up to use our NWGINA.DLL" ; ; Set the GinaDLL value and other values in the winlogin area ; SetRegValue $(WinLogonKey) {"GinaDLL", $(NoTitle), $(!REG_VT_SZ), "NWGINA.DLL"} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to add NWGINA.DLL to GinaDLL value in "$(WinLogon) endif ; ; Create software\novell\nwgina to set other values ; Set GinaKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\NWGINA" CreateRegKey $(!REG_H_LOCAL) {$(GinaKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" GinaKey ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) OpenRegKey $(!REG_H_LOCAL) "" $(GinaKeyName) $(MAXIMUM_ALLOWED) GinaKey ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to create or open "$(GinaKeyName) endif endif ; ; Create Policy Support key if NT version 4.00 or greater ; ifint $(NTMajorVersion) > "3" Set PolicyKeyName = "Policy Support" CreateRegKey $(GinaKey) {$(PolicyKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" PolicyKey ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) SetRegValue $(PolicyKey) {"Policy Path", $(NoTitle), $(!REG_VT_SZ), ""} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to set the Policy Path for NWGINA.DLL" endif CloseRegKey $(PolicyKey) else Debug-Output "OEMNPRNW.INF: Failed to create "$(PolicyKeyName) endif endif ; ; Create Roaming Profiles key ; Set ProfileKeyName = "Roaming Profiles" CreateRegKey $(GinaKey) {$(ProfileKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" ProfileKey ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) SetRegValue $(ProfileKey) {"Storage Type", $(NoTitle), $(!REG_VT_SZ), "Home Directory"} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to set the Storage Type for NWGINA.DLL" endif SetRegValue $(ProfileKey) {"NetWare Storage", $(NoTitle), $(!REG_VT_DWORD), 0} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to set the NetWare Storage for NWGINA.DLL" endif CloseRegKey $(ProfileKey) else ; ; This section will run at update time since the key already ; existed. Some things changed so update them now. ; Debug-Output "OEMNPRNW.INF: Failed to create "$(ProfileKeyName) OpenRegKey $(GinaKey) "" $(ProfileKeyName) $(MAXIMUM_ALLOWED) ProfileKey ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) ; ; There is no access rights of any kind any more. Delete all ; old values we may have used. ; DeleteRegValue $(ProfileKey) "Access Rights" DeleteRegValue $(ProfileKey) "Container Access" DeleteRegValue $(ProfileKey) "Container Access Rights" ; ; Value "NDS Storage Type" changed to "Storage Type". Also ; the value data of "User Home Directory" changed to "Home Directory". ; Read value data and save under new value name ; GetRegValue $(ProfileKey) "NDS Storage Type" StorageList ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) set StorageListData = *($(StorageList), 4) ifstr(i) $(StorageListData) == "User Home Directory" SetRegValue $(ProfileKey) {"Storage Type", $(NoTitle), $(!REG_VT_SZ), "Home Directory"} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to set the Storage Type for NWGINA.DLL" endif else SetRegValue $(ProfileKey) {"Storage Type", $(NoTitle), $(!REG_VT_SZ), $(StorageListData)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to set the Storage Type for NWGINA.DLL" endif endif DeleteRegValue $(ProfileKey) "NDS Storage Type" ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to delete the NDS Storage Type for NWGINA.DLL" endif endif CloseRegKey $(ProfileKey) else Debug-Output "OEMNPRNW.INF: Failed to open "$(ProfileKeyName) endif endif ; ; Create Welcome Screen key ; Set WelcomeKeyName = "Welcome Screen" CreateRegKey $(GinaKey) {$(WelcomeKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" WelcomeKey ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) SetRegValue $(WelcomeKey) {"Bitmap", $(NoTitle), $(!REG_VT_SZ), "NWELCOME.BMP"} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to set the Bitmap for NWGINA.DLL" endif SetRegValue $(WelcomeKey) {"Header Message", $(NoTitle), $(!REG_VT_SZ), $(DefaultLoginCaption)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to set the Header Message for NWGINA.DLL" endif CloseRegKey $(WelcomeKey) else Debug-Output "OEMNPRNW.INF: Failed to create "$(WelcomeKeyName) ifstr(i) $(!P:OldNLSDirName) != $(!P:NLSDirName) Debug-Output "OEMNPRNW.INF: Language changed it was - "$(!P:OldNLSDirName)" it is now - "$(!P:NLSDirName) Set GinaWelcome = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\NWGINA\"$(WelcomeKeyName) OpenRegKey $(!REG_H_LOCAL) "" $(GinaWelcome) $(MAXIMUM_ALLOWED) WelcomeKey ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) SetRegValue $(WelcomeKey) {"Header Message", $(NoTitle), $(!REG_VT_SZ), $(DefaultLoginCaption)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to set the Header Message for NWGINA.DLL" else Debug-Output "OEMNPRNW.INF: Reset the Header Message for NWGINA.DLL" endif CloseRegKey $(WelcomeKey) endif endif endif CloseRegKey $(GinaKey) ; ; Now that the NWGINA key has been created or updated, ; set the ACL for it. ; LoadLibrary $(LoadDisk3Text) $(!STF_WINDOWSSYSPATH)"\"$(NwSetupDll) NwLibHandle LibraryProcedure GUIResult $(NwLibHandle) NWSetKeySecurity "Software\Novell\NWGina" "ON" FreeLibrary $(NwLibHandle) else Debug-Output "OEMNPRNW.INF: GINA will not be installed" endif CloseRegKey $(WinLogonKey) else Debug-Output "OEMNPRNW.INF: Error opening "$(WinLogon) endif else CloseRegKey $(TempKey) Debug-Output "OEMNPRNW.INF: This is a CITRIX Server machine" Debug-Output "OEMNPRNW.INF: We are NOT replacing MSGINA" ; ; Check to see if our NWGINA needs to be removed because this is a CITRIX ; machine and an old client that did not check for it was installed. ; set WinLogon = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\Winlogon" OpenRegKey $(!REG_H_LOCAL) "" $(WinLogon) $(MAXIMUM_ALLOWED) WinLogonKey ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) set RemoveNWGina = "FALSE" GetRegValue $(WinLogonKey) "GinaDLL" GinaDLLList ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) set GinaDLLListData = *($(GinaDLLList), 4) ; ; GinaDLL value exists, only remove our NWGINA. ; ifstr(i) $(GinaDLLListData) == "NWGINA.DLL" set RemoveNWGina = "TRUE" else-ifstr(i) $(GinaDLLListData) == "NWGINA" set RemoveNWGina = "TRUE" endif endif ifstr(i) $(RemoveNWGina) == "TRUE" Debug-OutPut "OEMNPRNW.INF: Removing our NWGINA.DLL" ; ; Remove our GINA ; DeleteRegValue $(WinLogonKey) "GinaDLL" ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to delete GinaDLL value in "$(WinLogon) endif else Debug-Output "OEMNPRNW.INF: GinaDLL value will not be removed" endif CloseRegKey $(WinLogonKey) else Debug-Output "OEMNPRNW.INF: Error opening "$(WinLogon) endif endif terminate = + Return $(CommonStatus) ;************************************************************************* ; ; SECTION: AddServiceDependency ; ; PURPOSE: Adds a dependency on a service to another service ; ; ARGUMENTS: 0 - Service to add the dependency on ; 1 - Service that it depends on ; ; RETURNS: None ; ; REFERENCES: None ; ; MODIFIES: None ; ;************************************************************************* [AddServiceDependency] Debug-Output "AddServiceDependency: entry" set MAXIMUM_ALLOWED = 33554432 set SERVICE_NO_CHANGE = 4294967295 set Status = STATUS_FAILED Set KeyNull = "" set DependentService = $(!NTN_ServiceBase)\$($0) set DependentName = $($0) set DependOn = $($1) set ServiceKey = $(KeyNull) OpenRegKey $(!REG_H_LOCAL) "" $(DependentService)"\Linkage" $(MAXIMUM_ALLOWED) ServiceKey ifstr(i) $(ServiceKey) != $(KeyNull) GetRegValue $(ServiceKey) "OtherDependencies" ServicesList ifint $(RegLastError) != 0 set ServiceValues = {} else set ServiceValues = *($(ServicesList),4) endif debug-output "AddServiceDependency: Old OtherDependencies: "$(ServiceValues) ifstr(i) $(ServiceValues) == {} Set ServiceValues = {$(DependOn)} else-ifstr(i) $(ServiceValues) == "" Set ServiceValues = {$(DependOn)} else-ifcontains(i) $(DependOn) in $(ServiceValues) return STATUS_SUCCESSFUL else Set ServiceValues = >($(ServiceValues), $(DependOn)) endif debug-output "AddServiceDependency: New OtherDependencies: "$(ServiceValues) SetRegValue $(ServiceKey) {OtherDependencies, 0,+ $(!REG_VT_MULTI_SZ), $(ServiceValues)} CloseRegKey $(ServiceKey) set Status = STATUS_SUCCESSFUL else Debug-Output "AddServiceDependency: error opening service "$(DependentService)"\Linkage" Debug-Output "AddServiceDependency: error was: "$(RegLastError) endif set KeyService = $(KeyNull) OpenRegKey $(!REG_H_LOCAL) "" $(DependentService) $(MAXIMUM_ALLOWED) KeyService ifstr $(KeyService) != $(KeyNull) set newDependList = {$(DependOn)} GetRegValue $(KeyService) "DependOnService" ServiceList ifint $(RegLastError) == 0 Debug-Output "AddServiceDependency: old DependOnService List "*($(ServiceList), 4) ForListDo *($(ServiceList),4) ifstr(i) $($) != $(DependOn) set newDependList = >($(newDependList), $($)) endif EndForListDo endif GetRegValue $(KeyService) "DependOnGroup" GrpList ifint $(RegLastError) == 0 Debug-Output "AddServiceDependency: old DependOnGroup List "*($(GrpList), 4) ForListDo *($(GrpList),4) set grp = "+"$($) set newDependList = >($(newDependList), $(grp)) EndForListDo endif Debug-Output "OEMNSVRA.INF: AddServiceDependency: new Dependency List "$(newDependList) LibraryProcedure Result, $(!LIBHANDLE), SetupChangeServiceConfig, $(DependentName) $(SERVICE_NO_CHANGE), $(SERVICE_NO_CHANGE), $(SERVICE_NO_CHANGE), "", "", $(newDependList), "", "", "" CloseRegKey $(KeyService) else Debug-Output "AddServiceDependency: failed to open service linkage key"$(DependentService) Debug-Output "AddServiceDependency: error was: "$(RegLastError) endif Debug-Output "AddServiceDependency: exit" return $(Status) ;************************************************************************* ; ; SECTION: RemoveServiceDependency ; ; PURPOSE: Removes a dependency on a service from another service ; ; ARGUMENTS: 0 - Service to remove the dependency from ; 1 - Service to remove ; ; RETURNS: None ; ; REFERENCES: None ; ; MODIFIES: None ; ;************************************************************************* [RemoveServiceDependency] Debug-Output "RemoveServiceDependency: entry" set MAXIMUM_ALLOWED = 33554432 set SERVICE_NO_CHANGE = 4294967295 set Status = STATUS_FAILED Set KeyNull = "" set DependentService = $(!NTN_ServiceBase)\$($0) set DependentName = $($0) set DependOn = $($1) OpenRegKey $(!REG_H_LOCAL) "" $(DependentService)"\Linkage" $(MAXIMUM_ALLOWED) ServiceKey ifstr(i) $(ServiceKey) != $(KeyNull) GetRegValue $(ServiceKey) "OtherDependencies" ServicesList ifint $(RegLastError) != 0 set ServiceValues = {} else set ServiceValues = *($(ServicesList),4) endif debug-output "RemoveServiceDependency: old OtherDependencies list:"$(ServicesList) set ServiceValues = *($(ServicesList),4) debug-output "ServiceValues: "$(ServiceValues) ifcontains(i) $(DependOn) in $(ServiceValues) set NewServiceValues = {} ForListDo $(ServiceValues) ifstr(i) $($) != $(DependOn) set NewServiceValues = >($(NewServiceValues), $($)) endif EndForListDo debug-output "RemoveServiceDependency: new OtherDependencies list: "$(NewServiceValues) SetRegValue $(ServiceKey) {OtherDependencies, 0,+ $(!REG_VT_MULTI_SZ), $(NewServiceValues)} else endif CloseRegKey $(ServiceKey) set Status = STATUS_SUCCESSFUL else Debug-Output "RemoveServiceDependency: error opening service "$(DependentService)"\Linkage" endif set KeyService = $(KeyNull) OpenRegKey $(!REG_H_LOCAL) "" $(DependentService) $(MAXIMUM_ALLOWED) KeyService ifstr $(KeyService) != $(KeyNull) set newDependList = {} GetRegValue $(KeyService) "DeleteFlag" DeleteFlagValue ifint $(RegLastError) != 0 GetRegValue $(KeyService) "DependOnService" ServiceList ifint $(RegLastError) == 0 Debug-Output "RemoveServiceDependency: old DependOnService List "*($(ServiceList), 4) ifcontains(i) $(DependOn) in *($(ServiceList),4) ForListDo *($(ServiceList),4) ifstr(i) $($) != $(DependOn) set newDependList = >($(newDependList), $($)) endif EndForListDo GetRegValue $(KeyService) "DependOnGroup" GrpList ifint $(RegLastError) == 0 ForListDo *($(GrpList),4) set grp = "+"$($) set newDependList = >($(newDependList), $(grp)) EndForListDo endif Debug-Output "OEMNSVRA.INF:RemoveServiceDependency: new DependOnService List "$(newDependList) LibraryProcedure Result, $(!LIBHANDLE), + SetupChangeServiceConfig, $(DependentName) + $(SERVICE_NO_CHANGE), $(SERVICE_NO_CHANGE), + $(SERVICE_NO_CHANGE), "", "", + $(newDependList), "", "", "" endif endif endif CloseRegKey $(KeyService) else Debug-Output "RemoveServiceDependency: failed to open service linkage key"$(DependentService) endif Debug-Output "RemoveServiceDependency: exit" return $(Status) ;*************************************************************** ; INSTALL SECTIONS ;*************************************************************** ;************************************************************************* ; ; SECTION: Install-Parameters ; ; PURPOSE: Called at install or update to add ; software\novell\parameters and a few values ; to HKEY_LOCAL_MACHINE ; ; ARGUMENTS: None ; ; RETURNS: None ; ; REFERENCES: None ; ; MODIFIES: None ; ;************************************************************************* [Install-Parameters] ; ; Add the NwcsInstalled value ; OpenRegKey $(!REG_H_LOCAL) "" "Software\Microsoft\Windows NT\CurrentVersion\NWCS" $(MAXIMUM_ALLOWED) KeyProduct Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) OpenRegKey $(!REG_H_LOCAL) "" "Software\Microsoft\Windows NT\CurrentVersion" $(MAXIMUM_ALLOWED) CurrentVersion Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) CreateRegKey $(CurrentVersion) {"NWCS", $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyProduct ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "FATAL Registry Error: Error Creating Key 'NWCS'" Endif CloseRegKey $(CurrentVersion) else Debug-Output "OEMNPRNW.INF: Can't open Software\Microsoft\Windows NT\CurrentVersion" Endif Endif SetRegValue $(KeyProduct) {"NwcsInstalled", $(NoTitle), $(!REG_VT_SZ), "1"} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "FATAL Registry Error: Error Setting value 'NwcsInstalled'" endif CloseRegKey $(KeyProduct) ; ; Set Version number ; set TempKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer) OpenRegKey $(!REG_H_LOCAL) "" $(TempKeyName) $(MAXIMUM_ALLOWED) TempKey Ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) SetRegValue $(TempKey) {"CurrentVersion", $(NoTitle), $(!REG_VT_SZ), $(ProductVersion)} Ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Unable to update CurrentVersion value in "$(TempKeyName) endif CloseRegKey $(TempKey) Endif ; ; HKEY_LOCAL_MACHINE\Software\Novell\Parameters ; set SoftwareNovell = $(!NTN_SoftwareBase)"\"$(Manufacturer) OpenRegKey $(!REG_H_LOCAL) "" $(SoftwareNovell) $(MAXIMUM_ALLOWED) KeySoftwareNovell ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Error opening "$(SoftwareNovell) Else set NovellParameters = "Parameters" OpenRegKey $(KeySoftwareNovell) "" $(NovellParameters) $(MAXIMUM_ALLOWED) KeyNovellParameters ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) CreateRegKey $(KeySoftwareNovell) {$(NovellParameters), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" KeyNovellParameters ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Error creating Software\Novell\Parameters" Endif Endif Endif Ifstr(i) $(KeyNovellParameters) != "" GetRegValue $(KeyNovellParameters) "First Network Drive" DriveList ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) SetRegValue $(KeyNovellParameters) {"First Network Drive", $(NoTitle), $(!REG_VT_DWORD), 6} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to add first network drive value to "$(SoftwareNovell)"\Parameters" endif endif SetRegValue $(KeyNovellParameters) {"NWLanguage", $(NoTitle), $(!REG_VT_SZ), $(NLSDirName)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to add NWLanguage value to "$(SoftwareNovell)"\Parameters" endif CloseRegKey $(KeyNovellParameters) Endif Ifstr(i) $(KeySoftwareNovell) != "" CloseRegKey $(KeySoftwareNovell) Endif ; ; Add netware.drv to the known dlls list here ; OpenRegKey $(!REG_H_LOCAL) "" "System\CurrentControlSet\Control\WOW" $(MAXIMUM_ALLOWED) WowKey ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) GetRegValue $(WowKey),"KnownDLLS", KnownDLLsInfo ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) Split-String *($(KnownDLLsInfo),4), " ", KnownDLLsList Ifcontains(i) "netware.drv" not-in $(KnownDLLsList) ifstr(i) *($(KnownDLLsInfo),4) == "" set KnownDLLs = "netware.drv" else set KnownDLLs = *($(KnownDLLsInfo),4)" netware.drv" endif SetRegValue $(WowKey) {"KnownDLLS",$(NoTitle),$(!REG_VT_SZ),$(KnownDLLs)} endif CloseRegKey $(WowKey) endif endif ; ; Set the registry values to enable all tabs by default for both ; GINA and GUI LOGIN ; Set TempKeyName = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\Graphical Login" CreateRegKey $(!REG_H_LOCAL) {$(TempKeyName), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" TempKey ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Setting default tab settings" SetRegValue $(TempKey) {"Connection Tab", $(NoTitle), $(!REG_VT_DWORD), 1} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to set default Connection Tab value" endif SetRegValue $(TempKey) {"Dialup Networking Tab", $(NoTitle), $(!REG_VT_DWORD), 1} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to set default Dialup Networking Tab value" endif SetRegValue $(TempKey) {"Script Tab", $(NoTitle), $(!REG_VT_DWORD), 1} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to set default Script Tab value" endif SetRegValue $(TempKey) {"Script Variable Tab", $(NoTitle), $(!REG_VT_DWORD), 1} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to set default Script Variable Tab value" endif SetRegValue $(TempKey) {"Windows NT Tab", $(NoTitle), $(!REG_VT_DWORD), 1} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Failed to set default Windows NT Tab value" endif ; ; Close the key ; CloseRegKey $(TempKey) else Debug-Output "OEMNPRNW.INF: Failed to create key "$(TempKeyName) endif Exit ;************************************************************************* ; ; SECTION: Install-Help ; ; PURPOSE: Called at install and update time to install the ; NetWare Client help files in the NT help bar. ; ; ARGUMENTS: None ; ; RETURNS: None ; ; REFERENCES: None ; ; MODIFIES: None ; ;************************************************************************* [Install-Help] LoadLibrary $(LoadDisk3Text) $(!STF_WINDOWSSYSPATH)"\"$(NwSetupDll) NwLibHandle ; ; Delete any of the help files from the oem.cnt regardless of NT version ; LibraryProcedure GUIResult $(NwLibHandle) NWRemoveLineFromFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":index Novell Client=nt4using.hlp" LibraryProcedure GUIResult $(NwLibHandle) NWRemoveLineFromFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":index Novell Client=nt3using.hlp" ifstr(i) $(AdvancedServer) == "YES" ifstr(i) $(!InstallSAMRedir) == "YES" LibraryProcedure GUIResult $(NwLibHandle) NWRemoveLineFromFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":index NDS for NT=outline.hlp" endif endif LibraryProcedure GUIResult $(NwLibHandle) NWRemoveLineFromFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":include nt4using.cnt" LibraryProcedure GUIResult $(NwLibHandle) NWRemoveLineFromFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":include nt3using.cnt" LibraryProcedure GUIResult $(NwLibHandle) NWRemoveLineFromFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":include nt4setup.cnt" LibraryProcedure GUIResult $(NwLibHandle) NWRemoveLineFromFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":include nt3setup.cnt" LibraryProcedure GUIResult $(NwLibHandle) NWRemoveLineFromFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":include ntadmin.cnt" ifstr(i) $(AdvancedServer) == "YES" ifstr(i) $(!InstallSAMRedir) == "YES" LibraryProcedure GUIResult $(NwLibHandle) NWRemoveLineFromFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":include outline.cnt" endif endif LibraryProcedure GUIResult $(NwLibHandle) NWRemoveLineFromFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":include "$(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt4using.cnt" LibraryProcedure GUIResult $(NwLibHandle) NWRemoveLineFromFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":include "$(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt4setup.cnt" LibraryProcedure GUIResult $(NwLibHandle) NWRemoveLineFromFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":include "$(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt3using.cnt" LibraryProcedure GUIResult $(NwLibHandle) NWRemoveLineFromFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":include "$(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt3setup.cnt" LibraryProcedure GUIResult $(NwLibHandle) NWRemoveLineFromFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":include "$(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\ntadmin.cnt" ifstr(i) $(AdvancedServer) == "YES" ifstr(i) $(!InstallSAMRedir) == "YES" LibraryProcedure GUIResult $(NwLibHandle) NWRemoveLineFromFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":include "$(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\outline.cnt" endif endif ; ; Delete all gid, fts, ftg files in the language directory ; LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt4using.gid" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt4setup.gid" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt3using.gid" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt3setup.gid" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\ntadmin.gid" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt4using.fts" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt4setup.fts" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt3using.fts" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt3setup.fts" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\ntadmin.fts" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt4using.ftg" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt4setup.ftg" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt3using.ftg" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\nt3setup.ftg" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\ntadmin.ftg" ifstr(i) $(AdvancedServer) == "YES" ifstr(i) $(!InstallSAMRedir) == "YES" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\outline.gid" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\outline.fts" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\outline.ftg" endif endif ; ; Add back the correct language of help files ; ifint $(NTMajorVersion) == "4" LibraryProcedure GUIResult $(NwLibHandle) NWAddLineToFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":index Novell Client=nt4using.hlp" LibraryProcedure GUIResult $(NwLibHandle) NWAddLineToFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":include nt4using.cnt" LibraryProcedure GUIResult $(NwLibHandle) NWAddLineToFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":include nt4setup.cnt" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\windows.gid" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\windows.fts" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\windows.ftg" else LibraryProcedure GUIResult $(NwLibHandle) NWAddLineToFile $(!STF_WINDOWSSYSPATH)"\winnt.cnt" ":include oem.cnt" LibraryProcedure GUIResult $(NwLibHandle) NWAddLineToFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":index Novell Client=nt3using.hlp" LibraryProcedure GUIResult $(NwLibHandle) NWAddLineToFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":include nt3using.cnt" LibraryProcedure GUIResult $(NwLibHandle) NWAddLineToFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":include nt3setup.cnt" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\winnt.gid" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\winnt.fts" LibraryProcedure GUIResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\winnt.ftg" endif LibraryProcedure GUIResult $(NwLibHandle) NWAddLineToFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":include ntadmin.cnt" ifstr(i) $(AdvancedServer) == "YES" ifstr(i) $(!InstallSAMRedir) == "YES" LibraryProcedure GUIResult $(NwLibHandle) NWAddLineToFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":index NDS for NT=outline.hlp" LibraryProcedure GUIResult $(NwLibHandle) NWAddLineToFile $(!STF_WINDOWSSYSPATH)"\oem.cnt" ":include outline.cnt" endif endif ; ; Fix the system path to include the NLS language directory ; LibraryProcedure GUIResult $(NwLibHandle) NWRemoveNLSDirFromSystemPath LibraryProcedure GUIResult $(NwLibHandle) NWAddNLSDirToSystemPath $(NLSDirName) FreeLibrary $(NwLibHandle) Exit ;************************************************************************* ; ; SECTION: Install-PerformanceCounters ; ; PURPOSE: Called at install time to install the ; NetWare PerformanceCounters. ; ; ARGUMENTS: None ; ; RETURNS: None ; ; REFERENCES: None ; ; MODIFIES: None ; ;************************************************************************* [Install-PerformanceCounters] set ValueName1 = "Close" set ValueName2 = "Collect" set ValueName3 = "Open" set ValueName4 = "Library" set ValueData1 = "NwPfCloseRedirPerformanceData" set ValueData2 = "NwPfCollectRedirPerformanceData" set ValueData3 = "NwPfOpenRedirPerformanceData" set ValueData4 = "Nwpfctrs.dll" set NwGroup = "Performance" set NwProductBase1 = $(!NTN_ServiceBase)"\NetWareWorkstation" set NwProductBase2 = $(!NTN_ServiceBase)"\LSL" set NwProductBase3 = $(!NTN_ServiceBase)"\OdiLoad" set NwParameters1 = $(NwProductBase1)"\"$(NwGroup) set NwParameters2 = $(NwProductBase2)"\"$(NwGroup) set NwParameters3 = $(NwProductBase3)"\"$(NwGroup) ; ; HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetWareWorkstation ; OpenRegKey $(!REG_H_LOCAL) "" $(NwProductBase1) $(!REG_KEY_ALL_ACCESS) NWBaseKey ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) CreateRegKey $(!REG_H_LOCAL) {$(NwParameters1), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" ParmBaseKey ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) SetRegValue $(ParmBaseKey) {$(ValueName1), $(NoTitle), $(!REG_VT_SZ), $(ValueData1)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Error writing "$(NwParameters1)": "$(ValueName1)" = "$(ValueData1) endif SetRegValue $(ParmBaseKey) {$(ValueName2), $(NoTitle), $(!REG_VT_SZ), $(ValueData2)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Error writing "$(NwParameters1)": "$(ValueName2)" = "$(ValueData2) endif SetRegValue $(ParmBaseKey) {$(ValueName3), $(NoTitle), $(!REG_VT_SZ), $(ValueData3)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Error writing "$(NwParameters1)": "$(ValueName3)" = "$(ValueData3) endif SetRegValue $(ParmBaseKey) {$(ValueName4), $(NoTitle), $(!REG_VT_SZ), $(ValueData4)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Error writing "$(NwParameters1)": "$(ValueName4)" = "$(ValueData4) endif CloseRegKey $(ParmBaseKey) else Debug-Output "OEMNPRNW.INF: Error creating key "$(NwParameters1) endif CloseRegKey $(NWBaseKey) else Debug-Output "OEMNPRNW.INF: Error opening key "$(NwProductBase1) endif set ValueData1 = "NwPfCloseLSLPerformanceData" set ValueData2 = "NwPfCollectLSLPerformanceData" set ValueData3 = "NwPfOpenLSLPerformanceData" set ValueData4 = "Nwpfctrs.dll" ; ; HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LSL ; OpenRegKey $(!REG_H_LOCAL) "" $(NwProductBase2) $(!REG_KEY_ALL_ACCESS) NWBaseKey ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) CreateRegKey $(!REG_H_LOCAL) {$(NwParameters2), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" ParmBaseKey ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) SetRegValue $(ParmBaseKey) {$(ValueName1), $(NoTitle), $(!REG_VT_SZ), $(ValueData1)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Error writing "$(NwParameters2)": "$(ValueName1)" = "$(ValueData1) endif SetRegValue $(ParmBaseKey) {$(ValueName2), $(NoTitle), $(!REG_VT_SZ), $(ValueData2)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Error writing "$(NwParameters2)": "$(ValueName2)" = "$(ValueData2) endif SetRegValue $(ParmBaseKey) {$(ValueName3), $(NoTitle), $(!REG_VT_SZ), $(ValueData3)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Error writing "$(NwParameters2)": "$(ValueName3)" = "$(ValueData3) endif SetRegValue $(ParmBaseKey) {$(ValueName4), $(NoTitle), $(!REG_VT_SZ), $(ValueData4)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Error writing "$(NwParameters2)": "$(ValueName4)" = "$(ValueData4) endif CloseRegKey $(ParmBaseKey) else Debug-Output "OEMNPRNW.INF: Error creating key "$(NwParameters2) endif CloseRegKey $(NWBaseKey) else Debug-Output "OEMNPRNW.INF: Error opening key "$(NwProductBase2) endif set ValueData1 = "NwPfCloseODIPerformanceData" set ValueData2 = "NwPfCollectODIPerformanceData" set ValueData3 = "NwPfOpenODIPerformanceData" set ValueData4 = "Nwpfctrs.dll" ; ; HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OdiLoad ; OpenRegKey $(!REG_H_LOCAL) "" $(NwProductBase3) $(!REG_KEY_ALL_ACCESS) NWBaseKey ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) CreateRegKey $(!REG_H_LOCAL) {$(NwParameters3), $(NoTitle), GenericClass} "" $(MAXIMUM_ALLOWED) "" ParmBaseKey ifint $(RegLastError) == $(!REG_ERROR_SUCCESS) SetRegValue $(ParmBaseKey) {$(ValueName1), $(NoTitle), $(!REG_VT_SZ), $(ValueData1)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Error writing "$(NwParameters3)": "$(ValueName1)" = "$(ValueData1) endif SetRegValue $(ParmBaseKey) {$(ValueName2), $(NoTitle), $(!REG_VT_SZ), $(ValueData2)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Error writing "$(NwParameters3)": "$(ValueName2)" = "$(ValueData2) endif SetRegValue $(ParmBaseKey) {$(ValueName3), $(NoTitle), $(!REG_VT_SZ), $(ValueData3)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Error writing "$(NwParameters3)": "$(ValueName3)" = "$(ValueData3) endif SetRegValue $(ParmBaseKey) {$(ValueName4), $(NoTitle), $(!REG_VT_SZ), $(ValueData4)} ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "OEMNPRNW.INF: Error writing "$(NwParameters3)": "$(ValueName4)" = "$(ValueData4) endif CloseRegKey $(ParmBaseKey) else Debug-Output "OEMNPRNW.INF: Error creating Software Key "$(NwParameters3) endif CloseRegKey $(NWBaseKey) else Debug-Output "OEMNPRNW.INF: Error opening key "$(NwProductBase3) endif ; ; Call the DLL to load the counters now that registry is set up ; LoadLibrary $(LoadDisk3Text) $(!STF_WINDOWSSYSPATH)"\"$(NwSetupDll) NwLibHandle LibraryProcedure GUIResult $(NwLibHandle) NWLoadPerformanceCounters FreeLibrary $(NwLibHandle) Exit [Install-NetWare-Group] ifint $(NTMajorVersion) == "3" Set NetWareGroup = $(OldNetWareGroup) else LoadLibrary $(LoadDisk3Text) $(!STF_WINDOWSSYSPATH)"\"$(NwSetupDll) NwLibHandle LibraryProcedure LibResult $(NwLibHandle) NWRenameFile $(!STF_WINDOWSPATH)"\Profiles\All Users\Start Menu\Programs\NetWare (Common)" $(!STF_WINDOWSPATH)"\Profiles\All Users\Start Menu\Programs\IntranetWare (Common)" FreeLibrary $(NwLibHandle) endif CreateCommonProgManGroup $(NetWareGroup) "" ; ; Delete any and all icons we may have created in the past. Some do ; not exist anymore so in update cases we want them gone. ; RemoveCommonProgManItem $(NetWareGroup) "Administrating NetWare Client for Windows NT 3.51" RemoveCommonProgManItem $(NetWareGroup) "Administrating NetWare Client for Windows NT 4.00" RemoveCommonProgManItem $(NetWareGroup) "DOS Support" RemoveCommonProgManItem $(NetWareGroup) "Getting Started" RemoveCommonProgManItem $(NetWareGroup) "NetWare Admin Help for Windows NT 3.51" RemoveCommonProgManItem $(NetWareGroup) "NetWare Admin Help for Windows NT 4.00" RemoveCommonProgManItem $(NetWareGroup) "NetWare Change Password" RemoveCommonProgManItem $(NetWareGroup) "NetWare Client for Windows NT help" RemoveCommonProgManItem $(NetWareGroup) "Novell NetWare Client for Windows NT hel" RemoveCommonProgManItem $(NetWareGroup) "Novell NetWare Client for Windows NT help" RemoveCommonProgManItem $(NetWareGroup) "NetWare GUI Login" RemoveCommonProgManItem $(NetWareGroup) "NetWare Help for Windows NT 3.51" RemoveCommonProgManItem $(NetWareGroup) "NetWare Help for Windows NT 4.00" RemoveCommonProgManItem $(NetWareGroup) "NetWare Login Help for Windows NT 3.51" RemoveCommonProgManItem $(NetWareGroup) "NetWare Login Help for Windows NT 4.00" RemoveCommonProgManItem $(NetWareGroup) "NetWare Send Message" RemoveCommonProgManItem $(NetWareGroup) "NetWare Setup Help for Windows NT 3.51" RemoveCommonProgManItem $(NetWareGroup) "NetWare Setup Help for Windows NT 4.00" RemoveCommonProgManItem $(NetWareGroup) "NetWare Using Help for Windows NT 3.51" RemoveCommonProgManItem $(NetWareGroup) "NetWare Using Help for Windows NT 4.00" RemoveCommonProgManItem $(NetWareGroup) "ReadMe" RemoveCommonProgManItem $(NetWareGroup) "Setup NetWare Client for Windows NT 3.51" RemoveCommonProgManItem $(NetWareGroup) "Setup NetWare Client for Windows NT 4.00" RemoveCommonProgManItem $(NetWareGroup) "Using NetWare Client for Windows NT 3.51" RemoveCommonProgManItem $(NetWareGroup) "Using NetWare Client for Windows NT 4.00" RemoveCommonProgManItem $(NetWareGroup) "IntranetWare Login" RemoveCommonProgManItem $(NetWareGroup) "IntranetWare Change Password" RemoveCommonProgManItem $(NetWareGroup) "IntranetWare Send Message" RemoveCommonProgManItem $(NetWareGroup) "IntranetWare Client for Windows NT help" RemoveCommonProgManItem $(NetWareGroup) $(LoginIconText) RemoveCommonProgManItem $(NetWareGroup) $(ChangePasswordIconText) RemoveCommonProgManItem $(NetWareGroup) $(SendMessageIconText) RemoveCommonProgManItem $(NetWareGroup) $(ReadMeIconText) RemoveCommonProgManItem $(NetWareGroup) $(HelpIconText) RemoveCommonProgManItem $(NetWareGroup) $(MigIconText) ; ; Create the icons ; CreateCommonProgManItem $(NetWareGroup), $(LoginIconText) "%SystemRoot%\system32\loginwnt.exe" "" 0 ; CreateCommonProgManItem $(NetWareGroup), $(ChangePasswordIconText) "%SystemRoot%\system32\nwchgpwd.exe" "" 0 CreateCommonProgManItem $(NetWareGroup), $(SendMessageIconText) "%SystemRoot%\system32\nwsndmsg.exe" "" 0 CreateCommonProgManItem $(NetWareGroup), $(ReadMeIconText) "%SystemRoot%\system32\nls\"$(NLSDirName)"\readme.hlp" "" 0 ifint $(NTMajorVersion) == "4" CreateCommonProgManItem $(NetWareGroup), $(HelpIconText) "winhlp32 %SystemRoot%\system32\nls\"$(NLSDirName)"\nt4using.hlp" "" 0 else CreateCommonProgManItem $(NetWareGroup), $(HelpIconText) "winhlp32 %SystemRoot%\system32\nls\"$(NLSDirName)"\nt3using.hlp" "" 0 endif ifstr(i) $(AdvancedServer) == "YES" ifstr(i) $(!InstallSAMRedir) == "YES" CreateCommonProgManItem $(NetWareGroup), $(MigIconText) "%SystemRoot%\system32\sammig.exe" "" 0 endif endif ; ; Minimize the group ; ShowCommonProgManGroup $(NetWareGroup), 6 Exit [Remove-NetWare-Group] ifint $(NTMajorVersion) == "3" Set NetWareGroup = $(OldNetWareGroup) endif CreateCommonProgManGroup $(NetWareGroup) "" RemoveCommonProgManGroup $(NetWareGroup) Exit [Install-NetWare-Dir] CreateDir $(!STF_WINDOWSSYSPATH)"\NetWare" CreateDir $(!STF_WINDOWSSYSPATH)"\NLS" CreateDir $(!STF_WINDOWSSYSPATH)"\NLS\"$(NLSDirName) CreateDir $(!STF_WINDOWSPATH)"\System\NLS" CreateDir $(!STF_WINDOWSPATH)"\System\NLS\"$(NLSDirName) Exit [Install-Files] set STF_VITAL = "" Ifstr(i) $(AddCopy) == "YES" ; ; Add the files to the copy list ; AddSectionFilesToCopyList Files-First-$(NLSDirName) $(SrcDir) $(!STF_WINDOWSSYSPATH) AddSectionFilesToCopyList Files-Inf-$(NLSDirName) $(SrcDir)nls\$(NLSDirName) $(!STF_WINDOWSSYSPATH) AddSectionFilesToCopyList Files-Hlp-Sys32-$(NLSDirName) $(SrcDir)nls\$(NLSDirName) $(!STF_WINDOWSSYSPATH)\nls\$(NLSDirName) AddSectionFilesToCopyList Files-Msg-Sys32-$(NLSDirName) $(SrcDir)nls\$(NLSDirName) $(!STF_WINDOWSSYSPATH)\nls\$(NLSDirName) AddSectionFilesToCopyList Files-Resource-Sys32-$(NLSDirName) $(SrcDir)nls\$(NLSDirName) $(!STF_WINDOWSSYSPATH)\nls\$(NLSDirName) ifstr(i) $(AdvancedServer) == "YES" ifstr(i) $(!InstallSAMRedir) == "YES" AddSectionFilesToCopyList Files-Resource-Sys32-$(NLSDirName)-SAM $(SrcDir)nls\$(NLSDirName) $(!STF_WINDOWSSYSPATH)\nls\$(NLSDirName) endif endif AddSectionFilesToCopyList Files-Ini-$(NLSDirName) $(SrcDir)nls\$(NLSDirName) $(!STF_WINDOWSSYSPATH) AddSectionFilesToCopyList Files-Msg-Sys-$(NLSDirName) $(SrcDir)nls\$(NLSDirName) $(!STF_WINDOWSPATH)\system\nls\$(NLSDirName) AddSectionFilesToCopyList Files-Resource-Sys-$(NLSDirName) $(SrcDir)nls\$(NLSDirName) $(!STF_WINDOWSPATH)\system\nls\$(NLSDirName) AddSectionFilesToCopyList Files-Unicode-$(NLSDirName) $(SrcDir)nls $(!STF_WINDOWSSYSPATH)\nls AddSectionFilesToCopyList Files-NtRoot-$(NLSDirName) $(SrcDir)nls\$(NLSDirName) $(!STF_WINDOWSPATH) ifstr(i) $(AdvancedServer) == "YES" ifstr(i) $(!InstallSAMRedir) == "YES" AddSectionFilesToCopyList Files-NtRoot-$(NLSDirName)-SAM $(SrcDir)nls\$(NLSDirName)\sam $(!STF_WINDOWSPATH) endif endif AddSectionFilesToCopyList Files-NtRoot $(SrcDir)redir $(!STF_WINDOWSPATH) AddSectionFilesToCopyList Files-System32 $(SrcDir)redir $(!STF_WINDOWSSYSPATH) ifint $(NTMajorVersion) == "3" AddSectionFilesToCopyList Files-System32-NT3 $(SrcDir)redir $(!STF_WINDOWSSYSPATH) endif ifstr(i) $(AdvancedServer) == "YES" ifstr(i) $(!InstallSAMRedir) == "YES" AddSectionFilesToCopyList Files-System32-SAM $(SrcDir)redir $(!STF_WINDOWSSYSPATH) endif endif AddSectionFilesToCopyList Files-System $(SrcDir)redir $(!STF_WINDOWSPATH)\system AddSectionFilesToCopyList Files-32bitLibs $(SrcDir)libs32 $(!STF_WINDOWSSYSPATH) AddSectionFilesToCopyList Files-16bitXplatLibs $(SrcDir)libs16 $(!STF_WINDOWSPATH)\system AddSectionFilesToCopyList Files-16bitOldLibs $(SrcDir)libs16 $(!STF_WINDOWSPATH)\system AddSectionFilesToCopyList Files-16bitThunkLibs $(SrcDir)libs16 $(!STF_WINDOWSSYSPATH) AddSectionFilesToCopyList Files-NetWare $(SrcDir)redir $(!STF_WINDOWSSYSPATH)\netware AddSectionFilesToCopyList Files-Drivers $(SrcDir)redir $(!STF_WINDOWSSYSPATH)\drivers ifint $(NTMajorVersion) == "4" AddSectionFilesToCopyList Files-Drivers-Nwip $(SrcDir)redir\nt4 $(!STF_WINDOWSSYSPATH)\drivers else AddSectionFilesToCopyList Files-Drivers-Nwip $(SrcDir)redir\nt3 $(!STF_WINDOWSSYSPATH)\drivers endif ; ; For 3rd party files that we install, only install if they are newer ; set STF_OVERWRITE = "VERIFYSOURCEOLDER" AddSectionFilesToCopyList Files-3party-32bitLibs $(SrcDir)libs32 $(!STF_WINDOWSSYSPATH) Endif Ifstr(i) $(DoCopy) == "YES" ; ; Copy files in the copy list ; set !STF_NCPA_FLUSH_COPYLIST = TRUE CopyFilesInCopyList ; ; Mark files that get copied to the destination with phony names to be ; renamed to the real name at reboot time. This is nessesary because ; some of our files might be open and can't be renamed until reboot time. ; LoadLibrary $(LoadDisk3Text) $(!STF_WINDOWSSYSPATH)"\"$(NwSetupDll) NwLibHandle LibraryProcedure LibResult $(NwLibHandle) NWRenameFile $(!STF_WINDOWSSYSPATH)"\netware.dr~" $(!STF_WINDOWSSYSPATH)"\netware.drv" LibraryProcedure LibResult $(NwLibHandle) NWRenameFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\login.da~" $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\login.dat" LibraryProcedure LibResult $(NwLibHandle) NWRenameFile $(!STF_WINDOWSPATH)"\system\nls\"$(NLSDirName)"\login.da~" $(!STF_WINDOWSPATH)"\system\nls\"$(NLSDirName)"\login.dat" LibraryProcedure LibResult $(NwLibHandle) NWRenameFile $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\login.ms~" $(!STF_WINDOWSSYSPATH)"\nls\"$(NLSDirName)"\login.msg" LibraryProcedure LibResult $(NwLibHandle) NWRenameFile $(!STF_WINDOWSPATH)"\system\nls\"$(NLSDirName)"\login.ms~" $(!STF_WINDOWSPATH)"\system\nls\"$(NLSDirName)"\login.msg" ifstr(i) $(AdvancedServer) == "YES" ifstr(i) $(!InstallSAMRedir) == "YES" LibraryProcedure LibResult $(NwLibHandle) NWCheckSAMMigrated ifstr(i) $(LibResult) == "TRUE" ; ; If already migrated, update the DLL ; LibraryProcedure Status1, $(!LIBHANDLE), CheckFileExistance, $(!STF_WINDOWSSYSPATH)"\mssamsrv.dll" ifstr(i) $(Status1) == "YES" LibraryProcedure LibResult $(NwLibHandle) NWRenameFile $(!STF_WINDOWSSYSPATH)"\samsrv.dll" $(!STF_WINDOWSSYSPATH)"\xxsamsrv.dll" LibraryProcedure LibResult $(NwLibHandle) NWDeleteFile $(!STF_WINDOWSSYSPATH)"\xxsamsrv.dll" else LibraryProcedure LibResult $(NwLibHandle) NWRenameFile $(!STF_WINDOWSSYSPATH)"\samsrv.dll" $(!STF_WINDOWSSYSPATH)"\mssamsrv.dll" endif LibraryProcedure LibResult $(NwLibHandle) NWRenameFile $(!STF_WINDOWSSYSPATH)"\nwsamsrv.dll" $(!STF_WINDOWSSYSPATH)"\samsrv.dll" endif endif endif FreeLibrary $(NwLibHandle) Endif Exit [Files-First-English] 1, locwin32.dll, SIZE=50000, DECOMPRESS 1, nwsetup.dll SIZE=50000, DECOMPRESS [Files-First-Chineses] 3, locwin32.dll, SIZE=50000, DECOMPRESS 3, nwsetup.dll SIZE=50000, DECOMPRESS [Files-First-Chineset] 5, locwin32.dll, SIZE=50000, DECOMPRESS 5, nwsetup.dll SIZE=50000, DECOMPRESS [Files-First-Deutsch] 7, locwin32.dll, SIZE=50000, DECOMPRESS 7, nwsetup.dll SIZE=50000, DECOMPRESS [Files-First-Espanol] 9, locwin32.dll, SIZE=50000, DECOMPRESS 9, nwsetup.dll SIZE=50000, DECOMPRESS [Files-First-Francais] 11, locwin32.dll, SIZE=50000, DECOMPRESS 11, nwsetup.dll SIZE=50000, DECOMPRESS [Files-First-Italiano] 13, locwin32.dll, SIZE=50000, DECOMPRESS 13, nwsetup.dll SIZE=50000, DECOMPRESS [Files-First-Korean] 15, locwin32.dll, SIZE=50000, DECOMPRESS 15, nwsetup.dll SIZE=50000, DECOMPRESS [Files-First-Nihongo] 17, locwin32.dll, SIZE=50000, DECOMPRESS 17, nwsetup.dll SIZE=50000, DECOMPRESS [Files-First-Portugue] 19, locwin32.dll, SIZE=50000, DECOMPRESS 19, nwsetup.dll SIZE=50000, DECOMPRESS [Files-Inf-English] 1, oemnprnw.inf, SIZE=50000 1, nwsubs.inf, SIZE=50000, DECOMPRESS 1, odinsup.inf, SIZE=50000, DECOMPRESS 1, oemnadoa.inf, SIZE=50000, DECOMPRESS 1, oemnadob.inf, SIZE=50000, DECOMPRESS 1, oemnadoc.inf, SIZE=50000, DECOMPRESS 1, oemnadod.inf, SIZE=50000, DECOMPRESS 1, oemnsvip.inf, SIZE=50000, DECOMPRESS [Files-Inf-Chineses] 3, oemnprnw.inf, SIZE=50000 3, nwsubs.inf, SIZE=50000, DECOMPRESS 3, odinsup.inf, SIZE=50000, DECOMPRESS 3, oemnadoa.inf, SIZE=50000, DECOMPRESS 3, oemnadob.inf, SIZE=50000, DECOMPRESS 3, oemnadoc.inf, SIZE=50000, DECOMPRESS 3, oemnadod.inf, SIZE=50000, DECOMPRESS 3, oemnsvip.inf, SIZE=50000, DECOMPRESS [Files-Inf-Chineset] 5, oemnprnw.inf, SIZE=50000 5, nwsubs.inf, SIZE=50000, DECOMPRESS 5, odinsup.inf, SIZE=50000, DECOMPRESS 5, oemnadoa.inf, SIZE=50000, DECOMPRESS 5, oemnadob.inf, SIZE=50000, DECOMPRESS 5, oemnadoc.inf, SIZE=50000, DECOMPRESS 5, oemnadod.inf, SIZE=50000, DECOMPRESS 5, oemnsvip.inf, SIZE=50000, DECOMPRESS [Files-Inf-Deutsch] 7, oemnprnw.inf, SIZE=50000 7, nwsubs.inf, SIZE=50000, DECOMPRESS 7, odinsup.inf, SIZE=50000, DECOMPRESS 7, oemnadoa.inf, SIZE=50000, DECOMPRESS 7, oemnadob.inf, SIZE=50000, DECOMPRESS 7, oemnadoc.inf, SIZE=50000, DECOMPRESS 7, oemnadod.inf, SIZE=50000, DECOMPRESS 7, oemnsvip.inf, SIZE=50000, DECOMPRESS [Files-Inf-Espanol] 9, oemnprnw.inf, SIZE=50000 9, nwsubs.inf, SIZE=50000, DECOMPRESS 9, odinsup.inf, SIZE=50000, DECOMPRESS 9, oemnadoa.inf, SIZE=50000, DECOMPRESS 9, oemnadob.inf, SIZE=50000, DECOMPRESS 9, oemnadoc.inf, SIZE=50000, DECOMPRESS 9, oemnadod.inf, SIZE=50000, DECOMPRESS 9, oemnsvip.inf, SIZE=50000, DECOMPRESS [Files-Inf-Francais] 11, oemnprnw.inf, SIZE=50000 11, nwsubs.inf, SIZE=50000, DECOMPRESS 11, odinsup.inf, SIZE=50000, DECOMPRESS 11, oemnadoa.inf, SIZE=50000, DECOMPRESS 11, oemnadob.inf, SIZE=50000, DECOMPRESS 11, oemnadoc.inf, SIZE=50000, DECOMPRESS 11, oemnadod.inf, SIZE=50000, DECOMPRESS 11, oemnsvip.inf, SIZE=50000, DECOMPRESS [Files-Inf-Italiano] 13, oemnprnw.inf, SIZE=50000 13, nwsubs.inf, SIZE=50000, DECOMPRESS 13, odinsup.inf, SIZE=50000, DECOMPRESS 13, oemnadoa.inf, SIZE=50000, DECOMPRESS 13, oemnadob.inf, SIZE=50000, DECOMPRESS 13, oemnadoc.inf, SIZE=50000, DECOMPRESS 13, oemnadod.inf, SIZE=50000, DECOMPRESS 13, oemnsvip.inf, SIZE=50000, DECOMPRESS [Files-Inf-Korean] 15, oemnprnw.inf, SIZE=50000 15, nwsubs.inf, SIZE=50000, DECOMPRESS 15, odinsup.inf, SIZE=50000, DECOMPRESS 15, oemnadoa.inf, SIZE=50000, DECOMPRESS 15, oemnadob.inf, SIZE=50000, DECOMPRESS 15, oemnadoc.inf, SIZE=50000, DECOMPRESS 15, oemnadod.inf, SIZE=50000, DECOMPRESS 15, oemnsvip.inf, SIZE=50000, DECOMPRESS [Files-Inf-Nihongo] 17, oemnprnw.inf, SIZE=50000 17, nwsubs.inf, SIZE=50000, DECOMPRESS 17, odinsup.inf, SIZE=50000, DECOMPRESS 17, oemnadoa.inf, SIZE=50000, DECOMPRESS 17, oemnadob.inf, SIZE=50000, DECOMPRESS 17, oemnadoc.inf, SIZE=50000, DECOMPRESS 17, oemnadod.inf, SIZE=50000, DECOMPRESS 17, oemnsvip.inf, SIZE=50000, DECOMPRESS [Files-Inf-Portugue] 19, oemnprnw.inf, SIZE=50000 19, nwsubs.inf, SIZE=50000, DECOMPRESS 19, odinsup.inf, SIZE=50000, DECOMPRESS 19, oemnadoa.inf, SIZE=50000, DECOMPRESS 19, oemnadob.inf, SIZE=50000, DECOMPRESS 19, oemnadoc.inf, SIZE=50000, DECOMPRESS 19, oemnadod.inf, SIZE=50000, DECOMPRESS 19, oemnsvip.inf, SIZE=50000, DECOMPRESS [Files-Unicode-English] 2, 1250_uni.001, SIZE=5000, DECOMPRESS 2, uni_1250.001, SIZE=5000, DECOMPRESS 2, 1251_uni.001, SIZE=5000, DECOMPRESS 2, uni_1251.001, SIZE=5000, DECOMPRESS 2, 1252_uni.001, SIZE=5000, DECOMPRESS 2, uni_1252.001, SIZE=5000, DECOMPRESS 2, 1253_uni.001, SIZE=5000, DECOMPRESS 2, uni_1253.001, SIZE=5000, DECOMPRESS 2, 1254_uni.001, SIZE=5000, DECOMPRESS 2, uni_1254.001, SIZE=5000, DECOMPRESS 2, 1255_uni.001, SIZE=5000, DECOMPRESS 2, uni_1255.001, SIZE=5000, DECOMPRESS 2, 1256_uni.001, SIZE=5000, DECOMPRESS 2, uni_1256.001, SIZE=5000, DECOMPRESS 2, 1257_uni.001, SIZE=5000, DECOMPRESS 2, uni_1257.001, SIZE=5000, DECOMPRESS 2, 874_uni.001, SIZE=5000, DECOMPRESS 2, uni_874.001, SIZE=5000, DECOMPRESS 2, 932_uni.001, SIZE=5000, DECOMPRESS 2, uni_932.001, SIZE=5000, DECOMPRESS 2, 936_uni.001, SIZE=5000, DECOMPRESS 2, uni_936.001, SIZE=5000, DECOMPRESS 2, 949_uni.001, SIZE=5000, DECOMPRESS 2, uni_949.001, SIZE=5000, DECOMPRESS 2, 950_uni.001, SIZE=5000, DECOMPRESS 2, uni_950.001, SIZE=5000, DECOMPRESS 2, uni_col.001, SIZE=5000, DECOMPRESS 2, uni_mon.001, SIZE=5000, DECOMPRESS [Files-Unicode-Chineses] 4, 1250_uni.001, SIZE=5000, DECOMPRESS 4, uni_1250.001, SIZE=5000, DECOMPRESS 4, 1251_uni.001, SIZE=5000, DECOMPRESS 4, uni_1251.001, SIZE=5000, DECOMPRESS 4, 1252_uni.001, SIZE=5000, DECOMPRESS 4, uni_1252.001, SIZE=5000, DECOMPRESS 4, 1253_uni.001, SIZE=5000, DECOMPRESS 4, uni_1253.001, SIZE=5000, DECOMPRESS 4, 1254_uni.001, SIZE=5000, DECOMPRESS 4, uni_1254.001, SIZE=5000, DECOMPRESS 4, 1255_uni.001, SIZE=5000, DECOMPRESS 4, uni_1255.001, SIZE=5000, DECOMPRESS 4, 1256_uni.001, SIZE=5000, DECOMPRESS 4, uni_1256.001, SIZE=5000, DECOMPRESS 4, 1257_uni.001, SIZE=5000, DECOMPRESS 4, uni_1257.001, SIZE=5000, DECOMPRESS 4, 874_uni.001, SIZE=5000, DECOMPRESS 4, uni_874.001, SIZE=5000, DECOMPRESS 4, 932_uni.001, SIZE=5000, DECOMPRESS 4, uni_932.001, SIZE=5000, DECOMPRESS 4, 936_uni.001, SIZE=5000, DECOMPRESS 4, uni_936.001, SIZE=5000, DECOMPRESS 4, 949_uni.001, SIZE=5000, DECOMPRESS 4, uni_949.001, SIZE=5000, DECOMPRESS 4, 950_uni.001, SIZE=5000, DECOMPRESS 4, uni_950.001, SIZE=5000, DECOMPRESS 4, uni_col.001, SIZE=5000, DECOMPRESS 4, uni_mon.001, SIZE=5000, DECOMPRESS [Files-Unicode-Chineset] 6, 1250_uni.001, SIZE=5000, DECOMPRESS 6, uni_1250.001, SIZE=5000, DECOMPRESS 6, 1251_uni.001, SIZE=5000, DECOMPRESS 6, uni_1251.001, SIZE=5000, DECOMPRESS 6, 1252_uni.001, SIZE=5000, DECOMPRESS 6, uni_1252.001, SIZE=5000, DECOMPRESS 6, 1253_uni.001, SIZE=5000, DECOMPRESS 6, uni_1253.001, SIZE=5000, DECOMPRESS 6, 1254_uni.001, SIZE=5000, DECOMPRESS 6, uni_1254.001, SIZE=5000, DECOMPRESS 6, 1255_uni.001, SIZE=5000, DECOMPRESS 6, uni_1255.001, SIZE=5000, DECOMPRESS 6, 1256_uni.001, SIZE=5000, DECOMPRESS 6, uni_1256.001, SIZE=5000, DECOMPRESS 6, 1257_uni.001, SIZE=5000, DECOMPRESS 6, uni_1257.001, SIZE=5000, DECOMPRESS 6, 874_uni.001, SIZE=5000, DECOMPRESS 6, uni_874.001, SIZE=5000, DECOMPRESS 6, 932_uni.001, SIZE=5000, DECOMPRESS 6, uni_932.001, SIZE=5000, DECOMPRESS 6, 936_uni.001, SIZE=5000, DECOMPRESS 6, uni_936.001, SIZE=5000, DECOMPRESS 6, 949_uni.001, SIZE=5000, DECOMPRESS 6, uni_949.001, SIZE=5000, DECOMPRESS 6, 950_uni.001, SIZE=5000, DECOMPRESS 6, uni_950.001, SIZE=5000, DECOMPRESS 6, uni_col.001, SIZE=5000, DECOMPRESS 6, uni_mon.001, SIZE=5000, DECOMPRESS [Files-Unicode-Deutsch] 8, 1250_uni.001, SIZE=5000, DECOMPRESS 8, uni_1250.001, SIZE=5000, DECOMPRESS 8, 1251_uni.001, SIZE=5000, DECOMPRESS 8, uni_1251.001, SIZE=5000, DECOMPRESS 8, 1252_uni.001, SIZE=5000, DECOMPRESS 8, uni_1252.001, SIZE=5000, DECOMPRESS 8, 1253_uni.001, SIZE=5000, DECOMPRESS 8, uni_1253.001, SIZE=5000, DECOMPRESS 8, 1254_uni.001, SIZE=5000, DECOMPRESS 8, uni_1254.001, SIZE=5000, DECOMPRESS 8, 1255_uni.001, SIZE=5000, DECOMPRESS 8, uni_1255.001, SIZE=5000, DECOMPRESS 8, 1256_uni.001, SIZE=5000, DECOMPRESS 8, uni_1256.001, SIZE=5000, DECOMPRESS 8, 1257_uni.001, SIZE=5000, DECOMPRESS 8, uni_1257.001, SIZE=5000, DECOMPRESS 8, 874_uni.001, SIZE=5000, DECOMPRESS 8, uni_874.001, SIZE=5000, DECOMPRESS 8, 932_uni.001, SIZE=5000, DECOMPRESS 8, uni_932.001, SIZE=5000, DECOMPRESS 8, 936_uni.001, SIZE=5000, DECOMPRESS 8, uni_936.001, SIZE=5000, DECOMPRESS 8, 949_uni.001, SIZE=5000, DECOMPRESS 8, uni_949.001, SIZE=5000, DECOMPRESS 8, 950_uni.001, SIZE=5000, DECOMPRESS 8, uni_950.001, SIZE=5000, DECOMPRESS 8, uni_col.001, SIZE=5000, DECOMPRESS 8, uni_mon.001, SIZE=5000, DECOMPRESS [Files-Unicode-Espanol] 10, 1250_uni.001, SIZE=5000, DECOMPRESS 10, uni_1250.001, SIZE=5000, DECOMPRESS 10, 1251_uni.001, SIZE=5000, DECOMPRESS 10, uni_1251.001, SIZE=5000, DECOMPRESS 10, 1252_uni.001, SIZE=5000, DECOMPRESS 10, uni_1252.001, SIZE=5000, DECOMPRESS 10, 1253_uni.001, SIZE=5000, DECOMPRESS 10, uni_1253.001, SIZE=5000, DECOMPRESS 10, 1254_uni.001, SIZE=5000, DECOMPRESS 10, uni_1254.001, SIZE=5000, DECOMPRESS 10, 1255_uni.001, SIZE=5000, DECOMPRESS 10, uni_1255.001, SIZE=5000, DECOMPRESS 10, 1256_uni.001, SIZE=5000, DECOMPRESS 10, uni_1256.001, SIZE=5000, DECOMPRESS 10, 1257_uni.001, SIZE=5000, DECOMPRESS 10, uni_1257.001, SIZE=5000, DECOMPRESS 10, 874_uni.001, SIZE=5000, DECOMPRESS 10, uni_874.001, SIZE=5000, DECOMPRESS 10, 932_uni.001, SIZE=5000, DECOMPRESS 10, uni_932.001, SIZE=5000, DECOMPRESS 10, 936_uni.001, SIZE=5000, DECOMPRESS 10, uni_936.001, SIZE=5000, DECOMPRESS 10, 949_uni.001, SIZE=5000, DECOMPRESS 10, uni_949.001, SIZE=5000, DECOMPRESS 10, 950_uni.001, SIZE=5000, DECOMPRESS 10, uni_950.001, SIZE=5000, DECOMPRESS 10, uni_col.001, SIZE=5000, DECOMPRESS 10, uni_mon.001, SIZE=5000, DECOMPRESS [Files-Unicode-Francais] 12, 1250_uni.001, SIZE=5000, DECOMPRESS 12, uni_1250.001, SIZE=5000, DECOMPRESS 12, 1251_uni.001, SIZE=5000, DECOMPRESS 12, uni_1251.001, SIZE=5000, DECOMPRESS 12, 1252_uni.001, SIZE=5000, DECOMPRESS 12, uni_1252.001, SIZE=5000, DECOMPRESS 12, 1253_uni.001, SIZE=5000, DECOMPRESS 12, uni_1253.001, SIZE=5000, DECOMPRESS 12, 1254_uni.001, SIZE=5000, DECOMPRESS 12, uni_1254.001, SIZE=5000, DECOMPRESS 12, 1255_uni.001, SIZE=5000, DECOMPRESS 12, uni_1255.001, SIZE=5000, DECOMPRESS 12, 1256_uni.001, SIZE=5000, DECOMPRESS 12, uni_1256.001, SIZE=5000, DECOMPRESS 12, 1257_uni.001, SIZE=5000, DECOMPRESS 12, uni_1257.001, SIZE=5000, DECOMPRESS 12, 874_uni.001, SIZE=5000, DECOMPRESS 12, uni_874.001, SIZE=5000, DECOMPRESS 12, 932_uni.001, SIZE=5000, DECOMPRESS 12, uni_932.001, SIZE=5000, DECOMPRESS 12, 936_uni.001, SIZE=5000, DECOMPRESS 12, uni_936.001, SIZE=5000, DECOMPRESS 12, 949_uni.001, SIZE=5000, DECOMPRESS 12, uni_949.001, SIZE=5000, DECOMPRESS 12, 950_uni.001, SIZE=5000, DECOMPRESS 12, uni_950.001, SIZE=5000, DECOMPRESS 12, uni_col.001, SIZE=5000, DECOMPRESS 12, uni_mon.001, SIZE=5000, DECOMPRESS [Files-Unicode-Italiano] 14, 1250_uni.001, SIZE=5000, DECOMPRESS 14, uni_1250.001, SIZE=5000, DECOMPRESS 14, 1251_uni.001, SIZE=5000, DECOMPRESS 14, uni_1251.001, SIZE=5000, DECOMPRESS 14, 1252_uni.001, SIZE=5000, DECOMPRESS 14, uni_1252.001, SIZE=5000, DECOMPRESS 14, 1253_uni.001, SIZE=5000, DECOMPRESS 14, uni_1253.001, SIZE=5000, DECOMPRESS 14, 1254_uni.001, SIZE=5000, DECOMPRESS 14, uni_1254.001, SIZE=5000, DECOMPRESS 14, 1255_uni.001, SIZE=5000, DECOMPRESS 14, uni_1255.001, SIZE=5000, DECOMPRESS 14, 1256_uni.001, SIZE=5000, DECOMPRESS 14, uni_1256.001, SIZE=5000, DECOMPRESS 14, 1257_uni.001, SIZE=5000, DECOMPRESS 14, uni_1257.001, SIZE=5000, DECOMPRESS 14, 874_uni.001, SIZE=5000, DECOMPRESS 14, uni_874.001, SIZE=5000, DECOMPRESS 14, 932_uni.001, SIZE=5000, DECOMPRESS 14, uni_932.001, SIZE=5000, DECOMPRESS 14, 936_uni.001, SIZE=5000, DECOMPRESS 14, uni_936.001, SIZE=5000, DECOMPRESS 14, 949_uni.001, SIZE=5000, DECOMPRESS 14, uni_949.001, SIZE=5000, DECOMPRESS 14, 950_uni.001, SIZE=5000, DECOMPRESS 14, uni_950.001, SIZE=5000, DECOMPRESS 14, uni_col.001, SIZE=5000, DECOMPRESS 14, uni_mon.001, SIZE=5000, DECOMPRESS [Files-Unicode-Korean] 16, 1250_uni.001, SIZE=5000, DECOMPRESS 16, uni_1250.001, SIZE=5000, DECOMPRESS 16, 1251_uni.001, SIZE=5000, DECOMPRESS 16, uni_1251.001, SIZE=5000, DECOMPRESS 16, 1252_uni.001, SIZE=5000, DECOMPRESS 16, uni_1252.001, SIZE=5000, DECOMPRESS 16, 1253_uni.001, SIZE=5000, DECOMPRESS 16, uni_1253.001, SIZE=5000, DECOMPRESS 16, 1254_uni.001, SIZE=5000, DECOMPRESS 16, uni_1254.001, SIZE=5000, DECOMPRESS 16, 1255_uni.001, SIZE=5000, DECOMPRESS 16, uni_1255.001, SIZE=5000, DECOMPRESS 16, 1256_uni.001, SIZE=5000, DECOMPRESS 16, uni_1256.001, SIZE=5000, DECOMPRESS 16, 1257_uni.001, SIZE=5000, DECOMPRESS 16, uni_1257.001, SIZE=5000, DECOMPRESS 16, 874_uni.001, SIZE=5000, DECOMPRESS 16, uni_874.001, SIZE=5000, DECOMPRESS 16, 932_uni.001, SIZE=5000, DECOMPRESS 16, uni_932.001, SIZE=5000, DECOMPRESS 16, 936_uni.001, SIZE=5000, DECOMPRESS 16, uni_936.001, SIZE=5000, DECOMPRESS 16, 949_uni.001, SIZE=5000, DECOMPRESS 16, uni_949.001, SIZE=5000, DECOMPRESS 16, 950_uni.001, SIZE=5000, DECOMPRESS 16, uni_950.001, SIZE=5000, DECOMPRESS 16, uni_col.001, SIZE=5000, DECOMPRESS 16, uni_mon.001, SIZE=5000, DECOMPRESS [Files-Unicode-Nihongo] 18, 1250_uni.001, SIZE=5000, DECOMPRESS 18, uni_1250.001, SIZE=5000, DECOMPRESS 18, 1251_uni.001, SIZE=5000, DECOMPRESS 18, uni_1251.001, SIZE=5000, DECOMPRESS 18, 1252_uni.001, SIZE=5000, DECOMPRESS 18, uni_1252.001, SIZE=5000, DECOMPRESS 18, 1253_uni.001, SIZE=5000, DECOMPRESS 18, uni_1253.001, SIZE=5000, DECOMPRESS 18, 1254_uni.001, SIZE=5000, DECOMPRESS 18, uni_1254.001, SIZE=5000, DECOMPRESS 18, 1255_uni.001, SIZE=5000, DECOMPRESS 18, uni_1255.001, SIZE=5000, DECOMPRESS 18, 1256_uni.001, SIZE=5000, DECOMPRESS 18, uni_1256.001, SIZE=5000, DECOMPRESS 18, 1257_uni.001, SIZE=5000, DECOMPRESS 18, uni_1257.001, SIZE=5000, DECOMPRESS 18, 874_uni.001, SIZE=5000, DECOMPRESS 18, uni_874.001, SIZE=5000, DECOMPRESS 18, 932_uni.001, SIZE=5000, DECOMPRESS 18, uni_932.001, SIZE=5000, DECOMPRESS 18, 936_uni.001, SIZE=5000, DECOMPRESS 18, uni_936.001, SIZE=5000, DECOMPRESS 18, 949_uni.001, SIZE=5000, DECOMPRESS 18, uni_949.001, SIZE=5000, DECOMPRESS 18, 950_uni.001, SIZE=5000, DECOMPRESS 18, uni_950.001, SIZE=5000, DECOMPRESS 18, uni_col.001, SIZE=5000, DECOMPRESS 18, uni_mon.001, SIZE=5000, DECOMPRESS [Files-Unicode-Portugue] 20, 1250_uni.001, SIZE=5000, DECOMPRESS 20, uni_1250.001, SIZE=5000, DECOMPRESS 20, 1251_uni.001, SIZE=5000, DECOMPRESS 20, uni_1251.001, SIZE=5000, DECOMPRESS 20, 1252_uni.001, SIZE=5000, DECOMPRESS 20, uni_1252.001, SIZE=5000, DECOMPRESS 20, 1253_uni.001, SIZE=5000, DECOMPRESS 20, uni_1253.001, SIZE=5000, DECOMPRESS 20, 1254_uni.001, SIZE=5000, DECOMPRESS 20, uni_1254.001, SIZE=5000, DECOMPRESS 20, 1255_uni.001, SIZE=5000, DECOMPRESS 20, uni_1255.001, SIZE=5000, DECOMPRESS 20, 1256_uni.001, SIZE=5000, DECOMPRESS 20, uni_1256.001, SIZE=5000, DECOMPRESS 20, 1257_uni.001, SIZE=5000, DECOMPRESS 20, uni_1257.001, SIZE=5000, DECOMPRESS 20, 874_uni.001, SIZE=5000, DECOMPRESS 20, uni_874.001, SIZE=5000, DECOMPRESS 20, 932_uni.001, SIZE=5000, DECOMPRESS 20, uni_932.001, SIZE=5000, DECOMPRESS 20, 936_uni.001, SIZE=5000, DECOMPRESS 20, uni_936.001, SIZE=5000, DECOMPRESS 20, 949_uni.001, SIZE=5000, DECOMPRESS 20, uni_949.001, SIZE=5000, DECOMPRESS 20, 950_uni.001, SIZE=5000, DECOMPRESS 20, uni_950.001, SIZE=5000, DECOMPRESS 20, uni_col.001, SIZE=5000, DECOMPRESS 20, uni_mon.001, SIZE=5000, DECOMPRESS [Files-Hlp-Sys32-English] 1, readme.cnt, SIZE=50000, DECOMPRESS 1, readme.hlp, SIZE=50000, DECOMPRESS 2, nt3using.cnt, SIZE=50000, DECOMPRESS 2, nt3using.hlp, SIZE=50000, DECOMPRESS 2, nt4using.cnt, SIZE=50000, DECOMPRESS 2, nt4using.hlp, SIZE=50000, DECOMPRESS 2, nt3setup.cnt, SIZE=50000, DECOMPRESS 2, nt3setup.hlp, SIZE=50000, DECOMPRESS 2, nt4setup.cnt, SIZE=50000, DECOMPRESS 2, nt4setup.hlp, SIZE=50000, DECOMPRESS 2, ntadmin.cnt, SIZE=50000, DECOMPRESS 2, ntadmin.hlp, SIZE=50000, DECOMPRESS 2, ntwsmgr.hlp, SIZE=50000, DECOMPRESS ; 2, nwnthelp.hlp, SIZE=50000, DECOMPRESS [Files-Msg-Sys32-English] 2, ethertsm.msg, SIZE=50000, DECOMPRESS 2, fdditsm.msg, SIZE=50000, DECOMPRESS 2, login.msg, SIZE=50000, DECOMPRESS, RENAME=login.ms~ 2, tokentsm.msg, SIZE=50000, DECOMPRESS [Files-Resource-Sys32-English] 2, login.dat, SIZE=50000, DECOMPRESS, RENAME=login.da~ 2, msgsvcr.dll, SIZE=50000, DECOMPRESS 2, netwarer.dll, SIZE=50000, DECOMPRESS 2, novnpntr.dll, SIZE=50000, DECOMPRESS 2, nwcplr.dll, SIZE=50000, DECOMPRESS 2, nwevents.dll, SIZE=50000, DECOMPRESS 2, nwginar.dll, SIZE=50000, DECOMPRESS 2, nwsetupr.dll, SIZE=50000, DECOMPRESS 2, nwspoolr.dll, SIZE=50000, DECOMPRESS 2, odintmsg.dll, SIZE=50000, DECOMPRESS 2, nwrightr.dll, SIZE=50000, DECOMPRESS 2, nwshlxnr.dll, SIZE=50000, DECOMPRESS 2, lgncon32.dll, SIZE=50000, DECOMPRESS [Files-Resource-Sys32-English-SAM] ; 2, sammigr.dll, SIZE=50000, DECOMPRESS 2, sammig.hlp, SIZE=50000, DECOMPRESS 2, appsnap.hlp, SIZE=50000, DECOMPRESS 2, appsnap.cnt, SIZE=50000, DECOMPRESS 2, install1.hlp, SIZE=50000, DECOMPRESS 2, iwsam.hlp, SIZE=50000, DECOMPRESS 2, iwsam.cnt, SIZE=50000, DECOMPRESS 2, nds.hlp, SIZE=50000, DECOMPRESS 2, nds4ntsg.hlp, SIZE=50000, DECOMPRESS 2, ndsmgr.hlp, SIZE=50000, DECOMPRESS 2, ndsmgr.cnt, SIZE=50000, DECOMPRESS 2, nwadmin.hlp, SIZE=50000, DECOMPRESS 2, nwadmin.cnt, SIZE=50000, DECOMPRESS 2, ndsfornt.hlp, SIZE=50000, DECOMPRESS 2, nwec.hlp, SIZE=50000, DECOMPRESS 2, nwmain.hlp, SIZE=50000, DECOMPRESS 2, nwref.hlp, SIZE=50000, DECOMPRESS 2, outline.hlp, SIZE=50000, DECOMPRESS 2, outline.cnt, SIZE=50000, DECOMPRESS 2, sammig.hlp, SIZE=50000, DECOMPRESS 2, schema.hlp, SIZE=50000, DECOMPRESS [Files-Ini-English] 2, lslstats.ini, SIZE=50000, DECOMPRESS 2, odistats.ini, SIZE=50000, DECOMPRESS 2, rdrstats.ini, SIZE=50000, DECOMPRESS [Files-Hlp-Sys32-Chineses] 3, readme.cnt, SIZE=50000, DECOMPRESS 3, readme.hlp, SIZE=50000, DECOMPRESS 4, nt3using.cnt, SIZE=50000, DECOMPRESS 4, nt3using.hlp, SIZE=50000, DECOMPRESS 4, nt4using.cnt, SIZE=50000, DECOMPRESS 4, nt4using.hlp, SIZE=50000, DECOMPRESS 4, nt3setup.cnt, SIZE=50000, DECOMPRESS 4, nt3setup.hlp, SIZE=50000, DECOMPRESS 4, nt4setup.cnt, SIZE=50000, DECOMPRESS 4, nt4setup.hlp, SIZE=50000, DECOMPRESS 4, ntadmin.cnt, SIZE=50000, DECOMPRESS 4, ntadmin.hlp, SIZE=50000, DECOMPRESS 4, ntwsmgr.hlp, SIZE=50000, DECOMPRESS ; 4, nwnthelp.hlp, SIZE=50000, DECOMPRESS [Files-Msg-Sys32-Chineses] 4, ethertsm.msg, SIZE=50000, DECOMPRESS 4, fdditsm.msg, SIZE=50000, DECOMPRESS 4, login.msg, SIZE=50000, DECOMPRESS, RENAME=login.ms~ 4, tokentsm.msg, SIZE=50000, DECOMPRESS [Files-Resource-Sys32-Chineses] 4, login.dat, SIZE=50000, DECOMPRESS, RENAME=login.da~ 4, msgsvcr.dll, SIZE=50000, DECOMPRESS 4, netwarer.dll, SIZE=50000, DECOMPRESS 4, novnpntr.dll, SIZE=50000, DECOMPRESS 4, nwcplr.dll, SIZE=50000, DECOMPRESS 4, nwevents.dll, SIZE=50000, DECOMPRESS 4, nwginar.dll, SIZE=50000, DECOMPRESS 4, nwsetupr.dll, SIZE=50000, DECOMPRESS 4, nwspoolr.dll, SIZE=50000, DECOMPRESS 4, odintmsg.dll, SIZE=50000, DECOMPRESS 4, nwrightr.dll, SIZE=50000, DECOMPRESS 4, nwshlxnr.dll, SIZE=50000, DECOMPRESS 4, lgncon32.dll, SIZE=50000, DECOMPRESS [Files-Resource-Sys32-English-Chineses] 4, migres.dll, SIZE=50000, DECOMPRESS [Files-Ini-Chineses] 4, lslstats.ini, SIZE=50000, DECOMPRESS 4, odistats.ini, SIZE=50000, DECOMPRESS 4, rdrstats.ini, SIZE=50000, DECOMPRESS [Files-Hlp-Sys32-Chineset] 5, readme.cnt, SIZE=50000, DECOMPRESS 5, readme.hlp, SIZE=50000, DECOMPRESS 6, nt3using.cnt, SIZE=50000, DECOMPRESS 6, nt3using.hlp, SIZE=50000, DECOMPRESS 6, nt4using.cnt, SIZE=50000, DECOMPRESS 6, nt4using.hlp, SIZE=50000, DECOMPRESS 6, nt3setup.cnt, SIZE=50000, DECOMPRESS 6, nt3setup.hlp, SIZE=50000, DECOMPRESS 6, nt4setup.cnt, SIZE=50000, DECOMPRESS 6, nt4setup.hlp, SIZE=50000, DECOMPRESS 6, ntadmin.cnt, SIZE=50000, DECOMPRESS 6, ntadmin.hlp, SIZE=50000, DECOMPRESS 6, ntwsmgr.hlp, SIZE=50000, DECOMPRESS ; 6, nwnthelp.hlp, SIZE=50000, DECOMPRESS [Files-Msg-Sys32-Chineset] 6, ethertsm.msg, SIZE=50000, DECOMPRESS 6, fdditsm.msg, SIZE=50000, DECOMPRESS 6, login.msg, SIZE=50000, DECOMPRESS, RENAME=login.ms~ 6, tokentsm.msg, SIZE=50000, DECOMPRESS [Files-Resource-Sys32-Chineset] 6, login.dat, SIZE=50000, DECOMPRESS, RENAME=login.da~ 6, msgsvcr.dll, SIZE=50000, DECOMPRESS 6, netwarer.dll, SIZE=50000, DECOMPRESS 6, novnpntr.dll, SIZE=50000, DECOMPRESS 6, nwcplr.dll, SIZE=50000, DECOMPRESS 6, nwevents.dll, SIZE=50000, DECOMPRESS 6, nwginar.dll, SIZE=50000, DECOMPRESS 6, nwsetupr.dll, SIZE=50000, DECOMPRESS 6, nwspoolr.dll, SIZE=50000, DECOMPRESS 6, odintmsg.dll, SIZE=50000, DECOMPRESS 6, nwrightr.dll, SIZE=50000, DECOMPRESS 6, nwshlxnr.dll, SIZE=50000, DECOMPRESS 6, lgncon32.dll, SIZE=50000, DECOMPRESS [Files-Resource-Sys32-English-Chineset] 6, migres.dll, SIZE=50000, DECOMPRESS [Files-Ini-Chineset] 6, lslstats.ini, SIZE=50000, DECOMPRESS 6, odistats.ini, SIZE=50000, DECOMPRESS 6, rdrstats.ini, SIZE=50000, DECOMPRESS [Files-Hlp-Sys32-Deutsch] 7, readme.cnt, SIZE=50000, DECOMPRESS 7, readme.hlp, SIZE=50000, DECOMPRESS 8, nt3using.cnt, SIZE=50000, DECOMPRESS 8, nt3using.hlp, SIZE=50000, DECOMPRESS 8, nt4using.cnt, SIZE=50000, DECOMPRESS 8, nt4using.hlp, SIZE=50000, DECOMPRESS 8, nt3setup.cnt, SIZE=50000, DECOMPRESS 8, nt3setup.hlp, SIZE=50000, DECOMPRESS 8, nt4setup.cnt, SIZE=50000, DECOMPRESS 8, nt4setup.hlp, SIZE=50000, DECOMPRESS 8, ntadmin.cnt, SIZE=50000, DECOMPRESS 8, ntadmin.hlp, SIZE=50000, DECOMPRESS 8, ntwsmgr.hlp, SIZE=50000, DECOMPRESS ; 8, nwnthelp.hlp, SIZE=50000, DECOMPRESS [Files-Msg-Sys32-Deutsch] 8, ethertsm.msg, SIZE=50000, DECOMPRESS 8, fdditsm.msg, SIZE=50000, DECOMPRESS 8, login.msg, SIZE=50000, DECOMPRESS, RENAME=login.ms~ 8, tokentsm.msg, SIZE=50000, DECOMPRESS [Files-Resource-Sys32-Deutsch] 8, login.dat, SIZE=50000, DECOMPRESS, RENAME=login.da~ 8, msgsvcr.dll, SIZE=50000, DECOMPRESS 8, netwarer.dll, SIZE=50000, DECOMPRESS 8, novnpntr.dll, SIZE=50000, DECOMPRESS 8, nwcplr.dll, SIZE=50000, DECOMPRESS 8, nwevents.dll, SIZE=50000, DECOMPRESS 8, nwginar.dll, SIZE=50000, DECOMPRESS 8, nwsetupr.dll, SIZE=50000, DECOMPRESS 8, nwspoolr.dll, SIZE=50000, DECOMPRESS 8, odintmsg.dll, SIZE=50000, DECOMPRESS 8, nwrightr.dll, SIZE=50000, DECOMPRESS 8, nwshlxnr.dll, SIZE=50000, DECOMPRESS 8, lgncon32.dll, SIZE=50000, DECOMPRESS [Files-Resource-Sys32-English-Deutsch] 8, migres.dll, SIZE=50000, DECOMPRESS [Files-Ini-Deutsch] 8, lslstats.ini, SIZE=50000, DECOMPRESS 8, odistats.ini, SIZE=50000, DECOMPRESS 8, rdrstats.ini, SIZE=50000, DECOMPRESS [Files-Hlp-Sys32-Espanol] 9, readme.cnt, SIZE=50000, DECOMPRESS 9, readme.hlp, SIZE=50000, DECOMPRESS 10, nt3using.cnt, SIZE=50000, DECOMPRESS 10, nt3using.hlp, SIZE=50000, DECOMPRESS 10, nt4using.cnt, SIZE=50000, DECOMPRESS 10, nt4using.hlp, SIZE=50000, DECOMPRESS 10, nt3setup.cnt, SIZE=50000, DECOMPRESS 10, nt3setup.hlp, SIZE=50000, DECOMPRESS 10, nt4setup.cnt, SIZE=50000, DECOMPRESS 10, nt4setup.hlp, SIZE=50000, DECOMPRESS 10, ntadmin.cnt, SIZE=50000, DECOMPRESS 10, ntadmin.hlp, SIZE=50000, DECOMPRESS 10, ntwsmgr.hlp, SIZE=50000, DECOMPRESS ; 10, nwnthelp.hlp, SIZE=50000, DECOMPRESS [Files-Msg-Sys32-Espanol] 10, ethertsm.msg, SIZE=50000, DECOMPRESS 10, fdditsm.msg, SIZE=50000, DECOMPRESS 10, login.msg, SIZE=50000, DECOMPRESS, RENAME=login.ms~ 10, tokentsm.msg, SIZE=50000, DECOMPRESS [Files-Resource-Sys32-Espanol] 10, login.dat, SIZE=50000, DECOMPRESS, RENAME=login.da~ 10, msgsvcr.dll, SIZE=50000, DECOMPRESS 10, netwarer.dll, SIZE=50000, DECOMPRESS 10, novnpntr.dll, SIZE=50000, DECOMPRESS 10, nwcplr.dll, SIZE=50000, DECOMPRESS 10, nwevents.dll, SIZE=50000, DECOMPRESS 10, nwginar.dll, SIZE=50000, DECOMPRESS 10, nwsetupr.dll, SIZE=50000, DECOMPRESS 10, nwspoolr.dll, SIZE=50000, DECOMPRESS 10, odintmsg.dll, SIZE=50000, DECOMPRESS 10, nwrightr.dll, SIZE=50000, DECOMPRESS 10, nwshlxnr.dll, SIZE=50000, DECOMPRESS 10, lgncon32.dll, SIZE=50000, DECOMPRESS [Files-Resource-Sys32-English-Espanol] 10, migres.dll, SIZE=50000, DECOMPRESS [Files-Ini-Espanol] 10, lslstats.ini, SIZE=50000, DECOMPRESS 10, odistats.ini, SIZE=50000, DECOMPRESS 10, rdrstats.ini, SIZE=50000, DECOMPRESS [Files-Hlp-Sys32-Francais] 11, readme.cnt, SIZE=50000, DECOMPRESS 11, readme.hlp, SIZE=50000, DECOMPRESS 12, nt3using.cnt, SIZE=50000, DECOMPRESS 12, nt3using.hlp, SIZE=50000, DECOMPRESS 12, nt4using.cnt, SIZE=50000, DECOMPRESS 12, nt4using.hlp, SIZE=50000, DECOMPRESS 12, nt3setup.cnt, SIZE=50000, DECOMPRESS 12, nt3setup.hlp, SIZE=50000, DECOMPRESS 12, nt4setup.cnt, SIZE=50000, DECOMPRESS 12, nt4setup.hlp, SIZE=50000, DECOMPRESS 12, ntadmin.cnt, SIZE=50000, DECOMPRESS 12, ntadmin.hlp, SIZE=50000, DECOMPRESS 12, ntwsmgr.hlp, SIZE=50000, DECOMPRESS ; 12, nwnthelp.hlp, SIZE=50000, DECOMPRESS [Files-Msg-Sys32-Francais] 12, ethertsm.msg, SIZE=50000, DECOMPRESS 12, fdditsm.msg, SIZE=50000, DECOMPRESS 12, login.msg, SIZE=50000, DECOMPRESS, RENAME=login.ms~ 12, tokentsm.msg, SIZE=50000, DECOMPRESS [Files-Resource-Sys32-Francais] 12, login.dat, SIZE=50000, DECOMPRESS, RENAME=login.da~ 12, msgsvcr.dll, SIZE=50000, DECOMPRESS 12, netwarer.dll, SIZE=50000, DECOMPRESS 12, novnpntr.dll, SIZE=50000, DECOMPRESS 12, nwcplr.dll, SIZE=50000, DECOMPRESS 12, nwevents.dll, SIZE=50000, DECOMPRESS 12, nwginar.dll, SIZE=50000, DECOMPRESS 12, nwsetupr.dll, SIZE=50000, DECOMPRESS 12, nwspoolr.dll, SIZE=50000, DECOMPRESS 12, odintmsg.dll, SIZE=50000, DECOMPRESS 12, nwrightr.dll, SIZE=50000, DECOMPRESS 12, nwshlxnr.dll, SIZE=50000, DECOMPRESS 12, lgncon32.dll, SIZE=50000, DECOMPRESS [Files-Resource-Sys32-English-Francais] 12, migres.dll, SIZE=50000, DECOMPRESS [Files-Ini-Francais] 12, lslstats.ini, SIZE=50000, DECOMPRESS 12, odistats.ini, SIZE=50000, DECOMPRESS 12, rdrstats.ini, SIZE=50000, DECOMPRESS [Files-Hlp-Sys32-Italiano] 13, readme.cnt, SIZE=50000, DECOMPRESS 13, readme.hlp, SIZE=50000, DECOMPRESS 14, nt3using.cnt, SIZE=50000, DECOMPRESS 14, nt3using.hlp, SIZE=50000, DECOMPRESS 14, nt4using.cnt, SIZE=50000, DECOMPRESS 14, nt4using.hlp, SIZE=50000, DECOMPRESS 14, nt3setup.cnt, SIZE=50000, DECOMPRESS 14, nt3setup.hlp, SIZE=50000, DECOMPRESS 14, nt4setup.cnt, SIZE=50000, DECOMPRESS 14, nt4setup.hlp, SIZE=50000, DECOMPRESS 14, ntadmin.cnt, SIZE=50000, DECOMPRESS 14, ntadmin.hlp, SIZE=50000, DECOMPRESS 14, ntwsmgr.hlp, SIZE=50000, DECOMPRESS ; 14, nwnthelp.hlp, SIZE=50000, DECOMPRESS [Files-Msg-Sys32-Italiano] 14, ethertsm.msg, SIZE=50000, DECOMPRESS 14, fdditsm.msg, SIZE=50000, DECOMPRESS 14, login.msg, SIZE=50000, DECOMPRESS, RENAME=login.ms~ 14, tokentsm.msg, SIZE=50000, DECOMPRESS [Files-Resource-Sys32-Italiano] 14, login.dat, SIZE=50000, DECOMPRESS, RENAME=login.da~ 14, msgsvcr.dll, SIZE=50000, DECOMPRESS 14, netwarer.dll, SIZE=50000, DECOMPRESS 14, novnpntr.dll, SIZE=50000, DECOMPRESS 14, nwcplr.dll, SIZE=50000, DECOMPRESS 14, nwevents.dll, SIZE=50000, DECOMPRESS 14, nwginar.dll, SIZE=50000, DECOMPRESS 14, nwsetupr.dll, SIZE=50000, DECOMPRESS 14, nwspoolr.dll, SIZE=50000, DECOMPRESS 14, odintmsg.dll, SIZE=50000, DECOMPRESS 14, nwrightr.dll, SIZE=50000, DECOMPRESS 14, nwshlxnr.dll, SIZE=50000, DECOMPRESS 14, lgncon32.dll, SIZE=50000, DECOMPRESS [Files-Ini-Italiano] 14, lslstats.ini, SIZE=50000, DECOMPRESS 14, odistats.ini, SIZE=50000, DECOMPRESS 14, rdrstats.ini, SIZE=50000, DECOMPRESS [Files-Hlp-Sys32-Korean] 15, readme.cnt, SIZE=50000, DECOMPRESS 15, readme.hlp, SIZE=50000, DECOMPRESS 16, nt3using.cnt, SIZE=50000, DECOMPRESS 16, nt3using.hlp, SIZE=50000, DECOMPRESS 16, nt4using.cnt, SIZE=50000, DECOMPRESS 16, nt4using.hlp, SIZE=50000, DECOMPRESS 16, nt3setup.cnt, SIZE=50000, DECOMPRESS 16, nt3setup.hlp, SIZE=50000, DECOMPRESS 16, nt4setup.cnt, SIZE=50000, DECOMPRESS 16, nt4setup.hlp, SIZE=50000, DECOMPRESS 16, ntadmin.cnt, SIZE=50000, DECOMPRESS 16, ntadmin.hlp, SIZE=50000, DECOMPRESS 16, ntwsmgr.hlp, SIZE=50000, DECOMPRESS ; 16, nwnthelp.hlp, SIZE=50000, DECOMPRESS [Files-Msg-Sys32-Korean] 16, ethertsm.msg, SIZE=50000, DECOMPRESS 16, fdditsm.msg, SIZE=50000, DECOMPRESS 16, login.msg, SIZE=50000, DECOMPRESS, RENAME=login.ms~ 16, tokentsm.msg, SIZE=50000, DECOMPRESS [Files-Resource-Sys32-Korean] 16, login.dat, SIZE=50000, DECOMPRESS, RENAME=login.da~ 16, msgsvcr.dll, SIZE=50000, DECOMPRESS 16, netwarer.dll, SIZE=50000, DECOMPRESS 16, novnpntr.dll, SIZE=50000, DECOMPRESS 16, nwcplr.dll, SIZE=50000, DECOMPRESS 16, nwevents.dll, SIZE=50000, DECOMPRESS 16, nwginar.dll, SIZE=50000, DECOMPRESS 16, nwsetupr.dll, SIZE=50000, DECOMPRESS 16, nwspoolr.dll, SIZE=50000, DECOMPRESS 16, odintmsg.dll, SIZE=50000, DECOMPRESS 16, nwrightr.dll, SIZE=50000, DECOMPRESS 16, nwshlxnr.dll, SIZE=50000, DECOMPRESS 16, lgncon32.dll, SIZE=50000, DECOMPRESS [Files-Ini-Korean] 16, lslstats.ini, SIZE=50000, DECOMPRESS 16, odistats.ini, SIZE=50000, DECOMPRESS 16, rdrstats.ini, SIZE=50000, DECOMPRESS [Files-Hlp-Sys32-Nihongo] 17, readme.cnt, SIZE=50000, DECOMPRESS 17, readme.hlp, SIZE=50000, DECOMPRESS 18, nt3using.cnt, SIZE=50000, DECOMPRESS 18, nt3using.hlp, SIZE=50000, DECOMPRESS 18, nt4using.cnt, SIZE=50000, DECOMPRESS 18, nt4using.hlp, SIZE=50000, DECOMPRESS 18, nt3setup.cnt, SIZE=50000, DECOMPRESS 18, nt3setup.hlp, SIZE=50000, DECOMPRESS 18, nt4setup.cnt, SIZE=50000, DECOMPRESS 18, nt4setup.hlp, SIZE=50000, DECOMPRESS 18, ntadmin.cnt, SIZE=50000, DECOMPRESS 18, ntadmin.hlp, SIZE=50000, DECOMPRESS 18, ntwsmgr.hlp, SIZE=50000, DECOMPRESS ; 18, nwnthelp.hlp, SIZE=50000, DECOMPRESS [Files-Msg-Sys32-Nihongo] 18, ethertsm.msg, SIZE=50000, DECOMPRESS 18, fdditsm.msg, SIZE=50000, DECOMPRESS 18, login.msg, SIZE=50000, DECOMPRESS, RENAME=login.ms~ 18, tokentsm.msg, SIZE=50000, DECOMPRESS [Files-Resource-Sys32-Nihongo] 18, login.dat, SIZE=50000, DECOMPRESS, RENAME=login.da~ 18, msgsvcr.dll, SIZE=50000, DECOMPRESS 18, netwarer.dll, SIZE=50000, DECOMPRESS 18, novnpntr.dll, SIZE=50000, DECOMPRESS 18, nwcplr.dll, SIZE=50000, DECOMPRESS 18, nwevents.dll, SIZE=50000, DECOMPRESS 18, nwginar.dll, SIZE=50000, DECOMPRESS 18, nwsetupr.dll, SIZE=50000, DECOMPRESS 18, nwspoolr.dll, SIZE=50000, DECOMPRESS 18, odintmsg.dll, SIZE=50000, DECOMPRESS 18, nwrightr.dll, SIZE=50000, DECOMPRESS 18, nwshlxnr.dll, SIZE=50000, DECOMPRESS 18, lgncon32.dll, SIZE=50000, DECOMPRESS [Files-Ini-Nihongo] 18, lslstats.ini, SIZE=50000, DECOMPRESS 18, odistats.ini, SIZE=50000, DECOMPRESS 18, rdrstats.ini, SIZE=50000, DECOMPRESS [Files-Hlp-Sys32-Portugue] 19, readme.cnt, SIZE=50000, DECOMPRESS 19, readme.hlp, SIZE=50000, DECOMPRESS 20, nt3using.cnt, SIZE=50000, DECOMPRESS 20, nt3using.hlp, SIZE=50000, DECOMPRESS 20, nt4using.cnt, SIZE=50000, DECOMPRESS 20, nt4using.hlp, SIZE=50000, DECOMPRESS 20, nt3setup.cnt, SIZE=50000, DECOMPRESS 20, nt3setup.hlp, SIZE=50000, DECOMPRESS 20, nt4setup.cnt, SIZE=50000, DECOMPRESS 20, nt4setup.hlp, SIZE=50000, DECOMPRESS 20, ntadmin.cnt, SIZE=50000, DECOMPRESS 20, ntadmin.hlp, SIZE=50000, DECOMPRESS 20, ntwsmgr.hlp, SIZE=50000, DECOMPRESS ; 20, nwnthelp.hlp, SIZE=50000, DECOMPRESS [Files-Msg-Sys32-Portugue] 20, ethertsm.msg, SIZE=50000, DECOMPRESS 20, fdditsm.msg, SIZE=50000, DECOMPRESS 20, login.msg, SIZE=50000, DECOMPRESS, RENAME=login.ms~ 20, tokentsm.msg, SIZE=50000, DECOMPRESS [Files-Resource-Sys32-Portugue] 20, login.dat, SIZE=50000, DECOMPRESS, RENAME=login.da~ 20, msgsvcr.dll, SIZE=50000, DECOMPRESS 20, netwarer.dll, SIZE=50000, DECOMPRESS 20, novnpntr.dll, SIZE=50000, DECOMPRESS 20, nwcplr.dll, SIZE=50000, DECOMPRESS 20, nwevents.dll, SIZE=50000, DECOMPRESS 20, nwginar.dll, SIZE=50000, DECOMPRESS 20, nwsetupr.dll, SIZE=50000, DECOMPRESS 20, nwspoolr.dll, SIZE=50000, DECOMPRESS 20, odintmsg.dll, SIZE=50000, DECOMPRESS 20, nwrightr.dll, SIZE=50000, DECOMPRESS 20, nwshlxnr.dll, SIZE=50000, DECOMPRESS 20, lgncon32.dll, SIZE=50000, DECOMPRESS [Files-Ini-Portugue] 20, lslstats.ini, SIZE=50000, DECOMPRESS 20, odistats.ini, SIZE=50000, DECOMPRESS 20, rdrstats.ini, SIZE=50000, DECOMPRESS [Files-Msg-Sys-English] 2, login.msg, SIZE=50000, DECOMPRESS, RENAME=login.ms~ [Files-Resource-Sys-English] 2, login.dat, SIZE=50000, DECOMPRESS, RENAME=login.da~ 2, netwarer.drv, SIZE=50000, DECOMPRESS [Files-NtRoot-English] 2, nwelcome.bmp, SIZE=50000, DECOMPRESS [Files-NtRoot-English-SAM] 2, nwelcome.bmp, SIZE=50000, DECOMPRESS [Files-Msg-Sys-Chineses] 4, login.msg, SIZE=50000, DECOMPRESS, RENAME=login.ms~ [Files-Resource-Sys-Chineses] 4, login.dat, SIZE=50000, DECOMPRESS, RENAME=login.da~ 4, netwarer.drv, SIZE=50000, DECOMPRESS [Files-NtRoot-Chineses] 4, nwelcome.bmp, SIZE=50000, DECOMPRESS [Files-Msg-Sys-Chineset] 6, login.msg, SIZE=50000, DECOMPRESS, RENAME=login.ms~ [Files-Resource-Sys-Chineset] 6, login.dat, SIZE=50000, DECOMPRESS, RENAME=login.da~ 6, netwarer.drv, SIZE=50000, DECOMPRESS [Files-NtRoot-Chineset] 6, nwelcome.bmp, SIZE=50000, DECOMPRESS [Files-Msg-Sys-Deutsch] 8, login.msg, SIZE=50000, DECOMPRESS, RENAME=login.ms~ [Files-Resource-Sys-Deutsch] 8, login.dat, SIZE=50000, DECOMPRESS, RENAME=login.da~ 8, netwarer.drv, SIZE=50000, DECOMPRESS [Files-NtRoot-Deutsch] 8, nwelcome.bmp, SIZE=50000, DECOMPRESS [Files-Msg-Sys-Espanol] 10, login.msg, SIZE=50000, DECOMPRESS, RENAME=login.ms~ [Files-Resource-Sys-Espanol] 10, login.dat, SIZE=50000, DECOMPRESS, RENAME=login.da~ 10, netwarer.drv, SIZE=50000, DECOMPRESS [Files-NtRoot-Espanol] 10, nwelcome.bmp, SIZE=50000, DECOMPRESS [Files-Msg-Sys-Francais] 12, login.msg, SIZE=50000, DECOMPRESS, RENAME=login.ms~ [Files-Resource-Sys-Francais] 12, login.dat, SIZE=50000, DECOMPRESS, RENAME=login.da~ 12, netwarer.drv, SIZE=50000, DECOMPRESS [Files-NtRoot-Francais] 12, nwelcome.bmp, SIZE=50000, DECOMPRESS [Files-Msg-Sys-Italiano] 14, login.msg, SIZE=50000, DECOMPRESS, RENAME=login.ms~ [Files-Resource-Sys-Italiano] 14, login.dat, SIZE=50000, DECOMPRESS, RENAME=login.da~ 14, netwarer.drv, SIZE=50000, DECOMPRESS [Files-NtRoot-Italiano] 14, nwelcome.bmp, SIZE=50000, DECOMPRESS [Files-Msg-Sys-Korean] 16, login.msg, SIZE=50000, DECOMPRESS, RENAME=login.ms~ [Files-Resource-Sys-Korean] 16, login.dat, SIZE=50000, DECOMPRESS, RENAME=login.da~ 16, netwarer.drv, SIZE=50000, DECOMPRESS [Files-NtRoot-Korean] 16, nwelcome.bmp, SIZE=50000, DECOMPRESS [Files-Msg-Sys-Nihongo] 18, login.msg, SIZE=50000, DECOMPRESS, RENAME=login.ms~ [Files-Resource-Sys-Nihongo] 18, login.dat, SIZE=50000, DECOMPRESS, RENAME=login.da~ 18, netwarer.drv, SIZE=50000, DECOMPRESS [Files-NtRoot-Nihongo] 18, nwelcome.bmp, SIZE=50000, DECOMPRESS [Files-Msg-Sys-Portugue] 20, login.msg, SIZE=50000, DECOMPRESS, RENAME=login.ms~ [Files-Resource-Sys-Portugue] 20, login.dat, SIZE=50000, DECOMPRESS, RENAME=login.da~ 20, netwarer.drv, SIZE=50000, DECOMPRESS [Files-NtRoot-Portugue] 20, nwelcome.bmp, SIZE=50000, DECOMPRESS [Files-System] 21, loginw31.exe, SIZE=50000, DECOMPRESS 21, tli_win.dll, SIZE=50000, DECOMPRESS [Files-System32] ; 21, ipxapi.dll, SIZE=50000, DECOMPRESS 21, loginwnt.exe, SIZE=50000, DECOMPRESS 21, lslstats.h, SIZE=50000, DECOMPRESS 21, ndszip.dll, SIZE=50000, DECOMPRESS 21, netware.dll, SIZE=50000, DECOMPRESS 21, novell.ani, SIZE=50000, DECOMPRESS 21, novnpnt.dll, SIZE=50000, DECOMPRESS ; 21, ntschema.exe, SIZE=50000, DECOMPRESS ; 21, nwchgpwd.exe, SIZE=50000, DECOMPRESS 21, nwfmext.dll, SIZE=50000, DECOMPRESS 21, nwgina.dll, SIZE=50000, DECOMPRESS 21, nwlscrpt.exe, SIZE=50000, DECOMPRESS 21, nwmsgsvc.exe, SIZE=50000, DECOMPRESS 21, nwpapi32.dll, SIZE=50000, DECOMPRESS 21, nwpfctrs.dll, SIZE=50000, DECOMPRESS 21, nwsipx32.dll, SIZE=50000, DECOMPRESS 21, nwsndmsg.exe, SIZE=50000, DECOMPRESS 21, nwspool.dll, SIZE=50000, DECOMPRESS 21, nwv1_0.dll, SIZE=50000, DECOMPRESS 21, odistats.h, SIZE=50000, DECOMPRESS 21, rdrstats.h, SIZE=50000, DECOMPRESS ; 21, spxapi.dll, SIZE=50000, DECOMPRESS 21, vipx.exe, SIZE=50000, DECOMPRESS 21, vipxvdd.dll, SIZE=50000, DECOMPRESS 21, vlmsup.dll, SIZE=50000, DECOMPRESS 21, vlmsup.exe, SIZE=50000, DECOMPRESS ; 21, wshnw.dll, SIZE=50000, DECOMPRESS 21, nwrights.dll, SIZE=50000, DECOMPRESS 21, nwshlxnt.dll, SIZE=50000, DECOMPRESS [Files-System32-SAM] 21, samsrv.dll, SIZE=50000, DECOMPRESS, RENAME=nwsamsrv.dll 21, sammig.exe, SIZE=50000, DECOMPRESS [Files-System32-NT3] 21, nwcpl.cpl, SIZE=50000, DECOMPRESS [Files-NtRoot] ; 21, nwelcome.bmp, SIZE=50000, DECOMPRESS 21, phasers.wav, SIZE=50000, DECOMPRESS [Files-NetWare] 21, ethertsm.nlm, SIZE=50000, DECOMPRESS 21, fdditsm.nlm, SIZE=50000, DECOMPRESS ; 21, ipxapi.sys, SIZE=50000, DECOMPRESS ; 21, ipxspx.sys, SIZE=50000, DECOMPRESS 21, lsl.sys, SIZE=50000, DECOMPRESS 21, nbi.sys, SIZE=50000, DECOMPRESS 21, nwfs.sys, SIZE=50000, DECOMPRESS 21, nwsipx32.sys, SIZE=50000, DECOMPRESS 21, odiload.sys, SIZE=50000, DECOMPRESS 21, resmgr.sys, SIZE=50000, DECOMPRESS ; 21, spxapi.sys, SIZE=50000, DECOMPRESS 21, sroute.sys, SIZE=50000, DECOMPRESS 21, tokentsm.nlm, SIZE=50000, DECOMPRESS ; 21, vmlid.sys, SIZE=50000, DECOMPRESS [Files-Drivers] 21, odinsup.sys, SIZE=50000, DECOMPRESS [Files-Drivers-Nwip] 21, nwip.sys, SIZE=50000, DECOMPRESS [Files-32bitLibs] 22, audwin32.dll, SIZE=50000, DECOMPRESS 22, calwin32.dll, SIZE=50000, DECOMPRESS 22, clnwin32.dll, SIZE=50000, DECOMPRESS 22, clxwin32.dll, SIZE=50000, DECOMPRESS 22, lgnwnt32.dll, SIZE=50000, DECOMPRESS 22, loginwnt.dll, SIZE=50000, DECOMPRESS 22, ncpwin32.dll, SIZE=50000, DECOMPRESS 22, netwin32.dll, SIZE=50000, DECOMPRESS 22, nwpsrv32.dll, SIZE=50000, DECOMPRESS 22, prtwin32.dll, SIZE=50000, DECOMPRESS [Files-3party-32bitLibs] 22, ctl3d32.dll, SIZE=50000, DECOMPRESS 22, msvcrt40.dll, SIZE=50000, DECOMPRESS [Files-16bitXplatLibs] 23, audwin16.dll, SIZE=50000, DECOMPRESS 23, calwin16.dll, SIZE=50000, DECOMPRESS 23, clnwin16.dll, SIZE=50000, DECOMPRESS 23, clxwin16.dll, SIZE=50000, DECOMPRESS 23, locwin16.dll, SIZE=50000, DECOMPRESS 23, ncpwin16.dll, SIZE=50000, DECOMPRESS 23, netwin16.dll, SIZE=50000, DECOMPRESS [Files-16bitOldLibs] 23, lgnw3116.dll, SIZE=50000, DECOMPRESS 23, loginw31.dll, SIZE=50000, DECOMPRESS 23, nwcalls.dll, SIZE=50000, DECOMPRESS 23, nwgdi.dll, SIZE=50000, DECOMPRESS ; 23, nwipxspx.dll, SIZE=50000, DECOMPRESS 23, nwlocale.dll, SIZE=50000, DECOMPRESS 23, nwpsrv.dll, SIZE=50000, DECOMPRESS 23, nwnet.dll, SIZE=50000, DECOMPRESS 23, pnw.dll, SIZE=50000, DECOMPRESS 23, prtwin16.dll, SIZE=50000, DECOMPRESS [Files-16bitThunkLibs] 23, nwipxspx.dll, SIZE=50000, DECOMPRESS 23, netware.drv, SIZE=50000, DECOMPRESS, RENAME=netware.dr~ ;----------------------------------------------------------------------- ; LANGUAGES SUPPORTED ; ------------------- ; ; The languages supported by the OEM INF, For every language supported ; we need to have a separate text section for every displayable text ; section. ; ;----------------------------------------------------------------------- [LanguagesSupported] ENG, ENGLISH [Strings] ; ; Every string that is in quotes from this point to the end of the ; file will be pulled out and put into the translation teams database. ; There parser looks for the section [Strings] and then goes to the ; end of the file. DO NOT put strings below this point in the file ; that should not be translated. Likewise, all strings that need to ; be translated should be in quotes and below this point in the file. ; [Source Media Descriptions] 1 = "Novell IntranetWare Client for Windows NT Disk 1 (English)", TAGFILE = NWC_1 2 = "Novell IntranetWare Client for Windows NT Disk 2 (English)", TAGFILE = NWC_2 3 = "Novell IntranetWare Client for Windows NT Disk 1 (Chinese Simplified)", TAGFILE = NWC_3 4 = "Novell IntranetWare Client for Windows NT Disk 2 (Chinese Simplified)", TAGFILE = NWC_4 5 = "Novell IntranetWare Client for Windows NT Disk 1 (Chinese Traditional)", TAGFILE = NWC_5 6 = "Novell IntranetWare Client for Windows NT Disk 2 (Chinese Traditional)", TAGFILE = NWC_6 7 = "Novell IntranetWare Client for Windows NT Disk 1 (German)", TAGFILE = NWC_7 8 = "Novell IntranetWare Client for Windows NT Disk 2 (German)", TAGFILE = NWC_8 9 = "Novell IntranetWare Client for Windows NT Disk 1 (Spanish)", TAGFILE = NWC_9 10 = "Novell IntranetWare Client for Windows NT Disk 2 (Spanish)", TAGFILE = NWC_10 11 = "Novell IntranetWare Client for Windows NT Disk 1 (French)", TAGFILE = NWC_11 12 = "Novell IntranetWare Client for Windows NT Disk 2 (French)", TAGFILE = NWC_12 13 = "Novell IntranetWare Client for Windows NT Disk 1 (Italian)", TAGFILE = NWC_13 14 = "Novell IntranetWare Client for Windows NT Disk 2 (Italian)", TAGFILE = NWC_14 15 = "Novell IntranetWare Client for Windows NT Disk 1 (Korean)", TAGFILE = NWC_15 16 = "Novell IntranetWare Client for Windows NT Disk 2 (Korean)", TAGFILE = NWC_16 17 = "Novell IntranetWare Client for Windows NT Disk 1 (Japanese)", TAGFILE = NWC_17 18 = "Novell IntranetWare Client for Windows NT Disk 2 (Japanese)", TAGFILE = NWC_18 19 = "Novell IntranetWare Client for Windows NT Disk 1 (Portuguese)", TAGFILE = NWC_19 20 = "Novell IntranetWare Client for Windows NT Disk 2 (Portuguese)", TAGFILE = NWC_20 21 = "Novell IntranetWare Client for Windows NT Disk 3", TAGFILE = NWC_21 22 = "Novell IntranetWare Client for Windows NT Disk 4", TAGFILE = NWC_22 23 = "Novell IntranetWare Client for Windows NT Disk 5", TAGFILE = NWC_23 ;----------------------------------------------------------------------- ; OPTION TEXT SECTION ; ------------------- ; These are text strings used to identify the option to the user. There ; are separate sections for each language supported. The format of the ; section name is "OptionsText" concatenated with the Language represented ; by the section. ; ;----------------------------------------------------------------------- [OptionsTextENG] NETWARE = "Novell IntranetWare Client for Windows NT" ;----------------------------------------------------------------------- ; Language-Dependent Dialog Constants ;----------------------------------------------------------------------- [FileConstantsENG] ProductNWFSDisplayName = "Novell IntranetWare Client for Windows NT" ProductNWFSDisplayNameSAM = "Novell NDS for NT Client" ; ProductSPXAPIDisplayName = "Novell IntranetWare SPX Transport Interface" ; ProductIPXAPIDisplayName = "Novell IntranetWare IPX Transport Interface" ProductNWSIPX32DisplayName = "Novell IntranetWare IPX/SPX Transport Interface" ProductSROUTEDisplayName = "Novell IntranetWare ODI Source Routing Support" ; ProductIPXSPXDisplayName = "Novell IntranetWare IPX/SPX Network Transport" ProductODILOADDisplayName = "Novell IntranetWare ODI MAC Driver Loader" ProductLSLDisplayName = "Novell IntranetWare LSL" ProductNBIDisplayName = "Novell IntranetWare Bus Interface" ProductRESMGRDisplayName = "Novell IntranetWare Resource Manager" ; ProductRECONNECTDisplayName = "Novell IntranetWare Auto Reconnect Service" ; ProductVMLIDDisplayName = "Novell IntranetWare ODI Virtual MLID" ProductNWPOPUPDisplayName = "Novell IntranetWare Message PopUp Service" ProductODINSUPDisplayName = "Novell IntranetWare ODI Support for NDIS Protocols Driver" ; ; Variables to support thermometer gauge and error dialogs ; ProCaption = "Novell IntranetWare Client for Windows NT Setup" ProCaptionSAM = "Novell NDS for NT Setup" ProCancel = "Cancel" ProCancelMsg = "The Novell IntranetWare Client for Windows NT is not "+ "correctly installed. Are you sure you want to cancel "+ "copying files?" ProCancelCap = "Network Setup Message" ProText1 = "Copying:" ProText2 = "To:" [ProgressCopyENG] !p:ProCaption = $(!p:FunctionTitle) !p:ProCancel = "Cancel" !p:ProCancelMsg = "Novell IntranetWare Client for Windows NT is not "+ "correctly installed. Are you sure you want to cancel "+ "copying files?" !p:ProCancelCap = "Setup Message" !p:ProText1 = "Copying:" !p:ProText2 = "To:" !p:Error = "Unable to determine proper source disk location; copy cannot be performed." ;----------InstallOptionENG------------------------------------------------- ; ; InstallOptionENG: ; ; This section has all of the strings that are displayed on the screen. ; They are seperated so that the file can be easily transtated. ; ;------------------------------------------------------------------------ [InstallOptionENG] NetWareClientInstalledMessage = "The Novell IntranetWare Client for Windows "+ "NT is already installed. Please use the [UPDATE] option or remove "+ "it and then reboot before reinstalling." RemoveMSClientMessageText = "The Microsoft Client Service for NetWare "+ "is installed. We will remove this before installing the Novell "+ "IntranetWare Client for Windows NT Service. Do you want to continue?" RemoveMSClientFailedMessage = "An error occurred trying to remove the "+ "Microsoft Client Service for NetWare. Please remove the Microsoft "+ "Client Service for NetWare and reboot before installing the Novell "+ "IntranetWare Client for Windows NT service." SAMServerMessage = "The Novell NDS for NT client may only be installed on "+ "a Windows NT Server." RemoveSAMMessageText = "The Novell NDS for NT client "+ "is installed. If you have made user account changes in NDS they will not "+ "be available through this server while the NDS for NT client is not present."+ " You may add the client again to restore access to the NDS changes."+ " Do you want to continue?" ClientParamError = " parameter data is not valid. This incorrect value "+ "is in the unattended text file. Press NO to abort the installation "+ "and correct the syntax error in the UNATTEND.TXT file. Press YES "+ "to continue using the default behavior for this variable and "+ "complete the install." UnattendFileReadFailed = "Read File Error while trying to read and "+ "initialize either the Novell ACU options and/or the Novell Client parameters "+ "from the Unattended file. The Novell Client parameters will not "+ "be set in the registry, and any ACU installation options will not "+ "install. Press CANCEL to Abort the installation and correct the "+ "syntax errors in the UNATTEND.TXT file. Press OK to manually "+ "complete the install of the Novell NT Client without setting the "+ "Client parameters." UnattendParameterError = " parameter data is not valid. This incorrect "+ "value is in the unattended text file. Press CANCEL to abort the "+ "installation and correct the syntax error in the UNATTEND.TXT file. "+ "Press OK to complete the install without setting this Client parameter." UnattendTreeServerParameterError = " parameter data is not valid. These incorrect "+ "values are in the unattended text file. Press CANCEL to abort the "+ "installation and correct the syntax error in the UNATTEND.TXT file. "+ "Press OK to complete the install without setting these Client parameters." ExtendedFunctionFailedMessage = "An Error occurred while installing the "+ "Novell IntranetWare Client for Windows NT extended services." UpgradeButtonMessage = "Due to major changes in the function of our "+ "client, the UPDATE button is not supported with this version. "+ "Please remove the Novell IntranetWare Client for Windows NT and "+ "then reboot before installing the new version." ReplaceGINAMessageTitle = "Install Novell IntranetWare GINA Authenticator" ReplaceGINAMessageText = "Novell IntranetWare Client for Windows NT has "+ "detected another 3rd party GINA authenticator installed. "+ "Do you want to replace it with the Novell IntranetWare Client "+ "for Windows NT GINA authenticator?" InstallNWLinkMessageTitle = "Install NWLINK Protocol" InstallNWLinkMessageText = "NWLINK IPX Protocol is NOT installed. "+ "The Novell IntranetWare Client for Windows NT will not function unless "+ "it is installed. Install it now?" InstallNetWareIPMessageTitle = "Install NetWareIP Support" InstallNetWareIPMessageText = "Would you like to install "+ "NetWareIP support?" NoLanAdapterInstalledTitle = "LAN Adapter not installed" NoLanAdapterInstalledText = "Novell IntranetWare Client for Windows NT could "+ "not detect either a LAN adapter or Remote Access WAN adapter "+ "to bind with." NoDiskSpaceTitle = "Not enough disk space" NoDiskSpaceText = "Novell IntranetWare Client for Windows NT detected that "+ "there is not enough free disk space on the system drive. There "+ "must be at least 10 megabytes of free disk space on the system drive." ShellCodeErrorTitle = "Error: Novell IntranetWare Client for Windows NT" ShellCodeErrorText = "Shell Code Error" WrongNTVersionMessage = "The Novell IntranetWare Client for Windows NT is not "+ "supported on this version of Windows NT." FunctionTitle = "Novell IntranetWare Client for Windows NT Setup" FunctionTitleSAM = "Novell NDS for NT Setup" LoadDisk1Text = "Please load the Novell IntranetWare Client for Windows NT "+ "disk 1 into drive " LoadDisk2Text = "Please load the Novell IntranetWare Client for Windows NT "+ "disk 2 into drive " LoadDisk3Text = "Please load the Novell IntranetWare Client for Windows NT "+ "disk 3 into drive " OldNetWareGroup = "NetWare" NetWareGroup = "IntranetWare" LoginIconText = "IntranetWare Login" ChangePasswordIconText = "IntranetWare Change Password" SendMessageIconText = "IntranetWare Send Message" ReadMeIconText = "ReadMe" HelpIconText = "IntranetWare Client for WinNT help" MigIconText = "Domain Object Wizard" DefaultLoginCaption = "Begin Login" [DoAskSourceENG] NetWareDlgText = "Please enter the full path to the Novell IntranetWare "+ "Client for Windows NT distribution files. Then choose Continue." [DialogConstantsENG] Help = "&Help" Exit = "&Cancel" OK = "&OK" HelpContext = "" Continue = "Con&tinue" Cancel = "&Cancel" Advanced = "&Advanced" IDH_NETWAREWRKSTATIONPARMS = 901 IDH_NETWAREIPXBIND = 902 IDH_IPXSPXPARMS = 903 IDH_NETWORKPROTOCOL = 904 IDH_NETWAREODISETTINGS = 905 IDH_NETWARECLIENTINSTALL = 906 IDH_NETWARENDISODI = 907 IDH_NODEADDRESSOVERIDE = 908 IDH_NWIP = 909 IDH_RESMGRCONFIG = 951 [OdinsupDlgENG] DlgType = "RadioCombination" DlgTemplate = "ONELIST" Caption = "IntranetWare NDIS over ODI (ODINSUP) Setup" Label1 = "Installed ODI Adapters" EditTextIn = "" EditTextLim = "" CBOptionsGreyed = {} HelpContext = $(IDH_NETWARENDISODI) ComboListItemsIn = { OdiTitleList } ComboListItemsOut = { DefaultOdiTitle } NotifyFields = { "NO" }