From fb985eefcea791ae16610c210f1ca5408b8ed62f Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Thu, 14 May 2009 18:47:44 +0000 Subject: [PATCH] doc-xml-release-notes-windows-20090514 LICENSE MIT Initial take at converting the OpenAFS for Windows Release Notes to DocBook. Website style HTML and HtmlHelp (.chm) output is generated. Formatting of Registry Value descriptions could be improved. There is no indexing at present. --- doc/xml/ReleaseNotesWindows/NTMakefile | 61 + doc/xml/ReleaseNotesWindows/relnotes.xml | 4151 ++++++++++++++++++++ doc/xml/ReleaseNotesWindows/relnotes00.jpg | Bin 0 -> 89966 bytes doc/xml/ReleaseNotesWindows/relnotes01.jpg | Bin 0 -> 78326 bytes doc/xml/ReleaseNotesWindows/relnotes02.jpg | Bin 0 -> 63399 bytes 5 files changed, 4212 insertions(+) create mode 100644 doc/xml/ReleaseNotesWindows/NTMakefile create mode 100644 doc/xml/ReleaseNotesWindows/relnotes.xml create mode 100644 doc/xml/ReleaseNotesWindows/relnotes00.jpg create mode 100644 doc/xml/ReleaseNotesWindows/relnotes01.jpg create mode 100644 doc/xml/ReleaseNotesWindows/relnotes02.jpg diff --git a/doc/xml/ReleaseNotesWindows/NTMakefile b/doc/xml/ReleaseNotesWindows/NTMakefile new file mode 100644 index 000000000..f122add87 --- /dev/null +++ b/doc/xml/ReleaseNotesWindows/NTMakefile @@ -0,0 +1,61 @@ +# Copyright 2009, Secure Endpoints Inc. +# All Rights Reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# - Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# - Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# - Neither the name of Secure Endpoints Inc. nor the names of its contributors +# may be used to endorse or promote products derived from this software without +# specific prior written permission from Secure Endpoints Inc.. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER +# OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +!INCLUDE ..\..\..\src\config\NTMakefile.$(SYS_NAME) +!INCLUDE ..\..\..\src\config\NTMakefile.version + +!IFNDEF CYGWIN +CYGWIN = c:/cygwin +!ENDIF +!IFNDEF DOCBOOK_XSL +DOCBOOK_XSL = $(CYGWIN)/usr/share/docbook-xsl +!ENDIF +XSLTPROC = xsltproc.exe +HTML_XSL = $(DOCBOOK_XSL)/html/chunk.xsl +HTML_PARMS = --param navig.graphics 1 --stringparam navig.graphics.path ../ +CHM_XSL = $(DOCBOOK_XSL)/htmlhelp/htmlhelp.xsl + +XMLSRCS = \ + relnotes.xml + +index.html: $(XMLSRCS) + @echo Building OpenAFS Release Notes in HTML format + $(XSLTPROC) $(HTML_PARMS) $(HTML_XSL) relnotes.xml + +htmlhelp.chm: $(XMLSRCS) + @echo Building OpenAFS Release Notes in HTML Help format + $(XSLTPROC) $(CHM_XSL) relnotes.xml + -hhc.exe htmlhelp.hhp + $(DEL) *.html + $(DEL) *.hh? + $(DEL) *.chw + +install: htmlhelp.chm index.html + +clean:: + $(DEL) *.html + $(DEL) htmlhelp.chm \ No newline at end of file diff --git a/doc/xml/ReleaseNotesWindows/relnotes.xml b/doc/xml/ReleaseNotesWindows/relnotes.xml new file mode 100644 index 000000000..e36484a8c --- /dev/null +++ b/doc/xml/ReleaseNotesWindows/relnotes.xml @@ -0,0 +1,4151 @@ + + + + + OpenAFS for Windows Release Notes + Version 1.5.60 + + 2003-2009 + Secure Endpoints Inc. + + + This documentation is covered by the MIT License. + + + This document provides a series of usage notes regarding the OpenAFS for Windows + client, supported platforms, contribution information, debugging techniques, and + a reference to supported Windows registry values. + + + + + Preface + + OpenAFS for Windows 1.5.60 (with Unicode Support) + Release Notes + + The Andrew File System (AFS) is a location-independent file system that uses a local cache to increase its performance.  An AFS client accesses files anonymously or via a Kerberos authentication.  The global AFS is partitioned into cells.  The AFS cell is a collection of AFS volumes that are administered by a common entity.   AFS cells can be administered by a department even when the Kerberos realm used for local authentication is managed by a much larger organization.  AFS clients and servers take advantage of Kerberos cross realm authentication to enable authenticated access by entities located outside the local realm.  Authorization is enforced by the use of directory level access control lists which can consist of individual or group identities.  + The AFS volume is a tree of files and sub-directories.  AFS volumes are created by administrators and are joined to an AFS cell via the use of a mount point.   Once a volume is created, users can create files and directories as well as mount points and symlinks within the volume without regard for the physical location of the volume.  Administrators can move the volume to another server as necessary without the need to notify users.   In fact, the volume move can occur while files in the volume are in use.  + AFS volumes can be replicated to read-only copies.   When accessing files from a read-only replica, clients will read all of the data from a single replica.   If that replica becomes unavailable, the clients will failover to any replica that is reachable.  Users of the data are unaware of where the replicas are stored or which one is being accessed.   The contents of the replicas can be updated at any time by + releasing the current contents of the source volume. + + + + + OpenAFS for Windows (OAFW) provides AFS client access Microsoft Windows operating systems.  It strives to maintain transparency such that the user is unaware of the distinction between the use of AFS and Microsoft Windows file shares.   OAFW can be part of a single sign-on solution by allowing credentials for a Kerberos principal to be obtained at logon and for that principal to be used to obtain AFS tokens for one or more cells.   Although OAFW is implemented as a locally installed SMB to AFS gateway, OAFW maintains the portability of file paths by its use of the \\AFS UNC server name. + OpenAFS is the product of an open source development effort begun on October 31 2000.  OpenAFS is maintained and developed by a group of volunteers with the support of the user community.   If you use OpenAFS as part of your computing infrastructure please contribute to its continued growth. + + + + Installer Options + It can be installed either as a new installation or an upgrade from previous versions of OpenAFS for Windows or IBM AFS for Windows.  Installers are provided in two forms: + + + + an executable (.exe) that is built using the Nullsoft Scriptable Installation System, or + + a Windows Installer package (.msi) that is built using WiX and can be customized for organizations via the use of MSI Transforms (see + MSI Deployment Guide) + + + + + + + System Requirements +
+ 2.1 Supported Operating Systems + + + Microsoft Windows 2000 Workstation + + + Microsoft Windows 2000 Server + + + Microsoft Windows XP Home + + + Microsoft Windows XP Professional + + + Microsoft Windows XP 64 + + + Microsoft Windows 2003 Server (32-bit and 64-bit Intel) + + + Microsoft Windows 2003 R2 Server (32-bit and 64-bit Intel) + + + Microsoft Windows Vista (32-bit and 64-bit Intel) + + + Microsoft Windows 2008 Server (32-bit and 64-bit Intel) + + + Microsoft Windows 7 RC (32-bit and 64-bit Intel) + + + Microsoft Windows 2008 Server R2 RC (32-bit and 64-bit Intel) + + +
+
+ 2.1.1 Unsupported Operating Systems + + + Microsoft Windows 95 + + + Microsoft Windows 98 + + + Microsoft Windows 98 OSR2 + + + Microsoft Windows ME + + + Microsoft NT + + + Older releases of OpenAFS are available for download if unsupported operating systems must be used.  The last version of OpenAFS with support for Win9x is 1.2.2b.  The last version with support for Windows NT 4.0 is 1.2.10. +
+
+ 2.2 Disk Space + Up to 60mb required for the OpenAFS binaries plus 100MB for the default AFSCache file.   The size of the AFSCache file may be adjusted via the Registry after installation. The maximum cache size for 32-bit Windows is approximately 1.2GB. On 64-bit Windows there is no practical limit on the cache size. +
+
+ 2.3 Additional Software Packages + + MIT Kerberos for Windows 2.6.x or 3.x.x if Kerberos v5 authentication support is desired. The recommended release is version 3.2.2. For 64-bit Windows installations, the 64-bit version of Kerberos for Windows is required. For 32-bit Windows installations, the 32-bit version of Kerberos for Windows is required. + + + + +
+
+ + Operational Notes +
+ 3.1. Unicode Support + Starting with the 1.5.50 release of OpenAFS for Windows, each of the AFS Client Service, the AFS Explorer Shell Extension, and the command-line tools are Unicode enabled. No longer is OpenAFS restricted to accessing file system objects whose names can be represented in the locale specific OEM code page. This has significant benefits for end users. Most importantly it permits non-Western languages to now be used for file system object names in AFS from Microsoft Windows operating systems. Now that Unicode names are supported, + Roaming User Profiles and + Folder Redirection will no longer fail when a user attempts to store an object with a name that cannot be represented in the OEM code page. + + + + + Unicode names are stored in AFS using UTF-8 encoding. UTF-8 is supported as a locale on MacOS X, Linux, Solaris, and most other operating systems. This permits non-Western object names to be exchanged between Microsoft Windows and other operating systems. The OpenAFS for Windows client also implements + Unicode Normalization as part of the name lookup algorithm. This is necessary because Unicode does not provide a unique representation for each input string. The use of normalization permits a file system object name created on MacOS X to be matched with the same string entered on Microsoft Windows even though the operating system’s choice of representation may be different. + + + + + It is important to note that AFS file servers are not character set agnostic. All file system object names are stored as octet strings without any character set tagging. If a file system object is created using OEM Code Page 858 and then interpreted as UTF-8 it is likely that the object name will appear to be gibberish. OpenAFS for Windows goes to great lengths to ensure that the object name is converted to a form that will permit the user to rename the object using Unicode. Accessing UTF-8 names on UNIX systems that have the locale set to one of the ISO Latin character sets will result in the UTF-8 strings appearing to be gibberish. + Neither UNIX AFS nor Microsoft Windows 2000 systems can perform Unicode Normalization for string comparisons. Although it is possible to store and read Unicode object names, it is possible that a user may not be able to open an object by typing the name of the object at the keyboard. GUI point and click operations should permit any object to be accessed. +
+
+ 3.2. Requirements for Kerberos v5 Authentication + The Kerberos v4 infrastructure on which the OpenAFS 1.2 series is reliant is no longer secure.  Cross-realm Kerberos is very important in the AFS context and most sites have or are migrating to Kerberos v5 environments.  The OpenAFS 1.4 series (and later) integrates with + MIT Kerberos for Windows 2.6.5 and above to support Kerberos v5 authentication including automatic renewal of AFS tokens and single sign-on via the Microsoft Windows Kerberos Logon Service. + + + + + The recommended version of + MIT Kerberos for Windows is 3.2.2. KFW 3.2.2 includes Network Identity Manager 1.3.1 which integrates with the + AFS Provider installed as part of OpenAFS for Windows. + + + + + When KFW is installed, the OpenAFS for Windows client will obtain Kerberos v5 tickets and use them as tokens without modification.  The OpenAFS client requires that all of the AFS Servers with which it communicates support the use of Kerberos v5 tickets as tokens. If Kerberos v5 based tokens are presented to an AFS server that does not support them, the server will be unable to communicate with the client when tokens are present. Kerberos v5 based tokens are supported by OpenAFS release 1.2.8 or later. IBM Transarc servers do not support Kerberos v5. +
+ 3.2.1. Active Directory + Microsoft Windows Active Directory can be used as a Kerberos v5 KDC in conjunction with OpenAFS. There are two things to consider when using an Active Directory as the Kerberos realm that issues the AFS service ticket.  First, the Kerberos v5 tickets issued by Active Directory can be quite large when compared to tickets issued by a traditional KDC due to the incorporation of authorization data (the Microsoft PAC).  If the issued tickets are larger than 344 bytes, the OpenAFS 1.2 servers will be unable to process them and will issue a RXKADBADTICKET error. OpenAFS 1.4 (and beyond) servers can support the largest tickets that Active Directory can issue.  Second, the Kerberos v5 tickets issued by Windows 2003 Active Directory are encrypted with the DES-CBC-MD5 encryption type (enctype).  OpenAFS 1.2 servers only support the DES-CBC-CRC enctype. As a result, OpenAFS 1.2 servers cannot process the resulting Kerberos v5 tokens. Windows 2000 Active Directory issues tickets with the DES-CBC-CRC enctype. + Microsoft has documented in + Knowledge Base article 832572 a new NO_AUTH_REQUIRED flag that can be set on the account mapped to the AFS service principal. When this flag is set, the PAC authorization data will not be included in the ticket. Setting this flag is recommended for all accounts that are associated with non-Windows services and that do not understand the authorization data stored in the PAC. This flag cannot be used if AFS service tickets are obtained via cross-realm using an Active Directory user principal. + + + + + Note that an Active Directory computer object cannot be used for the afs service principal. +
+
+ 3.2.2. Using the krb524 Service + Some organizations have AFS cell names and Kerberos realm names which differ by more then just lower and upper case and rely on a modification to krb524d which maps a Kerberos v5 ticket from realm FOO to a Kerberos v4 ticket in realm BAR.  This allows user@FOO to appear to be user@bar for the purposes of accessing the AFS cell.  As of OpenAFS 1.2.8, support was added to allow the immediate use of Kerberos v5 tickets as AFS (2b) tokens. This is the first building block necessary to break away from the limitations of Kerberos v4 with AFS.  By using Kerberos v5 directly we avoid the security holes inherent in Kerberos v4 cross-realm.  We also gain access to cryptographically stronger algorithms for authentication and encryption. + Another reason for using Kerberos v5 directly is because the krb524 service runs on a port (4444/udp) which has increasingly been blocked by ISPs.  The port was used to spread a worm which attacked Microsoft Windows in the summer of 2003.  When the port is blocked users find that they are unable to authenticate. + Replacing the Kerberos v4 ticket with a Kerberos v5 ticket is a win in all situations except when the cell name does not match the realm name and the principal names placed into the ACL’s are not the principal names from the Kerberos v5 ticket.  To support this transition, OpenAFS for Windows 1.4 adds a new registry value, + Use524, to force the use of krb524d.  However, the availability of this option should only be used by individuals until such time as their organizations can provide a more permanent solution. + + + + + Note that the OpenAFS 1.4.x servers permit the use of a secondary realm name that can be treated as equivalent to the cell name for authentication. + +
+
+ 3.2.3. Network Identity Manager Provider + As of release 1.5.9, OpenAFS for Windows includes a Network Identity Manager Provider for obtaining AFS tokens. This plug-in is a contribution from + Secure Endpoints Inc. Network Identity Manager is a multiple identity credential management tool that ships with + MIT Kerberos for Windows version 3.0 and above. The OpenAFS plug-in requires + MIT Kerberos for Windows version 3.1 or above. Version 3.2.2 is recommended for the best user experience. + + + + + + + + + + + + The Network Identity Manager replaces the former KFW ticket manager, Leash", and when combined with the OpenAFS Provider, it is intended to be used as a replacement for the AFS System Tray Tool (afscreds.exe). Unlike both Leash and the AFS System Tray Tool, Network Identity Manager with the OpenAFS Provider can easily manage AFS tokens for multiple cells from one or more Kerberos v5 identities. + + + + + + + + The AFS configuration panel for each Kerberos v5 identity is used to configure which cells credentials should be obtained for and how they should be obtained. If the cell to realm mapping cannot be automatically determined, it can be explicitly specified. If the cell does not support Kerberos v5 tickets as tokens, then a krb524 service can be configured. + + + + + + + + The OpenAFS Provider configuration panel can be used to check the status of the AFS Client Service and its version. An optional checkbox is provided that will prevent the AFS System Tray Tool from being started by Windows after login. A shortcut to the OpenAFS Control Panel is also provided. +
+
+
+ 3.3. Use of the Microsoft Loopback Adapter by the AFS Client Service + By itself the OpenAFS Client Service does not provide robust behavior in a plug-n-play network environment.  Changes to the number of network adapters or their assigned IP addresses will cause the service to terminate unexpectedly.  To avoid this behavior OpenAFS for Windows installs a single instance of the Microsoft Loopback Adapter (MLA) on the machine.  With the MLA installed, the OpenAFS Client Service will not be affected by the configuration changes of other network adapters installed on the system.  + The MLA is installed with a name of "AFS" and a pre-assigned IP address in the 10.x.x.x range.  The MLA is bound to the "Client for Microsoft Networks" service and not bound to the "File and Printer Sharing for Microsoft Networks".  If the MLA is unbound to "Client Microsoft Networks", the OpenAFS Client Service will become inaccessible when the machine is disconnected from the network.  If the MLA is bound to "File and Printer Sharing ..." there will be a service type collision between the name "AFS" and the name of the machine on the MLA's IP Address that will result in the OpenAFS client service becoming inaccessible and the "NET VIEW \\AFS" command will return a "System Error 52" message.  To correct the problem: + + + stop the AFS Client Service + + + bind the "Client for Microsoft Networks" to the MLA + + + unbind "File and Printer Sharing for Microsoft Networks" from the MLA + + + Disable and then re-enable the MLA + + + start the AFS Client Service + + + When the MLA is not installed the unique NETBIOS name published by OpenAFS SMB server is " + MACHINE-AFS".  One of the benefits of using the MLA is that the NETBIOS name does not have to be published on any adapter other than the MLA.  Therefore the chosen name is no longer required to be unique.  Instead the NETBIOS name associated with the AFS Client Service is simply "AFS" and portable UNC paths of the form \\AFS\cellname\path can now be used on all machines. + + + + +
+
+ 3.4. Using Freelance (Dynamic Root) Mode to Improve Mobility + Traditionally, when the OpenAFS Client Service starts it must be able to access the "root.afs" volume of the default cell.  The "root.afs" volume contains the set of mount points to the "root.cell" volumes of various cells the administrator of the default cell believes should be accessible.  If the "root.afs" volume is inaccessible when the client service is started, the service will terminate unexpectedly.  Since many users now use laptops or otherwise operate in disconnected environments in which a VPN may be required to access the cell's servers, it is often the case that the "root.afs" volume for the default cell is not reachable and the OpenAFS Client Service will not successfully start. + To allow the OpenAFS Client Service to operate in these environments, Freelance mode dynamically constructs a fake "root.afs" volume from mount points and symlinks stored in the local registry. + The content of the fake "root.afs" volume is dynamically generated as cells are accessed.  When the fake "root.afs" volume is initially constructed it will only contain two mount points: a + regular path and + read-write path mount point used to access the "root.cell" volume of the default AFS cell.  Any attempt to access a valid cell name will result in a new mount point being created in the fake "root.afs" volume.  If the cellname begins with a "." the mount point will be a + read-write path; otherwise the mount point will be a + regular path.  These mount points are preserved in the registry at key: + + + + + + HKLM\SOFTWARE\OpenAFS\Client\Freelance + + Additional mount points may be manually created using the "fs mkmount" command.  Mount points may be removed using the "fs rmmount" command. + >fs mkmount \\AFS\athena.mit.edu root.cell athena.mit.edu + >fs mkmount \\AFS\.athena.mit.edu root.cell athena.mit.edu -rw + >fs rmmount \\AFS\athena.mit.edu + >fs rmmount \\AFS\.athena.mit.edu + Symlinks may also be created within the Freelance "root.afs" volume. + >symlink make \\afs\link \\afs\athena.mit.edu\user\j\a\jaltman +       >symlink list \\afs\link +       '\\afs\link' is a symlink to 'athena.mit.edu\user\j\a\jaltman' + >symlink rm \\afs\link + The symlinks are stored in the registry at: + + HKLM\SOFTWARE\OpenAFS\Client\Freelance\Symlinks  + + + + +
+
+ 3.5. Locating AFS Volume Database Servers via DNS + The OpenAFS for Windows client will use DNS AFSDB records to discover the location of AFS Volume Database servers when entries for the cell are not present in the client's CellServDB file (\%PROGRAMFILES%\OpenAFS\Client\CellServDB). +
+
+ 3.6. Obtaining AFS Tokens as a Integrated Part of Windows Logon + OpenAFS for Windows installs a WinLogon Network Provider to provide Single Sign-On functionality (aka Integrated Logon.)  Integrated Logon can be used when the Windows username and password match the username and password associated with the default cell's Kerberos realm.  For example, if the Windows username is "jaltman" and the default cell is "athena.mit.edu", then Integrated Logon can be successfully used if the windows password matches the password assigned to the Kerberos principal "jaltman@ATHENA.MIT.EDU".  The realm "ATHENA.MIT.EDU" is obtained by performing a domain name to realm mapping on the hostname of one of the cell's Volume Database servers. + Integrated Logon is required if you desire the ability to store roaming user profiles within the AFS file system.  OpenAFS does not provide tools for synchronizing the Windows and Kerberos user accounts and passwords. + When KFW is configured, Integrated Logon will use it to obtain tokens. Use of KFW for Integrated Logon can be disabled via the + EnableKFW registry value. Use of the krb524 service can be configured via the + Use524 registry value. + + + + + Integrated Logon will not transfer Kerberos v5 tickets into the user’s logon session credential cache. KFW 3.1 and above provides that functionality on its own. + Integrated Logon does not have the ability to cache the user's username and password for the purpose of obtaining tokens if the Kerberos KDC is inaccessible at logon time. + Integrated Logon supports the ability to obtain tokens for multiple cells.  For further information on how to configure this feature read about the + TheseCells value. + + + + +
+
+ 3.7. AFS System Tray Command Line Options + The AFS System Tray Tool (afscreds.exe) has been deprecated in favor of Network Identity Manager. afscreds.exe will be removed from the OpenAFS in a future release. + The AFS System Tray tool (afscreds.exe) supports several command line options: + + + -A = autoinit + + + -E = force existing afscreds to exit + + + -I = install startup shortcut + + + -M = renew drive maps + + + -N = IP address change detection + + + -Q = quiet mode. do not display start service dialog if afsd_service is not already running + + + -S = show tokens dialog on startup + + + -U = uninstall startup shortcut + + + -X = test and do map share + + + -Z = unmap drives + + + autoinit will result in automated attempts to acquire AFS tokens when afscreds.exe is started.  afscreds.exe will attempt to utilize tickets stored in the MSLSA credentials cache; any existing CCAPI credentials cache; and finally display an Obtain Tokens dialog to the user.  When used in combination with IP address change detection, afscreds.exe will attempt to acquire AFS tokens whenever the IP address list changes and the Kerberos KDC is accessible. + The renew drive maps option is used to ensure that the user drive maps constructed via the OpenAFS tools (not NET USE) are re-constructed each time afscreds.exe is started. + By default afscreds.exe is configured by the OpenAFS.org installers to use "-A -N -M -Q" as startup options.  Currently, there is no user interface to change this selection after install time although these options may be altered via the registry on either per machine or per user basis.  See + AfscredsShortcutParams in + Appendix A. + + + + +
+
+ 3.8. The "AFS Client Admins" Authorization Group + The OpenAFS for Windows client supports a local Windows authorization group named "AFS Client Admins".  This group is used in place of the "Administrators" group to determine which users are allowed to modify the AFS Client Service configuration via the AFS Control Panel (afs_config.exe) or fs.exe command line tool.  The following fs.exe commands are now restricted to members of the "AFS Client Admins" group: + + + checkservers with a non-zero timer value + + + setcachesize + + + newcell + + + sysname with a new sysname list + + + exportafs + + + setcell + + + setserverprefs + + + storebehind + + + setcrypt + + + cscpolicy + + + trace + + + minidump + + + The creation or removal of mount points and symlinks in the Freelance "root.afs" volume are also restricted to members of the "AFS Client Admins" group. + The initial membership of the "AFS Client Admins" group when created by the installer is equivalent to the local "Administrators" group.  If a user is added to the "Administrators" group after the creation of the "AFS Client Admin" group, that user will not be an AFS Client Administrator.  Only users that are members of the "AFS Client Admins" group are AFS Client Administrators.  The local "SYSTEM" account is an implicit member of the "AFS Client Admins" group. + Setting the default sysname for a machine should be done via the + SysName registry value and not via "fs sysname". + + + + +
+
+ 3.9. OpenAFS Support for UNC Paths + The OpenAFS client supports UNC paths everywhere.  UNC paths provide a canonical name for resources stored within AFS.  UNC paths should be used instead of drive letter mappings whenever possible.   This is especially true when specifying the location of roaming profiles and redirected folders.   + Power users that make extensive use of the command line shell, cmd.exe, should consider using JP Software's 4NT or Take Command command processors.  Unlike cmd.exe, the JPSoftware shells fully support UNC paths as the current directory.  JPSoftware added special recognition for OpenAFS to its command shells, 4NT 7.0 and Take Command 7.0.  AFS paths can be entered in UNIX notation (e.g., /afs/openafs.org/software), space utilization reports the output of the volume status for the specified path, and many AFS specific functions and variables have been added to the command language. + JPSoftware's web site is + http://www.jpsoft.com. + + + + +
+
+ 3.10. aklog.exe + The OpenAFS Client ships with its own version of aklog.exe which should be used in preference to those obtained by other sources.  The OpenAFS aklog.exe supports Kerberos v5 as well as the ability to auto-generate AFS IDs within foreign PTS databases. + + + Usage: aklog [-d] [[-cell | -c] cell [-k krb_realm]] + [[-p | -path] pathname] + [-noprdb] [-force] + [-5 [-m]| -4] + + -d = output debugging information. + cell = zero or more cells for which tokens will be obtained + krb_realm = the kerberos realm of the cell. + pathname = the directory for which authentication is required + -noprdb = don't try to determine AFS ID. + -5 or -4 = use Kerberos V (default) or Kerberos IV tickets + -m = use krb524d to convert Kerberos V tickets to Kerberos IV + + +
+
+ 3.11. OpenAFS Servers on Windows are Unsupported + The AFS Server functionality provided as part of the OpenAFS install package might work but should be considered highly experimental.  It has not been thoroughly tested.  Any data which would cause pain if lost should not be stored in an OpenAFS Server on Windows. + Known issues include lack of support for power management and dynamic network configuration. Salvager is also known to crash. +
+ 3.11.1. OpenAFS Server Installation + When the OpenAFS Server is installed, the TransarcAFSServer service (bosctlsvc.exe) will be installed and configured. The TransarcAFSServer service will auto-start the traditional AFS bos server. The former AFS Server Configuration wizard makes assumptions that no longer hold true and it has therefore been disabled. However, following the instructions for installing the AFS Servers on UNIX it is possible to properly configure the AFS Servers on Microsoft Windows. The AFS Server binaries, configuration files, and log files are installed under %Program Files%\OpenAFS\Server. + kaserver has been deprecated and its use is strongly discouraged. Instead, Active Directory or some other Kerberos v5 KDC should be used in its place. + + + + +
+
+ 3.11.2. Using the AFS Client Service when the Server is installed + A few notes on the usage of the AFS Client Service if it is going to be used with the OpenAFS AFS Server: + + + Freelance mode should be disabled when the AFS Client Service is installed on the same machine as the AFS Server,.  Otherwise, you will be unable to manipulate the contents of the root.afs volume for the hosted cell without constructing an explicit mountpoint to the root.afs volume from another volume. + + + The AFS Server and related tools only support the built in kaserver (Kerberos IV).  If kaserver is being used, + MIT Kerberos for Windows should not be installed or must be disabled via the + EnableKFW registry value. + + + + + + + The AFS Servers are not aware of power management events nor are they aware of network configuration changes. It is strongly advised that the AFS servers be installed only on systems that will not be shutdown or suspended unexpectedly. An inadvertent shutdown will corrupt volume data. + + +
+
+
+ 3.12. OpenAFS Debugging Symbol files + The OpenAFS for Windows installers include Debugging Symbol files which should be installed if you are experiencing problems and need to send crash reports.  This is true for both the release and the debug versions of the installers.  The difference between the release and debug versions are: + + + whether or not the binaries were compiled with optimization (release: yes, debug: no) + + + whether or not the debug symbols are installed by default (release: no, debug: yes) + + + whether or not + fs trace logging is turned on by default (release: no, debug: yes) + + + + + + + whether or not additional debug statements were compiled into the binaries (release: no, debug: yes) + + +
+
+ 3.13. Large File (64-bit) Support + As of release 1.5.3, OpenAFS for Windows supports files larger than 2GB.  The maximum file size is now 16777216 terabytes when the AFS File Server supports large files.   If the AFS File Server does not support 64-bit file sizes, then the maximum file size remains 2GB. +
+
+ 3.14. Encrypted AFS Network Communication + The OpenAFS for Windows installer by default activates a weak form of encrypted data transfer between the AFS client and the AFS servers.  This is often referred to as "fcrypt" mode.  Encrypted data transfer can be turned on or off with the "fs crypt" command.  Transitions between "crypt" and "non-crypt" modes are logged to the Windows Application Event Log. +
+
+ 3.15. Authenticated SMB Access to the OpenAFS Client Service + OpenAFS authenticates SMB connections using either NTLM or GSS SPNEGO (NTLM).  In previous versions of OpenAFS, the SMB connections were unauthenticated which opened the door for several attacks which could be used to obtain access to another user's tokens on shared machines.    + When GSS SPNEGO attempts a Kerberos v5 authentication, the Windows SMB client will attempt to retrieve service tickets for "cifs/afs@REALM" (if the loopback adapter is in use) or "cifs/machine-afs@REALM" (if the loopback adapter is not being used).  It is extremely important that this service principal not exist in the KDC database as the Kerberos authentication must fail allowing automatic fallback to NTLM.  When NTLM is used a special local authentication mode will be used that does not require access to the user's password.  Instead, Windows will internally recognize the request as coming from a local logon session. +
+
+ 3.16. No More INI Files + Previous AFS clients for Windows stored configuration data in Windows .INI files.   The OpenAFS client does not use Windows .INI files for the storage of configuration data.   All settings are stored in the registry (see + Appendix A).  The CellServDB file is now stored in either the %ALLUSERSPROFILE%\Application Data\OpenAFS\Client directory or the %PROGRAMFILES%\OpenAFS\Client directory.   The + CellServDBDir registry value or the AFSCONF environment variable can be used to specify an alternative location. + + + + + For users converting from IBM AFS clients, during installation OpenAFS will relocate the contents of the "afsdcell.ini" file to the new CellServDB file.  OpenAFS will also import the contents of the "afs_freelance.ini" file to the Windows registry.   OpenAFS will not process the contents of the "afsddbmt.ini". +
+
+ 3.17. Microsoft Windows Internet Connection Firewall + The OpenAFS Client is compatible with the Internet Connection Firewall that debuted with Windows XP SP2 and Windows 2003 SP1.  The Internet Connection Firewall will be automatically adjusted to allow the receipt of incoming callback messages from the AFS file server.  In addition, the appropriate + Back Connection registry entries are added to allow SMB authentication to be performed across the Microsoft Loopback Adapter. + + + + +
+
+ 3.18. Browsing AFS from the Explorer Shell and Office + The OpenAFS Client Service implements the CIFS Remote Admin Protocol which allows Explorer to browse server and share information. This significantly enhances the interoperability of AFS volumes within the Explorer Shell and Microsoft Office applications. +
+
+ 3.19. Byte Range Locking + Many applications on Windows (e.g. Microsoft Office) require the use of byte range locks applied to a file either to protect against simultaneous file access or as a signaling mechanism.   OpenAFS for Windows release 1.5 (or greater) implements byte range locking within the CIFS-AFS gateway server.   This support for byte range locking obtains AFS’ advisory file server locks to simulate Microsoft Windows mandatory locks.   When an application opens a file, a lock will be obtained from AFS indicating that the file is in use.  If the lock is a write lock, access to the file will be restricted to other applications running on the same machine as the first application to request the lock.   Applications running on other machines will see the AFS full file lock and will be unable to access the file. + Most Windows applications and Windows itself opens files in shared read mode. When this is done, a read lock is applied to the file.   This does not prevent shared read access across multiple machines but is used to ensure that no one writes to the file while it is in use. + As the CIFS-AFS gateway server attempts to implement Windows lock semantics on top of AFS lock semantics it is important to understand how AFS file locks work.  In Windows there are no special privileges associated with obtaining file locks.  If you can read or execute a file, then you can obtain shared and exclusive locks.  In general, a Windows shared lock equates to an AFS read lock and a Windows exclusive lock equates to an AFS write lock.  In AFS if you can write to a file, then you can obtain a write lock.  However, in AFS if you can read a file it does not mean that you can obtain a read lock on it.   The ability to obtain read locks is granted only if you have the lock (or ‘k’) privilege.  This behavior is required in order to allow anonymous users to read files while preventing them from being able to deny access to the files to other users.  + OpenAFS 1.4.0 and earlier as well as all IBM AFS file servers have an implementation bug that prevents users with write privileges from being able to obtain locks without the lock privilege.  When AFS serves data out of read-only volumes the file server will deny all requests for read and write locks because the contents of the volume cannot be changed by the client. + + + + + Since Microsoft Windows applications almost always attempt to obtain a temporary exclusive lock when accessing files the OpenAFS Client’s CIFS-AFS gateway implements the following semantics in order to reduce the inconvenience on end users.  + + + If the file is located on a read-only volume and the application requests a shared lock, the CIFS-AFS server will grant the lock request without asking the AFS file server. + + + If the file is located on a read-only volume and the application opens the file with write access and requests an exclusive lock, the CIFS-AFS server will refuse the lock request and return a read only error. + + + If the file is located on a read-only volume and the application opens the file with only read access and requests an exclusive lock, the CIFS-AFS server will fulfill the lock request with a read lock. + + + If the file is located on a read-write volume and the application requests an exclusive lock, the CIFS-AFS server will request a write lock from the AFS file server.  If granted by the file server, then the CIFS-AFS server will grant the lock request.  If the request is denied due to an access denied error and the user has the lookup, read and lock privileges and the file was opened for read only access, then the CIFS-AFS server will request a read lock from the file server.  If the request is denied due to an access denied error and the user has the lookup and read privileges but not the lock privilege, then the CIFS-AFS server will grant the request even though the AFS file server said ‘no’.  If the user does not have at least those permissions, the CIFS-AFS server will deny the request. + + + If the file is located on a read-write volume and the application requests a shared lock, the CIFS-AFS server will request a read lock from the AFS file server.  If granted by the file server, then the CIFS-AFS server grants the lock request.  If the request is denied due to an access denied error and the user has the lookup and read privileges but not the lock privilege, then the CIFS-AFS server will grant the request even though the AFS file server said ‘no’.  If the user does not have at least those permissions, the CIFS-AFS server will deny the request. + + + If multiple processes on the same machine attempt to access the same file simultaneously, the CIFS-AFS server will locally manage the granted locks and all processes will share a single lock on the AFS file server. + + + If the CIFS-AFS server is unable to renew the AFS file server locks, then it will invalidate the associated file handles.  This is the same behavior that an application will experience if it was using a Windows File Share and the connection was broken.   Invalidating the file handles prevents subsequent data corruption from taking place. + + + If you wish to disable the acquisition of locks from the file server, this can be performed using the + EnableServerLocks registry value. + + + + +
+
+ 3.20. Automatic Discarding of AFS Tokens at Logoff + The OpenAFS Client will automatically forget a user's tokens upon Logoff unless the user's profile was loaded from an AFS volume.  In this situation there is no mechanism to determine when the profile has been successfully written back to the network.  It is therefore unsafe to release the user's tokens.  Whether or not the profile has been loaded from the registry can be determined for Local Accounts, Active Directory accounts and NT4 accounts. + If there is a need to disable this functionality, the + LogoffPreserveTokens registry value can be used. (see + Appendix A.) + + + + +
+
+ 3.21. Windows Terminal Server installations + When installing the NSIS (.exe) installer under Terminal Server, you must execute it from within the Add/Remove Programs Control Panel.  Failure to do so will result in AFS not running properly.  The AFS Server should not be installed on a machine with Terminal Server installed. +
+
+ 3.22. Hidden Dot Files + AFS is a UNIX native file system.  The OpenAFS client attempts to treat the files stored in AFS as they would be on UNIX.  File and directory names beginning with a "." are automatically given the Hidden attribute so they will not normally be displayed. This behavior can be altered via the + HideDotFiles registry value. + + + + +
+
+ 3.23. Status Cache Limits + The Status Cache (AFS Configuration Control Panel: Advanced Page) is defined to have a maximum number of entries.  Each entry represents a single file or directory entry accessed within the AFS file system.  When the maximum number of entries are allocated, entries will begin to be reused according to a least recently used (LRU) algorithm.  If the number of files or directories being accessed repeatedly by your applications is greater then the maximum number of entries, your host will begin to experience thrashing of the Status Cache and all requests will result in network operations. + If you are experiencing poor performance try increasing the maximum number of Status Cache entries.  Each entry requires approximately 1.2K.  The default number of Status Cache entries is 10,000. This can be adjusted using the + Stats registry value. + + + + +
+
+ 3.24. NETBIOS over TCP/IP must be enabled + "Netbios over TCP/IP" must be active on the machine in order for communication with the AFS Client Service to succeed.  If "Netbios over TCP/IP" is disabled on the machine, then communication with the AFS Client Service will be impossible. If you are using the Microsoft Loopback Adapter, configure the "Netbios over TCP/IP" setting for the adapter. +
+
+ 3.25. OpenAFS binaries are digitally signed + The OpenAFS Client Service and related binaries distributed by OpenAFS.org are digitally signed by "Secure Endpoints Inc.".  The OpenAFS Client Service will perform a run-time verification check to ensure that all OpenAFS related DLLs loaded by the service match the same file version number and were signed by the same entity.  This check has been added to prevent the stability problems caused by more than one AFS installation present on a machine at the same time.  Many hours of support time have been wasted tracking down problems caused by the mixture of files from different releases.  + + Appendix A documents the " + VerifyServiceSignature" registry value which can be used to disable the signature check.  The file version check cannot be disabled. + + + + +
+
+ 3.26. Maximum Size of the AFSCache File + The maximum cache size on 32-bit Windows is approximately 1.3GB.  This is the largest contiguous block of memory in the 2GB process address space which can be used for constructing a memory mapped file.  Due to fragmentation of the process space caused by the loading of libraries required by the digital signature verification code, any attempt to specify a cache size greater then 700MB will result in the automatic disabling of the signature check. Significantly larger cache sizes can be used on 64-bit Windows. +
+
+ 3.27. Filename Character Sets + This section describes functionality and concerns related to pre-1.5.50 releases of OpenAFS for Windows. This release stores all file names on the file servers as Unicode encoded using UTF-8. + OpenAFS for Windows implements an SMB server which is used as a gateway to the AFS filesystem.  Because of limitations of the SMB implementation in pre-1.5.50 releases, Windows stored all files into AFS using OEM code pages such as CP437 (United States) or CP850 (Western Europe).  These code pages are incompatible with the ISO Latin-1 or Unicode (UTF-8) character sets typically used as the default on UNIX systems in both the United States and Western Europe.  Filenames stored by OpenAFS for Windows were therefore unreadable on UNIX systems if they include any of the following characters: + + + + + + +      [Ç]  128  08/00  200  80  C cedilla +      [ü]  129  08/01  201  81  u diaeresis +      [é]  130  08/02  202  82  e acute +      [â]  131  08/03  203  83  a circumflex +      [ä]  132  08/04  204  84  a diaeresis +      [à]  133  08/05  205  85  a grave +      [å]  134  08/06  206  86  a ring +      [ç]  135  08/07  207  87  c cedilla +      [ê]  136  08/08  210  88  e circumflex +      [ë]  137  08/09  211  89  e diaeresis +      [è]  138  08/10  212  8A  e grave +      [ï]  139  08/11  213  8B  i diaeresis +      [î]  140  08/12  214  8C  i circumflex +      [ì]  141  08/13  215  8D  i grave +      [Ä]  142  08/14  216  8E  A diaeresis +      [Å]  143  08/15  217  8F  A ring +      [É]  144  09/00  220  90  E acute +      [æ]  145  09/01  221  91  ae diphthong +      [Æ]  146  09/02  222  92  AE diphthong +      [ô]  147  09/03  223  93  o circumflex +      [ö]  148  09/04  224  94  o diaeresis +      [ò]  149  09/05  225  95  o grave +      [û]  150  09/06  226  96  u circumflex +      [ù]  151  09/07  227  97  u grave +      [ÿ]  152  09/08  230  98  y diaeresis +      [Ö]  153  09/09  231  99  O diaeresis +      [Ü]  154  09/10  232  9A  U diaeresis +      [ø]  155  09/11  233  9B  o slash +      [£]  156  09/12  234  9C  Pound sterling sign +      [Ø]  157  09/13  235  9D  O slash +      [×]  158  09/14  236  9E  Multiplication sign +      [ƒ]  159  09/15  237  9F  Florin sign + + + + + +   + The pre-1.5.50 OpenAFS Client provided an optional registry value, + StoreAnsiFilenames, that could be set to instruct OpenAFS to store filenames using the ANSI Code Page instead of the OEM Code Page.  The ANSI Code Page is a compatible superset of Latin-1.  This setting is not the default setting because making this change would prevent OpenAFS for Windows from being able to access filenames containing the above characters which were created without this setting. + + + + + All versions of OpenAFS for Windows 1.5.50 and above exchange file names with Microsoft Windows using the Unicode character set. All file names are read from and stored to AFS file servers using the UTF-8 encoding of Unicode. As a result the + StoreAnsiFilenames option is no longer supported. + + + + +
+
+ 3.28. Character Set Issues with Roaming Profiles + This section describes functionality and concerns related to pre-1.5.50 releases of OpenAFS for Windows. This release stores all file names on the file servers as Unicode encoded using UTF-8. + There is a known issue with storing Windows Roaming Profiles when the profile contains either directories or files with names which cannot be represented in the local OEM character set.  In this case, attempts to write the profile back to AFS will fail during the character set conversion.  The pre-1.5.50 OpenAFS Client’s CIFS gateway did not support UNICODE.  To avoid this problem some sites run custom logoff scripts (assigned by group policy) which rename all files to use only the supported characters for the locale. + Versions of OpenAFS for Windows 1.5.50 and above do not suffer from these issues. +
+
+ 3.29. The AFSCache File + The AFS Cache file is stored by default at %TEMP%\AFSCache in a persistent file marked with the Hidden and System attributes.  The persistent nature of the data stored in the cache file improves the performance of OpenAFS by reducing the number of times data must be read from the AFS file servers.  + The performance of the AFS Client Service is significantly affected by the access times associated with the AFSCache paging file.   When given the choice, the AFSCache file should be placed on a fast disk, preferably NTFS, the file should not be compressed and should consist of as few fragments as possible.   Significant performance gains can be achieved by defragmenting the AFSCache file with SysInternal's Contig utility while the AFS Client Service is stopped. +
+
+ 3.30. Restricting OpenAFS Client Service Start and Stop + A new command line tool, afsdacl.exe, can be used to restrict the ability to start and stop the OpenAFS Client Service. + + + afsdacl : Set or reset the DACL to allow starting or stopping + the afsd service by any ordinary user. + + Usage: afsdacl [-set | -reset] [-show] + -set : Sets the DACL + -reset : Reset the DACL + -show : Show current DACL (SDSF) + + +
+
+ 3.31. The @sys Name List + The default @sys name list in the OpenAFS Client is set to "x86_win32 i386_w2k i386_nt40" for 32-bit x86 systems.  The default is "amd64_win64" for amd 64-bit versions of Windows. +
+
+ 3.32. Symlinks to AFS UNC Paths + In OpenAFS, symlinks to AFS UNC paths, \\AFS[\all]\..., are treated the same as symlinks to /afs/...  However, please use /afs/... as the Windows UNC form will not work on UNIX client. +
+
+ 3.33. Cache Manager Debugging + The OpenAFS Client implements the Cache Manager Debugging RPC Interface.  The CM debugger can be queried with cmdebug.exe. + + + Usage: cmdebug -servers <server machine> [-port <IP port>] [-long] [-refcounts] + [-callbacks] [-ctime] [-addrs] [-cache] [-cellservdb] [-help] + Where: -long print all info + -refcounts print only cache entries with positive reference counts + -callbacks print only cache entries with callbacks + -ctime print human readable expiration time + -addrs print only host interfaces + -cache print only cache configuration + -cellservdb print only cellservdb info + + +
+
+ 3.34. Windows Logon Caching vs. Kerberos Logons + If you are a site which utilizes MIT/Heimdal Kerberos principals to logon to Windows via a cross-realm relationship with a multi-domain Windows forest, you must enable Windows logon caching unless the workstation is Windows Vista. +
+
+ 3.35. Initial Server Preferences + VLDB and File Server Preferences can now be provided initial values using registry keys.  This is useful for managed machines in a Windows domain which are centrally located (e.g., in a computing lab.)  See + Appendix A for details on the " + Server Preferences" keys. + + + + +
+
+ 3.36. File Timestamps and Daylight Saving Time + The OpenAFS Client reports timestamps on files stored in AFS in UTC all year round.  In locales with daylight savings time, previous versions of AFS for Windows reported the time when DST is active as UTC+1.  This was done to preserve the relative local time for the user.  A file stored at 11:00am EST in January would be reported as having been stored at 11:00am EDT in June.  Unfortunately, this has the negative side effect of changing the reported timestamp from 16:00UTC to 15:00UTC.  Since Windows treats all file times in UTC, data synchronization applications which rely on the timestamp would believe that all files stored in AFS had changed. + It should be noted that UNIX based operating systems (such as Solaris) do not appear to report file times to applications in UTC.  They do preserve the relative local time.  This may confuse some users who are used to being able to compare the timestamp in an UNIX shell with the timestamp from the Windows explorer.  During DST, these two times will no longer agree even though they are in fact representing the same moment in time. +
+
+ 3.37. Windows RPC client support must be installed + If the installer refuses to install and complains about an RPC configuration error, check to ensure that the following registry entries are present and that they refer to the dll "rpcrt4.dll": +    HKLM "SOFTWARE\Microsoft\RPC\ClientProtocols" "ncacn_np" +    HKLM "SOFTWARE\Microsoft\RPC\ClientProtocols" "ncacn_ip_tcp" +    HKLM "SOFTWARE\Microsoft\RPC\ClientProtocols" "ncadg_ip_udp" +    HKLM "SOFTWARE\Microsoft\RPC\ClientProtocols" "ncacn_http" +
+
+ 3.38. Generating Minidumps of the OpenAFS Client Service + OpenAFS 1.4 added a new command, "fs minidump".  This command can be used at any time to generate a mini dump file containing the current stack of the afsd_service.exe process.   This output can be very helpful when debugging the AFS Client Service when it is unresponsive to SMB/CIFS requests. +
+
+ 3.39. AFS Client Universally Unique Identifiers (UUIDs) vs. System Cloning + The OpenAFS Client implements Universally Unique Identifiers (UUIDs).  They are used to provide the AFS file server with a method of identifying the client that is independent of IP address.  This permits the AFS file server to track mobile clients or those behind Network Address Translators when they move from address to address or port to port. Tracking the client improves client performance by permitting callback state to be maintained across location changes. The UUID is generated when the AFSCache file is created and is maintained as long as the contents of the AFSCache file are valid.  The UUID is stored in the AFSCache file.  + When cloning machines that have Windows AFS client installed it is necessary to generate a new UUID for each client. This will be done automatically if the Windows Machine SID is re-generated using Microsoft SysPrep. If the SID is not being re-generated either the AFSCache file should be deleted or the command + fs uuid -generate must be executed after the the clone is created. + Multiple AFS clients reporting the same UUID will not only result in horrible AFS client performance and cache inconsistencies, but they will also put a tremendous strain on the AFS file servers. + + For lab environments that wish to erase all cached data on each restart, the + NonPersistentCaching option will disable the use of the persistent cache file. As a side effect, a new UUID will be generated for the AFS client service on each restart. + + + + + When a Windows system is cloned, the Microsoft Loopback Adapter will be disabled in the cloned system. Administrators must re-install the Microsoft Loopback Adapter within the cloned environment. This can be automated by using the OpenAFS " + instloop.exe – + i" command. Instloop.exe can be extracted from the MSI installer by performing an administrative install via + msiexec.exe /a. + + + + +
+
+ 3.40. Delayed Write Errors with Microsoft Office Applications + Microsoft Office makes heavy use of asynchronous input/output methods for reading and writing to file streams.  This can result in hundreds of requests being simultaneously queued for service by the CIFS client with a fixed timeout period.  As the AFS CIFS server is local to the machine the Windows CIFS client believes that it can respond almost instantaneously to write requests as the actual writing to the AFS file server is performed by a background daemon thread.  When the actual network bandwidth to the AFS file server is slow and the file size is large it is possible for the CIFS client to time out the connection.  When this happens a "delayed write error" will be reported to the user and the application may crash.  The only workaround at the current time is to save first to a local disk and subsequently copy the file to AFS as copying a file with the explorer shell does not use asynchronous i/o. + The CIFS session timeout defaults to 45 seconds and can be increased by modifying the + ConnDeadTimeout registry value. + + + + + Beginning with the 1.5.33 release, the performance characteristics of SMB Write Data operations can be adjusted. In prior releases all writes were performed using a restricted asynchronous store model in which only one asynchronous store operation per file can be performed at a time. The reason for this restriction is limit the amount of data the cache manager will accept without it having been written to the file server. If too much unwritten data is accepted, the file close operation will block until all of the unwritten data is output and this could trigger a CIFS client disconnect. + Prior to 1.5.33 the size of the asynchronous store was always equal to the chunk size which was often too large for low bandwidth connections. The asynchronous store size now defaults to 32KB and is configurable using the + SMBAsyncStoreSize registry value. Asynchronous store operations can also be disabled using the + EnableSMBAsyncStore registry value in which case all writes received by the cache manager block until the Rx StoreData operation completes. + + + + +
+
+ 3.41. Global Drives (aka Service Drive Letters) are no longer supported by Microsoft + The Global DriveAuto-mount feature has been deprecated due to the following Microsoft KB article. + + http://msdn.microsoft.com/library/en-us/dllproc/base/services_and_redirected_drives.asp + + It says that services mounting drive letters are no longer supported by Microsoft and may act unpredictably.  The experience other users have had is that if the connection to the OpenAFS CIFS/SMB server is terminated by the Windows CIFS client, the drive mapping may not be re-established until the machine is rebooted. + OpenAFS supports UNC paths and whenever possible applications should be modified to use of \\AFS\<cellname>\<path> instead of drive letters. +
+
+ 3.42. 64-bit Microsoft Windows Installations + Although 64-bit Windows platforms support both 64-bit and 32-bit applications, the OpenAFS Service installed on the machine must be 64-bit.  The 64-bit installer contains only 64-bit executables.  In order to support 32-bit applications that link against OpenAFS libraries it is required that a separate 32-bit OpenAFS Tools set be installed. For example, the 32-bit version of Kerberos for Windows can be used with the 32-bit OpenAFS Tools to manage AFS tokens. + OpenAFS on 64-bit Windows benefits from the lifting of the 2GB process memory restriction that is present in 32-bit Windows.   Without this restriction the AFS Cache File can become arbitrarily large limited only by available disk space. +
+
+ 3.43. Known Issues with Microsoft Windows Vista + OpenAFS for Windows works with Microsoft Windows Vista from both the command prompt and the Explorer Shell. When performing an upgrade from earlier versions of Microsoft Windows the Microsoft Loopback Adapter (MSLA) will be uninstalled. OpenAFS should be re-installed after the Microsoft Vista installation to restore the MSLA configuration. + Due to a feature change in Windows Vista’s Plug-n-Play network stack, during a standby/hibernate operation the MSLA is disabled just as any other hardware device would be. This causes the OpenAFS Client’s network binding to be lost. As a result, it takes anywhere from 30 to 90 seconds after the operating system is resumed for access to the OpenAFS Client and the AFS file space to become available. Until the network bindings have been re-established, ticket managers and other tools will report that the AFS Client Service may not have been started. + Windows Vista implements + User Account Control (UAC), a new security feature that implements least user privilege. With UAC, applications only run with the minimum required privileges. Even Administrator accounts run applications without the "Administrator" access control credentials. One side effect of this is that existing applications that mix user and system configuration capabilities must be re-written to separate those functions that require "Administrator" privileges into a separate process space. Future updates to OpenAFS will incorporate the necessary privilege separation, until that time some functions such as the Start and Stop Service features of the AFS System Tray tool and the AFS Control Panel will not work unless they are "Run as Administrator". When a Vista user account that is a member of the "Administrators" group is used to access the AFS Control Panel (afs_config.exe), the process must be "Run as Administrator". Otherwise, attempts to modify the OpenAFS configuration will appear to succeed but in reality will have failed due to Vista’s system file and registry virtualization feature. + + + + + The help files provided with OpenAFS are in .HLP format. + Windows Vista does not include a help engine for this format. + +
+
+ 3.44. New AFS Share Name Syntax Provides Direct Access to Volumes + Starting with the 1.5.21 release of OpenAFS for Windows, the following syntax can be used to access any volume in any cell without requiring the creation of a mount point. + \\AFS\<cell><mount point type><volume>\ + Where <cell> can be either a full cell name or an unambiguous prefix, the <mount point type> is ‘#’ for a normal mount point or ‘%’ to force the use of a read-write volume, and <volume> is either a volume name or its ID number. + Examples include: + \\AFS\athena.mit.edu#user.jaltman\ + \\AFS\athena%user.jaltman\ + \\AFS\athena.mit.edu# 537235559\ +
+
+ 3.45. Differences between Windows and UNIX "fs examine" + The OpenAFS for Windows version of "fs examine" provide two additional lines of output when compared to the UNIX implementation. These lines include the owner and group information for the file as well as the volume status. The Windows output will also indicate the type of object {File, Directory, Mountpoint, Symlink, ...} that was examined. + [C:\]fs examine \\afs\athena#user.jaltman + Directory \\afs\athena#user.jaltman (537235559.1.1) contained in cell athena.mit.edu + + Owner jaltman (28180) Group 0 + + Volume status for vid = 537235559 named user.jaltman is + Current disk quota is 1500000 + Current blocks used are 1244184 + The partition has 151945877 blocks available out of 511163724 + Volume is online +
+
+ 3.46. Literal evaluation of AFS objects via fs commands + Beginning with the 1.5.31 release, the fs commands + examine, + flush, + whereis, and + whichcell provide a new command-line parameter, + -literal. When specified, if the evaluated object is a symlink or a mountpoint the resulting output will describe the specified object and not the object that is the target of the symlink or mountpoint. + + + + +
+
+ 3.47. Out of Quota errors + Prior to the 1.5.31 release, out of quota errors were reported to the calling application as an out of space error. As of 1.5.31, an out of space error will indicate that the partition on which the volume is located is in fact out of space. Whereas an out of quota error indicates that the user does not have permission to allocate additional space. +
+
+ 3.48. Linked Cells + The 1.5.55 release adds support for linked cells as implemented in the Unix OpenAFS client. When two cells are linked, a volume lookup in one cell that fails is retried in the linked cell. This functionality can be used to implement: + + + a test cell which provides substitutes for a subset of the volumes in the linked production cell + + + a cell renaming + + + a cell splitting + + + a cell merger + + + Two cells are linked in the CellServDB file: + >cell-one cell-two #Description +... +>cell-two cell-one #Description +... + aklog and Network Identity Manager will automatically obtain tokens for the linked cell when tokens for the other cell is specified. + +
+
+ + How to Debug Problems with OpenAFS for Windows + OpenAFS for Windows provides a wide range of tools to assist you in debugging problems.  The techniques available to you are varied because of the wide range of issues that have been discovered over the years. +
+ 4.1. pioctl debugging ( + <link linkend='Value_IoctlDebug'>IoctlDebug</link> registry key) + + + + + pioctl (path-based ioctl) calls are used by various tools to communicate with the AFS Client Service.  Some of the operations performed include: + + + setting/querying tokens  (tokens.exe, aklog.exe, afscreds.exe) + + + setting/querying ACLs + + + setting/querying cache parameters + + + flushing files or volumes + + + setting/querying server preferences + + + querying path location + + + checking the status of servers and volumes + + + setting/querying the sysname list + + + pioctl calls are implemented by writing to a special UNC path that is processed by the AFS Client Service.   If there is a failure to communicate with the AFS Client Service via SMB/CIFS, it will be impossible to perform any of the above operations.   + To assist in debugging these problems, the registry value: +   [HKLM\SOFTWARE\OpenAFS\Client] +   REG_DWORD:  IoctlDebug   = 0x01 + should be set.  Then any of the commands that perform pioctl calls should be executed from the command prompt.  With this key set the pioctl library will generate debugging output to stderr.  The output will contain the Win32 API calls executed along with their most important parameters and their return code.   The MSDN Library and the Microsoft KnowledgeBase can be used as a reference to help you determine the configuration probem with your system. +
+
+ 4.2. afsd_service initialization log (%WinDir%\TEMP\afsd_init.log) + Every time the AFS Client Service starts it appends data about its progress and configuration to a file.  This file provides information crucial to determining why the service cannot start when there are problems.  When the process terminates due to a panic condition it will write to this file the source code file and line number of the error.  In many cases the panic condition is due to a misconfiguration of the machine.  In other cases it might be due to a programming error in the software.  A quick review of the location in the source code will quickly reveal the reason for the termination. + The + MaxLogSize registry value determines the maximum size of the %WINDIR%\TEMP\afsd_init.log file.  If the file is larger than this value when OpenAFS Client Service starts, the file will be reset to 0 bytes.  If value is set to 0, the file will be allowed to grow indefinitely. + + + + +
+
+ 4.3. afsd_service debug logs (fs trace {-on, -off, -dump} ->%WinDir%\TEMP\afsd.log) + When attempting to debug the behavior of the SMB/CIFS Server and the Cache Manager it is often useful to examine a log of the operations being performed.  While running the AFS Client Service keeps an in memory log of many of its actions.   The default number of actions preserved at any one time is 5000.  This can be adjusted with the + TraceBufferSize registry value: + + + + +   [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters] +   REG_DWORD  TraceBufferSize + A restart of the service is necessary when adjusting this value.   Execute "fs trace -on" to clear to the log and "fs trace -dump" to output the contents of the log to the file. +
+
+ 4.4. Using SysInternal’s Debug Viewer, Process Monitor and Process Explorer Tools + An alternatve option to the use of "fs trace -dump" to capture internal OpenAFS Client Service events is to use a tool such as Sysinternal's + Debug Viewer to capture real-time debugging output.  When the OpenAFS Client Service starts and Bit 2 of the + TraceOption value in the registry is set, all trace log events are output using the Windows Debug Monitor interface (OutputDebugString).  + + + + +   [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters] + REG_DWORD   TraceOption = 0x04 + Use "fs trace –on" and "fs trace –off" to toggle the generation of log messages. + Sysinternal’s + Process Monitor can be use to monitor the file operations requested by applications and their success or failure.   + + + + + In Process Monitor, set a filter to include only events on file paths that refer to the AFS name space. Be sure to include both the UNC path as well as any drive letters mapped to AFS. + Turn on the + Clock Time and + Show Milliseconds options in both tools to make it easier to synchronize the application requests and the resulting OpenAFS Client Service operations.   The captured data can be stored to files for inclusion in + bug reports. + + + + + Sysinternal's + Process Explorer is a replacement for the Windows Task Manager and so much more.  Process Explorer can be configured to use the DbgHelp.dll from " + Microsoft Debugging Tools for Windows" as well as the debug symbols shipped as an optional component of the OpenAFS for Windows installer.  (Options->Configure Symbols)   Once configured the "Threads" tab of the process properties dialog will permit the viewing of a fully documented stack for each displayed thread.  Hint: If there is a deadlock in the cache manager, two or more of the threads will be stuck in a call to osi_TWait(). + + + + +
+
+ 4.5. Creating Microsoft MiniDumps +(fs minidump -> %WinDir%\TEMP\afsd.dmp) + If the AFS Client Service become unresponsive to any form of communication there may be a serious error that can only be debugged by someone with access to the source code and a debugger.   The "fs minidump" command can be used to force the generation of a MiniDump file containing the state of all of the threads in the AFS Client Service process.  The most accurate MiniDump files will be produced after installing " + Microsoft Debugging Tools for Windows". + + + + + The + MiniDumpType registry value can be used to adjust the scope of the process information included within the dump file.  By default the MiniDump only contains the stacks of all threads and the values of all global variables.  A much more useful MiniDump is one that contains the contents of the heap.  Be warned, a MiniDump with heap will be as large as the cache file.  In addition, it will include all of the data stored within the cache.  If there are privacy concerns, do not produce a MiniDump with heap. + + + + +
+
+ 4.6. Single Sign-on (Integrated Logon) debugging + If you are having trouble with the Integrated Logon operations it is often useful to be able to obtain a log of what it is attempting to do.   Setting Bit 0 of the + TraceOption registry value: + + + + +   [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters] +   REG_DWORD   TraceOption = 0x01 + will instruct the Integrated Logon Network Provider and Event Handlers to log information to the Windows Event Log: Application under the name "AFS Logon". +
+
+ 4.7. RX (AFS RPC) debugging (rxdebug) + The rxdebug.exe tool can be used to query a variety of information about the AFS services installed on a given machine.  The port for the AFS Cache Manager is 7001.  + + + Usage: rxdebug -servers <server machine> [-port <IP port>] [-nodally] + [-allconnections] [-rxstats] [-onlyserver] [-onlyclient] + [-onlyport <show only <port>>] + [-onlyhost <show only <host>>] + [-onlyauth <show only <auth level>>] [-version] + [-noconns] [-peers] [-help] + Where: -nodally don't show dallying conns + -allconnections don't filter out uninteresting connections + -rxstats show Rx statistics + -onlyserver only show server conns + -onlyclient only show client conns + -version show AFS version id + -noconns show no connections + -peers show peers + + +
+
+ 4.8. Cache Manager debugging (cmdebug) + The cmdebug.exe tool can be used to query the state of the AFS Cache Manager on a given machine. + + + Usage: cmdebug -servers <server machine> [-port <IP port>] [-long] [-refcounts] + [-callbacks] [-ctime] [-addrs] [-cache] [-cellservdb] [-help] + Where: -long print all info + -refcounts print only cache entries with positive reference counts + -callbacks print only cache entries with callbacks + -ctime print human readable expiration time + -addrs print only host interfaces + -cache print only cache configuration + -cellservdb print only cellservdb info + + +
+
+ 4.9. Persistent Cache consistency check + The persistent cache is stored in a Hidden System file at %WinDir%\TEMP\AFSCache.  If there is a problem with the persistent cache that prevent the AFS Client Service from being able to start a validation check on the file can be performed. +   afsd_service.exe --validate-cache <cache-path> +
+
+ 4.10. Token Acquisition Debugging + If you are having trouble obtaining tokens with the Network Identity Manager AFS credential provider, it is recommended that you verify your ability to obtain tokens using the command-line tools + klog.exe (if you are using kaserver) or + kinit.exe and + aklog.exe (if you are using Kerberos v5.) The aklog.exe + –d option will be quite helpful in diagnosing Kerberos v5 related problems. + + + + +
+
+ + Reporting Bugs + Bug reports should be sent to + openafs-bugs@openafs.org.  Please include as much information as possible about the issue.  If you are reporting a crash, please install the debugging symbols by re-running the installer.  If a dump file is available for the problem, %WINDIR%\TEMP\afsd.dmp, include it along with the AFS Client Trace file  %WINDIR%\TEMP\afsd.log.  The AFS Client startup log is %WINDIR%\TEMP\afsd_init.log.  Send the last continuous block of  log information from this file. + + + + + Configuring DrWatson to generate dump files for crashes: + + + Run drwtsn32.exe to configure or to identify where the log and the crash dump files are created: + + + click Start > Run...  + + + type drwtsn32 <enter>. + + + Select either a Crash Dump Type: Mini or Full. + + + Clear Dump Symbol Table + + + Clear Append to Existing Log file. + + + Check Dump All Thread Contexts. + + + Check Create Crash Dump File + + + Next run the monitoring module of Dr. Watson: + + + click Start > Run... + + + type drwatson <enter>. + + + Once a crash happens, Dr. Watson generates a dump file and a report in the log file, including the address of the crash and the stack dump. + + + Once you have the Dr. Watson's logfile and minidump, zip them and attach them to your e-mail. + When reporting a error, please be sure to include the version of OpenAFS. + + + + 6. How to Contribute to the Development of OpenAFS for Windows + Contributions to the development of OpenAFS for Windows are continuously needed.  Contributions may take many forms including cash donations, support contracts, donated developer time, and even donated tech writer time. +
+ 6.1. The USENIX OpenAFS Fund + + USENIX, a 501c3 non-profit corporation, has formed the USENIX OpenAFS Fund in order to accept tax deductible donations on behalf of the OpenAFS Elders. The donated funds will be allocated by the OpenAFS Elders to fund OpenAFS development, documentation, project management, and maintaining openafs.org. + + + + + + + + + + + USENIX OpenAFS Fund +USENIX Association +2560 Ninth St., Suite 215 +Berkeley, CA 94710 + + + + + + Donations can be made by sending a check, drawn on a U.S. bank, made out to the USENIX OpenAFS Fund or by making a + donation online. + + + + +
+
+ 6.2. Secure Endpoints Inc. + + Secure Endpoints Inc. provides development and support services for OpenAFS for Windows and + MIT Kerberos for Windows.  Donations provided to Secure Endpoints Inc. for the development of OpenAFS are used to cover the OpenAFS gatekeeper responsibilities; providing support to the OpenAFS community via the OpenAFS mailing lists; and furthering development of desired features that are either too small to be financed by development contracts. + + + + + Secure Endpoints Inc. accepts software development agreements from organizations who wish to fund a well-defined set of bug fixes or new features. + Secure Endpoints Inc. provides contract based support for the OpenAFS for Windows and the + MIT Kerberos for Windows products. + + + + +
+
+ 6.3. Direct contributions of code and/or documentation + Organizations that use OpenAFS in house and have development staffs are encouraged to contribute any code modifications they make to OpenAFS.org via openafs-bugs@openafs.org.  Contributions of documentation are highly desired. +
+
+ 6.4. OpenAFS for Windows Mailing Lists + If you wish to participate in OpenAFS for Windows development please join the + openafs-win32-devel@openafs.org mailing list. + + + + + + https://lists.openafs.org/mailman/listinfo/openafs-win32-devel + + User questions should be sent to the + openafs-info@openafs.org mailing list.  + + + + + + https://lists.openafs.org/mailman/listinfo/openafs-info + + You must join the mailing lists if you wish to post to the list without incurring a moderation delay. +
+
+ + MSI Deployment Guide +
+ 7.1. Introduction + A MSI installer option is available for those who wish to use Windows Installer for installing OpenAFS and for organizations that wish to deploy OpenAFS through Group Policy.  The first version of OpenAFS for Windows available as an MSI was 1.3.65. + This document provides a guide for authoring transforms used to customize the MSI package for a particular organization.  Although many settings can be deployed via transforms, in an Active Directory environment it is advisable to deploy registry settings    and configuration files through group policy and/or startup scripts so that machines where OpenAFS for Windows is already installed will pick up these customizations. +
+ 7.1.1 Requirements + The information in this document applies to MSI packages distributed with OpenAFS for Windows releases from 1.3.65 and onwards or MSI packages built from corresponding source releases.  Not all releases support all the configuration options documented here. + Authoring a "Windows Installer" transform requires additional software for editing the MSI database tables and generating the transform from the modified MSI package.  ORCA.EXE and MSITRAN.EXE which are included in the Windows Platform SDK ("Windows Installer" SDK) can be used for this purpose. + For reference, the schema for the MSI package is based on SCHEMA.MSI distributed with the Platform SDK. + For general information about "Windows Installer", refer to: +     + http://msdn.microsoft.com/library/en-us/msi/setup/windows_installer_start_page.asp + + For general information about authoring MSI transforms, refer to: +     + http://msdn.microsoft.com/library/en-us/msi/setup/transforms.asp + + The remainder of this document assumes some familiarity with authoring transforms.  While the MSDN documentation for Windows Installer is a bit dense, the guide on MSI transforms found at the second link above is recommended reading.  MSDN also includes a step-by-step example for creating a transform at: +     + http://msdn.microsoft.com/library/en-us/msi/setup/a_customization_transform_example.asp + +
+
+ 7.1.2 Authoring a Transform + Transforms describe a set of modifications to be performed on an existing MSI for the purpose of customizing it.  This is ordinarily done by making a copy of the MSI to be customized, modifying the copy and then using the old and the new MSI to generate a transform.  For example: + + + copy openafs.msi openafs-modified.msi + + + (edit the openafs-modified.msi to include the necessary changes) + + + msitran -g openafs.msi openafs-modified.msi openafs-transform.mst + + + (generates openafs-transform.mst, which is the transform) + + + Transforms have an extension of .mst.  'msitran' is a tool distributed as part of the "Windows Installer" SDK (part of the Windows Platform SDK). + You can test a transform by: + + + copy openafs.msi openafs-test.msi + + + msitran -a openafs-transform.mst openafs-test.msi + + + and then checking the resulting openafs-test.msi to see if all changes you have made above to openafs-modified.msi is present in openafs-test.msi.  'msitran' will complain if some modification in the transform can not be successfully applied. + As mentioned above, you can use a tool like ORCA.EXE to edit the MSI databases directly when editing openafs-modified.msi.  More details are given below. +
+
+
+ 7.2. Configuration Options + The logic necessary to implement many of the settings described in + Appendix A are present in the MSI.  Most of these can be controlled by setting the corresponding properties to the desired value.  Some settings may require modifying existing registry entries (though not recommended) or adding new resources (like files or registry keys).  Instructions for performing these tasks are below. + + + + +
+ 7.2.1 Configurable Properties + Most configurable properties correspond to registry keys or values.  Due to the logic invoked based on the existence of these registry keys or values, they are only set if the associated property is defined to have a non null value.  If the associated property is not defined in the MSI, the registry key or value will not be touched.  By default, the MSI does not contain these properties and hence will not set the registry keys.  You will need to add properties as needed to the MSI. + When one of the configurable properties is set, the installer will use the property value to set the corresponding setting in the HKEY_LOCAL_MACHINE registry hive.  The HKEY_CURRENT_USER hive is not touched by the installer. + For each property, the associated registry setting is referenced by the same text used in + Appendix A. + + + + + Strings are quoted using single quotes (e.g. 'a string'). An empty string is denoted as ''.  Note that you can't author null values into the 'Property' table. + Numeric values should be authored as decimal strings. +
+ 7.2.1.1 Setting Properties + In order to set a property, + + + Open the MSI in ORCA.EXE + + + Select the 'Property' table from the list of tables on the left. + + + Find the property in the list of properties on the right, double click the value and type the new value. + + + If the property does not exist in the property list, right click the list and select 'Add Row', type the property name and the desired value. + + +
+
+ 7.2.1.2 OpenAFS for Windows Properties + + + + + + + + (Service parameters): + + [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters] + + + + + + (Network provider): + + [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider] + + + + + + (OpenAFS Client): + + [HKLM\SOFTWARE\OpenAFS\Client] + + + + + +
+ 7.2.1.2.1 Registry Properties + These properties are used to set the values of registry entries associated with OpenAFS for Windows. + + + + + + + + AFSCACHEPATH + + Registry key    : + (Service Parameters) + + Registry value : + CachePath + + Valid values    : string . + + + + + + AFSCACHESIZE + + Registry key    : + (Service Parameters) + + Registry value : + CacheSize + + Valid values    : numeric + + + + + + AFSCELLNAME + + Registry key    : + (Service Parameters) + + Registry value : + Cell + + Valid values    : string + + + + + + FREELANCEMODE + + Registry key    : + (Service Parameters) + + Registry value : + FreelanceClient + + Valid values    : '1' or '0' + + + + + + HIDEDOTFILES + + Registry key    : + (Service Parameters) + + Registry value : + HideDotFiles + + Valid values    : '1' or '0' + + + + + + LOGONOPTIONS + + Registry key    : + (Network Provider) + + Registry value : + LogonOptions + + Valid values    : '0', '1' or '3' + See + Appendix A + section 2.1 (Domain Specific Configuration keys for Network Provider) for more details. + + + + + + + + + + MOUNTROOT + + Registry key    : + (Service Parameters) + + Registry value : + Mountroot + + Valid values    : string + + + + + + NETBIOSNAME + + Registry key    : + (Service Parameters) + + Registry value : + NetbiosName + + Valid values    : string (at most 15 characters) + + + + + + NOFINDLANABYNAME + + Registry key    : + (Service Parameters) + + Registry value : + NoFindLanaByName + + Valid values    : '1' or '0' + + + + + + RXMAXMTU + + Registry key    : + (Service Parameters) + + Registry value : + RxMaxMTU + + Valid values    : numeric + + + + + + SECURITYLEVEL + + Registry key    : + (Service Parameters) + + Registry value : + SecurityLevel + + Valid values    : '1' or '0' + + + + + + SMBAUTHTYPE + + Registry key    : + (Service Parameters) + + Registry value : + SMBAuthType + + Valid values    : '0','1' or '2' + + + + + + STOREANSIFILENAMES + + Registry key    : + (OpenAFS Client) + + Registry value : + StoreAnsiFilenames + + Valid values    : '0' or '1' + This option is no longer supported as of 1.5.50 now that all file names are stored to AFS file servers using the UTF-8 encoding of Unicode. + + + + + + USEDNS + + Registry key    : + (Service Parameters) + + Registry value : + UseDNS + + Valid values    : '1' or '0' + + + + + +
+
+ + 7.2.1.2.2 AFSCreds.exe Properties + + These properties are combined to add a command line option to the shortcut that will be created in the Start:Programs:OpenAFS and Start:Programs:Startup folders (see CREDSSTARTUP).  The method of specifying the option was chosen for easy integration with the Windows Installer user interface.  Although other methods can be used to specify options to AFSCREDS.EXE, it is advised that they be avoided as transforms including such options may not apply to future releases of OpenAFS. + + + + + + + + CREDSSTARTUP + + Valid values    : '1' or '0' + Controls whether AFSCreds.exe starts up automatically when the user logs on.  When CREDSSTARTUP is '1' a shortcut is added to the 'Startup' folder in the 'Program menu' which starts AFSCREDS.EXE with the options that are determined by the other CREDS* properties. + + + + + + CREDSAUTOINIT + + Valid values    : '-a' or '' + Enables automatic initialization. + + + + + + CREDSIPCHDET + + Valid values    : '-n' or '' + Enables IP address change detection. + + + + + + CREDSQUIET + + Valid values    : '-q' or '' + Enables quiet mode. + + + + + + CREDSRENEWDRMAP + + Valid values    : '-m' or '’ + Enables renewing drive map at startup. + + + + + + CREDSSHOW + + Valid values    : '-s' or '' + Enables displaying the credential manager window when AFSCREDS starts up. + + + + + +
+
+
+
+ 7.2.2 Existing Registry Entries + You can change existing registry values subject to the restrictions mentioned in the Windows Platform SDK.  Pay special attention to component key paths and try to only change the 'Value' column in the 'Registry' table.  If you want to add additional registry keys please refer to section 3 (Additional resources). +
+
+ 7.2.3 Replacing Configuration Files + The OpenAFS configuration files (CellServDB) can be replaced by your own configuration files.  These files are contained in separate MSI components so that you can disable them individually. + The recommended method for replacing these files is to first disable the components containing the configuration files that you want to replace, and then add new components for the replacement files.  This is outlined below (assuming you are using ORCA.EXE to author the transform). + Note that transforms are not a good way to add a new file as an embedded stream.  The method outlined here places the file in the same directory as the MSI for deployment. + The walkthrough below is to add a custom 'CellServDB' file. + + + Disable the component that contains the configuration file that you want to replace. + + + Locate and select the 'Component' table in the 'Tables' list. + + + In the Component table, locate the component you need to change ( Ctrl-F invokes the 'Find' dialog).  The component names are listed below in section + 7.2.3.1.  For this example, the component name is 'elf_CellServDB'. + + + + + + + Go to the 'Condition' column of the component. + + + Enter a condition that evaluates to false. I.e. 'DONOTINSTALL'. (Note that an undefined property always evaluates to false). + Note that you can also use this step to disable other configuration files without providing replacements. + + + + + Add a new component containing the new configuration file. + + + Select the 'Component' table in the 'Tables' list. + + + Select 'Tables'->'Add Row' (Ctrl-R). + + + Enter the following : + + + + + + + + Component + + + cmf_my_CellServDB + + + + + ComponentID + + + {7019836F-BB2C-4AF6-9463-0D6EC9035CF1} + + + + + Directory_ + + + dirClient + + + + + Attributes + + + 144 + + + + + Condition + + +   + + + + + KeyPath + + + fil_my_CellServDB + + + + + + Note that the ComponentId is an uppercase GUID.  You can generate one using GUIDGEN.EXE or UUIDGEN.EXE, both of which are included in the Platform SDK. + The Attributes value of 144 is a sum of msidbComponentAttributesPermanent (16) and msidbComponentAttributesNeverOverwrite (128).  This ensures that local modifications are not overwritten or lost during an installation or uninstallation.  These are the same settings used on the default configuration files. +             'fil_my_CellServDB' is a key into the 'File' table which we will fill later. + + + + + Add a new feature to hold the new component. + + + Select the 'Feature' table. + + + Add a new row (Ctrl-R or 'Tables'->'Add Row') with the following values: + + + + + + + + Feature + + + fea_my_CellServDB + + + + + Feature_Parent + + + feaClient + + + + + Title + + +   + + + + + Description + + +   + + + + + Display + + + 0 + + + + + Level + + + 30 + + + + + Directory_ + + +   + + + + + Attributes + + + 8 + + + + + + It is important to create the new feature under the 'feaClient' feature, which will ensure that the configuration file will be installed when the client binaries are installed. + Setting 'Display' to 0 will hide this feature from the feature selection dialog during an interactive installation.  A value of 30 for 'Level' allows this feature to be installed by default (on a 'Typical' installation). + The 'Attributes' value is msidbFeatureAttributesDisallowAdvertise (8), which is set on all features in the OpenAFS MSI.  The OpenAFS MSI is not designed for an advertised installation. + + + + + Join the component and the feature. + + + Select the 'FeatureComponents' table. + + + Add a new row with the following values: + + + + + + + + Feature + + + fea_my_CellServDB + + + + + Component + + + cmf_my_CellServDB + + + + + + + + + + Add an entry to the 'File' table. + + + Select the 'File' table. + + + Add a new row with the following values: + + + + + + + + File + + + fil_my_CellServDB + + + + + Component_ + + + cmf_my_CellServDB + + + + + FileName + + + CellServDB + + + + + FileSize + + + (enter file size here) + + + + + Attributes + + + 8192 + + + + + Sequence + + + 1000 + + + + + +                 (leave other fields blank) + The 'Attributes' value is msidbFileAttributesNonCompressed (8192).  This is because we will be placing this file in the same directory as the MSI instead of embedding the file in it.  Transforms do not support updating compressed sources or adding new cabinet streams. + Finally, the 'Sequence' value of 1000 will be used later to distinguish the file as being in a separate source location than the other files in the MSI. + + + + + Set a media source for the file. + + + Select the 'Media' table. + + + Add a row with the following values : + + + + + + + + DiskId + + + 2 + + + + + LastSequence + + + 1000 + + + + + +                 (leave other fields blank) + The sequence number of 1000 designates this as the media source for the newly added file. + + + + + +
+ 7.2.3.1 Components for Configuration Files + CellServDB: 'cpf_CellServDB' (ID {D5BA4C15-DBEC-4292-91FC-B54C30F24F2A}) +
+
+
+ 7.2.4 Adding Domain Specific Registry Keys + Following is an example for adding domain specific registry keys. +     Refer to + Appendix A section 2.1 for more information. + + + + +     Columns that are unspecified should be left empty. +     We create a new feature and component to hold the new registry keys. + + + + + + +     'Feature' table: + + + + +             (new row) +            Feature            : 'feaDomainKeys' +            Feature Parent : 'feaClient' +            Display           : 0 +            Level               : 30 +            Attributes        : 10 + + + + +     'Component' table: + + + + +             (new row) +            Component     : 'rcm_DomainKeys' +            ComponentId  : '{4E3FCBF4-8BE7-40B2-A108-C47CF743C627}' +            Directory         : 'TARGETDIR' +            Attributes        : 4 +            KeyPath          : 'reg_domkey0' + + + + +     'FeatureComponents' table: + + + + +             (new row) +            Feature            : 'feaDomainKeys' +            Component     : 'rcm_DomainKeys' + + + + +     'Registry' table: + + + + +             (new row) +            Registry          : 'reg_domkey0' +            Root                : 2 +            Key                 : 'SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider\Domain' +            Component     : 'rcm_DomainKeys' + + + + +             (new row) +            Registry          : 'reg_domkey1' +            Root                : 2 +            Key                 : 'SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider\Domain' +            Name              : '*' +            Component     : 'rcm_DomainKeys' + + + + +             (new row) +            Registry          : 'reg_domkey2' +            Root                : 2 +            Key                 : 'SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider\Domain\ATHENA.MIT.EDU' +            Name              : '*' +            Component     : 'rcm_DomainKeys' + + + + +             (new row) +            Registry          : 'reg_domkey3' +            Root                : 2 +            Key                 : 'SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider\Domain\ATHENA.MIT.EDU' +            Name              : 'LogonOptions' +            Value              : 1 +            Component     : 'rcm_DomainKeys' + + + + +             (new row) +            Registry          : 'reg_domkey4' +            Root                : 2 +            Key                 : SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider\Domain\LOCALHOST' +            Name              : '*' +            Component     : 'rcm_DomainKeys' + + + + +             (new row) +            Registry          : 'reg_domkey5' +            Root                : 2 +            Key                 : 'SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider\Domain\LOCALHOST' +            Name              : 'LogonOptions' +            Value              : 0 +            Component     : 'rcm_DomainKeys' + + + + +             (new row) +            Registry          : 'reg_domkey6' +            Root                : 2 +            Key                 : 'SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider\Domain\LOCALHOST' +            Name              : 'FailLoginsSilently' +            Value              : 1 +            Component     : 'rcm_DomainKeys' + + + + + +   + The example adds domain specific keys for 'ATHENA.MIT.EDU' (enable integrated logon) and 'LOCALHOST' (disable integrated logon and fail logins silently). +
+
+ 7.2.5 Adding Site Specific Freelance Registry Keys + Following is an example for adding site specific Freelance registry keys to pre-populate the Mountpoints and Symlinks in the fake root.afs volume. +     Columns that are unspecified should be left empty. +     We create a new feature and component to hold the new registry keys. + + + + + + +     'Feature' table: + + + + +             (new row) +            Feature            : 'feaFreelanceKeys' +            Feature Parent : 'feaClient' +            Display           : 0 +            Level               : 30 +            Attributes        : 10 + + + + +     'Component' table: + + + + +             (new row) +            Component     : 'rcm_FreelanceKeys' +            ComponentId  : '{4E3B3CBF4-9AE7-40C3-7B09-C48CF842C583}' +            Directory         : 'TARGETDIR' +            Attributes        : 4 +            KeyPath          : 'reg_freekey0' + + + + +     'FeatureComponents' table: + + + + +             (new row) +            Feature            : 'feaFreelanceKeys' +            Component     : 'rcm_FreelanceKeys' + + + + +     'Registry' table: + + + + +             (new row) +            Registry          : 'reg_freekey0' +            Root                : 2 +            Key                 : 'SOFTWARE\OpenAFS\Client\Freelance' +            Component     : 'rcm_FreelanceKeys' + + + + +             (new row) +            Registry          : 'reg_freekey1' +            Root                : 2 +            Key                 : 'SOFTWARE\OpenAFS\Client\Freelance' +            Name              : '0' +            Value              : 'athena.mit.edu#athena.mit.edu:root.cell.' +            Component     : 'rcm_FreelanceKeys' + + + + +             (new row) +            Registry          : 'reg_freekey2' +            Root                : 2 +            Key                 : 'SOFTWARE\OpenAFS\Client\Freelance' +            Name              : '1' +            Value              : '.athena.mit.edu%athena.mit.edu:root.cell.' +            Component     : 'rcm_FreelanceKeys' + + + + +             (new row) +            Registry          : 'reg_freekey3' +            Root                : 2 +            Key                 : 'SOFTWARE\OpenAFS\Client\Freelance\Symlinks' +            Component     : 'rcm_FreelanceKeys' + + + + +             (new row) +            Registry          : 'reg_freekey4' +            Root                : 2 +            Key                 : 'SOFTWARE\OpenAFS\Client\Freelance\Symlinks' +            Name              : '0' +            Value              : 'athena:athena.mit.edu.' +            Component     : 'rcm_FreelanceKeys' + + + + +             (new row) +            Registry          : 'reg_freekey5' +            Root                : 2 +            Key                 : 'SOFTWARE\OpenAFS\Client\Freelance\Symlinks' +            Name              : '1' +            Value              : '.athena:.athena.mit.edu.' +            Component     : 'rcm_FreelanceKeys' + + + + + + The example adds a read-only mountpoint to the athena.mit.edu cell's root.afs volume as well as a read-write mountpoint.  Aliases are also provided using symlinks. + +
+
+
+ 7.3 Additional Resources + If you want to add registry keys or files you need to create new components and features for those.  Refer to the Windows Platform SDK for details. + It is beyond the scope of this document to provide a comprehensive overview of how to add new resources through a transform.  Please refer to the "Windows Installer" documentation for details.  The relevant section is at : + http://msdn.microsoft.com/library/en-us/msi/setup/using_transforms_to_add_resources.asp + A sample walkthrough of adding a new configuration file is in section 2.3. + Add new features under the 'feaClient' or 'feaServer' as appropriate and set the 'Level' column for those features to equal the 'Level' for their parent features for consistency.  Note that none of the features in the OpenAFS for Windows MSI package are designed to be installed to run from 'source' or 'advertised'.  It is recommended that you set 'msidbFeatureAttributesFavorLocal' (0), 'msidbFeatureAttributesFollowParent' (2) and 'msidbFeatureAttributesDisallowAdvertise' (8) attributes for new features. + If you are creating new components, retain the same component GUID when creating new transforms against new releases of the OpenAFS MSI package. + After making the adjustments to the MSI database using ORCA.EXE you can generate a transform with MSITRAN.EXE as follows : + (Modified MSI package is 'openafs-en_US_new.msi' and the original MSI package is 'openafs-en_US.msi'.  Generates transform 'openafs-transform.mst') +     > msitran.exe -g openafs-en_US.msi openafs-en_US_new.msi openafs-transform.mst + See the Platform SDK documentation for information on command line options for MSITRAN.EXE. +
+
+ 7.4. Upgrades + The MSI package is designed to uninstall previous versions of OpenAFS for Windows during installation.  Note that it doesn't directly upgrade an existing installation.  This is intentional and ensures that development releases which do not have strictly increasing version numbers are properly upgraded. + Versions of OpenAFS that are upgraded by the MSI package are: + + + OpenAFS MSI package + Upgrade code {6823EEDD-84FC-4204-ABB3-A80D25779833} + Up to current release + + + MIT's Transarc AFS MSI package + Upgrade code {5332B94F-DE38-4927-9EAB-51F4A64193A7} + Up to version 3.6.2 + + + OpenAFS NSIS package + All versions + + + Note that versions of the OpenAFS NSIS package prior to 1.3.65 had a bug where it couldn't be uninstalled properly in unattended mode.  Therefore the MSI package will not try to uninstall an OpenAFS NSIS package if running unattended.  This means that group policy based deployments will fail on machines that have the OpenAFS NSIS package installed. + If you have used a different MSI package to install OpenAFS and wish to upgrade it you can author rows into the 'Upgrade' table as described in the Platform SDK. + When performing an upgrade with msiexec.exe execute the MSI with the repair options "vomus". +
+
+ + Registry Values +
+ A.1. Service parameters + The service parameters primarily affect the behavior of the AFS client service (afsd_service.exe). +
+ Regkey: [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters] + + + + + + + + Value: LANadapter + + Type: DWORD + Default: -1 + Variable: LANadapter + LAN adapter number to use.  This is the lana number of the LAN adapter that the SMB server should bind to.  If unspecified or set to -1, a LAN adapter with named 'AFS' or a loopback adapter will be selected.  If neither are present, then all available adapters will be bound to.  When binding to a non-loopback adapter, the NetBIOS name hostname%-AFS' will be used (where %hostname% is the NetBIOS name of the host truncated to 11 characters). Otherwise, the NetBIOS name will be 'AFS'. + + + + + + + Value: CacheSize + + Type: DWORD + Default: 98304 (CM_CONFIGDEFAULT_CACHESIZE) + Variable: cm_initParams.cacheSize + Size of the AFS cache in 1k blocks. + + + + + + Value: ChunkSize + + Type: DWORD + Default: 20 (CM_CONFIGDEFAULT_CHUNKSIZE) + Variable: cm_logChunkSize (cm_chunkSize = 1 << cm_logChunkSize) + Size of chunk for reading and writing. Actual chunk size is 2^cm_logChunkSize. The default chunk size is therefore 1 MB. + + + + + + Value: Daemons + + Type: DWORD + Default: 4 (CM_CONFIGDEFAULT_DAEMONS) + Variable: numBkgD + Number of background daemons (number of threads of cm_BkgDaemon). (see cm_BkgDaemon in cm_daemon.c) + + + + + + Value: ServerThreads + + Type: DWORD + Default: 25 (CM_CONFIGDEFAULT_SVTHREADS) + Variable: numSvThreads + Number of SMB server threads (number of threads of smb_Server). (see smb_Server in smb.c). + + + + + + + Value: Stats + + Type: DWORD + Default: 10000 (CM_CONFIGDEFAULT_STATS) + Variable: cm_initParams.nStatCaches + Cache configuration. + + + + + + Value: Volumes + + + Type: DWORD + + +Default: 3333 (CM_CONFIGDEFAULT_STATS/3) + + +Variable: cm_initParams.nVolumes + + Cache configuration. + + + + + + + Value: Cells + + Type: DWORD + + +Default: 1024 (CM_CONFIGDEFAULT_CELLS) + + +Variable: cm_initParams.nCells + + Cache configuration. + + + + + + + + Value: LogoffPreserveTokens + + Type: DWORD {1,0} + + +Default : 0 + If enabled (set to 1), the Logoff Event handler will not attempt to delete the user's tokens  if the user's profile is stored outside of AFS. + + + + + + Value: RootVolume + + Type: REG_SZ + + +Default: "root.afs" + + +Variable: cm_rootVolumeName + Root volume name. + + + + + + + Value: MountRoot + + Type: REG_SZ + + +Default: "/afs" + + +Variable: cm_mountRoot + Name of root mount point.  In symlinks, if a path starts with cm_mountRoot, it is assumed that the path is absolute (as opposed to relative) and is adjusted accordingly. Eg: if a path is specified as /afs/athena.mit.edu/foo/bar/baz and cm_mountRoot is "/afs", then the path is interpreted as \\afs\all\athena.mit.edu\foo\bar\baz.  If a path does not start with with cm_mountRoot, the path is assumed to be relative and suffixed to the reference directory (i.e. directory where the symlink exists) + + + + + + + Value: CachePath + + Type: REG_SZ or REG_EXPAND_SZ + + +Default: "%TEMP%\AFSCache" + + +Variable: cm_CachePath + Location of on-disk cache file.  The default is the SYSTEM account's TEMP directory.  The attributes assigned to the file are HIDDEN and SYSTEM. + + + + + + + Value: NonPersistentCaching + + Type: DWORD [0..1] + + +Default: 0 + + +Variable: buf_CacheType + When this registry value is set to a non-zero value, the CachePath value is ignored and the cache data is stored in the windows paging file.  This disables the use of persistent caching and the ability to maintain a single UUID for the AFS client service across restarts. + + + + + + Value: ValidateCache + + Type: DWORD [0..2] + + +Default: 1 + + +Variable: buf_CacheType + This value determines if and when persistent cache validation is performed. + + + 0 - Validation is disabled + 1 - Validation is performed at startup + 2 - Validation is performed at shutdown + + + + + + + + Value: TrapOnPanic + + Type: DWORD {1,0} + + +Default: 0 + + +Variable: traceOnPanic + Issues a breakpoint in the event of a panic. (breakpoint: _asm int 3). + + + + + + + Value: NetbiosName + + Type: REG_EXPAND_SZ + + +Default: "AFS" + + +Variable: cm_NetbiosName + Specifies the NetBIOS name to be used when binding to a Loopback adapter.  To provide the old behavior specify a value of  "%COMPUTERNAME%-AFS". + + + + + + Value: IsGateway + + Type: DWORD {1,0} + + +Default: 0 + + +Variable: isGateway + Select whether or not this AFS client should act as a gateway.  If set and the NetBIOS name hostname-AFS is bound to a physical NIC, other machines in the subnet can access AFS via SMB connections to hostname-AFS. + When IsGateway is non-zero, the LAN adapter detection code will avoid binding to a loopback adapter.  This will ensure that the NetBIOS name will be of the form hostname-AFS instead of the value set by the "NetbiosName" registry value. + + + + + + Value: ReportSessionStartups + + Type: DWORD {1,0} + + +Default: 0 + + +Variable: reportSessionStartups + If enabled, all SMB sessions created are recorded in the Application event log.  This also enables other events such as drive mappings or various error types to be logged. + + + + + + + Value: TraceBufferSize + + Type: DWORD + + +Default: 10000 (CM_CONFIGDEFAULT_TRACEBUFSIZE) + + +Variable: traceBufSize + Number of entries to keep in trace log. + + + + + + + Value: SysName + + Type: REG_SZ + + +Default: "x86_win32 i386_w2k i386_nt40" (X86) + + +"amd64_win64 x86_win32 i386_w2k" (AMD64) + + +Variable: cm_sysName + Provides an initial value for "fs sysname".  The string can contain one or more replacement values for @sys in order of preference separated by whitespace. + + + + + + + Value: SecurityLevel + + Type: DWORD {1,0} + + +Default: 0 + + +Variable: cryptall + Enables encryption on RX calls. + + + + + + + Value: UseDNS + + Type: DWORD {1,0} + + +Default: 1 + + +Variable: cm_dnsEnabled + Enables resolving volservers using AFSDB DNS queries. + + + + + + + Value: FreelanceClient + + Type: DWORD {1,0} + + +Default: 0 + + +Variable: cm_freelanceEnabled + Enables freelance client. + + + + + + + Value: HideDotFiles + + Type: DWORD {1,0} + + +Default: 1 + + +Variable: smb_hideDotFiles + Enables marking dotfiles with the hidden attribute.  Dot files are files whose name starts with a period (excluding "." and ".."). + + + + + + Value: MaxMpxRequests + + Type: DWORD + + +Default: 50 + + +Variable: smb_maxMpxRequests + Maximum number of multiplexed SMB requests that can be made. + + + + + + Value: MaxVCPerServer + + Type: DWORD + + +Default: 100 + + +Variable: smb_maxVCPerServer + Maximum number of SMB virtual circuits. + + + + + + + Value: Cell + + Type: REG_SZ + + +Default: <none> + + +Variable: rootCellName + Name of root cell (the cell from which root.afs should be mounted in \\afs\all). + + + + + + Value: RxEnablePeerStats + + Type: DWORD {0, 1} + + +Default: 1 + + +Variable: rx_enable_peer_stats + When set to 1, the Rx library collects peer statistics. +   + + + + + + Value: RxEnableProcessStats + + Type: DWORD {0, 1} + + +Default: 1 + + +Variable: rx_extra_process_stats + When set to 1, the Rx library collects process statistics. +   + + + + + + Value: RxExtraPackets + + Type: DWORD + + +Default: 120 + + +Variable: rx_extraPackets + When set, this number of extra Rx packets are allocated at startup. + + + + + + + Value: RxMaxMTU + + Type: DWORD + + +Default: 0 + + +Variable: rx_mtu + If set to anything other than 0, that value is used as the maximum send and receive MTU supported by the RX interface. + In order to enable OpenAFS to operate across releases of the Cisco IPSec VPN client prior than 5.0, this value must be set to 1264 or smaller. + + + + + + Value: RxNoJumbo + + Type: DWORD {0,1} + + +Default: 0 + + +Variable: rx_nojumbo + If enabled, does not send or indicate that we are able to send or receive RX jumbograms. + + + + + + + Value: ConnDeadTimeout + + Type: DWORD + + +Default: 0 (seconds) + + +Variable: ConnDeadtimeout + When the value is 0, this setting is configured to be one-half the HardDeadTimeout value. + + + + + + Value: HardDeadTimeout + + Type: DWORD + + +Default: 0 (seconds) + + +Variable: HardDeadtimeout + The Hard Dead Time is enforced to be at least double the ConnDeadTimeout.  The provides an opportunity for at least one retry. + The value 0 seconds means that the real timeout should be set to be equal to the minimum SMB timeout which can be configured in the registry at: + + [HKLM\SYSTEM\CurrentControlSet\Services\lanmanworkstation\parameters] + SessTimeout + + If the minimum SMB timeout is not specified the value is 45 seconds.  See + http://support.microsoft.com:80/support/kb/articles/Q102/0/67.asp + + + + + + + + Value: TraceOption + + Type: DWORD {0-15} + + +Default: 0 + Enables logging of debug output to the Windows Event Log. + Bit 0 enables logging of "Logon Events" processed by the Network Provider and Winlogon Event Notification Handler.  + Bit 1 enables logging of events captured by the AFS Client Service. + Bit 2 enables real-time viewing of "fs trace" logging with DbgView or similar tools. + Bit 3 enables "fs trace" logging on startup. + + + + + + Value: AllSubmount + + Type: DWORD {0, 1} + + +Default: 1 + Variable: allSubmount (smb.c) + By setting this value to 0, the "\\NetbiosName\all" mount point will not be created.  This allows the read-write versions of root.afs to be hidden. + + + + + + + Value: NoFindLanaByName + + Type: DWORD {0, 1} + + +Default: 0 + Disables the attempt to identity the network adapter to use by looking for an adapter with a display name of "AFS". + + + + + + Value: MaxCPUs + + Type: DWORD {1..32} or {1..64} depending on the architecture + + +Default: <no default> + If this value is specified, afsd_service.exe will restrict itself to executing on the specified number of CPUs if there are a greater number installed in the machine.  + + + + + + + Value: smbAuthType + + Type: DWORD {0..2} + + +Default: 2 + If this value is specified, it 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: + 0 = No authentication required + + + + +1 = NTLM authentication required + + +2 = Extended (GSS SPNEGO) authentication required + + + + +The default is Extended authentication + + + + + + + Value: MaxLogSize + + Type: DWORD {0 .. MAXDWORD} + + +Default: 100K + This entry determines the maximum size of the %WINDIR%\TEMP\afsd_init.log file.  If the file is larger than this value when afsd_service.exe starts the file will be reset to 0 bytes.  If this value is 0, it means the file should be allowed to grow indefinitely. + + + + + + Value: FlushOnHibernate + + Type: DWORD {0,1} + + +Default: 1 + If set, flushes all volumes before the machine goes on hibernate or stand-by. + + + + + + Value: daemonCheckDownInterval + + Type: DWORD (seconds) + + +Default: 180 + This value controls how frequently the AFS cache manager probes servers that are marked as "down". + + + + + + Value: daemonCheckUpInterval + + Type: DWORD (seconds) + + +Default: 600 + This value controls how frequently the AFS cache manager probes servers that are marked as "up". + + + + + + Value: daemonCheckVolInterval + + Type: DWORD (seconds) + + +Default: 3600 + This value controls how frequently the AFS cache manager forces a reset on the existing volume database information. + + + + + + Value: daemonCheckCBInterval + + Type: DWORD (seconds) + + +Default: 60 + This value controls how frequently the AFS cache manager checks for callback invalidation. + + + + + + Value: daemonCheckLockInterval + + Type: DWORD (seconds) + + +Default: 60 + This value controls how frequently the AFS cache manager checks for invalid file locks. + + + + + + Value: daemonCheckTokenInterval + + Type: DWORD (seconds) + + +Default: 180 + This value controls how frequently the AFS cache manager checks for expired tokens. + + + + + + Value: daemonCheckOfflineVolInterval + + Type: DWORD (seconds) + + +Default: 600 + This value controls how frequently the AFS cache manager checks offline volumes to see if they have come back online. At the same time volumes which were determined to be busy have their state reset to online. + + + + + + Value: CallBackPort + + Type: DWORD + + +Default: 7001 + This value specifies which port number should be used for receiving callbacks from the file server. The standard AFS Callback port is 7001. Alternative values can be useful if the client is behind a NAT and a permanent port mapping for the client is being configured. + + + + + + + Value: EnableServerLocks + + Type: DWORD {0, 1, 2} + + +Default: 1 + Determines whether or not the AFS file server is contacted for + 0: never obtain server locks + 1: obtain server locks unless the file server says not to + 2: always obtain server locks + + + + + + Value: DeleteReadOnly + + Type: DWORD {0, 1} + + +Default: 0 + Determines whether or not the AFS Cache Manager will permit files marked with the "Read Only" DOS attribute to be deleted or not. For compatibility with Explorer, the default is ‘no’. + 0: do not permit "Read Only" files to be deleted. + 1: delete files that have the "Read Only" attribute set without complaint. + + + + + + Value: BPlusTrees + + Type: DWORD {0, 1} + + +Default: 1 + Determines whether or not the AFS Cache Manager uses locally constructed B+ Trees to speed up the performance of directory searches. + 0: do not use B+ Trees for directory lookups + 1: use B+ Trees for directory lookups + + + + + + Value: PrefetchExecutableExtensions + + Type: MULTI_SZ + + +Default: none specified + The AFS Cache Manager will pre-fetch the entire contents of any file whose name matches ends with one of the specified extensions. This option is intended for use primarily with executables and dynamic link libraries that should be fully cached prior to a machine losing its connection with the file server. + + + + + + Value: OfflineReadOnlyIsValid + + Type: DWORD {0, 1} + + +Default: 0 + Determines whether or not cached data from .readonly volumes is considered valid even if a callback cannot be registered with a file server. This option is meant to be used by organizations for whom .readonly volume content very rarely changes (if ever.) + 0: do not treat offline .readonly content as valid + 1: treat offline .readonly content as valid + + + + + + Value: GiveUpAllCallBacks + + Type: DWORD {0, 1} + + +Default: 0 + Determines whether or not the AFS Cache Manager will give up all callbacks prior to the service being suspended or shutdown. Doing so will have significant performance benefits for the file servers. However, file servers older than 1.4.6 can become unstable if the GiveUpAllCallBacks RPC is executed. + 0: do not perform GiveUpAllCallBacks RPCs + 1: perform GiveUpAllCallBacks RPCs + + + + + + Value: FollowBackupPath + + Type: DWORD {0, 1} + + +Default: 0 + Determines whether or not the AFS Cache Manager will give preference to .backup volumes when following mount points that originate in a .backup volume. + 0: do not prefer .backup volumes when the mount point originates in a .backup volume. + 1: prefer .backup volumes when the mount point originates in a .backup volume. + + + + + + Value: RxUdpBufSize + + Type: DWORD {bytes} + + +Default: 262144 + Specifies the UDP socket receive and send buffer sizes.. + + + + + +
+
+ Regkey: +[HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters\GlobalAutoMapper] + + + + + + + + Value: <Drive Letter:> for example "G:" + + Type: REG_SZ + Specifies the submount name to be mapped by afsd_service.exe at startup to the provided drive letter. + + This option is deprecated. + + + + + + +
+
+ Regkey: [HKLM\SOFTWARE\OpenAFS\Client] + + + + + + + + + Value: CellServDBDir + + Type: REG_SZ + + +Default: <not defined> + Specifies the directory containing the CellServDB file.  When this value is not specified, the ProgramData directory is searched and if the CellServDB file is not found, the AFS Client install directory is used. + + + + + + + Value: VerifyServiceSignature + + Type: REG_DWORD + + +Default: 0x1 + This value can be used to disable the runtime verification of the digital signatures applied to afsd_service.exe and the OpenAFS DLLs it loads.  This test is performed to verify that   the DLLs which are loaded by afsd_service.exe are from the same distribution as afsd_service.exe.  This is to prevent random errors caused when DLLs from one distribution of AFS are loaded by another one.  This is not a security test.  The reason for disabling this test is to free up additional memory which can be used for a large cache size. + + + + + + + Value: IoctlDebug + + Type: REG_DWORD + + +Default: 0x0 + This value can be used to debug the cause of pioctl() failures.  Set a non-zero value and the pioctl() library will output status information to stdout.  Executing command line tools such as tokens.exe, fs.exe, etc can then be used to determine why the pioctl() call is failing. + + + + + + + Value: MiniDumpType + + Type: REG_DWORD + + +Default: 0x0 (MiniDumpNormal) + This value is used to specify the type of minidump generated by afsd_service.exe either when the process crashes or when a user initiated is dump file is generated with the "fs.exe minidump" command. + Valid values are dependent on the version of DbgHelp.dll installed on the machine.  The best version to use is not the version that comes with the operating system but the version that is included in the most recent release of " + Microsoft Debugging Tools for Windows".  See the Microsoft Developer Library for further information. + + + + + + +MiniDumpNormal = 0x00000000 + + +MiniDumpWithDataSegs = 0x00000001 + + +MiniDumpWithFullMemory = 0x00000002 + + +MiniDumpWithHandleData = 0x00000004 + + +MiniDumpFilterMemory = 0x00000008 + + +MiniDumpScanMemory = 0x00000010 + + +MiniDumpWithUnloadedModules = 0x00000020 + + +MiniDumpWithIndirectlyReferencedMemory = 0x00000040 + + +MiniDumpFilterModulePaths = 0x00000080 + + +MiniDumpWithProcessThreadData = 0x00000100 + + +MiniDumpWithPrivateReadWriteMemory = 0x00000200 + + +MiniDumpWithoutOptionalData = 0x00000400 + + +MiniDumpWithFullMemoryInfo = 0x00000800 + + +MiniDumpWithThreadInfo = 0x00001000 + + +MiniDumpWithCodeSegs = 0x00002000 + + + + + + + + + Value: EnableSMBAsyncStore + + Type: REG_DWORD + + +Default: 0x1 + This value can be used to disable the use of SMB Asynchronous Store operations.  + + + + + + + Value: SMBAsyncStoreSize + + Type: REG_DWORD + + +Default: 32 + This value determines the size of SMB Asynchronous Store operations. This value can be used to increase the write performance on higher speed networks by increasing the value. The value must be a multiple of the cache buffer block size and cannot be larger than the cache manager chunk size. The specified value will be adjusted to enforce its compliance with these restrictions. + + + + + + + Value: StoreAnsiFilenames + + Type: REG_DWORD + + +Default: 0x0 + This value can be used to force the AFS Client Service to store filenames using the Windows system's ANSI character set instead of the OEM Code Page character set which has traditionally been used by SMB file systems.  + Note: The use of ANSI characters will render access to files with 8-bit OEM file names inaccessible from Windows.  This option is of use primarily when you wish to allow file names produced on Windows to be accessible from Latin-1 UNIX systems and vice versa. + + + + + +
+
+ Regkey: [HKLM\SOFTWARE\OpenAFS\Client\CSCPolicy] + + + + + + + + Value: "smb/cifs share name" + + Type: REG_SZ + + +Default: <none> + This key is used to map SMB/CIFS shares to Client Side Caching (off-line access) policies. For each share one of the following policies may be used: "manual", "programs", "documents", "disable".  + These values used to be stored in afsdsbmt.ini + + + + + +
+
+ Regkey: [HKLM\SOFTWARE\OpenAFS\Client\Freelance] + + + + + + + + Value: "numeric value" + + Type: REG_SZ + + +Default: <none> + This key is used to store dot terminated mount point strings for use in constructing the fake root.afs volume when Freelance (dynamic roots) mode is activated. + "athena.mit.edu#athena.mit.edu:root.cell." + ".athena.mit.edu%athena.mit.edu:root.cell." + These values used to be stored in afs_freelance.ini + + + + + +
+
+ Regkey: [HKLM\SOFTWARE\OpenAFS\Client\Freelance\Symlinks] + + + + + + + + Value: "numeric value" + + Type: REG_SZ + + +Default: <none> + This key is used to store a dot terminated symlink strings for use in constructing the fake root.afs volume when Freelance (dynamic roots) mode is activated. + "linkname:destination-path." + "athena:athena.mit.edu." + "home:athena.mit.edu\user\j\a\jaltman." + "filename:path\file." + + + + + +
+
+ Regkey: [HKLM\SOFTWARE\OpenAFS\Client\Realms] + The Realms key is used to provide initialization data to be used when new identities are added to the Network Identity Manager. The AFS Provider will search for a subkey that matches the realm of the identity. If such a key exists, its values will be used to populate the AFS configuration for the identity. +
+
+ Regkey: [HKLM\SOFTWARE\OpenAFS\Client\Realms\"Realm Name"] + In addition to the optional values, this key contains one subkey for each cell that is to be added to the AFS Provider configuration. + + + + + + + + Value: + AFSEnabled + + Type: REG_DWORD + + +Default: 0x01 + This key is used to specify whether the new identity should be configured to obtain AFS credentials. In general, it is only specified when disabling the acquisition of AFS credentials is desired. The default is to obtain AFS credentials. + + + + + +
+
+ Regkey: +[HKLM\SOFTWARE\OpenAFS\Client\Realms\"Realm Name"\"Cell Name"] + + + + + + + + Value: + MethodName + + Type: REG_SZ + + +Default: <none> + This key is used to specify the token acquisition method to be used. When unspecified, the AFS provider will automatically try Kerberos v5 and then Kerberos v5 (if available). As of this writing valid method names include "Auto", "Kerberos5", "Kerberos524", "Kerberos4". + Note: Kerberos524 and Kerberos4 cannot be used with 64-bit Kerberos for Windows. + + + + + + Value: + Realm + + Type: REG_SZ + + +Default: <none> + This key is used to specify the realm to be used when acquiring AFS tokens. If not specified, the realm will be determined by performing a domain to realm mapping on the domain of a random volume location database server for the cell. + + + + + +
+
+ Regkey: +[HKLM\SOFTWARE\OpenAFS\Client\Submounts] + + + + + + + + Value: "submount name" + + Type: REG_EXPAND_SZ + + +Default: <none> + This key is used to store mappings of UNIX style AFS paths to submount names which can be referenced as UNC paths.  For example the submount string "/athena.mit.edu/user/j/a/jaltman" can be associated with the submount name "jaltman.home".  This can then be referenced as the UNC path \\AFS\jaltman.home. + These values used to be stored in afsdsbmt.ini + NOTE: Submounts should no longer be used with OpenAFS. Use the Windows Explorer to create drive mappings to AFS UNC paths instead of using the AFS Submount mechanism. + + + + + +
+
+ Regkey: +[HKLM\SOFTWARE\OpenAFS\Client\Server Preferences\VLDB] + + + + + + + + Value: "hostname or ip address" + + Type: REG_DWORD + + +Default: <none> + This key is used to specify a default set of VLDB server preferences. For each entry the value name will be either the IP address of a server or a fully qualified domain name.  The value will be the ranking.  The ranking will be adjusted by a random value between 0 and 256 prior to the preference being set. + + + + + +
+
+ Regkey: +[HKLM\SOFTWARE\OpenAFS\Client\Server Preferences\File] + + + + + + + + Value: "hostname or ip address" + + Type: REG_DWORD + + +Default: <none> + This key is used to specify a default set of File server preferences. For each entry the value name will be either the IP address of a server or a fully qualified domain name.  The value will be the ranking.  The ranking will be adjusted by a random value between 0 and 256 prior to the preference being set. + + + + + +
+
+
+ A.2. Integrated Logon Network Provider Parameters + Affects the network provider (afslogon.dll). +
+ Regkey: [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters] + + + + + + + + Value: FailLoginsSilently + + Type: DWORD + + +Default: 0 + Do not display message boxes if the login fails. + + + + + +
+
+ Regkey: +[HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider] + + + + + + + + Value: NoWarnings + + Type: DWORD + + +Default: 0 + Disables visible warnings during logon. + + + + + + Value: AuthentProviderPath + + Type: REG_SZ + + +NSIS: %WINDIR%\SYSTEM32\afslogon.dll + Specifies the install location of the authentication provider dll. + + + + + + Value: Class + + Type: DWORD + + +NSIS: 0x02 + Specifies the class of network provider + + + + + + Value: DependOnGroup + + Type: REG_MULTI_SZ + + +NSIS: PNP_TDI + Specifies the service groups upon which the AFS Client Service depends.  Windows should not attempt to start the AFS Client Service until all of the services within these groups have successfully started. + + + + + + Value: DependOnService + + Type: REG_MULTI_SZ + + +NSIS: Tcpip NETBIOS RpcSs + Specifies a list of services upon which the AFS Client Service depends.  Windows should not attempt to start the AFS Client Service until all of the specified services have successfully started. + + + + + + Value: Name + + Type: REG_SZ + + +NSIS: "OpenAFSDaemon" + Specifies the display name of the AFS Client Service + + + + + + Value: ProviderPath + + Type: REG_SZ + + +NSIS: %WINDIR%\SYSTEM32\afslogon.dll + Specifies the DLL to use for the network provider + + + + + +
+
+
+ A.2.1 Domain specific configuration keys for the Network Provider + The network provider can be configured to have different behavior depending on the domain that the user logs into.  These settings are only relevant when using integrated login.  A domain refers to an Active Directory (AD) domain, a trusted Kerberos (non-AD) realm or the local machine (i.e. local account logins).  The domain name that is used for selecting the domain would be the domain that is passed into the NPLogonNotify function of the network provider. + Domain specific registry keys are: +
+ Regkey: [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider] +   (NP key) +
+
+ Regkey: [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider\Domain] +   (Domains key) +
+
+ Regkey: [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider\Domain\"domain name"] +   (Specific domain key. One per domain.) +
+
+ Regkey: [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider\Domain\LOCALHOST] +   (Localhost key) +
+
+ Domain Specific Example: +  HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider +   | +   +- Domain +      +-AD1.EXAMPLE.COM +      +-AD2.EXAMPLE.NET +      +-LOCALHOST + Each of the domain specific keys can have the set of values described in 2.1.1.  The effective values are chosen as described in 2.1.2. +
+
+ A.2.1.1 Domain Specific Configuration Values +
+ Regkeys: [HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider] +[HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider\Domain] +[HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider\Domain\"domain name"] +[HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider\Domain\LOCALHOST] + + + + + + + + + Value: LogonOptions + + Type: DWORD + + +Default: 0x01 + NSIS/WiX: depends on user configuration + + + 0x00 - Integrated Logon is not used + + +0x01 - Integrated Logon is used + + +0x02 - High Security Mode is used (deprecated) + + +0x03 - Integrated Logon with High Security Mode is used (deprecated) + + + + High Security Mode generates random SMB names for the creation of Drive Mappings.  This mode should not be used without Integrated Logon. + As of 1.3.65 the SMB server supports SMB authentication.  The High Security Mode should not be used when using SMB authentication (SMBAuthType setting is non zero). + + + + + + Value: FailLoginsSilentl + + Type: DWORD (1|0) + + +Default: 0 + + +NSIS/WiX: (not set) + If true, does not display any visible warnings in the event of an error during the integrated login process. + + + + + + Value: LogonScript + + Type: REG_SZ or REG_EXPAND_SZ + + +Default: (null) + + +NSIS/WiX: (only value under NP key) <install path>\afscreds.exe -:%s -x -a -m -n -q + A logon script that will be scheduled to be run after the profile load is complete.  If using the REG_EXPAND_SZ type, you can use any system environment variable as "%varname%" which would be expanded at the time the network provider is run.  Optionally using a "%s" in the value would result in it being expanded into the AFS SMB username for the session. + + + + + + Value: LoginRetryInterval + + Type: DWORD + + +Default: 30 + + +NSIS/WiX: (not set) + 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. + + + + + + Value: LoginSleepInterval + + Type: DWORD + + +Default: 5 + + +NSIS/WiX: (not set) + See description of LoginRetryInterval. + + + + + + + Value: Realm + + Type: REG_SZ + + +NSIS: <not set> + When Kerberos v5 is being used, Realm specifies the Kerberos v5 realm that should be appended to the first component of the Domain logon username to construct the Kerberos v5 principal for which AFS tokens should be obtained. + + + + + + + Value: TheseCells + + Type: REG_MULTI_SZ + + +NSIS: <not set> + When Kerberos v5 is being used, TheseCells provides a list of additional cells for which tokens should be obtained with the default Kerberos v5 principal. + + + + + +
+
+
+ A.2.1.2 Selection of effective values for domain specific configuration + During login to domain X, where X is the domain passed into NPLogonNotify as lpAuthentInfo->LogonDomainName or the string 'LOCALHOST' if lpAuthentInfo->LogonDomainName equals the name of the computer, the following keys will be looked up. + 1.      NP key. ("HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider") + 2.      Domains key. (NP key\"Domain") + 3.      Specific domain key. (Domains key\X) + If the specific domain key does not exist, then the domains key will be ignored.  All the configuration information in this case will come from the NP key. + If the specific domain key exists, then for each of the values metioned in (2), they 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.  To re-iterate, a value in a more specific key supercedes a value in a less specific key.  The exceptions to this rule are stated below. +
+
+ A.2.1.3 Exceptions to A.2.1.2 + To retain backwards compatibility, the following exceptions are made to A.2.1.2. +
+ 2.1.3.1 'FailLoginsSilently' + Historically, the 'FailLoginsSilently' value was in HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters key and not in the NP key.  Therefore, for backwards 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. +
+
+ 2.1.3.2 'LogonScript' + If a 'LogonScript' is not specified in the specific domain key nor in the domains key, the value in the NP 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. +
+
+
+
+ A.3. AFS Credentials System Tray Tool parameters + Affects the behavior of afscreds.exe +
+ Regkey: +[HKLM\SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters] + + + + + + + + Value: Gateway + + Type: REG_SZ + + +Default: "" + + +Function: GetGatewayName() + If the AFS client is utilizing a gateway to obtain AFS access, the name of the gateway is specified by this value. + + + + + + Value: Cell + + Type: REG_SZ + + +Default: <none> + + +Variable: IsServiceConfigured() + The value Cell is used to determine if the AFS Client Service has been properly configured or not. + + + + + +
+
+ Regkey: +[HKLM\SOFTWARE\OpenAFS\Client] +[HKCU\SOFTWARE\OpenAFS\Client] + + + + + + + + Value: ShowTrayIcon + + Type: DWORD {0, 1} + + +Default: 1 + + +Function: InitApp(), Main_OnCheckTerminate() + This value is used to determine whether or not a shortcut should be maintained in the user's Start Menu->Programs->Startup folder. + This value used to be stored at [HKLM\Software\TransarcCorporation\AFS Client\AfsCreds]. + The current user value is checked first; if it does not exist the local machine value is checked. + + + + + + Value: EnableKFW + + Type: DWORD {0, 1} + + +Default: 1 + + +Function: KFW_is_available() + When MIT Kerberos for Windows can be loaded, Kerberos v5 will be used to obtain AFS credentials.  By setting this value to 0, the internal Kerberos v4 implementation will be used instead.  The current user value is checked first; if it does not exist the local machine value is checked. + + + + + + Value: AcceptDottedPrincipalNames + + Type: DWORD {0, 1} + + +Default: 1 + + +Function: KFW_accept_dotted_usernames() + Kerberos v5 principal names are traditionally mapped to Kerberos v4 names by the AFS servers before they can be looked up in the Protection database.  The mapping algorithm used permits collisions to occur.  Both of the Kerberos v5 names, "user.admin@REALM" and "user/admin@REALM" are interpreted as the same user identity within the cell.  To enable both names to be sent to the server by AFSCreds or Integrated Logon, set this value to 1. + + + + + + + Value: Use524 + + Type: DWORD {0, 1} + + +Default: 0 + + +Function: KFW_use_krb524() + When MIT Kerberos for Windows can be loaded, Kerberos v5 will be used to obtain AFS credentials.  By setting this value to 1, the Kerberos v5 tickets will be converted to Kerberos v4 tokens via a call to the krb524 daemon.  The current user value is checked first; if it does not exist the local machine value is checked. + + + + + + + Value: AfscredsShortcutParams + + Type: REG_SZ + + +Default: "-A -M -N -Q" + + +Function: Shortcut_FixStartup + This value specifies the command line options which should be set as part of the shortcut to afscreds.exe.  afscreds.exe rewrites the shortcut each time it exits so as to ensure that the shortcut points to the latest version of the program.  This value is used to determine which values should be used for command line parameters.  The current user value is checked first; if it does not exist the local machine value is checked. + The following subset of the command line options is appropriate for use in this registry setting: + + + -A = autoinit + + +-M = renew drive maps + + +-N = ip address change detection + + +-Q = quiet mode.  do not display start service dialog if afsd_service is not already running + + +-S = show tokens dialog on startup + + +-Z = unmap drives + + + + + + + + +
+
+ Regkey: +[HKCU\SOFTWARE\OpenAFS\Client] + + + + + + + + Value: Authentication Cell + + Type: REG_SZ + + +Default: <none> + + +Function: Afscreds.exe GetDefaultCell() + This value allows the user to configure a different cell name to be used as the default cell when acquiring tokens in afscreds.exe. + + + + + +
+
+ Regkey: +[HKCU\SOFTWARE\OpenAFS\Client\Reminders] + + + + + + + + Value: "afs cell name" + + Type: DWORD {0, 1} + + +Default: <none> + + +Function: LoadRemind(), SaveRemind() + These values are used to save and restore the state of the reminder flag for each cell for which the user has obtained tokens. + This value used to be stored at [HKLM\Software\TransarcCorporation\AFS Client\AfsCreds]. + + + + + +
+
+ Regkey: +[HKCU\SOFTWARE\OpenAFS\Client\Active Maps] + + + + + + + + Value: "upper case drive letter" + + Type: DWORD {0, 1} + + +Default: <none> + These values are used to store the persistence state of the AFS drive mappings as listed in the [...\Client\Mappings] key. + These values used to be stored in the afsdsbmt.ini file + + + + + +
+
+ Regkey: +[HKCU\SOFTWARE\OpenAFS\Client\Mappings] + + + + + + + + Value: "upper case drive letter" + + Type: REG_SZ + + +Default: <none> + These values are used to store the AFS path in UNIX notation to which the drive letter is to be mapped. + These values used to be stored in the afsdsbmt.ini file. + + + + + +
+
+
+ A.4 OpenAFS Client Service Environment Variables + + + + + + + + Variable: AFS_RPC_ENCRYPT + + Values: + + "OFF" disables the use of RPC encryption + any other value allows RPC encryption to be used + + + +Default: RPC encryption is on + + + + + + + Variable: AFS_RPC_PROTSEQ + + Values: + + +"ncalrpc" - local RPC + + +"ncacn_np" - named pipes + + +"ncacn_ip_tcp" - tcp/ip + + + + +Default: local RPC + + + + + + +   +
+
+ Name Index +
+ diff --git a/doc/xml/ReleaseNotesWindows/relnotes00.jpg b/doc/xml/ReleaseNotesWindows/relnotes00.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4cb26f85f0ab95b7cca22a3226490365a7ffb35a GIT binary patch literal 89966 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

{5@2J%hss`)I~<|1RMZo6(~8G_jVd&* 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%0D*X99Y9e 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 literal 0 HcmV?d00001 diff --git a/doc/xml/ReleaseNotesWindows/relnotes02.jpg b/doc/xml/ReleaseNotesWindows/relnotes02.jpg new file mode 100644 index 0000000000000000000000000000000000000000..26ebf05b87aa5b0c3d368527ba01b97680084978 GIT binary patch literal 63399 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 literal 0 HcmV?d00001 -- 2.39.5