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