Restore-DfsrPreservedFiles

Restores files and folders that DFS Replication previously preserved.

Syntax

Restore-DfsrPreservedFiles
       [-Path] <String>
       [-RestoreToPath] <String>
       [-RestoreAllVersions]
       [-CopyFiles]
       [-AllowClobber]
       [-Force]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Restore-DfsrPreservedFiles
       [-Path] <String>
       [-RestoreToOrigin]
       [-RestoreAllVersions]
       [-CopyFiles]
       [-AllowClobber]
       [-Force]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]

Description

The Restore-DfsrPreservedFiles cmdlet restores preserved files and folders. The Distributed File System (DFS) Replication service preserves the following kinds of files and folders:

  • Conflicted. If users make changes to the same file on multiple servers before replication converges, a file might conflict with the current version. DFS Replication preserves previous conflicting versions of the file.
  • Deleted. When a member computer deletes a replicated file, other members also remove that file. Depending on membership settings, computers can preserve deleted files. To modify whether a member computer preserves deleted files, use the Set-DfsrMembership cmdlet.
  • Preexisting. If DFS Replication overwrites files during its initial synchronization, DFS Replication preserves those files.

For all three types, DFS Replication moves the files to <replicated folder>\DfsrPrivate\ConflictAndDeleted or <replicated folder>\DfsrPrivate\Preexisting. DFS Replication records these files in a manifest, either ConflictAndDeletedManifest.xml or PreExistingManifest.xml, as appropriate. Specify the ConflictAndDeletedManifest.xml manifest to restore conflicted and deleted files and folders. Specify the PreExistingManifest.xml manifest to restore preexisting files and folders. You can use the Get-DfsrPreservedFiles cmdlet to view preserved files and folders.

CAUTION By default, this cmdlet moves all files and removes any existing preserved files, including older versions of files. Consider backing up the ConflictsAndDeleted and Preexisting folder before you use this cmdlet.

Examples

Example 1: Restore preexisting files to their original locations

PS C:\> Restore-DfsrPreservedFiles -Path "C:\RF01\DfsrPrivate\PreExistingManifest.xml" -RestoreToOrigin

This command restores preexisting files and folders in the replicated folder C:\RF01 to their original locations. The command does not specify the CopyFiles parameter. Therefore, it moves the files and leaves the Preexisting folder empty.

Example 2: Restore copies of preexisting files to a different location

PS C:\> Restore-DfsrPreservedFiles -Path "C:\RF01\DfsrPrivate\PreExistingManifest.xml" -RestoreToPath "C:\DFSRTest" -CopyFiles -AllowClobber -Verbose
VERBOSE: Loading Preserved file Manifest C:\rf01\DfsrPrivate\PreExistingManifest.xml
VERBOSE: Restoring Preserved Files from manifest C:\rf01\DfsrPrivate\PreExistingManifest.xml

This command restores copies of preexisting files and folders in the replicated folder C:\RF01 to the location C:\DFSRTest. The command specifies the location by using the RestoreToPath parameter. The command uses the AllowClobber parameter. Therefore, it overwrites existing files that have the same names in the specified location. The command uses the Verbose parameter to display information in the console.

Example 3: Restore conflicted and deleted files to a different location

PS C:\> Restore-DfsrPreservedFiles -Path "C:\RF01\DfsrPrivate\ConflictAndDeletedManifest.xml" -RestoreToPath "C:\DFSRRestore" -RestoreAllVersions -Force
PS C:\> Get-ChildItem -Path "C:\DFSRRestore"
    Directory: C:\dfsrrestore

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---          4/5/2013   9:58 AM     848294 canary.bmp
-a---          4/5/2013   9:58 AM     848294 canary2013_04_05_17_00_00Z.bmp
-a---          4/5/2013   9:58 AM     848294 canary2013_04_05_17_17_37Z.bmp
-a---          4/5/2013   9:58 AM     848294 canary2013_04_05_17_17_47Z.bmp

This example restores multiple versions of conflicted and deleted files to a specified location.

The first command restores conflicted and deleted files and folders for the replicated folder C:\FR01 to the location C:\DFSRRestore. The command restores all preserved versions of the files. The command includes the Force parameter, and therefore, it does not prompt you for confirmation and overwrites any files in the destination.

The second command uses the Get-ChildItem cmdlet to display information about the restored files. For more information, type Get-Help Get-ChildItem. In this example, the first command restores multiple versions of the same file.

Parameters

-AllowClobber

Indicates that the cmdlet overwrites files of the same name that currently exist in the destination. If you do not specify this parameter, the cmdlet prompts you before overwriting existing files.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

Prompts you for confirmation before running the cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CopyFiles

Indicates that the cmdlet copies files instead of moving them.

If you do not specify this parameter, the cmdlet moves the preserved files but restores only the latest version of a file. You will lose previous versions of conflicted or deleted files. Preexisting files never have multiple versions. To avoid losing previous versions, consider backing up the ConflictsAndDeleted folder. As an alternative, specify the RestoreAllVersions parameter.

Type:SwitchParameter
Position:3
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

Forces the command to run without asking for user confirmation.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

Specifies the path of a manifest. By default, the manifest files exist in the <Replicated Folder>\DfsrPrivate folder. Specify ConflictAndDeletedManifest.xml to restore conflicted and deleted files. Specify PreExistingManifest.xml to restore preexisting files.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-RestoreAllVersions

Indicates that the cmdlet restores all versions of a file. The cmdlet adds a time stamp to the file name. This parameter affects only conflicted files or deleted files. Preexisting files never have multiple versions.

If you do not specify this parameter, the cmdlet restores only the most recent version of the file. If you do not specify this parameter and do not specify the CopyFiles parameter, the cmdlet restores the most recent version and removes all versions from the ConflictsAndDeleted folder. Consider backing up the ConflictsAndDeleted folder before you use this cmdlet.

Type:SwitchParameter
Position:2
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RestoreToOrigin

Indicates that the cmdlet restores all files and folders recorded in the ConflictAndDeletedManifest.xml manifest or the PreExistingManifest.xml manifest to their original locations. To restore to a different location, specify a path by using the RestoreToPath parameter.

Type:SwitchParameter
Position:1
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-RestoreToPath

Specifies a location for files and folders recorded in the ConflictAndDeletedManifest.xml manifest or the PreExistingManifest.xml manifest. To restore to the original locations, specify the RestoreToOrigin parameter.

Type:String
Position:1
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Inputs

string

Outputs

None