Set-DedupVolume
Changes data deduplication settings on one or more volumes.
Syntax
Set-DedupVolume
[-VolumeId <String[]>]
[-OptimizeInUseFiles]
[-OptimizePartialFiles]
[-NoCompress <Boolean>]
[-Verify <Boolean>]
[-MinimumFileAgeDays <UInt32>]
[-MinimumFileSize <UInt32>]
[-ChunkRedundancyThreshold <UInt32>]
[-ExcludeFolder <String[]>]
[-ExcludeFileType <String[]>]
[-ExcludeFileTypeDefault <String[]>]
[-NoCompressionFileType <String[]>]
[-InputOutputScale <UInt32>]
[-CimSession <CimSession[]>]
[-ThrottleLimit <Int32>]
[-AsJob]
[-PassThru]
[<CommonParameters>]
Set-DedupVolume
[-Volume] <String[]>
[-OptimizeInUseFiles]
[-OptimizePartialFiles]
[-NoCompress <Boolean>]
[-Verify <Boolean>]
[-MinimumFileAgeDays <UInt32>]
[-MinimumFileSize <UInt32>]
[-ChunkRedundancyThreshold <UInt32>]
[-ExcludeFolder <String[]>]
[-ExcludeFileType <String[]>]
[-ExcludeFileTypeDefault <String[]>]
[-NoCompressionFileType <String[]>]
[-InputOutputScale <UInt32>]
[-CimSession <CimSession[]>]
[-ThrottleLimit <Int32>]
[-AsJob]
[-PassThru]
[<CommonParameters>]
Set-DedupVolume
-InputObject <CimInstance[]>
[-OptimizeInUseFiles]
[-OptimizePartialFiles]
[-NoCompress <Boolean>]
[-Verify <Boolean>]
[-MinimumFileAgeDays <UInt32>]
[-MinimumFileSize <UInt32>]
[-ChunkRedundancyThreshold <UInt32>]
[-ExcludeFolder <String[]>]
[-ExcludeFileType <String[]>]
[-ExcludeFileTypeDefault <String[]>]
[-NoCompressionFileType <String[]>]
[-InputOutputScale <UInt32>]
[-CimSession <CimSession[]>]
[-ThrottleLimit <Int32>]
[-AsJob]
[-PassThru]
[<CommonParameters>]
Description
The Set-DedupVolume
cmdlet changes data deduplication settings on one or more volumes.
Examples
Example 1: Set the exclude folders on a volume
Set-DedupVolume -Volume "F:" -ExcludeFolder "F:\temp","F:\SQL"
This command sets the root folders under which all files are skipped during data deduplication. The
ExcludeFolder parameter specifies that the data deduplication engine processes the files in all
of the folders on volume F:
except for files in the Temp folder and the SQL folder. If you exclude
folders that contain previously optimized files, this command does not unoptimize those files. You
have to manually unoptimize any previously optimized files specified by ExcludeFolder.
Note if the ExcludeFolder already contains optimized files, those optimized files are not automatically unoptimized by this command. Any previously optimized files under the ExcludeFolder will need to be manually unoptimized.
Example 2: Set the minimum file age on a volume
Set-DedupVolume -Volume "E:" -MinimumFileAgeDays 10
This command sets the number of days since the file was created before the deduplication engine
optimizes the file. The MinimumFileAgeDays parameter specifies that the data deduplication
engine processes the files in all of the folders on volume E:
that were created at least 10
days
ago.
Example 3: Set the chunk redundancy threshold on a volume
Set-DedupVolume -Volume "D:" -MinimumFileAgeDays 15 -ChunkRedundancyThreshold 50
This command sets the number of identical chunks of data that the deduplication engine encounters
during deduplication before the server creates a redundant copy of the data chunk. The
MinimumFileAgeDays parameter specifies that the data deduplication engine processes the files in
all of the folders on volume D:
that were created at least 15
days ago. The
ChunkRedundancyThreshold parameter specifies that if the data deduplication engine discovers
50
chunks of identical data, it makes one redundant copy as a safeguard.
Parameters
-AsJob
Runs the cmdlet as a background job. Use this parameter to run commands that take a long time to complete.
The cmdlet immediately returns an object that represents the job and then displays the command
prompt. You can continue to work in the session while the job completes. To manage the job, use the
*-Job
cmdlets. To get the job results, use the
Receive-Job cmdlet.
For more information about Windows PowerShell background jobs, see about_Jobs.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ChunkRedundancyThreshold
Specifies the number of identical chunks of data that the deduplication engine encounters before the server creates a redundant copy of the data chunk. This increases the reliability of the server by adding redundancy to the most referenced chunks of data.
Deduplication detects corruptions and the deduplication scrubbing job restores the corrupted chunks
from a redundant copy, if it is available. The default value is 100
. The minimum value that you
can set is 20
. A low value for the ChunkRedundancyThreshold parameter reduces the
effectiveness of data deduplication by creating more redundant copies of a chunk, and consumes more
memory and disk space.
Type: | UInt32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-CimSession
Runs the cmdlet in a remote session or on a remote computer. Enter a computer name or a session object, such as the output of a New-CimSession or Get-CimSession cmdlet. The default is the current session on the local computer.
Type: | CimSession[] |
Aliases: | Session |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ExcludeFileType
Specifies an array of extension types that the deduplication engine excludes from data deduplication
and optimization. Specify comma-separated values that are not preceded with a period (.
). When you
change this setting, you override the existing values.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ExcludeFileTypeDefault
Specifies an array of extension types, as strings, that the server does not optimize.
The Enable-DedupVolume
cmdlet modifies this behavior, depending on the value of the UsageType
parameter. If you use the current parameter to modify this behavior, and then run
Enable-DedupVolume
again, that cmdlet overrides your changes.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ExcludeFolder
Specifies an array of names of root folders under which all files are skipped during data deduplication. Full paths are accepted, however mount points are ignored since the mount point can change after configuration. When you change this setting, you override the existing values.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Specifies the input to this cmdlet. You can use this parameter, or you can pipe the input to this cmdlet.
Type: | CimInstance[] |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-InputOutputScale
Specifies the level of input/output parallelization during optimization for this volume. The
acceptable values for this parameter are: integers from 0
to 36
. The default value of 0
sets
the system to automatically select an InputOutputScale value based on the size of the volume to
deduplicate.
Type: | UInt32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-MinimumFileAgeDays
Number of days after the file is created before the file is considered to be in-policy for optimization.
The Default
and HyperV
UsageType set this value to 3
to maximize performance on hot or
recently created files. You may want to modify this if you want Data Deduplication to be more
aggressive or if you do not care about the extra latency associated with deduplication.
Type: | UInt32 |
Aliases: | MinimumFileAge |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-MinimumFileSize
Specifies the minimum size threshold, in bytes, for files that are optimized. The deduplication engine does not optimize files that do not meet the minimum threshold.
Type: | UInt32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-NoCompress
Indicates whether or not the server compresses data after deduplication. Compression uses more processor cycles but provides additional space savings.
Type: | Boolean |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-NoCompressionFileType
Specifies an array of file types that the deduplication engine excludes from compression. These file
types are deduplicated but not compressed, typically because the file format is already compressed.
Specify comma-separated values that are not preceded with a period (.
). When you change this
setting, you override the existing values.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-OptimizeInUseFiles
Indicates that the server attempts to optimize currently open files. After specifying this parameter, the server may wait up to 15 minutes before it attempts to optimize open files.
Enable-DedupVolume
modifies this behavior, depending on the value of the UsageType parameter.
If you use the current parameter to modify this behavior, and then run Enable-DedupVolume
again,
that cmdlet overrides your changes.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-OptimizePartialFiles
Indicates that the server optimizes all files, including portions of files that are old enough, according to the value of the MinimumFileAgeDays parameter.
Enable-DedupVolume
modifies this behavior, depending on the value of the UsageType parameter.
If you use the current parameter to modify this behavior, and then run Enable-DedupVolume
again,
that cmdlet overrides your changes.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-PassThru
Returns an object representing the item with which you are working. By default, this cmdlet does not generate any output.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ThrottleLimit
Specifies the maximum number of concurrent operations that can be established to run the cmdlet. If
this parameter is omitted or a value of 0
is entered, then Windows PowerShell® calculates an
optimum throttle limit for the cmdlet based on the number of CIM cmdlets that are running on the
computer. The throttle limit applies only to the current cmdlet, not to the session or to the
computer.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Verify
Indicates whether the deduplication engine performs a byte-for-byte verification for each duplicate chunk that optimization creates, rather than relying on a cryptographically strong hash. We do not recommend that you use this parameter. Setting this parameter to $True can degrade optimization performance.
Type: | Boolean |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Volume
Specifies an array of system volumes. Specify one or more volume IDs, drive letters, or volume GUID
paths. For drive letters, use the format D:
. For volume GUID paths, use the format
\\?\Volume{{GUID}}\
. Separate multiple volumes with a comma.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-VolumeId
Specifies an array of volume IDs.
Type: | String[] |
Aliases: | DeviceId, Path, Id |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Inputs
String[]
The Microsoft.Management.Infrastructure.CimInstance object is a wrapper class that displays
Windows Management Instrumentation (WMI) objects. The path after the pound sign (#
) provides the
namespace and class name for the underlying WMI object.
Outputs
The Microsoft.Management.Infrastructure.CimInstance object is a wrapper class that displays
Windows Management Instrumentation (WMI) objects. The path after the pound sign (#
) provides the
namespace and class name for the underlying WMI object.