FRS Morph DFSroot link folder - how to remove?

  • Thread starter Thread starter Chris Warwick
  • Start date Start date
C

Chris Warwick

I've managed (due to user error!) to create a bit of a problem in my Dfs
namespace. Things are woking fine, but I have a folder left in my
DfsRoot share that I'm unable to get rid of.

Specifically, the folder I'm having trouble with is called
"DfsRoot\Data Archive_NTFRS_1010394f"
This is obviously an FRS morphed folder; I think it was created because
I had originally enabled replication on my DfsRoot as well as on the
link folders. I've now corrected that, but I'm unable to remove this
folder.

I think the problem is that this is a junction-point rather than a real
folder. Symptoms I see are that I'm unable to rename the folder or do
anything else with it; I'm unable to view of set permissions or
ownership - presumably because these attributes don't exist on junction
points.

So, how do I get rid of it? Any ideas?

I've looked at Q328492 - but this is no good because I can't rename or
delete the folder. I've tried ntfrsutl, no helpful options there. I've
tried Ultrasound to see if that would come up with any advice.

All help gratefully received - thanks!

Chris Warwick

------------------------


Further info:


I have Dfs running on two Windows 2003 machines with FRS replicating a
number of shares (domain based root).

The root share is at G:\DfsRoot

Shares being made available through Dfs (and included in replication)
include:
G:\Install
G:\Music
G:\Pictures
G:\Data Archive
G:\Download


My DfsRoot folder structure looks like this:

DfsRoot
|
|-Data Archive
|
|-Data Archive_NTFRS_1010394f
|
|-DO_NOT_REMOVE_NtFrs_PreInstall
|
|-Download
|
|-Install
|
|-Music
|
|-Pictures

Hope this helps, let me know if any further information is needed.
 
Do you have a copy of Dfsutil.exe, which is part of the Windows Support
Tools? You'll want to use this tool's /RemoveReparse parameter to remove the
reparse point from the folder.
 
Do you have a copy of Dfsutil.exe, which is part of the Windows
Support Tools? You'll want to use this tool's /RemoveReparse parameter
to remove the reparse point from the folder.


Hi Jill, thanks for the reply. I'd seen a reference to /RemoveReparse
while I was trying to fix this but couldn't get it to work; your reply
prompted me to try it again and it's now fixed. Thanks! After running
/RemoveReparse you need to restart the Dfs service to recreate the valid
reparse points - read on for further info...

If anyone else is interested (unlikely I know!) the /RemoveReparse
option is a bit scary... The only reference I could find to
/RemoveReparse on the Internet was at
http://www.microsoft.com/technet/treeview/default.asp?
url=/technet/prodtechnol/windowsserver2003/proddocs/deployguide/sdccc_fs
v_wklz.asp

(You'll have to stitch this URL back together - there are no spaces in
it). The article says: "If morphed folders do occur, you must use the
/RemoveReparse:<DirectoryName> parameter in Dfsutil.exe to delete each
morphed folder."

This clearly implies that you can specify a directory name on the
command, but if you do DfsUtil just returns a rather unhelpful error
message.

The online help for DfsUtil includes the following:

/ViewDfsDirs:<VolumeName> [/RemoveReparse] [/Verbose]

Which indicates that you *can't* specify a directory name. I hadn't
tried the command without a directory because I suspected that it would
result in ALL the reparse points in the Dfs root folder being removed.
However, following your suggestion (and after a few more vain attempts
at making it work the way I wanted it to!) I bit the bullet and this was
the result:

====================================================
G:\>dfsutil /viewdfsdirs:g: /removereparse

Microsoft(R) Windows(TM) Dfs Utility Version 4.0
Copyright (C) Microsoft Corporation 1991-2001. All Rights Reserved.

G:\DfsRoot\Download
ClearDfsReparsePoint for \??\G:\DfsRoot\Download returned 0
G:\DfsRoot\Install
ClearDfsReparsePoint for \??\G:\DfsRoot\Install returned 0
G:\DfsRoot\Music
ClearDfsReparsePoint for \??\G:\DfsRoot\Music returned 0
G:\DfsRoot\Pictures
ClearDfsReparsePoint for \??\G:\DfsRoot\Pictures returned 0
G:\DfsRoot\Data Archive_NTFRS_102cf827
ClearDfsReparsePoint for \??\G:\DfsRoot\Data Archive_NTFRS_102cf827
returned 0
G:\DfsRoot\Data Archive
ClearDfsReparsePoint for \??\G:\DfsRoot\Data Archive returned 0
This volume (G:\) contains 6 DFS Directories.

Done processing this command.
====================================================


YIKES!!! All my reparse points are gone! If I run the command again
this is confirmed:

====================================================
G:\>dfsutil /viewdfsdirs:g:

Microsoft(R) Windows(TM) Dfs Utility Version 4.0
Copyright (C) Microsoft Corporation 1991-2001. All Rights Reserved.

This volume (G:\) contains 0 DFS Directories.

Done processing this command.
====================================================

I quickly got on to a client and checked - all seemed well, but I
realised I was looking at the wrong Dfs replica. I swapped to the
server I'd just been working on and, sure enough, the Dfs root folder
was empty. Looking in the Dfs mmc showed all the link to be present and
correct, so I stopped and restarted the Dfs service and (thankfully!)
normality was restored. Repeating the sequence on my other Dfs server
also ran without problems and I've managed to get rid of my unwanted
morphed folder.


Thanks once again!

Regards
Chris
 
Chris, that's quite a story! I'm sorry that my original advice led you
astray, but there should be an option to remove the reparse point from an
individual directory. What's strange is that I don't see this option from
the command-line /?, but I do see it described in the Help (below) and I
have heard about people using this with good results:

Help entry: /RemoveReparse:absolute_directory_path

What's strange, though, is that I cannot for the life of me get this to
work! I will investigate and get back to you.

--
This posting is provided "AS IS" with no warranties, and confers no rights.



Chris Warwick said:
Do you have a copy of Dfsutil.exe, which is part of the Windows
Support Tools? You'll want to use this tool's /RemoveReparse parameter
to remove the reparse point from the folder.


Hi Jill, thanks for the reply. I'd seen a reference to /RemoveReparse
while I was trying to fix this but couldn't get it to work; your reply
prompted me to try it again and it's now fixed. Thanks! After running
/RemoveReparse you need to restart the Dfs service to recreate the valid
reparse points - read on for further info...

If anyone else is interested (unlikely I know!) the /RemoveReparse
option is a bit scary... The only reference I could find to
/RemoveReparse on the Internet was at
http://www.microsoft.com/technet/treeview/default.asp?
url=/technet/prodtechnol/windowsserver2003/proddocs/deployguide/sdccc_fs
v_wklz.asp

(You'll have to stitch this URL back together - there are no spaces in
it). The article says: "If morphed folders do occur, you must use the
/RemoveReparse:<DirectoryName> parameter in Dfsutil.exe to delete each
morphed folder."

This clearly implies that you can specify a directory name on the
command, but if you do DfsUtil just returns a rather unhelpful error
message.

The online help for DfsUtil includes the following:

/ViewDfsDirs:<VolumeName> [/RemoveReparse] [/Verbose]

Which indicates that you *can't* specify a directory name. I hadn't
tried the command without a directory because I suspected that it would
result in ALL the reparse points in the Dfs root folder being removed.
However, following your suggestion (and after a few more vain attempts
at making it work the way I wanted it to!) I bit the bullet and this was
the result:

====================================================
G:\>dfsutil /viewdfsdirs:g: /removereparse

Microsoft(R) Windows(TM) Dfs Utility Version 4.0
Copyright (C) Microsoft Corporation 1991-2001. All Rights Reserved.

G:\DfsRoot\Download
ClearDfsReparsePoint for \??\G:\DfsRoot\Download returned 0
G:\DfsRoot\Install
ClearDfsReparsePoint for \??\G:\DfsRoot\Install returned 0
G:\DfsRoot\Music
ClearDfsReparsePoint for \??\G:\DfsRoot\Music returned 0
G:\DfsRoot\Pictures
ClearDfsReparsePoint for \??\G:\DfsRoot\Pictures returned 0
G:\DfsRoot\Data Archive_NTFRS_102cf827
ClearDfsReparsePoint for \??\G:\DfsRoot\Data Archive_NTFRS_102cf827
returned 0
G:\DfsRoot\Data Archive
ClearDfsReparsePoint for \??\G:\DfsRoot\Data Archive returned 0
This volume (G:\) contains 6 DFS Directories.

Done processing this command.
====================================================


YIKES!!! All my reparse points are gone! If I run the command again
this is confirmed:

====================================================
G:\>dfsutil /viewdfsdirs:g:

Microsoft(R) Windows(TM) Dfs Utility Version 4.0
Copyright (C) Microsoft Corporation 1991-2001. All Rights Reserved.

This volume (G:\) contains 0 DFS Directories.

Done processing this command.
====================================================

I quickly got on to a client and checked - all seemed well, but I
realised I was looking at the wrong Dfs replica. I swapped to the
server I'd just been working on and, sure enough, the Dfs root folder
was empty. Looking in the Dfs mmc showed all the link to be present and
correct, so I stopped and restarted the Dfs service and (thankfully!)
normality was restored. Repeating the sequence on my other Dfs server
also ran without problems and I've managed to get rid of my unwanted
morphed folder.


Thanks once again!

Regards
Chris
 
Chris, that's quite a story! I'm sorry that my original advice led you
astray, but there should be an option to remove the reparse point from an
individual directory. What's strange is that I don't see this option from
the command-line /?, but I do see it described in the Help (below) and I
have heard about people using this with good results:

Help entry: /RemoveReparse:absolute_directory_path

What's strange, though, is that I cannot for the life of me get this to
work! I will investigate and get back to you.

Mmmmm, something needs fixing up here!

For your information, when I was trying to get this to work with a
directory name I tried the following combinations:

1. directory name on it's own
2. directory name with a leading backslash
3. absolute path
4. drive letter and absolute path

In all case I had to use quotes around the directory name (it contained
spaces) - so I tried just quoting the directory name and quoting the entire
"/RemoveReparse:dirname" string.

The outcome in all cases was exactly what you've seen - it just wouldn't
work with a directory name specified.

Good luck with the investigations!

Chris
 
Well, the mystery has been solved. The /removereparse point option was
removed from Dfsutil before the product was released, but unfortunately the
docs were not updated to reflect this. I'll get the online deployment guide
you cited updated as soon as our next update cycle comes around. I'm also
researching alternate ways of removing the reparse points without having to
do so for every link folder.
 
Well, the mystery has been solved. The /removereparse point option was
removed from Dfsutil before the product was released, but
unfortunately the docs were not updated to reflect this. I'll get the
online deployment guide you cited updated as soon as our next update
cycle comes around. I'm also researching alternate ways of removing
the reparse points without having to do so for every link folder.

Thanks - I hate a mystery!

I did try looking at the reparse points using the ntfs utils (linkd etc)
but they failed to work at all - obviously dfs reparse points and ordinary
ntfs reparse points are different things somehow!

Regards,
Chris
 
Back
Top