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