Troubleshooting Various Client Drive Mapping Issues
Troubleshooting Various Client Drive Mapping Issues Troubleshooting Various Client Drive Mapping Issues
Citrix states in their article: CTX238200
CTX238200 - Troubleshooting Various Client Drive Mapping Issues
This document was published at: http://support.citrix.com/kb/entry.jspa?externalID=CTX238200
Document ID: CTX238200, Created on: May 22, 2000, Updated: Nov 7, 2003
Products: Citrix MetaFrame XP 1.0 for Microsoft NT 4.0 Server Terminal Server Edition, Citrix MetaFrame XP 1.0 for Microsoft Windows 2000, Citrix MetaFrame 1.8 for Microsoft NT 4.0 Server Terminal Server Edition, Citrix MetaFrame 1.8 for Microsoft Windows 2000
This article highlights many common client drive mapping inquiries and issues along with their respective explanation or resolution. MetaFame XP Feature Release 2/3 Citrix Management Console may allow the configuration of policies to assist with some of the desired Client Drive Mapping settings. In addition, Microsoft TechNet may provide articles that may explain, for example: How to hide drive letters from view.
Client Drive Mappings do not Create for any User
1. Ensure Citrix Connection Configuration is set to "Inherent User Config" and User Manager for Domains/Config had all the options for Client Devices checked.
2. Ensure Disable Client Drive Mapping is unchecked in Citrix Connection Config > Protocol > Client Settings > Client Mapping Overrides in the Client Overrides area.
WARNING:Using Registry Editor incorrectly can cause serious problems that may require you to reinstall your operating system. Citrix cannot guarantee that problems resulting from the incorrect use of Registry Editor can be solved. Use Registry Editor at your own risk.
For information about how to edit the registry, view the "Changing Keys and Values" Help topic in Registry Editor (Regedit.exe) or the "Add and Delete Information in the Registry" and "Edit Registry Data" Help topics in Regedt32.exe. Note that you should back up the registry before you edit it. If you are running Windows NT, you should also update your Emergency Repair Disk (ERD).
3. Ensure the Client Network Service is started. Do not attempt to restart the Client Network Service when there is an existing ICA connection to the server. If the Client Network Service does not appear within services, verify that the key, CdmSerivce, and its subcatergories, Enum and networkProvider, along with their values are present under:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices.
Check another working server for proper registy settings.
4. Ensure the RPC Service is started.
5. Ensure that Client Network is visible under Network Neighborhood. If it is not, follow the steps listed below:
A. Start Registry Editor (Regedt32.exe) and go to the following key:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlNetworkProviderOrder
The value for ProviderOrder contained only LanmanWorkstation.
Add CdmService, so that the Value now reads "CdmService,LanmanWorkstation."
B. Reboot the server.
6. Ensure Cdmprov.dll is in the system32 directory.
7. Ensure Microsoft files Mpr.dll, the Multiple Provider Router dll, and Mup.sys (the Multiple UNC Provider driver) are present.
8. Does drive mapping fail for the administrator? If not, ensure users have sufficient rights to the dlls, exes, and registry settings outlined in this section.
9. Does chgcdm/default work?
10. Does net use * clientc$ work? If it does not, a System Error 67 appears.
11. Is a local Windows 2000 policy "Strengthen default permissions of global system objects" disabled? Enable this policy or contact Citrix Technical Support for additional information.
12. Check the event log for CDM errors.
13. Can similiar function be performed in a Microsoft network scenario?
14. Verify that the Cdm.sys file is in the %SystemRoot%system32drivers directory.
15. For Terminal Server 4.0 Installations, check to see if the following registry entry exists:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsNTCurrentVersionWinlogon
Key Name: Userinit
Value: Ctxlogon.exe
15. For Windows 2000 Terminal Server Installations, check to see if the following registry entry exists:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsNTCurrentVersionWinlogon
Key Name: AppSetup
Value: Cmstart.exe
16. Ensure logon scripts, i.e Kixstart, do not include statements such as net use * /d.
Configuring Server Drive Letters for Client Drive Mapping
The Citrix ICA Client supports Client Drive Mapping. Client Drive Mapping allows users logged on to a MetaFrame server from a client device running the Citrix ICA Client to access their local drives transparently from the ICA session. Client devices can transparently access files contained on the local machine and data can be cut and pasted between local and remote sessions using the Clipboard. During the initial installation of MetaFrame, the administrator is prompted to modify the server drive letter assignments to avoid conflicts with user drive letters. MetaFrame XP Feature Release 2 for Windows 2000 uses a different mechanism for drive remapping. See Citrix Knowledgebase articles Server Drive Remapping and using the Driveremap.exe Utility in MetaFrame XP FR2 and MetaFrame 1.8 and MetaFrame XP Drive Remapping Best Practice for additional information.
Client drive mappings are transparently built into the standard Citrix device redirection facilities. These client mappings appear as another network type (Client Network). Client devices are displayed as share points to which a drive letter can be attached. Client device mappings can be used by the File Manager and other applications just like any other network mappings.
The default drive letters assigned to client drives start with V and work backwards assigning a drive letter to each fixed disk and CD ROM. (Floppy drives are assigned their existing drive letters.) This method yields the following drive mappings:
Client drive letter
Is accessed by the MetaFrame server as
A
A
B
B
C
V
D
U
If the Citrix server drive letters do not conflict with client drive letters, the client drive letters can be accessed with their existing drive letters. So that the MetaFrame server drive letters do not conflict with the client drive letters, you need to change the server drive letters to higher drive letters. For example, changing MetaFrame server drives C to M and D to N allows client devices to access their C and D drives directly.
Click Yes to allow Citrix ICA Client devices to access their local drives as follows:
Client drive letter
Is accessed by the MetaFrame server as
A
A
B
B
C
C
D
/>
D
If you click Yes, the next screen allows you to choose the drive letter to replace the servers drive C. All other fixed disk and CD-ROM drive letters are replaced with sequential drive letters (for example; C->M, D->N, E->O). Choose drive letters that do not conflict with any existing network drive mappings. If a network drive is mapped to the same drive letter as a MetaFrame server drive letter, the network drive mapping will not be valid.
How to Modify Initial Client Drive and NetWare Drive Letters
In MetaFrame 1.x/XP, client drive mapping and NetWare login script execution occur asynchronously, in parallel. Therefore, it is very important for the Citrix administrator to ensure that no drive mapping conflicts exist between the client drives and NetWare drives. It is possible that a user could find drive V mapped to his client drive C during one ICA session but have it mapped to SYS:PUBLIC during another session. This situation can be avoided by setting two new registry values.
InitialClientDrive
Defines the first drive letter to use for client drive mapping. The system works backward through the alphabet from this letter to map client drives that could not be mapped to their "native" drive letters.
InitialNetwareDrive
Defines the drive letter to be used for the NetWare SYS:LOGIN directory that is mapped to the preferred server during the initial NetWare attachment. This setting is the equivalent of the DOS VLM NET.CFG setting "First Network Drive." If this value is not set, the first available drive letter starting with drive C and working up to drive Z is used for this mapping.
Because the logon process is multi-threaded, it is impossible to know for sure what order the various drive mappings will take. This was done to speed the logon process. The following steps take place concurrently during logon:
1. If the "Disable Client Drive Mapping" option in Connection Configuration is not checked and home directory mapping is configured in User Manager for Domains, the client drives are mapped using Steps A and B below. If client drive mapping is disabled, the client drives can still be mapped manually by the logon script or by the user after logging in.
A. Any available drive letters that match the clients native drive letters are used. Available drive letters are drives not in use as local MetaFrame server drives or network connections. For example, if drive C is not in use on the server, it is mapped to the clients drive C (ClientC:).
B. For those client drives left unmapped by Step 1A, the system starts at drive V and works backward through the alphabet, using available drive letters sequentially for the remainder of the client drives. Drive letters that are already in use as MetaFrame server drives, mapped to persistent network connections, or mapped by NetWare logon script processing are skipped. For example, drive V is mapped to ClientC: when drive C is in use as the Citrix servers local drive C.
2. Any drive mappings configured in NetWare logon scripts are performed. If a drive letter is already in use, the mapping fails and the existing drive mapping remains.
3. Any persistent drive mappings manually configured by the user are performed. If a drive letter is already in use, the mapping fails and the existing drive mapping remains.
Consider the following examples:
Example 1
MetaFrame server local drives: C:, D:, T:
Client has drives C:, D:, E:
InitialClientDrive is set to: V: (the new default)
In this particular example, drive V is mapped to the clients drive C, drive U is mapped to the clients drive D, and drive S is mapped to the clients drive E because drive T is already in use on the server.
Example 2
MetaFrame server local drives: E:, F:
NetWare logon script mappings: X:, Y:, Z:
Client has drives: C:, D:, E:
InitialClientDrive is set to: V: (the new default)
InitialNetwareDrive is set to: G: (not set by default)
In this example, drive C is mapped to the clients drive C, drive D is mapped to the clients drive D, and drive V is mapped to the clients drive E.
Example 3
MetaFrame server local drives: E:, F:
NetWare logon script mappings: V:, W:, X:, Y:, Z:
Client has drives: C:, D:, E:
InitialClientDrive is set to: V: (the new default)
InitialNetwareDrive is not set (the default)
This configuration can be very confusing. Because the InitialNetwareDrive registry value is not set, it is possible that drive C could be mapped to SYS:LOGIN on the NetWare server or to the clients drive C. It is also possible that drive V could be mapped to the NetWare server or to the clients drive E or C. It depends upon whether or the NetWare script execution completes before the client drive mapping or vice-versa.
Avoid the last configuration (Example 3) if at all possible. Citrix recommends that both the InitialNetwareDrive and InitialClientDrive values be set to avoid this problem. Follow these guidelines when setting these values:
Set InitialNetwareDrive one drive letter higher than the last physical MetaFrame server local drive.
Set InitialClientDrive so that client drive mappings wont conflict with NetWare mappings. If your logon script maps drives F though L and T through Z, set InitialClientDrive to S.
To Add the Registry Values
WARNING: Using Registry Editor incorrectly can cause serious, system-wide problems that may require you to reinstall Windows NT to correct them. Citrix cannot guarantee that any problems resulting from the use of Registry Editor can be solved. Use this tool at your own risk.
1. Run Regedt32.exe.
2. For MetaFrame 1.x/XP, locate the following registry key:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlCitrix
3. With this key highlighted, select Add Value from the Edit menu.
4. Type InitialClientDrive in the Value Name field.
This defines the first drive letter to use for client drive mapping. The system searches backward through the alphabet to assign drive letters to client drives that could not be mapped to their "native" drive letters.
5. Select REG_SZ from the Data Type pull-down list, then click OK.
6. In the String field, type the drive letter that you want to use. Include the colon; for example, S:.
7. Click OK.
8. For a MetaFrame 1.x/XP server, the correct registry path for IntialNetwareDrive is:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal Server
9. Select Add Value from the Edit menu.
10. Type InitialNetwareDrive in the Value Name field.
This defines the drive letter to use for the NetWare Sys.login directory that is mapped to the preferred server during the initial NetWare attachment. This setting is the equivalent of the DOS VLM Net.cfg setting "First Network Drive." If this value is not set, the first available drive letter starting with C and working up to Z is used for this mapping.
10. Select REG_SZ from the Data Type pull-down list, then click OK.
11. In the String field, type the drive letter that you want to use. Include the colon; for example, F:.
12. Click OK.
13. Exit the Registry Editor.
How to Map Client
Workstation Network Drives in an ICA Session
Use the Net Use command in a logon script to map client network drives, even when the Citrix Management Console policy is enabled. For design and performance reasons, if the client mapped network drive is accessible on the network from the Citrix server, Citrix prefers that you do not following the solution below and that the network drive be mapped in a regular Windows NT logon script.
Known Limitation: File Locking Fails Through Client Mapped Remote Network Drives and Content Redirection.
The below point items are excerpts from MetaFrame 1.8 Books Online, located in MetaFrame Tools on the Citrix Server. This is also true for MetaFrame XP.
1. During logon, the ICA Client informs the server of the available client drives, COM ports, and LPT ports.
2.Client drive mapping allows drive letters on the Citrix server to be redirected to drives that exist on the client device; for example, drive H in a ICA user session can be mapped to drive C of the local computer running the Citrix ICA Client. These mappings can be used by the File Manager or Explorer and your applications just like any other network mappings. Client drive mapping is transparently built into the standard Citrix device redirection facilities. The clients disk drives are displayed as share points to which a drive letter can be attached. The Citrix server can be configured during installation to automatically map client drives to a given set of drive letters. The default installation mapping maps drive letters assigned to client drives starting with V and works backwards, assigning a drive letter to each fixed disk and CD-ROM. (Floppy drives are assigned their existing drive letters.)
3. You can use the net use and change client commands to map client devices not automatically mapped at logon.
Here is the command and syntax:
net use y: clientc$
where y is the drive letter in a session and c is the client drive letter you want to map.
For more information about the location and creation of logon scripts, see Microsofts support page at support.microsoft.com.
How to Prevent Client Workstation Network Drives in an ICA Session
Enable a MetaFrame XP Feature Release 2 Policy through the Citrix Management Console. Ensure the Feature Release 2 license is installed and activated. Attempting to manually map the remote drive through the net use command will give an error "System Error 55 has occurred. The specified network resource is no longer available."
How to Disable Specific Client Drive Mappings such as the A: drive
Perform the following steps:
1. Open the Module.ini file in a text editor (for example, Notepad) on the client device. In most cases, this file is in the program filescitrixica client directory.
2. Add the following entry to the end of the [ClientDrive] section:
DisableDrives =A,D,F
3. Save the changes and exit the text editor.
4. Restart the ICA Client and establish a connection to the Citrix server.
This entry prevents the client side drive letters A, D, and F from being mapped. The entry is not case-sensitive. If someone atttempts to map a "disabled drive" through the client network within an ICA session (that is, net use * clientD$), the following error message appears:
"System Error 55 has occurred. The specified network resource is no longer available."
The same restriction can be applied to an .ica file (used with published applications) by adding "DisableDrives=" in the [Wfclient] section. Again, use a text editor to make this change.
Another solution is to enable a MetaFrame XP Feature Release 2 Policy through the Citrix Management Console.
How to Map Only One Client Drive at Logon
1. From Citrix Connection Configuration, double-click your connection type.
2. Select Client Settings.
3. Uncheck Inherit user config.
4. Uncheck Connect Client drives at Logon.
5. Click OK.
NOTE: Do not select Disable Client Drive Mapping; this will disable all future client drive mappings.
6. Create a logon script (.bat file) in the following format:
net use y: clientc$
where y is the drive in a session and c is the client drive you want to map.
NOTE: This does not permanently disable clients from mapping another drive when they are logged on.
How to Map Client Drives in Ascending Order
By default, when server drives are not remapped (C and D) or the above initialclientdrive registry value is set, client drives are mapped in descending order. See "Configuring Citrix Server Drive Letters for Client Drive Mapping" for more information. The methodology explained in "How to Map Only One Client Drive at Logon" can be used to create the mapping in ascending order.
How to Make the Server Drives Appear as a Client Drive When using the PassThrough Client
From the 6.20.986 ICA Win32 Client ReadMe:
Client drive mapping on the pass-through client was restricted to the drives on the client device. The client could not map local or network drives configured on the MetaFrame server in a pass-through session.
Local or network drives configured on the MetaFrame server can now be mapped by the pass-through client. Open the Module.ini file in a text editor and add the following line to the [ClientDrive] section of the file:
NativeDriveMapping=TRUE
When this flag is set, the client drives on the client device are not mapped and are not available. The drives configured on the MetaFrame server are mapped and are available to the pass-through client.
How to Ensure Client Drive Connectivity
If using WinFrame 1.7 with Service Pack 5B and Hotfix SE17B039.EXE, the following information may be necessary. This method was never tested on Windows NT 4.0 Terminal Server Edition or Windows 2000. The idea, however, is important and a similar solution may be possible on Windows NT 4.0 Terminal Server Edition or Windows 2000.
Certain applications require access to client drive files to operate. When published, the executable can launch before the client redirector can finalize the client connections. This workaround ensures the client drives are available before the server executes the application.
Details:
1. Set WinStation Configuration to allow client drive access.
2. Publish an application that runs a batch file.
3. Create a batch file that resembles the following:
@echo off
rem *
rem * Wait on redirector to connect client drive.
rem * In this case, we are using the V: drive as the client C:.
rem * We also need something to look for on the client drive.
rem * Adjust the settings accordingly.
rem *
echo Connecting...
:Delay
DIR %homedrive% /w > V:tag.txt
IF EXIST V:tag.txt GOTO :Connected
goto :Delay
:Connected
DEL V:tag.txt
START /NORMAL /WAIT Explorer.exe
More Information About the IF Statement
IF [NOT] ERRORLEVEL number command
IF [NOT] string1==string2 command
IF [NOT] EXIST filename command
NOTE: Specifies that Windows NT will carry out the command only if the condition is false.
ERRORLEVEL - Number specifies a
true condition if the last program run returned an exit code equal to or greater than the number specified.
command - Specifies the command to carry out if the condition is met.
string1==string2 - Specifies a true condition if the specified text strings match.
EXIST filename - Specifies a true condition if the specified filename exists.
If Command Extensions are enabled, IF changes as follows:
IF [/I] string1 compare-op string2 command
IF CMDEXTVERSION number command
IF DEFINED variable command
where compare-op may be one of:
EQU - equal
NEQ - not equal
LSS - less than
LEQ - less than or equal
GTR - greater than
GEQ - greater than or equal
and the /I switch, if specified, says to do case-insensitive string compares. The /I switch can also be used on the string1==string2 form of IF. These comparisons are generic in that if both string1 and string2 are both comprised of all numeric digits, the strings are converted to numbers and a numeric comparison is performed.
The CMDEXTVERSION conditional works just like ERRORLEVEL, except that it is comparing against an internal version number associated with the Command Extensions. The first version is that it is incremented by one when significant enhancements are added to the Command Extensions. The CMDEXTVERSION conditional is never true when Command Extensions are disabled.
The DEFINED conditional works just like EXISTS except that it takes an environment variable name and returns true if the environment variable is defined.
%ERRORLEVEL% expands into a string representation of the current value of ERRORLEVEL, provided that there is not already an environment variable with the name ERRORLEVEL, in which case you get its value instead. Using this and the above numerical comparision operators, you can do the following
choice
goto answer%ERRORLEVEL%
:answer0
echo You typed Y for yes
:answer1
echo You typed N for no
You can also use the numerical comparisons above:
IF %ERRORLEVEL% LEQ 1 goto okay
%CMDCMDLINE% expands into the original command line passed to CMD.EXE prior to any processing by CMD.EXE, provided that there is not already an environment variable with the name CMDCMDLINE, in which case you will get its value instead.
More Information About the START Statement
Starts a separate window to run a specified program or command.
START ["title"] [/Dpath] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED][/LOW | /NORMAL | /HIGH | /REALTIME] [/WAIT] [/B] [command/program] [parameters]
"title" - Title to display in window title bar.
path - Starting directory.
/i - The new environment is the original environment passed to Cmd.exe and not the current environment.
MIN - Start window minimized.
MAX - Start window maximized.
SEPARATE - Start 16-bit Windows program in separate memory space.
SHARED - Start 16-bit Windows program in shared memory space.
LOW - Start application in the IDLE priority class.
NORMAL - Start application in the NORMAL priority class.
HIGH - Start application in the HIGH priority class.
REALTIME - Start application in the REALTIME priority class.
WAIT - Start application and wait for it to terminate.
B - Start application without creating a new window. The application has ^C handling ignored. Unless the application enables ^C processing, ^Break is the only way to interrupt the application command/program. If it is an internal cmd command or a batch file, the command processor is run with the /K switch to Cmd.exe. This means that the window remains after the command is run.
parameters - These are the parameters passed to the command/program.
If it is not an internal cmd command or batch file, it is a program and runs as either a windowed application or a console application.
Files saved to a client drive is successful but the file is corrupt or the saved file reports an invalid memory location.
If the client drive or disk does not have enough space, the file copy passes but the file is truncated or the file will not copy and gives an invalid memory location error. No other feedback is given to the user.
Client Drives Content May Disappear in Windows Explorer and at a command prompt when Applications Open More than 20 File Handles.
Add the bolded entry to the Module.ini [ClientDrive] section. The Module.ini is in the Program FilesCitrixICA Client directory.
MaxOpenContext = (A number ranging from 21 to 1024.)
Example:
[ClientDrive]
DriverName = VDCDM30.DDL
DriverNameWin16 = VDCDM30W.DLL
DriverNameWin32 = VDCDM30N.DLL
MaxWindowSize = 6276
MaxRequestSize = 1046
CacheTimeout = 600
CacheTimeoutHigh = 0
CacheTransferSize = 0
CacheDisable = FALSE
CacheWriteAllocateDisable = FALSE
MaxOpenContext = 50
DisableDrives =
NOTE: The default is 20 file handles per drive. If it becomes necessary to increase this number, it is possible there is a handle leak with the applications accessing the client drives.
How to Disable Floppy (A:) Drive Query at Logon
This document describes how to disable floppy or a drive access when a user logs on to an ICA session by changing the ParseAutoexe registry key from 1 to 0. See Microsoft article Q124551. See the above section titled How to Disable Specific Client Drive Mappings such as the A: drive for additional information.
Cannot Save Word97 Docs With Long Filenames to Citrix Drive A:
When the File Open or Save As dialog box is opened, Word brings up the last drive letter used. If that drive was a remote share, Word starts a search for the correct remote share at drives C through Z, because drive letters A or B are not usually referenced as network shares. If Word cannot find the correct remote share, it makes a new connection with a NULL local drive name.
This occurs on all versions of Windows NT with varying results, as explained below.
Windows NT 4.0/3.51
Map a remote share to drive B; for example, ExampleServerDocuments.
Net Use B: ExampleServerDocuments.
Open Word from the Windows NT 4.0 console.
Open a file or save a file to drive B.
Click File Open again; Word makes a new connection because it cannot find drive B.
A connection is made to ExampleServerDocuments with no local drive name.
WinFrame Version 1.7
ClientA$ is mapped to drive A.
Using Word, save or open a file from drive A.
Click File Open again. Notice that Word is not looking for files on drive A but is using a temporary mapping with no local drive name to clientA$.
MetaFrame Version 1.x
ClientA$ is mapped to drive A.
Using Word, save or open a file from drive A.
Click File Open again. Notice that Word is not looking for files on drive A but is using a temporary mapping with no local drive name to clientA$.
Also, a new connection has been established to clientA$ at local drive F because we do not allow permanent
connections to the client to have a NULL local name.
NOTE: Office 95 applications do not have any problems saving long filenames to the Citrix ICA Client.
NOTE: There is no fundamental universal code change that can be made to client drive mapping to work around Words logic when looking for remote shares.
Saving Long Filenames with the DOS Client
The standard 8.3 format must be used in saving to local drives with the ICA DOS Client. The Citrix server does not physically write the file, rather, the ICA DOS client is sent the file and the ICA Client writes it. Thus, the ICA Client cannot write a long filename because the DOS operating system does not support long filenames.
Example
Internet Explorer 5.0 saves HTML pages with all images by creating its own directories and file names. These file names are long file names that are not compatible with the DOS Client.
Resolution
Save the file to the server drive. Then rename and copy the resulting directory and files to the client drive.
User login
Who's new
- maczugaher
- locksgydff
- isotheces
- ahundredyears7
- Jacomijntjefu