Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1138 lines
38 KiB

  1. ;
  2. ; Cairo.INF
  3. ;
  4. ;
  5. ; Temporary INF file where all Cairo-specific setup commands live.
  6. ;
  7. ;
  8. [DoCairoInitialization]
  9. set InitializationStatus = STATUS_SUCCESSFUL
  10. ;
  11. ; CAIRO BUGBUG: Initialize Cairo SCM
  12. ;
  13. ; Set PushDebugLevel = !G:DebugOutputControl
  14. ; set !G:DebugOutputControl = DebugCairoSteps
  15. ifstr(i) $(!STF_PRODUCT) != "WINNT"
  16. shell "cairo.inf" GetDrive
  17. ifstr(i) $($R0) != "STATUS_SUCCESSFUL"
  18. Debug-Output "NTCAIRO.INF: Failed to get OFS drive"
  19. read-syms FatalError20$(!STF_LANGUAGE)
  20. shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "FATAL" $(Fatal)
  21. ; goto setupnotdone
  22. set InitializationStatus = STATUS_FAILED
  23. Return $(InitializationStatus)
  24. Endif
  25. Debug-Output "CAIRO.INF: Starting RecOM/OFS"
  26. ;
  27. ; CAIRO BUGBUG: variable made public
  28. ;
  29. Set !ObjDrive = $($R1)
  30. shell "cairo.inf" RegSetEnvVar "CairoDrv" $(!ObjDrive)
  31. Debug-Output "NTCAIRO.INF: ObjDrive = "$(!ObjDrive)
  32. ;
  33. ; Remove the label from the drive so that format.com won't ask for it
  34. ;
  35. Debug-Output "NTCAIRO.INF: running label.exe"
  36. RunProgram RC "" "" $(!STF_WINDOWSSYSPATH)"\cmd.exe" /c $(!STF_WINDOWSSYSPATH)"\cmd.exe" /c $(!STF_WINDOWSSYSPATH)"\remlabel.cmd" $(!ObjDrive)
  37. Debug-Output "NTCAIRO.INF: label returned "$(RC)
  38. Shell "subroutn.inf" PushBillboard NETSTATUSDLG "Running format on "$(!ObjDrive)
  39. RunProgram RC "" "" $(!STF_WINDOWSSYSPATH)"\format.com" $(!ObjDrive) /fs:ofs /q
  40. Debug-Output "NTCAIRO.INF: Format returned "$(RC)
  41. Install Install-Create-Cairo-Dir
  42. Debug-Output "NTCAIRO.INF: Created directory "$(!ObjDrive)"\cairo"
  43. LoadLibrary "x" $(!STF_CWDDIR)setupdll.dll TMPHANDLE
  44. LibraryProcedure STATUS, $(TMPHANDLE), Delnode $(!ObjDrive)"\cairo\ds"
  45. FreeLibrary $(TMPHANDLE)
  46. Shell "subroutn.inf" PopBillboard
  47. Debug-Output "NTCAIRO.INF: Setting OLE to autostart"
  48. ; Moved to somewhere else
  49. ; shell "registry.inf" ModifyServicesEntry "OLE" $(!SERVICE_AUTO_START)
  50. ; shell "registry.inf" ModifyServicesEntry "CiFilter" $(!SERVICE_AUTO_START)
  51. ; set !G:DebugOutputControl = PushDebugLevel
  52. else
  53. Set !ObjDrive = $(!STF_NTDRIVE)
  54. Debug-Output "NTCAIRO.INF: ObjDrive = "$(!ObjDrive)
  55. shell "cairo.inf" RegSetEnvVar "CairoDrv" $(!ObjDrive)
  56. endif
  57. Debug-Output "NTCAIRO.INF: Initializing Cairo file"
  58. ifstr(i) $(!STF_NTPATH) == ""
  59. Debug-Output "!STF_NTPATH is NULL? "$(!STF_NTPATH)
  60. ifstr(i) $(!STF_WINDOWSPATH) == ""
  61. Debug-Output "WINDOWSPATH is NULL, too? "$(!STF_WINDOWSPATH)
  62. Else
  63. set CairoInstFile = $(!STF_WINDOWSPATH)"\CairoStd.ini"
  64. Endif
  65. Else
  66. set CairoInstFile = $(!STF_WINDOWSPATH)"\CairoStd.ini"
  67. Endif
  68. Debug-Output "NTCAIRO.INF: CairoInstFile set to: "$(CairoInstFile)
  69. shell "cairo.inf" UpdateCairoIniFile $(CairoInstFile) "Key" "Value"
  70. Debug-Output "NTCAIRO.INF: UpdateCairoInitFile returned "$($R0)
  71. shell "cairo.inf" UpdateCairoIniFile $(CairoInstFile) "ObjDrive" $(!ObjDrive)
  72. Return $(InitializationStatus)
  73. [GetCairoParams]
  74. set GetCairoParamsStatus = STATUS_FAILED
  75. ; set PushDebugLevel = !G:DebugOutputControl
  76. ; set !G:DebugOutputControl = DebugCairoSteps
  77. Debug-Output "NTCAIRO.INF: Getting uplevel password"
  78. ; shell "cairo.inf" GetDomainPassword
  79. ; ifstr(i) $($R0) == "STATUS_SUCCESSFUL"
  80. ; Set CairoDomainPassword = $($R1)
  81. ; else-ifstr(i) $($R0) == "STATUS_USE_DOWNLEVEL"
  82. ; Set CairoDomainPassword = $(!STF_PASSWORD)
  83. ; else
  84. ; goto SetupNotDone
  85. ; Endif
  86. Set !CairoDomainPassword = $(!STF_USERNAME)
  87. Debug-Output "NTCAIRO.INF: uplevel PW ="$(!CairoDomainPassword)
  88. Debug-Output "NTCAIRO.INF: Get Installation type"
  89. shell "cairo.inf" GetCairoInstallType
  90. ifstr(i) $($R0) == "STATUS_SUCCESSFUL"
  91. set !STF_DOMAIN_ROLE = $($R1)
  92. ifstr(i) $(!STF_PRODUCT) != "WINNT"
  93. ifstr(i) $(!STF_DOMAIN_ROLE) == "DC"
  94. set !STF_PRODUCT = "LANMANNT"
  95. else
  96. set !STF_PRODUCT = "SERVERNT"
  97. endif
  98. endif
  99. else
  100. goto endGetCairoParams
  101. Endif
  102. ifstr(i) $(!STF_DOMAIN_ROLE) == "DC"
  103. ;
  104. ; Get DC type
  105. shell "cairo.inf" GetDCType
  106. ifstr(i) $($R0) != "STATUS_SUCCESSFUL"
  107. goto endGetCairoParams
  108. endif
  109. ifstr $($R1) == ""
  110. goto endGetCairoParams
  111. else
  112. ;
  113. ; CAIRO BUGBUG: Variable made public
  114. ;
  115. set !DCType = $($R1)
  116. endif
  117. Debug-Output "NTCAIRO.INF: DC type is "$(!DCType)"."
  118. Endif
  119. ifstr(i) $(!STF_DOMAIN_ROLE) != STANDALONE
  120. Debug-Output "NTCAIRO.INF: Not standalone, so setting up domain"
  121. ;
  122. ; CAIRO BUGBUG: variable made global
  123. ;
  124. Set !AccountFile = $(!STF_WINDOWSSYSPATH)"\accounts.inf"
  125. Debug-Output "NTCAIRO.INF: Account file "$(!AccountFile)
  126. ; shell $(!AccountFile) setup $(!STF_USERNAME)
  127. shell "cairo.inf" GetCairoDomainAndOuLists
  128. ; ifint $($ShellCode) != $(!SHELL_CODE_OK)
  129. ; shell "cairo.inf" MsgBox "File: "$(!AccountFile)" is missing."+
  130. ; "User's DomainName must be entered manually"
  131. ; else-ifstr(i) $($R0) != STATUS_SUCCESSFUL
  132. ; shell "cairo.inf" MsgBox "Error: "+$($R0)" Accessing: "+$(!AccountFile)+
  133. ; "User's DomainName must be entered manually"
  134. ; else
  135. ;
  136. ; CAIRO BUGBUG: variable made public
  137. ;
  138. set !CairoDomainList = $($R1)
  139. set !CairoOuList = $($R2)
  140. Debug-Output "NTCAIRO.INF: CairoDomainList = "$(!CairoDomainList)
  141. Debug-Output "NTCAIRO.INF: CairoOuList = "$(!CairoOuList)
  142. ; endif
  143. shell "cairo.inf" GetCairoDomainPath $(!CairoDomainList) $(!CairoOuList)
  144. ifstr(i) $($R0) != "STATUS_SUCCESSFUL"
  145. goto endGetCairoParams
  146. endif
  147. ;
  148. ; CAIRO BUGBUG: variable made public
  149. ;
  150. set !CairoDomainName = $($R1)
  151. set !CairoOuName = $($R2)
  152. Debug-Output "NTCAIRO.INF: CairoDomainName = "$(!CairoDomainName)
  153. Debug-Output "NTCAIRO.INF: CairoOuName = "$(!CairoOuName)
  154. ifstr $(!CairoDomainName) == ""
  155. shell "cairo.inf" ErrMsg "Network domain not set! Aborting setup."
  156. goto endGetCairoParams
  157. endif
  158. ; Debug-Output "NTCAIRO.INF: setting workgroup from "$(CairoDomainName)
  159. ; RunProgram RC "" "" $(!STF_WINDOWSSYSPATH)"\SetDom.exe" $(CairoDomainName)
  160. Endif
  161. ; set !G:DebugOutputControl = PushDebugLevel
  162. set GetCairoParamsStatus = STATUS_SUCCESSFUL
  163. endGetCairoParams = +
  164. ; Return $(GetCairoParamsStatus)
  165. ;[DoCairoSetup]
  166. read-syms GeneralConstants
  167. ; read-syms BaseGeneralConstants
  168. ;
  169. ;
  170. ;
  171. ; LoadLibrary "x" $(!STF_CWDDIR)\ncpa.cpl NCPAHANDLE
  172. ; LibraryProcedure NCPA_RESULT $(NCPAHANDLE), CPlSetup $(!STF_HWND),+
  173. ; STARTSVC, "OLE"
  174. ; FreeLibrary $(NCPAHANDLE)
  175. set DoCairoSetupStatus = STATUS_FAILED
  176. ; set PushDebugLevel = !G:DebugOutputControl
  177. ; set !G:DebugOutputControl = DebugCairoSteps
  178. Debug-Output "NTCAIRO.INF: Disabling Netlogon"
  179. LoadLibrary "x" $(!STF_CWDDIR)setupdll.dll TMPHANDLE
  180. LibraryProcedure DontCare, $(TMPHANDLE), SetupChangeServiceConfig, NetLogon,+
  181. $(SERVICE_NO_CHANGE), 3, $(SERVICE_NO_CHANGE), "", "", "", "", "", ""
  182. FreeLibrary $(TMPHANDLE)
  183. Debug-Output "NTCAIRO.INF: Initializing Cairo file"
  184. ifstr(i) $(!STF_NTPATH) == ""
  185. Debug-Output "!STF_NTPATH is NULL? "$(!STF_NTPATH)
  186. ifstr(i) $(!STF_WINDOWSPATH) == ""
  187. Debug-Output "WINDOWSPATH is NULL, too? "$(!STF_WINDOWSPATH)
  188. Else
  189. set CairoInstFile = $(!STF_WINDOWSPATH)"\CairoStd.ini"
  190. Endif
  191. Else
  192. set CairoInstFile = $(!STF_WINDOWSPATH)"\CairoStd.ini"
  193. Endif
  194. Debug-Output "NTCAIRO.INF: CairoInstFile set to: "$(CairoInstFile)
  195. ; shell "cairo.inf" UpdateCairoIniFile $(CairoInstFile) "Key" "Value"
  196. ; Debug-Output "NTCAIRO.INF: UpdateCairoInitFile returned "$($R0)
  197. shell "cairo.inf" UpdateCairoIniFile $(CairoInstFile) "InstallType" $(!STF_DOMAIN_ROLE)
  198. shell "cairo.inf" UpdateCairoIniFile $(CairoInstFile) "UserName" $(!STF_USERNAME)
  199. shell "cairo.inf" UpdateCairoIniFile $(CairoInstFile) "DomainPassword" $(!CairoDomainPassword)
  200. shell "cairo.inf" UpdateCairoIniFile $(CairoInstFile) "MachineName" $(!STF_COMPUTERNAME)
  201. shell "cairo.inf" UpdateCairoIniFile $(CairoInstFile) "MachinePassword" $(!STF_COMPUTERNAME)
  202. shell "cairo.inf" UpdateCairoIniFile $(CairoInstFile) "MachineAddress" $(!STF_COMPUTERNAME)
  203. ; shell "cairo.inf" UpdateCairoIniFile $(CairoInstFile) "ObjDrive" $(!ObjDrive)
  204. shell "cairo.inf" UpdateCairoIniFile $(CairoInstFile) "InstallDir" "Cairo"
  205. shell "cairo.inf" UpdateCairoIniFile $(CairoInstFile) "DownlevelPassword" $(!STF_PASSWORD)
  206. shell "cairo.inf" UpdateCairoIniFile $(CairoInstFile) "DownlevelDomain" $(!STF_NTDOMAIN)
  207. Debug-Output "NTCAIRO.INF: Setup Installtype, Username, etc."
  208. ifstr(i) $(!STF_DOMAIN_ROLE) != STANDALONE
  209. shell "cairo.inf" UpdateCairoIniFile $(CairoInstFile) "CairoDomainName" $(!CairoDomainName)
  210. shell "cairo.inf" UpdateCairoIniFile $(CairoInstFile) "OuName" $(!CairoOuName)
  211. Endif
  212. ifstr $(!STF_DOMAIN_ROLE) == "DC"
  213. shell "cairo.inf" UpdateCairoIniFile $(CairoInstFile) "AdminGroupName" "AdminGroup"
  214. shell "cairo.inf" UpdateCairoIniFile $(CairoInstFile) "BackupGroupName" "BackupGroup"
  215. shell "cairo.inf" UpdateCairoIniFile $(CairoInstFile) "DCType" $(!DCType)
  216. endif
  217. Debug-Output "NTCAIRO.INF: running cairostd.exe"
  218. Shell "subroutn.inf" PushBillboard NETSTATUSDLG "Setting up base cairo "
  219. RunProgram RC "" "" $(!STF_WINDOWSSYSPATH)"\cairostd.exe" $(CairoInstFile)
  220. Shell "subroutn.inf" PopBillboard
  221. Debug-Output "cairostd.exe returned "$(RC)
  222. ifint $(RC) != 0
  223. shell "cairo.inf" MsgBox "Standalone returned "$(RC).
  224. goto CairoSetupNotDone
  225. endif
  226. ; RunProgram RC "" "" $(!STF_WINDOWSSYSPATH)"\credini.exe" -u $(!STF_USERNAME) -p ""$(!STF_PASSWORD)""
  227. ;
  228. ; ifstr(i) $(!STF_DOMAIN_ROLE) == STANDALONE
  229. ; set Status = STATUS_SUCCESS
  230. ; goto CairoSetupOuttaHere
  231. ; EndIf
  232. set DoReplicatedDC = 0
  233. ifstr(i) $(!STF_DOMAIN_ROLE) == SERVER
  234. set DoJoinDom = 1
  235. set DoMakeDc = 0
  236. Endif
  237. ifstr(i) $(!STF_DOMAIN_ROLE) == WORKSTATION
  238. set DoJoinDom = 1
  239. set DoMakeDc = 0
  240. EndIf
  241. ifstr(i) $(!STF_DOMAIN_ROLE) == DC
  242. ifcontains(i) $(!DCType) in {FirstDC}
  243. set DoJoinDom = 0
  244. set DoMakeDc = 1
  245. Else
  246. ; should be one of {ReplicaDC}
  247. set DoJoinDom = 1
  248. set DoMakeDc = 1
  249. set DoReplicatedDC = 1
  250. Endif
  251. Endif
  252. ifint $(DoJoinDom) == 1
  253. Debug-Output "NTCAIRO.INF: Trying to join domain "$(!CairoDomainName)
  254. Shell "subroutn.inf" PushBillboard NETSTATUSDLG "Setting up a Workstation...."
  255. RunProgram RC "" "" $(!STF_WINDOWSSYSPATH)"\joindom.exe" $(CairoInstFile)
  256. shell "subroutn.inf" PopBillboard
  257. ifint $(RC) != 0
  258. ifint $(RC) == 8
  259. shell "cairo.inf" MsgBox "Workstation Setup Failed. "+
  260. "This machine has no account on the DC. "+
  261. "Standalone Cairo is installed, but you will need to "+
  262. "run joindom once you have an account."
  263. else
  264. shell "cairo.inf" MsgBox "Standalone Cairo is installed, "+
  265. "but Workstation Setup failed. joindom returned "$(RC).
  266. endif
  267. goto CairoSetupDone
  268. endif
  269. Endif
  270. ifint $(DoMakeDc) == 1
  271. Debug-Output "NTCAIRO.INF: Running makedc (run for cover)"
  272. Shell "subroutn.inf" PushBillboard NETSTATUSDLG "Setting up a DC..."
  273. RunProgram RC "" "" $(!STF_WINDOWSSYSPATH)"\makedc.exe" $(CairoInstFile)
  274. Shell "subroutn.inf" PopBillboard
  275. ifint $(RC) != 0
  276. shell "cairo.inf" MsgBox "MakeDC failed with error "$(RC)
  277. goto CairoSetupOuttaHere
  278. Endif
  279. ; ifstr(i) $(!STF_DOMAIN_ROLE) == "DC"
  280. ; RunProgram RC "" "" $(!STF_WINDOWSSYSPATH)"\SetDom.exe" -sid $(CairoDomainName)
  281. ; endif
  282. ifint $(DoReplicatedDC) == 0
  283. Shell "subroutn.inf" PushBillboard NETSTATUSDLG "Creating account objects..."
  284. ; RunProgram RC "" "" $(!STF_WINDOWSSYSPATH)"\dsmgr.exe" -file $(!AccountFile)
  285. Shell "subroutn.inf" PopBillboard
  286. ifint $(RC) != 0
  287. shell "cairo.inf" MsgBox "DSMgr failed with error "$(RC)
  288. goto CairoSetupOuttaHere
  289. Endif
  290. ifstr(i) $(!CairoDomainName) == "\msft"
  291. RunProgram RC "" "" $(!STF_WINDOWSSYSPATH)"\cmd.exe" /c $(!STF_WINDOWSSYSPATH)\mountdl.cmd
  292. Endif
  293. Endif
  294. ; Create the global catalog
  295. ;
  296. ; SKIP creating the Global Catalog until the new summary catalog
  297. ; support catches up
  298. ;
  299. ; Shell "subroutn.inf" PushBillboard NETSTATUSDLG "Creating global catalog..."
  300. ;
  301. ; RunProgram RC "" "" $(!STF_WINDOWSSYSPATH)"\gcconfig.exe" -configure
  302. ; Shell "subroutn.inf" PopBillboard
  303. ;
  304. ; We don't carre about error condition. gcconfig.exe will take care of it
  305. ;
  306. ; ifint $(RC) != 0
  307. ; shell "cairo.inf" MsgBox "GCConfig failed with error "$(RC)
  308. ; goto CairoSetupOuttaHere
  309. ; Endif
  310. Endif
  311. CairoSetupDone = +
  312. ;
  313. ; setup alert system service
  314. ;
  315. shell "cairo.inf" DoAlertSystemSetup
  316. CairoSetupOuttaHere = +
  317. set DoCairoSetupStatus = STATUS_SUCCESSFUL
  318. Return $(DoCairoSetupStatus)
  319. ; goto $(retaddr)
  320. CairoSetupNotDone = +
  321. Return $(DoCairoSetupStatus)
  322. [DoCairoSetup]
  323. Return STATUS_SUCCESSFUL
  324. [Install-Create-Cairo-Dir]
  325. set STF_VITAL = ""
  326. CreateDir $(!ObjDrive)"\cairo"
  327. exit
  328. [GeneralConstants]
  329. Exit_Code = 0
  330. BillboardVisible = 0
  331. ;
  332. ; Return codes; Exit_Code is set to one of these
  333. ;
  334. ExitCodeOk = 0
  335. ExitCodeCancel = 1
  336. ExitCodeFatal = 2
  337. ;
  338. ; Program flow control variables.
  339. ;
  340. retaddr = ""
  341. callresult = 0
  342. from = ""
  343. to = ""
  344. ;
  345. ; Location of netcard product information
  346. ;
  347. NetworkCardKeyName = $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards"
  348. KeyNull = ""
  349. MAXIMUM_ALLOWED = 33554432
  350. SERVICE_NO_CHANGE = 4294967295
  351. KeyInfo = {}
  352. NoTitle = 0
  353. UtilityInf = "UTILITY.INF"
  354. NcParamInf = "NCPARAM.INF"
  355. RasAutoInstall = 0
  356. ComputerNameKeyName = "SYSTEM\CurrentControlSet\Control\ComputerName"
  357. [OfsVars]
  358. OfsChoiceList = {} ? $(!SETUPHANDLE) GetHardDriveLetters
  359. OfsChoiceFSList = {} ? $(!SETUPHANDLE) GetHardDriveFileSystems
  360. OfsChoiceSizeList = <> ? $(!SETUPHANDLE) GetHardDriveTotalSpace
  361. [RegistryConstants]
  362. MaskAllAccess = 33554432
  363. NoTitle = 0
  364. RegLastError = $(!REG_ERROR_SUCCESS)
  365. [RegisterOle2Files]
  366. Shell "subroutn.inf" PushBillboard NETSTATUSDLG "Running REGINI on Cairo .reg files ..."
  367. Set RegFileList = ^(RegIniFiles,1)
  368. ForListDo $(RegFileList)
  369. Set RegFiles = $(RegFiles)" "$(!STF_WINDOWSPATH)"\dump\"*($(RegFileList), $(#))
  370. EndForListDo
  371. Debug-Output "NTCAIRO.INF: Reg file list is "$(RegFiles)
  372. ; RunProgram RC "" "" $(!STF_WINDOWSSYSPATH)"\cmd.exe" /c for %i in (%SystemRoot%\dump\*.reg) do regini %i >> %systemroot%\cairoreg.out
  373. RunProgram RC "" "" $(!STF_WINDOWSPATH)"\idw\regini.exe" $(RegFiles)
  374. Debug-Output "NTCAIRO.INF: Regini returned "$(RC)
  375. Shell "subroutn.inf" PopBillboard
  376. Return 0
  377. [GetCairoInstallType]
  378. CairoInstallType =+
  379. set Status = STATUS_FAILED
  380. ifstr(i) $(!STF_PRODUCT) == Winnt
  381. read-syms GCITWK$(!STF_LANGUAGE)
  382. else
  383. read-syms GCITAS$(!STF_LANGUAGE)
  384. endif
  385. ui start "Diskette"
  386. ifstr(i) $(DLGEVENT) == "CONTINUE"
  387. ui pop 1
  388. ifstr(i) $(ListItemsOut) == ""
  389. set Status = STATUS_USERCANCEL
  390. else
  391. set CairoOptionChosenText = $(ListItemsOut)
  392. set Status = STATUS_SUCCESSFUL
  393. goto verify_CairoOption
  394. endif
  395. else-ifstr(i) $(DLGEVENT) == "BACK"
  396. ui pop 1
  397. set Status = STATUS_USERCANCEL
  398. goto finish_CairoOption
  399. else
  400. ui pop 1
  401. set Status = STATUS_FAILED
  402. goto finish_CairoOption
  403. endif
  404. verify_CairoOption = +
  405. read-syms VerifyInstallDlg$(!STF_LANGUAGE)
  406. ui start "VerifyName"
  407. ifstr(i) $(DLGEVENT) == "CONTINUE"
  408. set Status = STATUS_SUCCESSFUL
  409. ui pop 1
  410. goto finish_CairoOption
  411. else-ifstr(i) $(DLGEVENT) == "BACK"
  412. ui pop 1
  413. goto CairoInstallType
  414. else-ifstr(i) $(DLGEVENT) == "EXIT"
  415. shell "subroutn.inf" QueryUserQuit $(!STF_LANGUAGE)
  416. ifstr(i) $($R1) == "OK"
  417. set Status = STATUS_USERQUIT
  418. ui pop 1
  419. goto finish_CairoOption
  420. else
  421. goto verify_CairoOption
  422. endif
  423. else
  424. ui pop 1
  425. goto finish_CairoOption
  426. endif
  427. finish_CairoOption = +
  428. Return $(Status) $(CairoOptionChosenText)
  429. ;$(CairoOptionChosen)
  430. [GetPrimaryUser]
  431. set Status = STATUS_FAILED
  432. set Password = ""
  433. set Username = ""
  434. set NtDomain = "REDMOND"
  435. primuser= +
  436. read-syms PrimaryUserDlg$(!STF_LANGUAGE)
  437. EndWait
  438. ui start "GetUser"
  439. ifstr(i) $(DLGEVENT) == "CONTINUE"
  440. ifstr(i) *($(EditTextOut), 1) == ""
  441. read-syms NonFatalError15$(!STF_LANGUAGE)
  442. shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(NonFatal)
  443. set ReInit = NO
  444. goto primuser
  445. endif
  446. set Name = *($(EditTextOut), 1)
  447. ifstr(i) $(STATUS) == NO
  448. read-syms NonFatalError14$(!STF_LANGUAGE)
  449. shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(NonFatal)
  450. set ReInit = NO
  451. goto primuser
  452. endif
  453. set Username = *($(EditTextOut), 1)
  454. set NtDomain = *($(EditTextOut), 2)
  455. ifstr *($(EditTextOut), 3) == *($(EditTextOut), 4)
  456. ifstr(i) *($(EditTextOut), 3) == ""
  457. read-syms Warning3$(!STF_LANGUAGE)
  458. shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "WARNING" $(Warning)
  459. ifstr(i) $($R0) != STATUS_SUCCESSFUL
  460. else
  461. ifstr(i) $($R1) == "OK"
  462. else
  463. set ReInit = NO
  464. goto primuser
  465. endif
  466. endif
  467. endif
  468. set Password = *($(EditTextOut), 3)
  469. ui pop 1
  470. set Status = STATUS_SUCCESSFUL
  471. goto finish_primuser
  472. else
  473. read-syms NonFatalError10$(!STF_LANGUAGE)
  474. shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(NonFatal)
  475. set DefEditCtl = 1
  476. set ReInit = YES
  477. goto primuser
  478. endif
  479. else-ifstr(i) $(DLGEVENT) == "BACK"
  480. read-syms Warning2$(!STF_LANGUAGE)
  481. shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "WARNING" $(Warning)
  482. ifstr(i) $($R0) != STATUS_SUCCESSFUL
  483. ui pop 1
  484. set Status = STATUS_USERCANCEL
  485. goto finish_primuser
  486. endif
  487. ifstr(i) $($R1) == "OK"
  488. set Status = STATUS_USERCANCEL
  489. ui pop 1
  490. goto finish_primuser
  491. else
  492. set ReInit = NO
  493. goto primuser
  494. endif
  495. else
  496. ui pop 1
  497. goto finish_primuser
  498. endif
  499. finish_primuser = +
  500. StartWait
  501. Return $(Status) $(Username) $(Password) $(NtDomain)
  502. [GCITENG]
  503. DlgType = List
  504. DlgTemplate = "OEMSINGLESEL"
  505. Caption = "Select Cairo Install Option"
  506. DlgText = "Choose Install Type. When in doubt choose "+
  507. "Cairo Standalone option."
  508. Continue = "OK"
  509. Cancel = "Cancel"
  510. Help = "Help"
  511. CairoOptions = {DC, Server, Standalone, Workstation}
  512. ListItemsIn = $(CairoOptions)
  513. ListItemsOut = "Workstation"
  514. [GCITWKENG]
  515. DlgType = List
  516. DlgTemplate = "OEMSINGLESEL"
  517. Caption = "Select Cairo Install Option"
  518. DlgText = "Choose Install Type. When in doubt choose "+
  519. "Cairo Standalone option."
  520. Continue = "OK"
  521. Cancel = "Cancel"
  522. Help = "Help"
  523. CairoOptions = {Standalone, Workstation}
  524. ListItemsIn = $(CairoOptions)
  525. ListItemsOut = "Workstation"
  526. [GCITASENG]
  527. DlgType = List
  528. DlgTemplate = "OEMSINGLESEL"
  529. Caption = "Select Cairo Install Option"
  530. DlgText = "Choose Install Type. When in doubt choose "+
  531. "Cairo Standalone option."
  532. Continue = "OK"
  533. Cancel = "Cancel"
  534. Help = "Help"
  535. CairoOptions = {DC, Server}
  536. ListItemsIn = $(CairoOptions)
  537. ListItemsOut = "DC"
  538. [VerifyInstallDlgENG]
  539. Caption = "Cairo Setup"
  540. DlgText = "Please verify that the install type is correct."$(!LF)$(!LF)+
  541. "Don't install a DC unless you are positive."$(!LF)$(!LF)+
  542. "If you would like to change it, choose Change. "+
  543. "Otherwise choose Continue."
  544. Static1Label = "Install Type:"
  545. Static1Text = $(CairoOptionChosenText)
  546. Continue = "Continue"
  547. Cancel = "&Change"
  548. Help = "&Help"
  549. Exit = "E&xit Setup"
  550. DlgType = "Info"
  551. DlgTemplate = "VERIFY_COMPUTER_NAME"
  552. HelpContext = $(!IDH_DB_COMPUTERNAMEV_INS)
  553. ;-----------------------------------------------------------------------
  554. ; ROUTINE: DoAlertSystemSetup
  555. ;
  556. ; DESCRIPTION: Call Alert System Service Config routine
  557. ;
  558. ; INPUTS: none
  559. ;
  560. ; OUTPUTS: $R0: STATUS_SUCCESSFUL |
  561. ; STATUS_FAILED
  562. ;
  563. ; NOTES: this will call AlertSys.Dll and request further setup from it.
  564. ; only during fresh install (NOT YET BUT SOON)
  565. ;
  566. ; A temporary fix was made to modify the AlertSystem so that it does
  567. ; not autostart during GUI mode since it's only dependant, OLE, will not start
  568. ; since it's implied dependant (EventLog) is not started so OLE terminates.
  569. ; So during GUI mode we then set the AlertSystem to to autostart.
  570. ; When 3.51 ships, OLE will then have a dependant of the event log
  571. ; and then this temporary change can be undone.
  572. ;
  573. ;
  574. ;------------------------------------------------------------------------
  575. [DoAlertSystemSetup]
  576. ;
  577. ; initialize vars
  578. ;
  579. set Status = STATUS_SUCCESSFUL
  580. set CFG_HANDLE = ""
  581. set NCPA_HANDLE = ""
  582. ;
  583. ; set AlertSystem to autostart since OLE was not autostart but is now
  584. ;
  585. shell "registry.inf" ModifyServicesEntry "AlertSystem" $(!SERVICE_AUTO_START)
  586. ;
  587. ; only do this on fresh install
  588. ;
  589. ifstr(i) $(!STF_NTUPGRADE) != YES
  590. ;
  591. ; start the AlertSystem service
  592. ;
  593. LoadLibrary "x" $(!STF_CWDDIR)\ncpa.cpl NCPA_HANDLE
  594. ; but first start the event log, since OLE will not but it does require it
  595. ; LibraryProcedure NCPA_RESULT $(NCPA_HANDLE), CPlSetup $(!STF_HWND), STARTSVC, EventLog
  596. ; Set STATUS = *($(NCPA_RESULT),1)
  597. ; ifstr(i) $(STATUS) != "0"
  598. ; Debug-Output "Cairo.INF: [DoAlertSystemSetup] EventLog failed to start"
  599. ; endif
  600. ;
  601. ; now start the alertsystem
  602. ;
  603. LibraryProcedure NCPA_RESULT $(NCPA_HANDLE), CPlSetup $(!STF_HWND), STARTSVC, AlertSystem
  604. Set STATUS = *($(NCPA_RESULT),1)
  605. ifstr(i) $(STATUS) != "0"
  606. Debug-Output "Cairo.INF: [DoAlertSystemSetup] AlertSystem failed to start"
  607. endif
  608. FreeLibrary $(NCPA_HANDLE)
  609. ;
  610. ; call alert config routine
  611. ;
  612. LoadLibrary "x" $(!STF_CWDDIR)\AlertSys.dll CFG_HANDLE
  613. LibraryProcedure Result $(CFG_HANDLE) SetupAlertSystem
  614. ifstr(i) *($(Result),1) != SUCCESS
  615. Status = STATUS_FAILED
  616. Debug-Output "Cairo.INF: [DoAlertSystemSetup] "*($(Result),2)
  617. Endif
  618. FreeLibrary $(CFG_HANDLE)
  619. Endif
  620. Return $(Status)
  621. ;-----------------------------------------------------------------------
  622. ; ROUTINE: GetDrive
  623. ;
  624. ; DESCRIPTION: Get the drive letter of the object storage location
  625. ;
  626. ; INPUTS: none
  627. ;
  628. ; OUTPUTS: $R0: STATUS_SUCCESSFUL |
  629. ; STATUS_FAILED |
  630. ; STATUS_USERQUIT
  631. ; $R1: the drive letter.
  632. ;------------------------------------------------------------------------
  633. [GetDrive]
  634. set Status = STATUS_FAILED
  635. LoadLibrary "x" $(!STF_CWDDIR)setupdll.dll !SETUPHANDLE
  636. read-syms OfsVars
  637. detect OfsVars
  638. FreeLibrary $(!SETUPHANDLE)
  639. Set DriveDisplayList = {}
  640. ; Choose an existing OFS drive, or the last in the list
  641. ForListDo $(OfsChoiceList)
  642. Set DriveDisplayList = >($(DriveDisplayList), *($(OfsChoiceList), $(#))" "*($(OfsChoiceFSList), $(#))" "*($(OfsChoiceSizeList), $(#))" MB")
  643. ifstr(i) *($(OfsChoiceFSList), $(#)) == "OFS"
  644. set OfsDefaultChoice = *($(DriveDisplayList), $(#))
  645. else-ifstr(i) $(OfsDefaultChoice) == ""
  646. set OfsDefaultChoice = *($(DriveDisplayList), $(#))
  647. endif
  648. EndForListDo
  649. display_getdrive_dlg = +
  650. read-syms OfsDriveDlg
  651. ui start "Diskette"
  652. ifstr(i) $(DLGEVENT) == "CONTINUE"
  653. ui pop 1
  654. ifstr(i) $(ListItemsOut) == ""
  655. set Status = STATUS_USERCANCEL
  656. else
  657. set DrvIndex = ~($(DriveDisplayList), $(ListItemsOut))
  658. set OfsDriveChosen = *($(OfsChoiceList), $(DrvIndex))
  659. set Status = STATUS_SUCCESSFUL
  660. endif
  661. goto finish_getdrive
  662. else-ifstr(i) $(DLGEVENT) == "BACK"
  663. read-syms NonFatalError16$(!STF_LANGUAGE)
  664. shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "NONFATAL" $(NonFatal)
  665. goto display_getdrive_dlg
  666. ; ui pop 1
  667. ; set Status = STATUS_USERCANCEL
  668. ; goto finish_getdrive
  669. else
  670. ui pop 1
  671. set Status = STATUS_FAILED
  672. goto finish_getdrive
  673. endif
  674. finish_getdrive = +
  675. Return $(Status) $(OfsDriveChosen)
  676. [RegSetEnvVar]
  677. read-syms RegistryConstants
  678. set Status = STATUS_FAILED
  679. ; Get the registry handle to the environment string storage.
  680. set KeyName = "System\CurrentControlSet\Control\Session Manager\Environment"
  681. OpenRegKey $(!REG_H_LOCAL) "" $(KeyName) $(MaskAllAccess) KeyHandle
  682. ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  683. shell "cairo.inf" ErrMsg "Could not get registy key handle for the "+
  684. "Environment. Error = "$(RegLastError)
  685. Return $(Status)
  686. endif
  687. ; Set the environment variable.
  688. set ValueInfo = {$($0), $(NoTitle), $(!REG_VT_EXPAND_SZ), $($1)}
  689. SetRegValue $(KeyHandle) $(ValueInfo)
  690. ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  691. shell "cairo.inf" ErrMsg "Couldn't set "$($0)" variable! Error = "+
  692. $(RegLastError)
  693. goto CloseReg
  694. endif
  695. ; Read the env var setting just to be sure it was set correctly.
  696. GetRegValue $(KeyHandle) $($0) Value
  697. ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
  698. shell "cairo.inf" ErrMsg "Couldn't read the "$($0)" value! Error = "+
  699. $(RegLastError)
  700. goto CloseReg
  701. endif
  702. ifstr(i) *($(Value), 4) != $($1)
  703. shell "cairo.inf" ErrMsg "Environment variable "$($0)" not set "+
  704. "correctly."
  705. goto CloseReg
  706. endif
  707. set Status = STATUS_SUCCESSFUL
  708. CloseReg =+
  709. CloseRegKey $(KeyHandle)
  710. Return $(Status)
  711. [ErrMsg]
  712. read-syms ErrMsgDlg$(!STF_LANGUAGE)
  713. ui start "InfoMsg"
  714. Return
  715. [ErrMsgDlgENG]
  716. DlgType = "MessageBox"
  717. STF_MB_TITLE = "Cairo Setup Error"
  718. STF_MB_TEXT = $($0)
  719. STF_MB_ICON = 3
  720. STF_MB_TYPE = 1
  721. STF_MB_DEF = 1
  722. [MsgBox]
  723. read-syms MsgBoxDlg$(!STF_LANGUAGE)
  724. ui start "InfoMsg"
  725. Return
  726. [MsgBoxDlgENG]
  727. DlgType = "MessageBox"
  728. STF_MB_TITLE = "Cairo Setup Message"
  729. STF_MB_TEXT = $($0)
  730. STF_MB_ICON = 5
  731. STF_MB_TYPE = 1
  732. STF_MB_DEF = 1
  733. ;-----------------------------------------------------------------------
  734. ; ROUTINE: GetCairoDomainPath
  735. ;
  736. ; DESCRIPTION: Get the user's network domain name.
  737. ;
  738. ; INPUTS: The global var CairoDomainPath
  739. ;
  740. ; OUTPUTS: $R0: STATUS_SUCCESSFUL |
  741. ; STATUS_FAILED |
  742. ; STATUS_USERQUIT
  743. ; $R1: the domain name.
  744. ;------------------------------------------------------------------------
  745. [GetCairoDomainPath]
  746. set Status = STATUS_FAILED
  747. read-syms CairoDomainDlg$(!STF_LANGUAGE)
  748. CairoDomainDlg =+
  749. ui start "QueryDomain"
  750. ifstr(i) $(DLGEVENT) == "CONTINUE"
  751. set Value = $(Combo1Out)
  752. ui pop 1
  753. ifstr $(Value) == ""
  754. shell "" ErrMsg "Empty domain name! Please enter a domain name."
  755. goto CairoDomainDlg
  756. endif
  757. install CheckIsInvalidName
  758. shell "" DbgMsg "IsInvalidName = "$(IsInvalidName)
  759. ifstr(i) $(IsInvalidName) == YES
  760. shell "" ErrMsg "Invalid domain name entered. Please reenter."
  761. goto CairoDomainDlg
  762. endif
  763. set Value = $(Combo2Out)
  764. ifstr $(Value) == ""
  765. shell "" ErrMsg "Empty Ou name! Please enter an Ou name."
  766. goto CairoDomainDlg
  767. endif
  768. install CheckIsInvalidName
  769. shell "" DbgMsg "IsInvalidName = "$(IsInvalidName)
  770. ifstr(i) $(IsInvalidName) == YES
  771. shell "" ErrMsg "Invalid domain name entered. Please reenter."
  772. goto CairoDomainDlg
  773. endif
  774. set Value1 = $(Combo1Out)
  775. set Value2 = $(Combo2Out)
  776. set Status = STATUS_SUCCESSFUL
  777. else-ifstr(i) $(DLGEVENT) == "EXIT"
  778. shell "" QueryUserQuit
  779. ifstr(i) $($R0) == "OK"
  780. ui pop 1
  781. set Status = STATUS_USERQUIT
  782. else
  783. goto CairoDomainDlg
  784. endif
  785. endif
  786. return $(Status) $(Value1) $(Value2)
  787. [CairoDomainDlgENG]
  788. Caption = "Enter Cairo Domain Name and Ou Name"
  789. Continue = "&Continue"
  790. Cancel = "&Cancel"
  791. Help = "Helpless"
  792. Combo1Label = "&Domain Name:"
  793. Combo2Label = "&Ou Name:"
  794. DlgType = "MultiCombo"
  795. DlgTemplate = "M_SYSTEM_CAIRO"
  796. Combo1List = $(!CairoDomainList)
  797. Combo2List = $(!CairoOuList)
  798. ComboListItemsIn = { Combo1List, Combo2List }
  799. ComboListItemsOut = { Combo1Out, Combo2Out }
  800. Combo1Out = *( $(Combo1List), 1 )
  801. Combo2Out = *( $(Combo2List), 1 )
  802. DlgText = "Please enter the path of your cairo domain, and Ou name. "+
  803. "Then press Continue."
  804. ; Edit1Label = "&Domain Name:"
  805. ; EditTextLim = 50
  806. ; EditTextIn = $(!CairoDomainName)
  807. ;-----------------------------------------------------------------------
  808. ; ROUTINE: UpdateCairoIniFile
  809. ;
  810. ; DESCRIPTION: Writes out interesting information into a .ini file
  811. ;
  812. ; INPUTS: $0: Name of ini file
  813. ;
  814. ; $1: Key name
  815. ;
  816. ; $2: Key value
  817. ;
  818. ; OUTPUTS: $R0: STATUS_SUCCESSFUL on completion
  819. ;------------------------------------------------------------------------
  820. [UpdateCairoIniFile]
  821. set Status = STATUS_SUCCESSFUL
  822. install FirstPassUpdIni
  823. return $(Status)
  824. [FirstPassUpdIni]
  825. CreateIniKeyValue $($0), "FirstPass" , $($1), $($2), O, V
  826. exit
  827. ;-----------------------------------------------------------------------
  828. ; ROUTINE: GetDomainPassword
  829. ;
  830. ; DESCRIPTION: Get the user's network domain password.
  831. ;
  832. ; INPUTS: None
  833. ;
  834. ; OUTPUTS: $R0: STATUS_SUCCESSFUL |
  835. ; STATUS_FAILED |
  836. ; STATUS_USERQUIT
  837. ; $R1: the domain password.
  838. ;------------------------------------------------------------------------
  839. [GetDomainPassword]
  840. set Status = STATUS_FAILED
  841. read-syms DPasswordDlg$(!STF_LANGUAGE)
  842. PwDlg =+
  843. ui start "QueryPassword"
  844. ifstr(i) $(DLGEVENT) == "CONTINUE"
  845. ifstr *($(EditTextOut), 1) == *($(EditTextOut), 2)
  846. set Value = *($(EditTextOut), 1)
  847. ui pop 1
  848. ; Check name validity if non-null. Null is allowed.
  849. ifstr $(Value) != ""
  850. install CheckIsInvalidName
  851. ifstr(i) $(IsInvalidName) == YES
  852. shell "" ErrMsg "Invalid Cairo password entered. Please reenter."
  853. goto PwDlg
  854. endif
  855. endif
  856. set DPassword = $(Value)
  857. set Status = STATUS_SUCCESSFUL
  858. else
  859. ui pop 1
  860. shell "" MsgBox "The entered passwords don't match! "+
  861. "Please reenter them again."
  862. goto PwDlg
  863. endif
  864. else-ifstr(i) $(DLGEVENT) == "EXIT"
  865. shell "" QueryUserQuit
  866. ifstr(i) $($R0) == "OK"
  867. ui pop 1
  868. set Status = STATUS_USERQUIT
  869. else
  870. goto PwDlg
  871. endif
  872. else-ifstr(i) $(DLGEVENT) == "HELP"
  873. set Status = STATUS_USE_DOWNLEVEL
  874. endif
  875. return $(Status) $(DPassword)
  876. [DPasswordDlgENG]
  877. DlgType = "MultiEdit"
  878. DlgTemplate = "QUERY_PASSWORD"
  879. Caption = "Enter Cairo Password"
  880. DlgText = "Please enter the password that is valid for Cairo Domain."+
  881. "For now it is same as your user name (email name). "+
  882. "Confirm Password field. Then press Continue."
  883. Edit1Label = "&Password:"
  884. Edit2Label = "&Confirm Password:"
  885. Continue = "&Continue"
  886. Help = "&Use Downlevel"
  887. Exit = "E&xit Setup"
  888. EditTextLim = {15, 15}
  889. EditTextIn = {"", ""}
  890. ;-----------------------------------------------------------------------
  891. ; ROUTINE: GetDCType
  892. ;
  893. ; DESCRIPTION: Get the type of cairo DC
  894. ;
  895. ; INPUTS: none
  896. ;
  897. ; OUTPUTS: $R0: STATUS_SUCCESSFUL |
  898. ; STATUS_FAILED |
  899. ; STATUS_USERQUIT
  900. ; $R1: the DC type
  901. ;------------------------------------------------------------------------
  902. [GetDCType]
  903. gDCType =+
  904. set Status = STATUS_FAILED
  905. read-syms GDCT$(!STF_LANGUAGE)
  906. ui start "Diskette"
  907. ifstr(i) $(DLGEVENT) == "CONTINUE"
  908. ui pop 1
  909. ifstr(i) $(ListItemsOut) == ""
  910. set Status = STATUS_USERCANCEL
  911. else
  912. set CairoOptionChosenText = $(ListItemsOut)
  913. set CairoOptionChosen = *($($0), ~($(ListItemsIn), $(ListItemsOut)))
  914. shell "" YNQueryBox "DC Type:"$(!LF)" "$(CairoOptionChosenText)$(!LF)+
  915. "Is this correct?" 1
  916. ifstr(i) $($R0) == "no"
  917. goto gDCType
  918. endif
  919. ifstr(i) $($R0) == STATUS_USERQUIT
  920. set Status = STATUS_USER
  921. else
  922. set Status = STATUS_SUCCESSFUL
  923. endif
  924. endif
  925. goto finish_DCOption
  926. else-ifstr(i) $(DLGEVENT) == "BACK"
  927. ui pop 1
  928. set Status = STATUS_USERCANCEL
  929. goto finish_DCOption
  930. else
  931. ui pop 1
  932. set Status = STATUS_FAILED
  933. goto finish_DCOption
  934. endif
  935. finish_DCOption = +
  936. Return $(Status) $(CairoOptionChosenText)
  937. ;$(CairoOptionChosen)
  938. [GDCTENG]
  939. DlgType = List
  940. DlgTemplate = "OEMSINGLESEL"
  941. Caption = "Select DC Type"
  942. DlgText = "Choose DC Type. When in doubt choose "+
  943. "FirstDC option."
  944. Continue = "OK"
  945. Cancel = "Cancel"
  946. Help = "Help"
  947. CairoOptions = {FirstDC, ReplicaDC}
  948. ListItemsIn = $(CairoOptions)
  949. ListItemsOut = "FirstDC"
  950. [OfsDriveDlg]
  951. Caption = "Select Cairo Object Drive"
  952. DlgText = "WARNING: The drive you select will be formatted for OFS"
  953. Continue = "&Format"
  954. Cancel = "Cancel"
  955. Help = "&Help"
  956. DlgType = List
  957. DlgTemplate = "OEMSINGLESEL"
  958. HelpContext = $(!IDH_DB_SEARCHDRIVE_INS)
  959. ListItemsIn = $(DriveDisplayList)
  960. ListItemsOut = $(OfsDefaultChoice)
  961. [AlertSystemENG]
  962. AlertServDisplayName = "Alert System"
  963. [PrimaryUserDlgENG]
  964. Caption = "Primary User Information"
  965. DlgText = "Please enter the Primary User's name and the user's "+
  966. "NT domain and password here. The username must be 20 "+
  967. "characters or less and the password must be 14 characters "+
  968. "or less. Reenter the password in the Confirm Password "+
  969. "field. "
  970. Edit1Label = "&Username:"
  971. GroupLabel = "NT Credentials"
  972. Edit2Label = "&NT Domain:"
  973. Edit3Label = "&NT Password:"
  974. Edit4Label = "&Confirm NT Password:"
  975. Continue = "Continue"
  976. Cancel = "Cancel"
  977. Help = "&Help"
  978. Exit = "E&xit Setup"
  979. DlgType = "MultiEdit"
  980. DlgTemplate = "PRIMARY_USER_SETUP"
  981. HelpContext = $(!IDH_DB_ACCOUNTSETUP_INS)
  982. EditTextLim = {20, 20, 14, 14}
  983. EditTextIn = {$(Username), $(NtDomain), "", ""}
  984. [FatalError20ENG]
  985. Fatal = "Failed to get OFS Drive."
  986. [NonFatalError10ENG]
  987. NonFatal = "The Password and the Confirm Password fields are different. "+
  988. "Please enter both fields again."
  989. [NonFatalError14ENG]
  990. NonFatal = "Usernames may not start or end with a space, "+
  991. "and the following characters are not allowed:"$(!LF)+
  992. "/ \ [ ] "" : ; | < > + = , ? *"
  993. [NonFatalError15ENG]
  994. NonFatal = "You must enter a Username to set up a local account"
  995. [NonFatalError16ENG]
  996. NonFatal = "You must select a drive to contiue the installation." +
  997. "If you select an existing OFS drive, but do not want reformat " +
  998. "the drive, then you should cancel the format utility when it asks " +
  999. "you to confirm the operation."
  1000. [Warning2ENG]
  1001. Warning = "No local account will be set up."
  1002. [Warning3ENG]
  1003. Warning = "No password has been entered. Choose OK to leave the "+
  1004. "password blank, or Cancel if you want to enter a password."
  1005. [RegIniFiles]
  1006. ofs.reg
  1007. dsys.reg
  1008. account.reg
  1009. dfs.reg
  1010. dfsprov.reg
  1011. dsobjs.reg
  1012. samp32.reg
  1013. repl.reg
  1014. sc.reg
  1015. sysmgmt.reg
  1016. cxxflt.reg
  1017. [GetCairoDomainAndOuLists]
  1018. read-syms header
  1019. return STATUS_SUCCESSFUL $(validdomains) $(validous)
  1020. [header]
  1021. ; this is where file constants go
  1022. version = 2
  1023. domainprefix =
  1024. validdomains = { \msft, \swat }
  1025. validous = { redmond\bsd\dev, redmond\bsd\test, redmond\bsd\progman, redmond\bsd\admin, redmond\bsd\usered, redmond\bsd\marketing, redmond\bsd\misc, redmond\bsd\stress, redmond\bsd, redmond\bsd\cairo, redmond }
  1026. validgroups = { DomainAdmins, DomainUsers, Dsys, Ofs, Net, Base, Shell, RpcOle, ACT }