Thursday, September 21, 2006

SNTT - Doing a multi-user install of Lotus Notes 7.01 on Windows Terminal Services 2003 - Part 1

Throughout Notes' long history there has been pretty much one way to do multi-user installs: create separate Location documents for each user that points to their own bookmarks.nsf and ID files and the users change locations to log in as the different users.

That worked fine when it was essentially a shared terminal, with people working different shifts. Then along came Windows Terminal Services (WTS). Since you have numerous people all logged in at once this approach doesn't work. To address this scenario, IBM published a RedBook describing a new process. In a nutshell, you install Notes to the server and put the data directory on the user's home directory, which is typically mapped as H:. Next you create a shortcut to nlnotes.exe and set it to start in the user's home directory, such as H:\Lotus\Notes\Data. This works, but every time you upgrade you have to be careful to copy over all the new files, replacing the old ones, and bookmark.nsf in particular could be a pain to handle.

In my organization we used the old method on our WTS servers when we were on R5, and then migrated our 80 users to R6 and did another upgrade to 6.5. Each time we did the upgrade manually and three people spent most of a weekend at work copying files and validating the install for every user. It was pretty painful and not something we wanted to repeat. There are ways to create scripts to make it easier, but it's still a time-consuming and error-prone process.

Enter multi-user setup. With a multi-user installation the program and template files are stored in a location accessible to all users. But each user's personal files, such as names.nsf, bookmarks.nsf and their ID, are stored in C:\Documents and Settings\[username]\Application Data\Local Settings\Lotus\Notes\Data. Each user runs the Notes setup and it creates the files they need. When you do an upgrade, you just run setup the same as you would for a single-user install and you're done.

Getting a multi-user install to work on WTS the first time does take some effort. It also requires some manual tweaking, which I discovered after I ran the install, double-clicked the icon and nothing happened. Well the splash screen popped up, then went away, so I guess something happened. I went digging on Notes.Net and found this post by Christopher E. Stevens, which describes how to make it work. The instructions provided were for Notes 6.0 and Windows 2000, but I'm working with Windows Server 2003 and the steps are slightly different so I'll document them here.

The following instructions assume you used all the default paths for installing Windows and Notes. If you changed any of those, adjust them accordingly below.

Install Notes.
  1. Insert the Notes client CD and select the option to Install Notes 7.01. It must be the regular Notes client CD, the CD that has Designer and Administrator on it will not work. I don't know if the download from Passport Advantage will work or not, I ordered the CD to get the InstallShield Tuner so I just used it.
  2. The regular WTS software installation dialog will pop up in the background, ignore it for now.
  3. Treat this as a regular install until you get to the prompt asking whether this is for the current user or all users. Select all users, then continue through a regular install.
  4. When finished close the WTS software installation dialogs.
  5. Do not launch Notes yet!
Create the base notes.ini
  1. Open C:\Windows\notes.ini in Notepad.
  2. Select everything in the file and delete it.
  3. Paste in the following:
    [Notes]
    KitType=1
    SharedDataDirectory=C:\Documents and Settings\All Users\Application Data\Lotus\Notes\Data\Shared
    InstallType=6
  4. Save and close the file.
  5. Move (not copy) the file you just edited to C:\Documents and Settings\All Users\Application Data\Lotus\Notes\Data. It is critical that there not be a copy of notes.ini in your C:\Windows directory so be sure to double-check that it's gone before proceeding.
Edit the Registry
  1. Open the Registry editor and navigate to HKLM\Software\Lotus\Notes.
  2. Double-click the DataPath key and delete its value.
  3. Double-click the Multiuser key and change its value from 0 to 1
  4. Navigate down to HKLM\Software\Lotus\Notes\7.0
  5. Repeat steps 2 and 3. Take care not to delete the actual DataPath keys, just their values. Also note these are under the HKEY_LOCAL_MACHINE hive. You will find similar keys in HKCU, so be sure you are changing the appropriate ones.
That's the end of the first part of this tutorial, which gets you to the point you can start adding users. The next step is to figure out how to automate the process of moving users from a regular single user install to a multi-user install. I'm working on that one myself and will post a follow-up when I have it documented.

I would like to thank Christopher E. Stevens for the Notes.Net posting I reference above. Without that I would still be scratching my head.

,

2 comments:

  1. Odd Åge SkogheimMon Sep 25, 03:38:00 AM

    I'm having some problems getting notes and citrix to play well together, so I' glad to see that there are other ways to do it than the IBM cookbook.

    This seems to be a smart way to do it if you have one terminal server. But what if you have several? And the users log into them in a random fashion. Could you end up with a copy of the id file on each server? And then how do you cope with password changes?

    You could perhaps have some sort of roaming/copying of these files to a private folder, but you could stil have problems if the server chrashes, the coying breaks or other unseen events.

    ReplyDelete
  2. Domino has its own roaming implementation, which will keep one copy of the ID file encrypted on the server and move it around as needed. The biggest issue with this is the desktop does not roam, which means the Workspace isn't usable. Lotus' workaround is to have users bookmark databases and pin the bookmark folder open instead of using the workspace. I plan to test that, too, to get user feedback.

    ReplyDelete