Notes from jabber
[openafs-wiki.git] / WindowsConfigurationReferenceGuide.mdwn
1
2 **This content may be out of date.  See details in a [posting to openafs-info mailing list](http://www.mail-archive.com/openafs-info@openafs.org/msg35820.html).  Please edit this page and add status details to this paragraph as appropriate.**
3
4 A circa-2008 version of this content is available as HTMLHelp from [TommieGannert's site](http://www.e.kth.se/~tommie/openafs/openafs-referenceguide.chm).
5
6 [[!toc levels=3]]
7
8 # Configuration Reference Guide
9
10
11 ##  Introduction
12
13 Once you have installed [[OpenAFS]] for Windows onto your computer, there are two programs you will be concerned with: the AFS Client (Credentials Manager), and the AFS Client Configuration program. Many of the options in [[OpenAFS]] can be set from both programs. This is a source of confusion, which this guide will try to sort out.
14
15 Because this is a reference, the programs will be described in order, screen by screen. At the end, files and Windows Registry keys will be described.
16
17 ##  Credentials Manager
18
19 This program is located in `C:\Program Files\OpenAFS\Client\Program\afscreds.exe` (default location). It is used for managing end-user tasks. This includes obtaining tickets and setting up per-user drive mappings.
20
21 ###  Command Line Options
22
23 If you intend to run `afscreds.exe` from a command line, the following options may be of interest to you. NB: The flags are case-insensitive, and can begin with either **_-_** (� la Unix) or **_/_** (old Windows style).
24
25 <dl>
26   <dt> -A</dt>
27   <dd> Auto Initialize. Starts the AFS service if it is stopped. Tries to obtain tokens when the Credentials Manager is started. </dd>
28   <dt> -E</dt>
29   <dd> Exit. Terminate another, already running, instance of Credentials Manager. Then exit this instance. </dd>
30   <dt> -I</dt>
31   <dd> Install in Startup. Make the Credentials Manager start when the user logs in. </dd>
32   <dt> -M</dt>
33   <dd> Renew Drive Mappings. Unmaps all drive mappings and then remaps them when the Credentials Manager is started. </dd>
34   <dt> -N</dt>
35   <dd> Net Change Detect. Tells the Credentials Manager to ask the user for new tokens if a network interface changes its IP address. </dd>
36   <dt> -Q</dt>
37   <dd> Quiet. Do not notify the user if the AFS service is not started when the Credentials Manager is begin started. </dd>
38   <dt> -S</dt>
39   <dd> Show Tokens. Open the tokens window on start. </dd>
40   <dt> -U</dt>
41   <dd> Uninstall. Remove Credentials Manager from Startup. The Credentials Manager will no longer start automatically when the user logs in. </dd>
42   <dt> -X</dt>
43   <dd> Remap All. Remap all drives, including global drives. </dd>
44   <dt> -Z</dt>
45   <dd> Unmap All. Unmaps all per-user drives. </dd>
46 </dl>
47
48 ###  Tokens
49
50 <img src="http://www.e.kth.se/~tommie/openafs/screens/afscreds/tokens.png" width="467" height="238" /> The Tokens Tab displays brief information about your AFS tokens. It shows your current cell, and when the tokens expire. It lets you obtain (or renew) tokens (kauth/kinit in Unix) and make it sound an alarm if they will be expiring any time soon. If you have sensitive information in AFS, you can discard (kdestroy) tokens when away.
51
52 [[OpenAFS]] and roaming profiles are a problematic issue. Windows does not notify [[OpenAFS]] when it is done putting the profile back into AFS. This means [[OpenAFS]] has no way to safely discard tokens when you log out, given you are using roaming profiles. When using a local profile, the tokens are discarded when you logout. See also the [[WindowsTroubleshootingGuide]] on this matter.
53
54 The Credentials Manager can make use of MIT Kerberos for Windows, if installed. This lets you use [[KerberosV]] tickets directly in the AFS Credentials Manager. Thus, there is no longer a need to have a third party Credentials Manager running. This window also shows what version of [[OpenAFS]] you are currently running.
55
56 ###  Drive Letters
57
58 <img src="http://www.e.kth.se/~tommie/openafs/screens/afscreds/drive-letters.png" width="467" height="238" /> A fundamental entity in the Microsoft Windows operating systems is the **_drive_**. A drive is identified by one letter and a colon. Masking a network file system as a drive is called "mapping a drive."
59
60 Mapping a drive in [[OpenAFS]] requires you to know three things. You will have to know what drive you want to map, what AFS path to map from, and what to call the mapping. The first two should be obivous. If you are used to Unix, however, note that the AFS Path is written using backslash, not slash. You also have the option to automatically reconnect the drive on login.
61
62 The Description field is not as obvious. It is an **_identifier_** for the mapping, and is called a **_submount_**. It is not a free text description. The same restrictions apply to the description as to any name of a Windows share. See the [[WindowsTroubleshootingGuide]] for more information on submounts.
63
64 ###  Advanced
65
66 <img src="http://www.e.kth.se/~tommie/openafs/screens/afscreds/advanced.png" width="467" height="238" /> If you are an administrator, you will want to use this tab eventually. You can check the status of the AFS service, start it if needed and configure global parameters. Pressing "Configure AFS Client" brings up the "AFS Client Configuration" program, which is described in a later section.
67
68 You should always start the AFS service when the computer starts up. Otherwise, you will have to start the service manually. This is equivalent to using the "Services" tab of Windows Administration Tools". This applies to all users.
69
70 The "Always show the AFS Client icon in the taskbar" option sets whether the Credentials Manager should be started on each login or not.
71
72 ###  System Tray
73
74 <img src="http://www.e.kth.se/~tommie/openafs/screens/windows/taskbar.png" width="135" height="26" /> A padlock is the icon for AFS Credentials Manager. It is locked when you have valid tokens, and has a small red cross when you do not.
75
76 Clicking it brings the Credentials Manager up. Right-clicking opens a three-item menu. "Remove Icon..." will ask if you want to stop the AFS service or not. The Credentials Manager will then exit.
77
78 ##  Client Configuration
79
80 This program is located in `C:\Program Files\OpenAFS\Common\afs_config.exe` (default location). The configuration utility can perform most operations of the Credentials Manager, and more. In fact, the Client Configuration is not able to obtain tokens, but everything else can be updated with it.
81
82 When installed, [[OpenAFS]] also installs this program as a Control Panel applet, called "AFS Client Configuration". No matter what you call it, the functionality is the same.
83
84 ###  General
85
86 <img src="http://www.e.kth.se/~tommie/openafs/screens/afsconfig/general.png" width="356" height="495" /> The General Tab of the AFS Client Configuration provide roughly the same functionality as the Advanced Tab of the Credentials Manager. The Cell Name identifies the default authentication cell. The `root.afs` volume of this cell is used to identify which cells to present at the root. Your default cell must have AFSDB-records in DNS, or/and be listed in [[CellServDB]] (see AFS Cells below). At the bottom, you will find the same Start / Stop Service as in the Credentials Manager.
87
88 The three other options are:
89
90 - **Obtain AFS tokens when logging into Windows** enables the Integrated Logon feature.
91 - **Provide an AFS Light Gateway** gives you access to the [[OpenAFS]] submounts from other computers.
92 - **Show the AFS Client icon in the taskbar** will start the Credentials Manager if it is not already running.
93
94 ###  Drive Letters
95
96 Mapping drives and creating submounts work the same way as for the Credentials Manager. Please refer to the section above.
97
98 ###  Preferences
99
100 <img src="http://www.e.kth.se/~tommie/openafs/screens/afsconfig/preferences.png" width="356" height="495" /> Since AFS can mirror both files and volume information on several servers, there must be a way to determine which server to contact. In [[OpenAFS]] for Windows, this is specified using the Server Preferences screen. Normally, you will never need to manually change the preferences of the servers. However, if you are doing load balance testing or if you are stress-testing a server, you may want to set preferences here.
101
102 You can also import the rankings from a file. The file is a text file with one line per server. Whitespaces separate the server name from the ranking number. Note that the servers are imported to the active list (File Server or Volume Location Server).
103
104 ###  AFS Cells
105
106 <img src="http://www.e.kth.se/~tommie/openafs/screens/afsconfig/afscells.png" width="356" height="495" /> Before [[OpenAFS]] was able to handle AFSDB-records in DNS, the [[CellServDB]] file contained the explicit mappings between cells and servers. The AFS Cells Tab shows the cells currently in the [[CellServDB]]. You add a cell and list its associated servers. Most large sites copy the [[CellServDB]] directly from the network, to keep it in sync.
107
108 ###  Advanced
109
110 <img src="http://www.e.kth.se/~tommie/openafs/screens/afsconfig/advanced.png" width="356" height="495" /> Finally, the Advanced Tab. This is where you configure the heart of [[OpenAFS]] for Windows. Most of these settings already have a best-practice value. Be warned that changing these settings can cause [[OpenAFS]] to be slow, or to stop working at all.
111
112 In the Cache Configuration section, there are four options:
113
114 - **Cache Size** determines the maximum disk cache size. The disk cache is a file, and it will always have the chosen size. I.e. it will not shrink if possible. The defualt is 20 MB. If you are editing large files, you may want to increase the cache size. Note that [[OpenAFS]] for Windows does not have a **_persistent cache_**. This means the cache will be flushed each time the [[OpenAFS]] service stops. The Unix versions of [[OpenAFS]] does have a persistent cache.
115 - **Cache Path** holds the path to the file acting as disk cache. The default is `C:\AFSCache`.
116 - **Chunk Size** is the smallest transfer unit. The cache works by caching chunks of files, not necessarily entire files. It should be set to a size which is fast to transfer over the network, yet large enough to avoid lots and lots of transfers. The default is 32 kB. It must be an even power of two.
117 - **Status Cache** describes file meta information caching. 1000 entries is the default.
118
119 ####  Logon Settings
120
121 Change the behavior of the Integrated Logon feature. The login retry interval sets how long (in seconds) [[OpenAFS]] will try to obtain initial tokens. Fail Logins Silently controls whether you will get a message box telling the reason for the failure.
122
123 Setting "Fail Logins Silently" to "No" also affects the function of the retry interval. When the interval has passed, you will be asked whether to start the timer over or not. If you choose to start over, another retry interval will be used to try and obtain the tokens.
124
125 ####  Diagnostic
126
127 Due to the complexity of [[OpenAFS]], the error and trace logging facilites have evolved into a detailed tracer of execution. The buffer is a ring, and the default size is 5000 kB. You can read this buffer using the `osidebug` program.
128
129 "Trap On Panic" is used during development. It is only useful if the AFS service crashes. If set to "Yes" (default), a crashed service will start the system debugger. (Actually, it sends an IRQ 3.) Note that the option is ignored if the system does not have a debugger installed.
130
131 "Report Session Startups" will let the AFS service send an event to the Windows Event Log each time a new SMB/CIFS session is started. Default is "No".
132
133 ####  Global Drives
134
135 In a highly networked environment, it is not uncommon to read login scripts from the network. This, of course, requires the scripts to be accessible by login time. Since the per-user drive mappings are executed **_after_** the scripts are executed, the global drive mappings can be used. These affect all users, and can only be modified by an Administrator.
136
137 ####  Binding
138
139 Before [[OpenAFS]] for Windows began to use the [[WindowsLoopBackAdapter]], it used physical network interfaces to bind to. In certain situations, the default choice may be a bad one. For instance, when the network interface connects directly to the Internet, this would be a bad idea. With the Loop Back Adapter, this is no longer an issue.
140
141 ####  Miscellaneous
142
143 <img src="http://www.e.kth.se/~tommie/openafs/screens/afsconfig/adv_misc.png" width="336" height="301" /> These settings are hardly ever changed. They control system specific settings.
144
145 - **Probe Interval** determines how often to check file servers. AFS is designed through the principle of callbacks. The file servers are obliged to notify each client if a subscribed file changes. This setup is not guaranteed to work if the servers lose the subscription list. Therefore, the client probes the servers regularly. **_Note: currently this setting is not permanently stored in the Windows Registry. It is only induced in a running AFS Client Service._**
146 - **Background Threads** controls how many AFS network threads will be running. One thread is able to handle one request from an AFS server at any time. Default is four threads.
147 - **Service Threads** controls how many SMB/CIFS threads will be running. If your computer is a single user machine, not doing any video or audio editing, a low number should suffice. It is possible that a higher number will get better performance for many parallel file accesses. Default is two threads.
148 - **System Name** is the value of "@sys". It should never be changed. Default is currently "i386\_nt40" for Windows NT/2000/XP/2003.
149 - **Mount Directory** is really "Mount Root". It is used when resolving symlinks. Microsoft Windows does not know about symbolic links, so the AFS Client Service must convert them. If a symlink target begins with the **_Mount Directory_** string, it will be transformed into an absolute path of the form `\\AFS\ALL\...`. Default is `/afs`. There is generally no need to modify this value.
150 - **Root Volume** is the name of the root volume of the default cell. Default is `root.afs`, and is the recommended AFS root volume name.
151
152 ##  Settings Without a User Interface
153
154 Currently, some options have not yet been given a proper user interface. These can be changed directly in the Windows Registry using `regedit`.
155
156 ###  Netbios Name
157
158 As the AFS service publishes its services as SMB/CIFS shares, there must be a name of this service. The `NetbiosName` (type expanding string) value of `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters` can change this. The default is "AFS". Change this to "%COMPUTERNAME%-AFS" to revert to the old behavior.
159
160 ###  Encryption of Network Traffic
161
162 Historically, AFS did not support encrypted network traffic. This has changed in recent years. The support is off by default in order to be compatible with old servers. You enable and disable encryption through the value `SecurityLevel` (type DWORD) in `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters`. Set to 1 to enable and 0 to disable.
163
164 ###  Freelance Client Support
165
166 This option can be set during installation. After installation, a registry entry must be edited. It can be found in `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters` and is called `FreelanceClient` (type DWORD). Set it to 1 to enable Freelance Mode. See the [[Troubleshooting Guide|WindowsTroubleshootingGuide#What_is_Freelance_Mode_]] for more information on Freelance Mode. Default is zero (disabled).
167
168 ####  Freelance Root Setup
169
170 To be able to use Freelance Mode, the AFS Client Service needs to know which cells should be visible. This is equivalent to mounting `root.cell` volumes in `root.afs`. If there are no volumes described when the AFS Client Service first starts, the default cell is inserted into the list (including a forced R/W volume).
171
172 To change the list, you need to edit the values under `HKEY_LOCAL_MACHINE\SOFTWARE\OpenAFS\Client\Freelance`. The values must be named with consecutive integers, starting from zero. Each value describes one volume to be mounted. The syntax is
173
174         mountpoint#cell:volume.\n
175         mountpoint%cell:volume.\n
176
177 Note the trailing dot and newline (ASCII 10) characters. The first line (with a hash) describes a normal volume, the second (with a percent sign) describes a R/W volume. R/W volume mountpoints usually begin with a dot. For instance, the keyed values
178
179         0 = openafs.org#openafs.org:root.cell.\n
180         1 = .openafs.org%openafs.org:root.cell.\n
181
182 will make two volumes available, one normal and one forced R/W.
183
184 ###  Hiding Dot-Files
185
186 On Unix, a dot-file is a file which begins with the dot character. It is semantically similar to the Hidden attribute used in Windows. This feature is enabled by default and marks all dot-files with the Hidden attribute. The value `HideDotFiles` (type DWORD) in `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters` can disable it (by giving it the value 0).
187
188 ###  Hiding the `\\AFS\all` Share
189
190 The share `all` is exported by default, and is defined as the root volume of the default cell. If you do not want this share to be defined, you can set `AllSubmount` (type DWORD) to 0, in `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters`.
191
192 ###  Tweaking the SMB Connections
193
194 Four values in `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters` affect the SMB connections:
195
196 - `MaxMpxRequests` (type DWORD) is the maximum number of multiplexed SMB requests that can be made. Default is 50.
197 - `MaxVCPerServer` (type DWORD) is the maximum number of SMB virtual circuits. Default is 100.
198 - `NoFindLanaByName` (type DWORD) disables the attempt to identity the network adapter to use by looking for an adapter with a display name of "AFS", if set to 1. Default is 0.
199 - `SMBAuthType` (type DWORD) defines the type of SMB authentication which must be present in order for the Windows SMB client to connect to the AFS Client Service's SMB server. The values are
200   - No authentication required (0)
201   - NTLM authentication required (1)
202   - Extended (GSS SPNEGO) authentication required (2, default)
203
204 Heavily loaded clients may need to increase the first two values.
205
206 Running the default authentication type, GSS SPNEGO, requires you to have the `cifs/HOST$@REALM` principal in your [[KerberosV]] KDC. If you Windows client computer is called `adam.openafs.org`, the principal should (probably) be `cifs/ADAM$@OPENAFS.ORG`. This works like the `host` principal, and must share the secret key with the `host` principal. Note: The name of the virtual SMB share is **_AFS_** if you use the [[WindowsLoopBackAdapter]]. But you must **_not_** have the principal `cifs/afs` principal in any realm you login to.
207
208 If the CIFS principal is missing, the client will revert to using NTLM authentication.
209
210 Also, you can explicitly set the Client Side Caching Policy of a SMB share by populating `HKEY_LOCAL_MACHINE\SOFTWARE\OpenAFS\Client\CSCPolicy\` with values. The values (type string) are keyed by the submount (Windows share) name. Valid policy values are:
211
212 - **disable** Which totally disables Windows Client Side Caching.
213 - **programs** Disables the cache for files that are opened for reading.
214 - **documents** All files will be cached.
215 - **manual** Selected files will be cached.
216
217 Note that CSC is something Windows can do with all CIFS shares. The setting is used for responding to Windows requests about the policy. AFS itself has its own caching which is not involved in CSC. Read more in [Windows Clustering](http://www.microsoft.com/resources/documentation/WindowsServ/2003/standard/proddocs/en-us/cluad_pr_100.asp).
218
219 ###  Connection Timeouts
220
221 In `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters`, two values control when connections are considered dead.
222
223 - `ConnDeadTimeout` (type DWORD) Default is 60 seconds.
224 - `HardDeadTimeout` (type DWORD) Default is 120 seconds, and it must be at least twice the `ConnDeadTimeout` value.
225
226 ###  Tweaking RPC Traffic
227
228 In `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters`, two values control how RX transfers data.
229
230 - `RxNoJumbo` (type DWORD) If enabled, does not send or indicate that we are able to send or receive RX jumbograms. Default is 0, which means jumbograms are used.
231 - `RxMaxMTU` (type DWORD) If set to anything other than -1, uses that value as the maximum MTU supported by the RX interface. In order to enable [[OpenAFS]] to operate across the Cisco IPSec VPN client, this value must be set to 1264 or smaller. Default is -1, the maximum.
232
233 ###  Enabling Debug Trace Events
234
235 Normally, the `TraceOption` (type DWORD) in `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters` is 0, meaning no traces will be sent to the Application Event Log. Setting it to 1 enables trace output.
236
237 ###  Restricting the Number of Utilized CPUs
238
239 For most part, the [[OpenAFS]] client can use as many processors as available. However, using multiple processors on a Hyperthreaded Pentium 4 system can cause the [[OpenAFS]] service to crash. If you have such a system, you should set `MaxCPUs` (type DWORD) (in `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters`) to 1. The default is undefined, and means all processors may be used.
240
241 ###  Moving the [[CellServDB]] File
242
243 The registry setting `CellServDBDir` (type string) in `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider` specifies the base directory of the [[CellServDB]] file. Note that the filename `CellServDB` is appended to this path. The default is `C:\Program Files\OpenAFS\Client`.
244
245 ###  Moving the Integrated Logon Support File
246
247 [[OpenAFS]] installs very few files outside its directory in `Program Files`. The Integrated Logon DLL, `afslogon.dll`, is an exception. It is installed in `%WINDIR%\SYSTEM32` by default.
248
249 To change this location you must update the registry value `AuthentProviderPath` (type string) in `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider` to point to the new location.
250
251 ###  Allowing More Time For the Service To Start
252
253 When the AFS Client Service starts, it has to read files, the registry, DNS information, and connect to servers. All of this may take quite some time. On slow computers, the default retry policy can be too short.
254
255 In this case, the `LoginRetryInterval` (type DWORD) and `LoginSleepInterval` (type DWORD) values in `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider` can be increased. If the [[OpenAFS]] client service has not started yet, the network provider will wait for a maximum of `LoginRetryInterval` seconds while retrying every `LoginSleepInterval` seconds to check if the service is up. This setting is domain-specific; see below.
256
257 ###  Running a Logon Script
258
259 You may set `LogonScript` (type string or expandable string) of `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider` to any runnable script or program. Default is to not run any program. This setting is also domain-specific; see below.
260
261 ###  Integrated Logon Usage
262
263 Utilization of the Integrated Logon feature can be set on a per-domain basis. The value is called `LogonOptions` (type DWORD) and can be found in `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider`. Setting this to "0" disables Integrated Logon, and a "1" enables it. Default is enabled. If you set this to "2", you enable the [[OpenAFS]] High Security mode, and setting it to "3" enables both High Security Mode and Integrated Logon.
264
265 High Security mode is a deprecated techinque to let several users logon to the same computer at once. Since [[OpenAFS]] now supports authenticated SMB connections, there is really no need for this mode. If you still want to use this mode, you should disable SMB Authentication. See "Tweaking the SMB Connections" on this matter.
266
267 ###  Integrated Logon Silence
268
269 In the Client Configuration, you may choose whether the Intergrated Logon should warn when you cannot logon, or if it should not. Since this setting is domain-specific, here is the background. The `FailLoginsSilently` (type DWORD) in `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider` can be set to 1 to ignore any failures. Default is to warn (i.e. a value of zero).
270
271 ###  Disable Automatic Use of [[KerberosV]]
272
273 If you have MIT Kerberos for Windows installed, and you do not want to let AFS Credentials Manager use it, you can disable it by setting `EnableKFW` (type DWORD) in `SOFTWARE\OpenAFS\Client`. This can be done in either of `HKEY_LOCAL_MACHINE` or `HKEY_CURRENT_USER`.
274
275 ###  Changing the Default Authentication Cell
276
277 In some rare cases, you may want to authenticate to one cell, but keep using another cell as your home. You can do this by entering the authentication cell each time you obtain new tokens. If you intend to do it regularly, you can change it in the registry.
278
279 The value `Authentication Cell` (type string) in `HKEY_CURRENT_USER\SOFTWARE\OpenAFS\Client` can be set to another cell name than the default cell.
280
281 ###  Changing the Parameters of AFS Credentials Manager
282
283 When the AFS Credentials Manager starts, it recreates the Start Menu and Startup shortcuts to enforce the parameters given during installation. These parameters are stored as `AfscredsShortcutParams` in `SOFTWARE\OpenAFS\Client`. It can be set for both `HKEY_LOCAL_MACHINE` and for `HKEY_CURRENT_USER`. Default is `-A -M -N -Q`. See above for an explanation of these parameters.
284
285 ##  Per Domain Options
286
287 [[OpenAFS]] for Windows is now able to support domain-specific settings. Four of the settings in the previous section can be adjusted on a domain basis:
288
289 - Allowing More Time For the Service To Start
290 - Running a Logon Script
291 - Integrated Logon Usage
292 - Integrated Logon Silence
293
294 This is a new feature of [[OpenAFS]] 1.3.6, and is not yet supported by the configuration user interface. While being a usable feature, we choose to document, so that you can still use it. A new configuration interface is hopefully on its way.
295
296 All values that can be domain-specific are located under `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider`. Domains which want to have specific settings can create the subkey <tt>Domain\\_domain_\\</tt> and store the values there. The domain name is the logon domain, as specified in the Windows Login screen. A special domain, called `LOCALHOST`, is a placeholder for the local computer. Any other Active Directory or Kerberos realm should use its realm name for the key.
297
298 ###  Resolution of Domain Specific Values
299
300 As a consequence of this scheme, there must also be set rules for resolving which value to use. Let us use the following example in the discussion:
301
302     ...\NetworkProvider\  LogonOption = 1
303         Domain\                         LogonOption = 0
304                 OPENAFS.ORG\     LogonOption = 1
305                 MIT.EDU\
306                 LOCALHOST\              LogonOption = 0
307
308 If the specific domain key does not exist, then the `Domain` key will be ignored. All the configuration information in this case will come from the standard `NetworkProvider` key.
309
310 If the specific domain key exists, then the value will be looked up in the specific domain key, domains key and the NP key successively until the value is found. The first instance of the value found this way will be the effective for the login session. If no such instance can be found, the default will be used. in other words, a value in a more specific key supercedes a value in a less specific key.
311
312 Back to our example. Logging in to domain `OPENAFS.ORG` clearly enables the Integrated Logon. Logging on the local computer disables it. Logging in to `MIT.EDU` will also disable Integrated Logon, because the domain key exists, but misses a value. This resolves to using the value of `Domain\LogonOption`. However, logging in to `KTH.SE` would enable Integrated Logon. It is not listed as a domain, and thus the `NetworkProvider\LogonOption` is used. In order to retain backward-compatibility, there are two exceptions to this resolution order.
313
314 ###  Exceptions To the Resolution Rule
315
316 Historically, the 'FailLoginsSilently' value was in `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters` key and not in the `NetworkProvider` key. Therefore, for backward compatibility, the value in the `Parameters` key will supercede all instances of this value in other keys. In the absence of this value in the `Parameters` key, normal scope rules apply.
317
318 The second exception is for the `LogonScript` value. If a `LogonScript` is not specified in the specific domain key nor in the `Domain` key, the value in the `NetworkProvider` key will only be checked if the effective `LogonOptions` specify a high security integrated login. If a logon script is specified in the specific domain key or the domains key, it will be used regardless of the high security setting. Please be aware of this when setting this value.
319
320 ##  Windows Registry Keys of [[OpenAFS]]
321
322 During the preparation of this release of [[OpenAFS]], a lot of changes have been made to the way configuration is stored. The work is still not finished; the list of registry keys currently used can be found [here](http://web.mit.edu/~jaltman/Public/OpenAFS/registry.txt).