58c6af3b90543eb9a85569dcb5083239e34aa6ee
[samba.git] / docs / docbook / projdoc / ProfileMgmt.xml
1 <chapter id="ProfileMgmt">
2 <chapterinfo>
3         &author.jht;
4     <pubdate>April 3 2003</pubdate>
5 </chapterinfo>
6
7 <title>Desktop Profile Management</title>
8
9 <sect1>
10 <title>Features and Benefits</title>
11
12 <para>
13 Roaming Profiles are feared by some, hated by a few, loved by many, and a Godsend for
14 some administrators.
15 </para>
16
17 <para>
18 Roaming Profiles allow an administrator to make available a consistent user desktop
19 as the user moves from one machine to another. This chapter provides much information
20 regarding how to configure and manage Roaming Profiles.
21 </para>
22
23 <para>
24 While Roaming Profiles might sound like nirvana to some, they are a real and tangible
25 problem to others. In particular, users of mobile computing tools, where often there may not
26 be a sustained network connection, are often better served by purely Local Profiles.
27 This chapter provides information to help the Samba administrator to deal with those
28 situations also.
29 </para>
30
31 </sect1>
32
33 <sect1>
34 <title>Roaming Profiles</title>
35
36 <warning>
37 <para>
38 Roaming profiles support is different for Win9x / Me and Windows NT4/200x.
39 </para>
40 </warning>
41
42 <para>
43 Before discussing how to configure roaming profiles, it is useful to see how
44 Windows 9x / Me and Windows NT4/200x clients implement these features.
45 </para>
46
47 <para>
48 Windows 9x / Me clients send a NetUserGetInfo request to the server to get the user's
49 profiles location. However, the response does not have room for a separate
50 profiles location field, only the user's home share. This means that Win9X/Me
51 profiles are restricted to being stored in the user's home directory.
52 </para>
53
54
55 <para>
56 Windows NT4/200x  clients send a NetSAMLogon RPC request, which contains many fields,
57 including a separate field for the location of the user's profiles.
58 </para>
59
60 <sect2>
61 <title>Samba Configuration for Profile Handling</title>
62
63 <para>
64 This section documents how to configure Samba for MS Windows client profile support.
65 </para>
66
67 <sect3>
68 <title>NT4/200x User Profiles</title>
69
70 <para>
71 To support Windowns NT4/200x clients, in the [global] section of smb.conf set the
72 following (for example):
73 </para>
74
75 <para>
76 <programlisting>
77         logon path = \\profileserver\profileshare\profilepath\%U\moreprofilepath
78 </programlisting>
79
80         This is typically implemented like:
81
82 <programlisting>
83                 logon path = \\%L\Profiles\%u
84 </programlisting>
85 where %L translates to the name of the Samba server and %u translates to the user name
86 </para>
87
88 <para>
89 The default for this option is \\%N\%U\profile, namely \\sambaserver\username\profile. 
90 The \\N%\%U service is created automatically by the [homes] service.  If you are using
91 a samba server for the profiles, you _must_ make the share specified in the logon path
92 browseable. Please refer to the man page for smb.conf in respect of the different
93 symantics of %L and %N, as well as %U and %u.
94 </para>
95
96 <note>
97 <para>
98 MS Windows NT/2K clients at times do not disconnect a connection to a server
99 between logons. It is recommended to NOT use the <command>homes</command>
100 meta-service name as part of the profile share path.
101 </para>
102 </note>
103 </sect3>
104
105 <sect3>
106 <title>Windows 9x / Me User Profiles</title>
107
108 <para>
109 To support Windows 9x / Me clients, you must use the "logon home" parameter. Samba has
110 now been fixed so that <userinput>net use /home</userinput> now works as well, and it, too, relies
111 on the <command>logon home</command> parameter.
112 </para>
113
114 <para>
115 By using the logon home parameter, you are restricted to putting Win9x / Me
116 profiles in the user's home directory.   But wait! There is a trick you
117 can use. If you set the following in the <command>[global]</command> section of your &smb.conf; file:
118 </para>
119 <para><programlisting>
120         logon home = \\%L\%U\.profiles
121 </programlisting></para>
122
123 <para>
124 then your Windows 9x / Me clients will dutifully put their clients in a subdirectory
125 of your home directory called <filename>.profiles</filename> (thus making them hidden).
126 </para>
127
128 <para>
129 Not only that, but <userinput>net use /home</userinput> will also work, because of a feature in
130 Windows 9x / Me. It removes any directory stuff off the end of the home directory area
131 and only uses the server and share portion. That is, it looks like you
132 specified \\%L\%U for <command>logon home</command>.
133 </para>
134 </sect3>
135
136 <sect3>
137 <title>Mixed Windows 9x / Me and Windows NT4/200x User Profiles</title>
138
139 <para>
140 You can support profiles for both Win9X and WinNT clients by setting both the
141 <command>logon home</command> and <command>logon path</command> parameters. For example:
142 </para>
143
144 <para><programlisting>
145         logon home = \\%L\%u\.profiles
146         logon path = \\%L\profiles\%u
147 </programlisting></para>
148
149 </sect3>
150 <sect3>
151 <title>Disabling Roaming Profile Support</title>
152
153 <para>
154 A question often asked is "How may I enforce use of local profiles?" or
155 "How do I disable Roaming Profiles?"
156 </para>
157
158 <para>
159 There are three ways of doing this:
160 </para>
161
162 <itemizedlist>
163         <listitem><para>
164         <command>In smb.conf:</command> affect the following settings and ALL clients
165         will be forced to use a local profile:
166         <programlisting>
167                 logon home =
168                 logon path =
169         </programlisting></para></listitem>
170
171         <listitem><para>
172         <command>MS Windows Registry:</command> by using the Microsoft Management Console
173         gpedit.msc to instruct your MS Windows XP machine to use only a local profile. This
174         of course modifies registry settings. The full path to the option is:
175         <programlisting>
176         Local Computer Policy\
177                 Computer Configuration\
178                         Administrative Templates\
179                                 System\
180                                         User Profiles\
181
182         Disable:        Only Allow Local User Profiles
183         Disable:        Prevent Roaming Profile Change from Propogating to the Server
184         </programlisting>
185         </para>
186         </listitem>
187
188         <listitem><para>
189         <command>Change of Profile Type:</command> From the start menu right click on the
190         MY Computer icon, select <emphasis>Properties</emphasis>, click on the "<emphasis>User Profiles</emphasis>
191         tab, select the profile you wish to change from Roaming type to Local, click <emphasis>Change Type</emphasis>.
192         </para></listitem>
193 </itemizedlist>
194
195 <para>
196 Consult the MS Windows registry guide for your particular MS Windows version for more
197 information about which registry keys to change to enforce use of only local user
198 profiles.
199 </para>
200
201 <note><para>
202 The specifics of how to convert a local profile to a roaming profile, or a roaming profile
203 to a local one vary according to the version of MS Windows you are running. Consult the
204 Microsoft MS Windows Resource Kit for your version of Windows for specific information.
205 </para></note>
206
207 </sect3>
208 </sect2>
209
210 <sect2>
211 <title>Windows Client Profile Configuration Information</title>
212
213 <sect3>
214 <title>Windows 9x / Me Profile Setup</title>
215
216 <para>
217 When a user first logs in on Windows 9X, the file user.DAT is created,
218 as are folders "Start Menu", "Desktop", "Programs" and "Nethood".
219 These directories and their contents will be merged with the local
220 versions stored in c:\windows\profiles\username on subsequent logins,
221 taking the most recent from each.  You will need to use the [global]
222 options "preserve case = yes", "short preserve case = yes" and
223 "case sensitive = no" in order to maintain capital letters in shortcuts
224 in any of the profile folders.
225 </para>
226
227 <para>
228 The user.DAT file contains all the user's preferences.  If you wish to
229 enforce a set of preferences, rename their user.DAT file to user.MAN,
230 and deny them write access to this file.
231 </para>
232
233 <orderedlist>
234         <listitem>
235         <para>
236         On the Windows 9x / Me machine, go to Control Panel -> Passwords and
237         select the User Profiles tab.  Select the required level of
238         roaming preferences.  Press OK, but do _not_ allow the computer
239         to reboot.
240         </para>
241         </listitem>
242
243         <listitem>
244         <para>
245         On the Windows 9x / Me machine, go to Control Panel -> Network ->
246         Client for Microsoft Networks -> Preferences.  Select 'Log on to
247         NT Domain'.  Then, ensure that the Primary Logon is 'Client for
248         Microsoft Networks'.  Press OK, and this time allow the computer
249         to reboot.
250         </para>
251         </listitem>
252 </orderedlist>
253
254 <para>
255 Under Windows 9x / Me Profiles are downloaded from the Primary Logon.
256 If you have the Primary Logon as 'Client for Novell Networks', then
257 the profiles and logon script will be downloaded from your Novell
258 Server.  If you have the Primary Logon as 'Windows Logon', then the
259 profiles will be loaded from the local machine - a bit against the
260 concept of roaming profiles, it would seem!
261 </para>
262
263 <para>
264 You will now find that the Microsoft Networks Login box contains
265 [user, password, domain] instead of just [user, password].  Type in
266 the samba server's domain name (or any other domain known to exist,
267 but bear in mind that the user will be authenticated against this
268 domain and profiles downloaded from it, if that domain logon server
269 supports it), user name and user's password.
270 </para>
271
272 <para>
273 Once the user has been successfully validated, the Windows 9x / Me machine
274 will inform you that 'The user has not logged on before' and asks you
275 if you wish to save the user's preferences?  Select 'yes'.
276 </para>
277
278 <para>
279 Once the Windows 9x / Me client comes up with the desktop, you should be able
280 to examine the contents of the directory specified in the "logon path"
281 on the samba server and verify that the "Desktop", "Start Menu",
282 "Programs" and "Nethood" folders have been created.
283 </para>
284
285 <para>
286 These folders will be cached locally on the client, and updated when
287 the user logs off (if you haven't made them read-only by then).
288 You will find that if the user creates further folders or short-cuts,
289 that the client will merge the profile contents downloaded with the
290 contents of the profile directory already on the local client, taking
291 the newest folders and short-cuts from each set.
292 </para>
293
294 <para>
295 If you have made the folders / files read-only on the samba server,
296 then you will get errors from the Windows 9x / Me machine on logon and logout, as
297 it attempts to merge the local and the remote profile.  Basically, if
298 you have any errors reported by the Windows 9x / Me machine, check the Unix file
299 permissions and ownership rights on the profile directory contents,
300 on the samba server.
301 </para>
302
303 <para>
304 If you have problems creating user profiles, you can reset the user's
305 local desktop cache, as shown below.  When this user then next logs in,
306 they will be told that they are logging in "for the first time".
307 </para>
308
309 <orderedlist>
310         <listitem>
311         <para>
312         instead of logging in under the [user, password, domain] dialog,
313         press escape.
314         </para>
315         </listitem>
316
317         <listitem>
318         <para>
319         run the regedit.exe program, and look in:
320         </para>
321
322         <para>
323         HKEY_LOCAL_MACHINE\Windows\CurrentVersion\ProfileList
324         </para>
325
326         <para>
327         you will find an entry, for each user, of ProfilePath.  Note the
328         contents of this key (likely to be c:\windows\profiles\username),
329         then delete the key ProfilePath for the required user.
330
331         [Exit the registry editor].
332
333         </para>
334         </listitem>
335
336         <listitem>
337         <para>
338         <emphasis>WARNING</emphasis> - before deleting the contents of the
339         directory listed in the ProfilePath (this is likely to be
340         <filename>c:\windows\profiles\username)</filename>, ask them if they
341         have any important files stored on their desktop or in their start menu. 
342         Delete the contents of the directory ProfilePath (making a backup if any
343         of the files are needed).
344         </para>
345
346         <para>
347         This will have the effect of removing the local (read-only hidden
348         system file) user.DAT in their profile directory, as well as the
349         local "desktop", "nethood", "start menu" and "programs" folders.
350         </para>
351         </listitem>
352
353         <listitem>
354         <para>
355         search for the user's .PWL password-caching file in the c:\windows
356         directory, and delete it.
357         </para>
358         </listitem>
359
360         <listitem>
361         <para>
362         log off the windows 9x / Me client.
363         </para>
364         </listitem>
365
366         <listitem>
367         <para>
368         check the contents of the profile path (see "logon path" described
369         above), and delete the user.DAT or user.MAN file for the user,
370         making a backup if required.
371         </para>
372         </listitem>
373
374 </orderedlist>
375
376 <para>
377 If all else fails, increase samba's debug log levels to between 3 and 10,
378 and / or run a packet trace program such as ethereal or netmon.exe, and
379 look for error messages.
380 </para>
381
382 <para>
383 If you have access to an Windows NT4/200x server, then first set up roaming profiles
384 and / or netlogons on the Windows NT4/200x server.  Make a packet trace, or examine
385 the example packet traces provided with Windows NT4/200x server, and see what the
386 differences are with the equivalent samba trace.
387 </para>
388
389 </sect3>
390
391 <sect3>
392 <title>Windows NT4 Workstation</title>
393
394 <para>
395 When a user first logs in to a Windows NT Workstation, the profile
396 NTuser.DAT is created.  The profile location can be now specified
397 through the "logon path" parameter.
398 </para>
399
400 <para>
401 There is a parameter that is now available for use with NT Profiles:
402 "logon drive".  This should be set to <filename>H:</filename> or any other drive, and
403 should be used in conjunction with the new "logon home" parameter.
404 </para>
405
406 <para>
407 The entry for the NT4 profile is a _directory_ not a file.  The NT
408 help on profiles mentions that a directory is also created with a .PDS
409 extension.  The user, while logging in, must have write permission to
410 create the full profile path (and the folder with the .PDS extension
411 for those situations where it might be created.)
412 </para>
413
414 <para>
415 In the profile directory, Windows NT4 creates more folders than Windows 9x / Me. 
416 It creates "Application Data" and others, as well as "Desktop", "Nethood",
417 "Start Menu" and "Programs".  The profile itself is stored in a file
418 NTuser.DAT.  Nothing appears to be stored in the .PDS directory, and
419 its purpose is currently unknown.
420 </para>
421
422 <para>
423 You can use the System Control Panel to copy a local profile onto
424 a samba server (see NT Help on profiles: it is also capable of firing
425 up the correct location in the System Control Panel for you).  The
426 NT Help file also mentions that renaming NTuser.DAT to NTuser.MAN
427 turns a profile into a mandatory one.
428 </para>
429
430 <para>
431 The case of the profile is significant.  The file must be called
432 NTuser.DAT or, for a mandatory profile, NTuser.MAN.
433 </para>
434 </sect3>
435
436 <sect3>
437 <title>Windows 2000/XP Professional</title>
438
439 <para>
440 You must first convert the profile from a local profile to a domain
441 profile on the MS Windows workstation as follows:
442 </para>
443
444 <itemizedlist>
445         <listitem><para>
446         Log on as the LOCAL workstation administrator.
447         </para></listitem>
448
449         <listitem><para>
450         Right click on the 'My Computer' Icon, select 'Properties'
451         </para></listitem>
452
453         <listitem><para>
454         Click on the 'User Profiles' tab
455         </para></listitem>
456
457         <listitem><para>
458         Select the profile you wish to convert (click on it once)
459         </para></listitem>
460
461         <listitem><para>
462         Click on the button 'Copy To'
463         </para></listitem>
464
465         <listitem><para>
466         In the "Permitted to use" box, click on the 'Change' button.
467         </para></listitem>
468
469         <listitem><para>
470         Click on the 'Look in" area that lists the machine name, when you click
471         here it will open up a selection box. Click on the domain to which the
472         profile must be accessible.
473         </para>
474
475         <note><para>You will need to log on if a logon box opens up. Eg: In the connect
476         as: MIDEARTH\root, password: mypassword.</para></note>
477         </listitem>
478
479         <listitem><para>
480         To make the profile capable of being used by anyone select 'Everyone'
481         </para></listitem>
482
483         <listitem><para>
484         Click OK. The Selection box will close.
485         </para></listitem>
486
487         <listitem><para>
488         Now click on the 'Ok' button to create the profile in the path you
489         nominated.
490         </para></listitem>
491 </itemizedlist>
492
493 <para>
494 Done. You now have a profile that can be editted using the samba-3.0.0
495 <filename>profiles</filename> tool.
496 </para>
497
498 <note>
499 <para>
500 Under NT/2K the use of mandotory profiles forces the use of MS Exchange
501 storage of mail data. That keeps desktop profiles usable.
502 </para>
503 </note>
504
505 <note>
506 <itemizedlist>
507 <listitem><para>
508 This is a security check new to Windows XP (or maybe only
509 Windows XP service pack 1).  It can be disabled via a group policy in
510 Active Directory.  The policy is:</para>
511
512 <para>"Computer Configuration\Administrative Templates\System\User
513 Profiles\Do not check for user ownership of Roaming Profile Folders"</para>
514
515 <para>...and it should be set to "Enabled".
516 Does the new version of samba have an Active Directory analogue?  If so,
517 then you may be able to set the policy through this.
518 </para>
519
520 <para>
521 If you cannot set group policies in samba, then you may be able to set
522 the policy locally on each machine.  If you want to try this, then do
523 the following (N.B. I don't know for sure that this will work in the
524 same way as a domain group policy):
525 </para>
526
527 </listitem>
528
529 <listitem><para>
530 On the XP workstation log in with an Administrator account.
531 </para></listitem>
532
533         <listitem><para>Click: "Start", "Run"</para></listitem>
534         <listitem><para>Type: "mmc"</para></listitem>
535         <listitem><para>Click: "OK"</para></listitem>
536
537         <listitem><para>A Microsoft Management Console should appear.</para></listitem>
538         <listitem><para>Click: File, "Add/Remove Snap-in...", "Add"</para></listitem>
539         <listitem><para>Double-Click: "Group Policy"</para></listitem>
540         <listitem><para>Click: "Finish", "Close"</para></listitem>
541         <listitem><para>Click: "OK"</para></listitem>
542
543         <listitem><para>In the "Console Root" window:</para></listitem>
544         <listitem><para>Expand: "Local Computer Policy", "Computer Configuration",</para></listitem>
545         <listitem><para>"Administrative Templates", "System", "User Profiles"</para></listitem>
546         <listitem><para>Double-Click: "Do not check for user ownership of Roaming Profile</para></listitem>
547         <listitem><para>Folders"</para></listitem>
548         <listitem><para>Select: "Enabled"</para></listitem>
549         <listitem><para>Click: OK"</para></listitem>
550
551         <listitem><para>Close the whole console.  You do not need to save the settings (this
552         refers to the console settings rather than the policies you have
553         changed).</para></listitem>
554
555         <listitem><para>Reboot</para></listitem>
556 </itemizedlist>
557 </note>
558 </sect3>
559 </sect2>
560
561 <sect2>
562 <title>Sharing Profiles between W9x/Me and NT4/200x/XP workstations</title>
563
564 <para>
565 Sharing of desktop profiles between Windows versions is NOT recommended.
566 Desktop profiles are an evolving phenomenon and profiles for later versions
567 of MS Windows clients add features that may interfere with earlier versions
568 of MS Windows clients. Probably the more salient reason to NOT mix profiles
569 is that when logging off an earlier version of MS Windows the older format
570 of profile contents may overwrite information that belongs to the newer
571 version resulting in loss of profile information content when that user logs
572 on again with the newer version of MS Windows.
573 </para>
574
575 <para>
576 If you then want to share the same Start Menu / Desktop with W9x/Me, you will
577 need to specify a common location for the profiles. The smb.conf parameters
578 that need to be common are <emphasis>logon path</emphasis> and
579 <emphasis>logon home</emphasis>.
580 </para>
581
582 <para>
583 If you have this set up correctly, you will find separate user.DAT and
584 NTuser.DAT files in the same profile directory.
585 </para>
586
587 </sect2>
588
589 <sect2>
590 <title>Profile Migration from Windows NT4/200x Server to Samba</title>
591
592 <para>
593 There is nothing to stop you specifying any path that you like for the
594 location of users' profiles.  Therefore, you could specify that the
595 profile be stored on a samba server, or any other SMB server, as long as
596 that SMB server supports encrypted passwords.
597 </para>
598
599 <sect3>
600 <title>Windows NT4 Profile Management Tools</title>
601
602 <para>
603 Unfortunately, the Resource Kit information is specific to the version of MS Windows
604 NT4/200x. The correct resource kit is required for each platform.
605 </para>
606
607 <para>
608 Here is a quick guide:
609 </para>
610
611 <itemizedlist>
612
613 <listitem><para>
614 On your NT4 Domain Controller, right click on 'My Computer', then
615 select the tab labelled 'User Profiles'.
616 </para></listitem>
617
618 <listitem><para>
619 Select a user profile you want to migrate and click on it.
620 </para>
621
622 <note><para>I am using the term &quot;migrate&quot; lossely. You can copy a profile to
623 create a group profile. You can give the user 'Everyone' rights to the
624 profile you copy this to. That is what you need to do, since your samba
625 domain is not a member of a trust relationship with your NT4 PDC.</para></note>
626 </listitem>
627
628         <listitem><para>Click the 'Copy To' button.</para></listitem>
629
630         <listitem><para>In the box labelled 'Copy Profile to' add your new path, eg:
631         <filename>c:\temp\foobar</filename></para></listitem>
632
633         <listitem><para>Click on the button labelled 'Change' in the "Permitted to use" box.</para></listitem>
634
635         <listitem><para>Click on the group 'Everyone' and then click OK. This closes the
636         'chose user' box.</para></listitem>
637
638         <listitem><para>Now click OK.</para></listitem>
639 </itemizedlist>
640
641 <para>
642 Follow the above for every profile you need to migrate.
643 </para>
644
645 </sect3>
646
647 <sect3>
648 <title>Side bar Notes</title>
649
650 <para>
651 You should obtain the SID of your NT4 domain. You can use smbpasswd to do
652 this. Read the man page.</para>
653
654 <para>
655 With Samba-3.0.0 alpha code you can import all you NT4 domain accounts
656 using the net samsync method. This way you can retain your profile
657 settings as well as all your users.
658 </para>
659
660 </sect3>
661
662 <sect3>
663 <title>moveuser.exe</title>
664
665 <para>
666 The W2K professional resource kit has moveuser.exe. moveuser.exe changes
667 the security of a profile from one user to another.  This allows the account
668 domain to change, and/or the user name to change.
669 </para>
670
671 </sect3>
672
673 <sect3>
674 <title>Get SID</title>
675
676 <para>
677 You can identify the SID by using GetSID.exe from the Windows NT Server 4.0
678 Resource Kit.
679 </para>
680
681 <para>
682 Windows NT 4.0 stores the local profile information in the registry under
683 the following key:
684 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
685 </para>
686
687 <para>
688 Under the ProfileList key, there will be subkeys named with the SIDs of the
689 users who have logged on to this computer. (To find the profile information
690 for the user whose locally cached profile you want to move, find the SID for
691 the user with the GetSID.exe utility.) Inside of the appropriate user's
692 subkey, you will see a string value named ProfileImagePath.
693 </para>
694
695 </sect3>
696 </sect2>
697 </sect1>
698
699 <sect1>
700 <title>Mandatory profiles</title>
701
702 <para>
703 A Mandatory Profile is a profile that the user does NOT have the ability to overwrite.
704 During the user's session it may be possible to change the desktop environment, but
705 as the user logs out all changes made will be lost. If it is desired to NOT allow the
706 user any ability to change the desktop environment then this must be done through
707 policy settings. See previous chapter.
708 </para>
709
710 <note>
711 <para>
712 Under NO circumstances should the profile directory (or it's contents) be made read-only
713 as this may render the profile un-usable.
714 </para>
715 </note>
716
717 <para>
718 For MS Windows NT4/200x/XP the above method can be used to create mandatory profiles
719 also. To convert a group profile into a mandatory profile simply locate the NTUser.DAT
720 file in the copied profile and rename it to NTUser.MAN.
721 </para>
722
723 <para>
724 For MS Windows 9x / Me it is the User.DAT file that must be renamed to User.MAN to
725 affect a mandatory profile.
726 </para>
727
728 </sect1>
729
730 <sect1>
731 <title>Creating/Managing Group Profiles</title>
732
733 <para>
734 Most organisations are arranged into departments. There is a nice benenfit in
735 this fact since usually most users in a department will require the same desktop
736 applications and the same desktop layout. MS Windows NT4/200x/XP will allow the
737 use of Group Profiles. A Group Profile is a profile that is created firstly using
738 a template (example) user. Then using the profile migration tool (see above) the
739 profile is assigned access rights for the user group that needs to be given access
740 to the group profile.
741 </para>
742
743 <para>
744 The next step is rather important. PLEASE NOTE: Instead of assigning a group profile
745 to users (ie: Using User Manager) on a "per user" basis, the group itself is assigned
746 the now modified profile.
747 </para>
748
749 <note>
750         <para>
751         Be careful with group profiles, if the user who is a member of a group also
752         has a personal profile, then the result will be a fusion (merge) of the two.
753         </para>
754 </note>
755
756 </sect1>
757
758 <sect1>
759 <title>Default Profile for Windows Users</title>
760
761 <para>
762 MS Windows 9x / Me and NT4/200x/XP will use a default profile for any user for whom
763 a profile does not already exist. Armed with a knowledge of where the default profile
764 is located on the Windows workstation, and knowing which registry keys affect the path
765 from which the default profile is created, it is possible to modify the default profile
766 to one that has been optimised for the site. This has significant administrative 
767 advantages.
768 </para>
769
770 <sect2>
771 <title>MS Windows 9x/Me</title>
772
773 <para>
774 To enable default per use profiles in Windows 9x / Me you can either use the Windows 98 System
775 Policy Editor or change the registry directly.
776 </para>
777
778 <para>
779 To enable default per user profiles in Windows 9x / Me, launch the System Policy Editor, then
780 select File -> Open Registry, then click on the Local Computer icon, click on Windows 98 System,
781 select User Profiles, click on the enable box. Do not forget to save the registry changes.
782 </para>
783
784 <para>
785 To modify the registry directly, launch the Registry Editor (regedit.exe), select the hive
786 <filename>HKEY_LOCAL_MACHINE\Network\Logon</filename>. Now add a DWORD type key with the name
787 "User Profiles", to enable user profiles set the value to 1, to disable user profiles set it to 0.
788 </para>
789
790 <sect3>
791 <title>How User Profiles Are Handled in Windows 9x / Me?</title>
792
793 <para>
794 When a user logs on to a Windows 9x / Me machine, the local profile path, 
795 <filename>HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\ProfileList</filename>, is checked
796 for an existing entry for that user:
797 </para>
798
799 <para>
800 If the user has an entry in this registry location, Windows 9x / Me checks for a locally cached
801 version of the user profile. Windows 9x / Me also checks the user's home directory (or other
802 specified directory if the location has been modified) on the server for the User Profile.
803 If a profile exists in both locations, the newer of the two is used. If the User Profile exists
804 on the server, but does not exist on the local machine, the profile on the server is downloaded
805 and used. If the User Profile only exists on the local machine, that copy is used.
806 </para>
807
808 <para>
809 If a User Profile is not found in either location, the Default User Profile from the Windows 9x / Me
810 machine is used and is copied to a newly created folder for the logged on user. At log off, any
811 changes that the user made are written to the user's local profile. If the user has a roaming
812 profile, the changes are written to the user's profile on the server.
813 </para>
814
815 </sect3>
816 </sect2>
817
818 <sect2>
819 <title>MS Windows NT4 Workstation</title>
820
821 <para>
822 On MS Windows NT4 the default user profile is obtained from the location
823 <filename>%SystemRoot%\Profiles</filename> which in a default installation will translate to
824 <filename>C:\WinNT\Profiles</filename>. Under this directory on a clean install there will be
825 three (3) directories: <filename>Administrator, All Users, Default User</filename>.
826 </para>
827
828 <para>
829 The <filename>All Users</filename> directory contains menu settings that are common across all 
830 system users. The <filename>Default User</filename> directory contains menu entries that are
831 customisable per user depending on the profile settings chosen/created.
832 </para>
833
834 <para>
835 When a new user first logs onto an MS Windows NT4 machine a new profile is created from:
836 </para>
837
838 <simplelist>
839         <member>All Users settings</member>
840         <member>Default User settings (contains the default NTUser.DAT file)</member>
841 </simplelist>
842
843 <para>
844 When a user logs onto an MS Windows NT4 machine that is a member of a Microsoft security domain
845 the following steps are followed in respect of profile handling:
846 </para>
847
848 <orderedlist>
849         <listitem>
850         <para>
851         The users' account information which is obtained during the logon process contains
852         the location of the users' desktop profile. The profile path may be local to the
853         machine or it may be located on a network share. If there exists a profile at the location
854         of the path from the user account, then this profile is copied to the location
855         <filename>%SystemRoot%\Profiles\%USERNAME%</filename>. This profile then inherits the
856         settings in the <filename>All Users</filename> profile in the <filename>%SystemRoot%\Profiles</filename>
857         location.
858         </para>
859         </listitem>
860
861         <listitem>
862         <para>
863         If the user account has a profile path, but at it's location a profile does not exist,
864         then a new profile is created in the <filename>%SystemRoot%\Profiles\%USERNAME%</filename>
865         directory from reading the <filename>Default User</filename> profile.
866         </para>
867         </listitem>
868
869         <listitem>
870         <para>
871         If the NETLOGON share on the authenticating server (logon server) contains a policy file
872         (<filename>NTConfig.POL</filename>) then it's contents are applied to the <filename>NTUser.DAT</filename>
873         which is applied to the <filename>HKEY_CURRENT_USER</filename> part of the registry. 
874         </para>
875         </listitem>
876
877         <listitem>
878         <para>
879         When the user logs out, if the profile is set to be a roaming profile it will be written
880         out to the location of the profile. The <filename>NTuser.DAT</filename> file is then
881         re-created from the contents of the <filename>HKEY_CURRENT_USER</filename> contents.
882         Thus, should there not exist in the NETLOGON share an <filename>NTConfig.POL</filename> at the
883         next logon, the effect of the provious <filename>NTConfig.POL</filename> will still be held
884         in the profile. The effect of this is known as <emphasis>tatooing</emphasis>.
885         </para>
886         </listitem>
887 </orderedlist>
888
889 <para>
890 MS Windows NT4 profiles may be <emphasis>Local</emphasis> or <emphasis>Roaming</emphasis>. A Local profile
891 will stored in the <filename>%SystemRoot%\Profiles\%USERNAME%</filename> location. A roaming profile will
892 also remain stored in the same way, unless the following registry key is created:
893 </para>
894
895 <para>
896 <programlisting>
897         HKEY_LOCAL_MACHINE\SYSTEM\Software\Microsoft\Windows NT\CurrentVersion\winlogon\
898         "DeleteRoamingCache"=dword:00000001
899 </programlisting>
900
901 In which case, the local copy (in <filename>%SystemRoot%\Profiles\%USERNAME%</filename>) will be
902 deleted on logout.
903 </para>
904
905 <para>
906 Under MS Windows NT4 default locations for common resources (like <filename>My Documents</filename>
907 may be redirected to a network share by modifying the following registry keys. These changes may be affected
908 via use of the System Policy Editor (to do so may require that you create your owns template extension
909 for the policy editor to allow this to be done through the GUI. Another way to do this is by way of first
910 creating a default user profile, then while logged in as that user, run regedt32 to edit the key settings.
911 </para>
912
913 <para>
914 The Registry Hive key that affects the behaviour of folders that are part of the default user profile
915 are controlled by entries on Windows NT4 is:
916 </para>
917
918 <para>
919 <programlisting>
920         HKEY_CURRENT_USER
921                 \Software
922                         \Microsoft
923                                 \Windows
924                                         \CurrentVersion
925                                                 \Explorer
926                                                         \User Shell Folders\
927 </programlisting>
928 </para>
929
930 <para>
931 The above hive key contains a list of automatically managed folders. The default entries are:
932 </para>
933
934         <para>
935         <programlisting>
936         Name            Default Value
937         --------------  -----------------------------------------
938         AppData         %USERPROFILE%\Application Data
939         Desktop         %USERPROFILE%\Desktop
940         Favorites       %USERPROFILE%\Favorites
941         NetHood         %USERPROFILE%\NetHood
942         PrintHood       %USERPROFILE%\PrintHood
943         Programs        %USERPROFILE%\Start Menu\Programs
944         Recent          %USERPROFILE%\Recent
945         SendTo          %USERPROFILE%\SendTo
946         Start Menu      %USERPROFILE%\Start Menu
947         Startup         %USERPROFILE%\Start Menu\Programs\Startup
948         </programlisting>
949         </para>
950
951 <para>
952 The registry key that contains the location of the default profile settings is:
953
954 <programlisting>
955         HKEY_LOCAL_MACHINE
956                 \SOFTWARE
957                         \Microsoft
958                                 \Windows
959                                         \CurrentVersion
960                                                 \Explorer
961                                                         \User Shell Folders
962 </programlisting>
963
964 The default entries are:
965
966 <programlisting>
967         Common Desktop          %SystemRoot%\Profiles\All Users\Desktop
968         Common Programs         %SystemRoot%\Profiles\All Users\Programs
969         Common Start Menu       %SystemRoot%\Profiles\All Users\Start Menu
970         Common Startup          %SystemRoot%\Profiles\All Users\Start Menu\Progams\Startup
971 </programlisting>
972 </para>
973
974 </sect2>
975
976 <sect2>
977 <title>MS Windows 200x/XP</title>
978
979         <note>
980         <para>
981         MS Windows XP Home Edition does use default per user profiles, but can not participate
982         in domain security, can not log onto an NT/ADS style domain, and thus can obtain the profile
983         only from itself. While there are benefits in doing this the beauty of those MS Windows
984         clients that CAN participate in domain logon processes allows the administrator to create
985         a global default profile and to enforce it through the use of Group Policy Objects (GPOs).
986         </para>
987         </note>
988
989 <para>
990 When a new user first logs onto MS Windows 200x/XP machine the default profile is obtained from
991 <filename>C:\Documents and Settings\Default User</filename>. The administrator can modify (or change
992 the contents of this location and MS Windows 200x/XP will gladly use it. This is far from the optimum
993 arrangement since it will involve copying a new default profile to every MS Windows 200x/XP client
994 workstation. 
995 </para>
996
997 <para>
998 When MS Windows 200x/XP participate in a domain security context, and if the default user
999 profile is not found, then the client will search for a default profile in the NETLOGON share
1000 of the authenticating server. ie: In MS Windows parlance:
1001 <filename>%LOGONSERVER%\NETLOGON\Default User</filename> and if one exits there it will copy this
1002 to the workstation to the <filename>C:\Documents and Settings\</filename> under the Windows
1003 login name of the user.
1004 </para>
1005
1006         <note>
1007         <para>
1008         This path translates, in Samba parlance, to the smb.conf [NETLOGON] share. The directory
1009         should be created at the root of this share and must be called <filename>Default Profile</filename>.
1010         </para>
1011         </note>
1012
1013 <para>
1014 If a default profile does not exist in this location then MS Windows 200x/XP will use the local
1015 default profile.
1016 </para>
1017
1018 <para>
1019 On loging out, the users' desktop profile will be stored to the location specified in the registry
1020 settings that pertain to the user. If no specific policies have been created, or passed to the client
1021 during the login process (as Samba does automatically), then the user's profile will be written to
1022 the local machine only under the path <filename>C:\Documents and Settings\%USERNAME%</filename>.
1023 </para>
1024
1025 <para>
1026 Those wishing to modify the default behaviour can do so through three methods:
1027 </para>
1028
1029 <itemizedlist>
1030         <listitem>
1031         <para>
1032         Modify the registry keys on the local machine manually and place the new default profile in the
1033         NETLOGON share root - NOT recommended as it is maintenance intensive.
1034         </para>
1035         </listitem>
1036
1037         <listitem>
1038         <para>
1039         Create an NT4 style NTConfig.POL file that specified this behaviour and locate this file
1040         in the root of the NETLOGON share along with the new default profile.
1041         </para>
1042         </listitem>
1043
1044         <listitem>
1045         <para>
1046         Create a GPO that enforces this through Active Directory, and place the new default profile
1047         in the NETLOGON share.
1048         </para>
1049         </listitem>
1050 </itemizedlist>
1051
1052 <para>
1053 The Registry Hive key that affects the behaviour of folders that are part of the default user profile
1054 are controlled by entries on Windows 200x/XP is:
1055 </para>
1056
1057 <para>
1058 <programlisting>
1059         HKEY_CURRENT_USER
1060                 \Software
1061                         \Microsoft
1062                                 \Windows
1063                                         \CurrentVersion
1064                                                 \Explorer
1065                                                         \User Shell Folders\
1066 </programlisting>
1067 </para>
1068
1069 <para>
1070 The above hive key contains a list of automatically managed folders. The default entries are:
1071 </para>
1072
1073         <para>
1074         <programlisting>
1075         Name            Default Value
1076         --------------  -----------------------------------------
1077         AppData         %USERPROFILE%\Application Data
1078         Cache           %USERPROFILE%\Local Settings\Temporary Internet Files
1079         Cookies         %USERPROFILE%\Cookies
1080         Desktop         %USERPROFILE%\Desktop
1081         Favorites       %USERPROFILE%\Favorites
1082         History         %USERPROFILE%\Local Settings\History
1083         Local AppData   %USERPROFILE%\Local Settings\Application Data
1084         Local Settings  %USERPROFILE%\Local Settings
1085         My Pictures     %USERPROFILE%\My Documents\My Pictures
1086         NetHood         %USERPROFILE%\NetHood
1087         Personal        %USERPROFILE%\My Documents
1088         PrintHood       %USERPROFILE%\PrintHood
1089         Programs        %USERPROFILE%\Start Menu\Programs
1090         Recent          %USERPROFILE%\Recent
1091         SendTo          %USERPROFILE%\SendTo
1092         Start Menu      %USERPROFILE%\Start Menu
1093         Startup         %USERPROFILE%\Start Menu\Programs\Startup
1094         Templates       %USERPROFILE%\Templates
1095         </programlisting>
1096         </para>
1097
1098 <para>
1099 There is also an entry called "Default" that has no value set. The default entry is of type REG_SZ, all
1100 the others are of type REG_EXPAND_SZ.
1101 </para>
1102
1103 <para>
1104 It makes a huge difference to the speed of handling roaming user profiles if all the folders are
1105 stored on a dedicated location on a network server. This means that it will NOT be necessary to
1106 write the Outlook PST file over the network for every login and logout.
1107 </para>
1108
1109 <para>
1110 To set this to a network location you could use the following examples:
1111
1112 <programlisting>
1113         %LOGONSERVER%\%USERNAME%\Default Folders
1114 </programlisting>
1115
1116 This would store the folders in the user's home directory under a directory called "Default Folders"
1117
1118 You could also use:
1119
1120 <programlisting>
1121         \\SambaServer\FolderShare\%USERNAME%
1122 </programlisting>
1123
1124 in which case the default folders will be stored in the server named <emphasis>SambaServer</emphasis>
1125 in the share called <emphasis>FolderShare</emphasis> under a directory that has the name of the MS Windows
1126 user as seen by the Linux/Unix file system.
1127 </para>
1128
1129 <para>
1130 Please note that once you have created a default profile share, you MUST migrate a user's profile
1131 (default or custom) to it.
1132 </para>
1133
1134 <para>
1135 MS Windows 200x/XP profiles may be <emphasis>Local</emphasis> or <emphasis>Roaming</emphasis>.
1136 A roaming profile will be cached locally unless the following registry key is created:
1137 </para>
1138
1139 <para>
1140 <programlisting>
1141         HKEY_LOCAL_MACHINE\SYSTEM\Software\Microsoft\Windows NT\CurrentVersion\winlogon\
1142         "DeleteRoamingCache"=dword:00000001
1143 </programlisting>
1144
1145 In which case, the local cache copy will be deleted on logout.
1146 </para>
1147 </sect2>
1148 </sect1>
1149
1150 <sect1>
1151 <title>Common Errors</title>
1152
1153 <para>
1154 THe following are some typical errors/problems/questions that have been asked.
1155 </para>
1156
1157 <sect2>
1158 <title>How does one set up roaming profiles for just one (or a few) user/s or group/s?</title>
1159
1160 <para>
1161 With samba-2.2.x the choice you have is to enable or disable roaming
1162 profiles support. It is a global only setting. The default is to have
1163 roaming profiles and the default path will locate them in the user's home
1164 directory.
1165 </para>
1166
1167 <para>
1168 If disabled globally then no-one will have roaming profile ability.
1169 If enabled and you want it to apply only to certain machines, then on
1170 those machines on which roaming profile support is NOT wanted it is then
1171 necessary to disable roaming profile handling in the registry of each such
1172 machine.
1173 </para>
1174
1175 <para>
1176 With samba-3.0.0 (soon to be released) you can have a global profile
1177 setting in smb.conf _AND_ you can over-ride this by per-user settings
1178 using the Domain User Manager (as with MS Windows NT4/ Win 2Kx).
1179 </para>
1180
1181 <para>
1182 In any case, you can configure only one profile per user. That profile can
1183 be either:
1184 </para>
1185
1186 <itemizedlist>
1187         <listitem><para>
1188         A profile unique to that user
1189         </para></listitem>
1190         <listitem><para>
1191         A mandatory profile (one the user can not change)
1192         </para></listitem>
1193         <listitem><para>
1194         A group profile (really should be mandatory ie:unchangable)
1195         </para></listitem>
1196 </itemizedlist>
1197
1198 </sect2>
1199
1200 <sect2>
1201 <title>Can NOT use Roaming Profiles</title>
1202
1203 <para>
1204 <screen>
1205 > I dont want Roaming profile to be implemented, I just want to give users
1206 > local profiles only.
1207 ...
1208 > Please help me I am totally lost with this error from past two days I tried
1209 > everything and googled around quite a bit but of no help. Please help me.
1210
1211
1212 Your choices are:
1213         1. Local profiles
1214                 - I know of no registry keys that will allow auto-deletion
1215                 of LOCAL profiles on log out
1216         2. Roaming profiles
1217                 - your options here are:
1218                 - can use auto-delete on logout option
1219                         - requires a registry key change on workstation
1220         a) Personal Roaming profiles
1221                 - should be preserved on a central server
1222                 - workstations 'cache' (store) a local copy
1223                         - used in case the profile can not be downloaded
1224                         at next logon
1225         b) Group profiles
1226                 - loaded from a cetral place
1227         c) Mandatory profiles
1228                 - can be personal or group
1229                 - can NOT be changed (except by an administrator
1230
1231 A WinNT4/2K/XP profile can vary in size from 130KB to off the scale.
1232 Outlook PST files are most often part of the profile and can be many GB in
1233 size. On average (in a well controlled environment) roaming profie size of
1234 2MB is a good rule of thumb to use for planning purposes. In an
1235 undisciplined environment I have seen up to 2GB profiles. Users tend to
1236 complain when it take an hour to log onto a workstation but they harvest
1237 the fuits of folly (and ignorance).
1238
1239 The point of all the above is to show that roaming profiles and good
1240 controls of how they can be changed as well as good discipline make up for
1241 a problem free site.
1242
1243 PS: Microsoft's answer to the PST problem is to store all email in an MS
1244 Exchange Server back-end. But this is another story ...!
1245
1246 So, having LOCAL profiles means:
1247         a) If lots of users user each machine
1248                 - lot's of local disk storage needed for local profiles
1249         b) Every workstation the user logs into has it's own profile
1250                 - can be very different from machine to machine
1251
1252 On the other hand, having roaming profiles means:
1253         a) The network administrator can control EVERY aspect of user
1254            profiles
1255         b) With the use of mandatory profiles - a drastic reduction
1256            in network management overheads
1257         c) User unhappiness about not being able to change their profiles
1258            soon fades as  they get used to being able to work reliably
1259
1260 But note:
1261
1262 I have managed and installed MANY NT/2K networks and have NEVER found one
1263 where users who move from machine to machine are happy with local
1264 profiles. In the long run local profiles bite them.
1265
1266 > When the client tries to logon to the PDC it looks for a profile to download
1267 > where do I put this default profile.
1268
1269 Firstly, your samba server need to be configured as a domain controller.
1270         server = user
1271         os level = 32 (or more)
1272         domain logons = Yes
1273
1274         Plus you need to have a NETLOGON share that is world readable.
1275         It is a good idea to add a logon script to pre-set printer and
1276         drive connections. There is also a facility for automatically
1277         synchronizing the workstation time clock with that of the logon
1278         server (another good thing to do).
1279
1280 Note: To invoke auto-deletion of roaming profile from the local
1281 workstation cache (disk storage) you need to use the Group Policy Editor
1282 to create a file called NTConfig.POL with the appropriate entries. This
1283 file needs to be located in the NETLOGON share root directory.
1284
1285 Oh, of course the windows clients need to be members of the domain.
1286 Workgroup machines do NOT do network logons - so they never see domain
1287 profiles.
1288
1289 Secondly, for roaming profiles you need:
1290
1291         logon path = \\%N\profiles\%U   (with some such path)
1292         logon drive = H:                (Z: is the default)
1293
1294         Plus you need a PROFILES share that is world writable.
1295 </screen>
1296 </para>
1297
1298 </sect2>
1299 </sect1>
1300
1301 </chapter>