How to remove the IFS mapping for Drive M in Exchange 2000 Server (305145)



The information in this article applies to:

  • Microsoft Exchange 2000 Server

This article was previously published under Q305145

SUMMARY

This step-by-step article describes how to remove the Exchange 2000 Installable File System (IFS) mapping from drive M.

The IFS provides access to the Exchange 2000 information store through Win32 file system APIs. The Exchange 2000 IFS supports the \\.\backofficestorage\ namespace. For compatibility and convenience, Exchange 2000 also supports a normal drive namespace, by default M:\. The IFS was introduced in Exchange 2000 as a way to access the Exchange 2000 information store by using the standard file system interface.

However, in some situations, you may experience issues when you use the IFS. Because of these issues, Microsoft recommends that you remove the drive M mapping to the IFS, unless you are using the IFS for specific reasons. The \\.\backofficestorage\ namespace remains available even when you remove drive M or other drive letter mappings.

Some reasons to keep the IFS mapping in place are:
  • If you use Microsoft FrontPage Extensions for Web Storage System Forms.
  • For development using the drive M mapping.
  • If you use Microsoft Internet Explorer to search drive M as a file system.
If any of the preceding items describe your Exchange 2000 environment, Microsoft recommends that you keep the mapping in place on servers the where these conditions exist.

To remove the drive M mapping, use the script that is provided in this article. This script will automatically update the Outlook Web Access virtual directories to use the \\.\BackOfficeStorage path.

back to the top

Create the Drive M removal script

To create the drive M removal script:
  1. Start a text editor (such as Microsoft Notepad), and then copy and paste the following script text into the editor:
    @setlocal
    @if "%1"=="" goto usage
    @if "%1"=="/?" goto usage
    @if "%1"=="-?" goto usage
    @rem Parameter is either a drive letter, or "none"
    
    @rem check for presence of adsutil.vbs
    @set adu=%systemdrive%\inetpub\adminscripts\adsutil.vbs
    @if exist %adu% goto stopsrv
    @echo This tool requires %adu% from the IIS scripts.
    @goto fail
    
    :stopsrv
    @rem Record what Exchange services are currently running
    @echo off
    @set StartSA=0
    @set StartIS=0
    @set StartMTA=0
    @set StartWWW=0
    For /f "delims=" %%a in ('net start') do if "%%a" == "   Microsoft Exchange System Attendant" set StartSA=1 
    For /f "delims=" %%a in ('net start') do if "%%a" == "   Microsoft Exchange Information Store" set StartIS=1 
    For /f "delims=" %%a in ('net start') do if "%%a" == "   Microsoft Exchange MTA Stacks" set StartMTA=1 
    For /f "delims=" %%a in ('net start') do if "%%a" == "   World Wide Web Publishing Service" set StartWWW=1 
    @echo on
    @echo Stopping Exchange services...
    net stop msexchangesa /y
    
    @echo Stopping Web services...
    net stop w3svc /y
    
    @if "%temp%" == "" set temp="C:\"
    @set regfile=%temp%\addm.reg
    @echo REGEDIT4 > "%regfile%"
    @if "%1"=="none" goto deldrive
    @set drive=%1
    @set newdrive=%drive:~0,1%
    @echo Adding %newdrive% drive mapping to the registry...
    @echo [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\EXIFS\Parameters] >> "%regfile%"
    @echo "DriveLetter"="%newdrive%" >> "%regfile%"
    @goto doregedit
    :deldrive
    @echo removing existing drive letter mapping...
    For /f "delims=\=>; tokens=1,2*" %%a in ('subst') do (
      if /i "%%c" == " BackOfficeStorage" (
        subst %%a /d
      )
    )
    @echo Removing drive mapping from the registry...
    @echo [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\EXIFS\Parameters] >> "%regfile%"
    @echo "DriveLetter"="" >> "%regfile%"
    :doregedit
    @type %regfile%
    regedit -s "%regfile%"
    @if errorlevel 0 goto mb
    @goto fail
    
    :mb
    @echo Touching the metabase to force update of Exchange virtual roots...
    cscript %adu% delete /ds2mb/HighWaterMarks
    @goto restart
    
    :restart
    @echo Restarting services...
    @if %StartSA%==1  net start "Microsoft Exchange System Attendant" /y
    @if %StartIS%==1  net start "Microsoft Exchange Information Store" /y
    @if %StartMTA%==1 net start "Microsoft Exchange MTA Stacks" /y
    @if %StartWWW%==1 net start w3svc /y
    @goto done
    
    :fail
    @echo The operation did not succeed.
    @goto end
    
    :done
    @echo Done.
    @goto end
    
    :usage
    @echo Usage: ifsdrive ^<drive-letter^>
    @echo        ifsdrive none
    @echo Modifies or removes the mapping of Exchange storage to a local drive letter.
    @echo Specify a single letter to map Exchange storage to that drive.
    @echo Specify "none" (without quotes) to remove the mapping.
    @goto end
    
    :end
    @if not "%regfile%" == "" del "%regfile%"
    					
  2. Save the text file with the file name Ifsdrive.cmd.
back to the top

Run the Drive M removal script

After you create the drive M removal script, you need to run the script from a command prompt on the Exchange 2000 server:
  1. Open a command prompt window, and then change to the folder that you saved the script to.
  2. At the command prompt, type the following command to remove the drive M mapping:

    ifsdrive none

    NOTE: To remove the mapping, use the actual word "none."
  3. As the script runs, the action that it is performing next appears. When the script is finished, "Done" appears as the last line.

    NOTE: The script stops and starts the Exchange 2000 message transfer agent (MTA), Exchange 2000 Post Office Protocol version 3 (POP3), Exchange 2000 Internet Message Access Protocol, Version 4rev1 (IMAP4), Exchange 2000 information store, and World Wide Web Publishing services.
  4. If you incorrectly remove the drive M mapping and you need it for one of the reasons listed earlier in this article, type the following command at a command prompt (where drive_letter is the letter of the IFS drive mapping):

    ifsdrive drive_letter

    The drive_letter is drive M by default, but if the IFS drive mapping was ever changed to a different drive letter, use the new drive letter instead. This script will automatically update the Outlook Web Access "Exchange" and "public" virtual directories to use the specified drive letter.
After you remove the IFS drive mapping, the following error message is logged in the Application event log when the Exchange 2000 Information Store service starts:
Source: ExWin32
EventID: 1
Type: Error
Description:
The Exchange IFS failed to map drive: ?:. Please free drive ?: to use Exchange IFS.
You can safely ignore this error message; it will be removed in later versions of Exchange 2000.

back to the top

Important You should run this script from the console of the Exchange 2000 Server computer. If this script is run by using a Terminal Server session, the drive mapping may reappear after a few days.

REFERENCES

For additional information about some of the issues that are associated with keeping the drive M mapping, click the following article number to view the article in the Microsoft Knowledge Base:

271465 XADM: Clients cannot access attachments after you back up drive M

281673 PRB: Moving items within drive M of Exchange can remove item properties

298924 XADM: Do not back up or scan Exchange 2000 drive M

299046 XADM: Calendar items disappear from user's folders

303245 XCLN: Item count incorrect for messages with modified permissions

For additional information about some of the issues that are related to antivirus scanning of drive M (that are associated with keeping the drive M mapping), click the following article number to view the article in the Microsoft Knowledge Base:

245822 XGEN: Recommendations for troubleshooting an Exchange Server computer with antivirus software installed

back to the top

Modification Type:MinorLast Reviewed:4/28/2005
Keywords:kbhowto kbHOWTOmaster KB305145