XADM: Cannot Move a Public Folder (829736)
The information in this article applies to:
- Microsoft Exchange 2000 Server
SYMPTOMSWhen you try to move a public folder, you may experience one or both of the following symptoms: - When you use the Move option in Microsoft Outlook to try to move the public folder, the folder is not moved, and you receive the following error message:
Unable to move or copy folders. Can't move folder. A top-level folder can't be moved to one of its subfolders. Or, you may not have appropriate permissions for the folder. To check your permissions for the folder, right-click the folder, and then click properties on the shortcut menu. You do not have sufficient permission to perform this operation on this object. See the folder contact or your administrator. - If you try to drag the public folder in Exchange System Manager, you are repeatedly prompted for your credentials. After you enter your credentials in response to these prompts, you receive the following error message:
Access Denied
Facility: Win32
ID no: 80070005
Exchange System Manager
Even though you cannot move the public folder, you can still copy or delete that public folder successfully. CAUSEThis issue occurs when the public folder is marked as a NewsGroup folder or as a NewsGroup Anchor folder. You can determine the type of folder by viewing the MAPI properties of the public folder. A NewsGroup Anchor folder has the following properties: - PR_IS_NEWSGROUP_ANCHOR (0x6696000B)
- PR_INTERNET_NEWSGROUP_NAME (0x66A7001E)
- PR_INTERNET_CHARSET (0x669A001E)
- PR_NEWSGROUP_COMPONENT (0x66A5001E)
- PR_PREVENT_MSG_CREATE (0x65F4000B)
A NewsGroup folder has the following properties: - PR_IS_NEWSGROUP (0x6697000B)
- PR_INTERNET_NEWSGROUP_NAME (0x66A7001E)
- PR_INTERNET_CHARSET (0x669A001E)
- PR_NEWSGROUP_COMPONENT (0x66A5001E)
- PR_PREVENT_MSG_CREATE (0x65F4000B)
Note The issue that is described in the "Symptoms" section of this article may also occur if you try to move a top-level folder. Verify that you are not trying to move a top-level folder. Before you perform additional troubleshooting steps, verify the permissions for both the source folders and the destination folders. Make sure you verify group permissions for those folders. Important You cannot move the NewsGroup folders or the NewsGroup Anchor folders. WORKAROUNDTo work around this issue, follow these steps: Step 1: List the Public Folders That Are Linked to a Network News Transport Protocol Virtual DirectoryOn each Exchange computer in your organization, note the public folders that are linked to a Network News Transport Protocol (NNTP) virtual directory. To do so, follow these steps: - Start Exchange System Manager.
- If Administrative groups are enabled, expand Administrative Groups, and then expand your administrative group.
- Expand Servers, expand your server, expand Protocols, expand NNTP, and then expand an NNTP virtual server.
- Under your NNTP virtual server, click Virtual Directories.
- In the right pane, view the public folders that correspond to the virtual directories.
Note If a folder that has the PR_IS_NEWSGROUP_ANCHOR property exists under one of the NNTP virtual directories, you cannot move the public folder. Step 2: Locate the PR_IS_NEWSGROUP_ANCHOR PropertiesRun the script that is provided in the "More Information" section of this article to locate all public folders that have the PR_IS_NEWSGROUP_ANCHOR property. Step 3: Remove the PR_IS_NEWSGROUP_ANCHOR PropertyIf the public folder is returned by the script that you used in the previous step, and this folder is not one of the public folders that is linked to a virtual directory, remove the PR_IS_NEWSGROUP_ANCHOR property. To do so, follow these steps: - Start the Information Store Viewer tool (Mdbvue32.exe). This tool is located in the Support\Utils\i386 folder on your Microsoft Exchange 2000 Server CD.
For additional information about the support tools that are included with Microsoft Exchange 2000 Server, click the following article number to view the article in the Microsoft Knowledge Base:
316279
XGEN: Tools That Are Included with the Exchange 2000 Server CD-ROM
- Click to select the MAPI_NEW_SESSION check box and the MAPI_EXPLICIT_PROFILE check box, and then click OK.
- If you are prompted to configure an information service to use with Microsoft Outlook, click to select the Microsoft Exchange Server check box, and then click Next. Enter your Exchange Server and mailbox information, and then follow the remaining steps to configure the Outlook account information.
Note You must use a mailbox account that has Owner rights to the public folder that you want to modify. - On the MDB menu, click OpenMessageStore.
- Click Public Folders, and then click Open.
You return to the MDB Viewer Test Application dialog box. - On the MDB menu, click Open IPM Subtree.
- In the Child Folders list, double-click All Public Folders.
- Double-click the public folder that you want to change.
- In the Folder Properties list, click 0X6696 (PR_IS_NEWSGROUP_ANCHOR).
Note This property is set to 1 (true). - In the Operations available list, click Folder Properties, and then click Call Function.
- Click DeleteProps, and then type 6696 in the PropID(Hex) box.
- In the PropType list, click PT_BOOLEAN, and then click Add.
- In the Selected IpsPropTagArray list, click 0X6696, and then click Call.
The IpObj->DeleteProps() dialog box appears. - Click the Close button to close the IpObj->DeleteProps() dialog box.
- Click Close to quit the MAPI_FOLDER - foldername Properties dialog box, click Close to quit the MAPI-FOLDER - foldername dialog box, click Close to quit the MAPI_FOLDER - All Public Folders dialog box, and then click Close to quit the MAPI_FOLDER - IPM_SUBTREE dialog box.
- On the Session menu, click Session Logoff.
- Click OK, and then click OK.
- Close the MDB Viewer Test Application dialog box.
After you follow the previous steps to remove the folder property, you can successfully move the public folder. MORE INFORMATIONHow to Determine If a Folder Is a NewsGroup or a NewsGroup Anchor FolderBy default, the Internet Newsgroups folder is marked as a NewsGroup Anchor folder. Because of this, all folders that are created under the Internet Newsgroups public folder are marked as NewsGroup folders. Additionally, you can configure a public folder to be marked as a NewsGroup Anchor folder by linking it to an NNTP virtual directory. To do so, follow these steps: - Start Exchange System Manager.
- If Administrative groups are enabled, expand Administrative Groups, and then expand your administrative group.
- Expand Servers, expand your server, expand Protocols, expand NNTP, and then expand an NNTP virtual server.
- Under the NNTP virtual server, right-click Virtual Directories, point to New, and then click Virtual Directory.
- In New NNTP Virtual Directory Wizard, type a name in the Newsgroup subtree box, and then click Next.
- Click Exchange Public Folder Database, and then click Next.
- Click Browse, locate the public folder that you want to link to this NNTP virtual directory, and then click OK.
- Click Finish.
- Restart the Network News Transport Protocol (NNTP) service.
After you restart the Network News Transport Protocol (NNTP) service, the public folder is marked as a NewsGroup Anchor folder. Additionally, all public folders under the public folder that you linked to the NNTP virtual directory are marked as NewsGroup folders. All folders that you later create under this folder are marked as NewsGroup folders. How to Locate the PR_IS_NEWSGROUP Property All the NewsGroup folders are located under NewsGroup Anchor folders.
Therefore, to locate NewsGroup folders, determine if a particular folder's parent folder is a NewsGroup Anchor folder. How to Locate the PR_IS_NEWSGROUP_ANCHOR PropertyYou can find the NewsGroup Anchor folders by viewing the virtual directories for each Exchange computer in your organization. To do so, follow these steps: - Start Exchange System Manager.
- If Administrative groups are enabled, expand Administrative Groups, and then expand your administrative group.
- Expand Servers, expand your server, expand Protocols, expand NNTP, and then expand an NNTP virtual server.
- Under your NNTP virtual server, click Virtual Directories.
- In the right pane, view the public folders that correspond to the virtual directories.
You can also use the following Microsoft Visual Basic Scripting Edition script to locate the NewsGroup Anchor folders in your organization. Microsoft provides programming examples for illustration only, without warranty either expressed or implied. This includes, but is not limited to, the implied warranties of merchantability or fitness for a particular purpose. This article assumes that you are familiar with the programming language that is being demonstrated and with the tools that are used to create and to debug procedures. Microsoft support engineers can help explain the functionality of a particular procedure, but they will not modify these examples to provide added functionality or construct procedures to meet your specific requirements. #######################################################################
#######################################################################
Option Explicit
'
' Loop through all public folders to check the PR_INTERNET_NEWSGROUP_NAME
' property and to change the PR_IS_NEWSGROUP_ANCHOR property.
'
Dim tblFolderPath(20000) ' As String
Dim tblFolderID(20000) ' As String
Dim tblAnchorFolderPath(100) ' As String
Dim iNewsNameFolder ' As Integer
Dim iNewsAnchorFolder ' As Integer
Dim iNextFolder, iLastFolder ' As Integer ' Next folder to process, last folder is filled in the array.
Dim iLastAnchorFolder 'As Integer
Dim oSession ' As MAPI.Session
GetAllFolder
Sub GetAllFolder()
Dim oInfoStores ' As InfoStores
Dim oInfoStore ' As InfoStore
Dim oFolder ' As MAPI.Folder
Dim bFound ' As Boolean
Dim i,j ' As Integer
' Get first folder.
wscript.echo "Before creating MAPI Session"
Set oSession = wscript.CreateObject("MAPI.Session") ' New MAPI.Session
wscript.echo "Before Logging On"
oSession.Logon
Set oInfoStores = oSession.InfoStores
bFound = False
wscript.echo " "
wscript.echo "Looking for infostores..."
For i = 1 To oInfoStores.Count
wscript.echo " infostore(" & i & ") " & oInfoStores.Item(i).ProviderName & ":" & oInfoStores.Item(i).Name
If InStr(oInfoStores.Item(i).ProviderName, "Microsoft Exchange") > 0 Then
If InStr(oInfoStores.Item(i).Name, "Public Folders") > 0 Then
Set oInfoStore = oInfoStores.Item(i)
bFound = True
End If
End If
Next
If Not bFound Then
wscript.echo "ERROR: Did not find InfoStore Microsoft Exchange Server for a Public Folder Tree"
exit sub
Else
wscript.echo "selected infostore " & oInfoStore.ProviderName & ":" & oInfoStore.Name
End If
wscript.echo " "
tblFolderID(1) = oInfoStore.RootFolder.ID
tblFolderPath(1) = ""
iNextFolder = 1
iLastFolder = 1
iLastAnchorFolder = 0
iNewsNameFolder = 0
iNewsAnchorFolder = 0
While iNextFolder <= iLastFolder
ProcessFolder (iNextFolder)
iNextFolder = iNextFolder + 1
Wend
' Summary
wscript.echo " "
wscript.echo "----------------------------------------------------------"
wscript.echo "went through " & iLastFolder & " folders"
wscript.echo "Number of folders with PR_INTERNET_NEWSGROUP_NAME set : " & iNewsNameFolder & " folders "
wscript.echo "Number of folders with PR_IS_NEWSGROUP_ANCHOR set : " & iNewsAnchorFolder & " folders "
wscript.echo "----------------------------------------------------------"
wscript.echo " "
wscript.echo "Folders with PR_IS_NEWSGROUP_ANCHOR set : "
wscript.echo " "
For j=0 To iLastAnchorFolder
wscript.echo " " & tblAnchorFolderPath(j)
Next
wscript.echo "----------------------------------------------------------"
wscript.echo " "
End Sub
'
' Fill in folder name.
' Verify if there are subfolders, and then add them to the array.
'
Sub ProcessFolder(i)
Dim oFolder ' As MAPI.Folder
Dim SubFolders ' As MAPI.Folders
Dim j ' As Integer
Dim strParentPath ' As String
Dim strNewsName ' As String
Dim strNewsAnchor ' As String
Set oFolder = oSession.GetFolder(tblFolderID(i))
' Adding Child folders.
strParentPath = tblFolderPath(i)
Set SubFolders = oFolder.Folders
For j = 1 To SubFolders.Count
iLastFolder = iLastFolder + 1
tblFolderID(iLastFolder) = SubFolders.Item(j).ID
tblFolderPath(iLastFolder) = strParentPath & "\" & SubFolders.Item(j).Name
wscript.echo i & ": adding subfolder " & SubFolders.Item(j).Name & " as " & iLastFolder
Next
Set SubFolders = Nothing
' Dealing with PR_INTERNET_NEWSGROUP_NAME and PR_IS_NEWSGROUP_ANCHOR properties.
On Error Resume Next
strNewsName = ""
strNewsAnchor = ""
strNewsName = oFolder.Fields.Item(1722220574).Value
strNewsAnchor = oFolder.Fields.Item(1721106443).Value
On Error GoTo 0
If Len(strNewsName) > 0 Then
wscript.echo i & ": " & tblFolderPath(i) & " has PR_INTERNET_NEWSGROUP_NAME =" & strNewsName
iNewsNameFolder = iNewsNameFolder + 1
Else
wscript.echo i & ": " & tblFolderPath(i) & " PR_INTERNET_NEWSGROUP_NAME is not set"
End If
If Len(strNewsAnchor) > 0 Then
iLastAnchorFolder = iLastAnchorFolder + 1
tblAnchorFolderPath(iLastAnchorFolder) = tblFolderPath(i)
iNewsAnchorFolder = iNewsAnchorFolder + 1
End If
Set oFolder = Nothing
End Sub
#######################################################################
#######################################################################
| Modification Type: | Major | Last Reviewed: | 6/30/2005 |
|---|
| Keywords: | kbprb kberrmsg KB829736 kbAudITPRO |
|---|
|
|
|
©2004 Microsoft Corporation. All rights reserved.
|
|