Skip to content

Commit a60b6b1

Browse files
Merge pull request MicrosoftDocs#3440 from RobBiddle/Start-DedupJob.md#3436
Quality: PowerShell Summit Start dedup job.md#3436
2 parents 072c1fd + 4f2499c commit a60b6b1

File tree

2 files changed

+129
-82
lines changed

2 files changed

+129
-82
lines changed

.vscode/cspell/winmodules/dictionaries/winps.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ Dedup
55
DSRM
66
krbtgt
77
NTDS
8+
reoptimized
89
RODC
910
Sysvol
1011
Unoptimization
12+
unoptimization
13+
unoptimizes

docset/winserver2022-ps/deduplication/Start-DedupJob.md

Lines changed: 126 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -16,43 +16,52 @@ Starts a data deduplication job.
1616
## SYNTAX
1717

1818
```
19-
Start-DedupJob [-Type] <Type> [[-Volume] <String[]>] [-StopWhenSystemBusy] [-Memory <UInt32>] [-Cores <UInt32>]
20-
[-Priority <Priority>] [-InputOutputThrottle <UInt32>] [-InputOutputThrottleLevel <InputOutputThrottleLevel>]
21-
[-Preempt] [-Wait] [-Full] [-ReadOnly] [-Timestamp <DateTime>] [-CimSession <CimSession[]>]
22-
[-ThrottleLimit <Int32>] [-AsJob] [<CommonParameters>]
19+
Start-DedupJob [-Type] <Type> [[-Volume] <String[]>] [-StopWhenSystemBusy]
20+
[-Memory <UInt32>] [-Cores <UInt32>] [-Priority <Priority>]
21+
[-InputOutputThrottle <UInt32>] [-InputOutputThrottleLevel <InputOutputThrottleLevel>]
22+
[-Preempt] [-Wait] [-Full] [-ReadOnly] [-Timestamp <DateTime>]
23+
[-CimSession <CimSession[]>] [-ThrottleLimit <Int32>] [-AsJob] [<CommonParameters>]
2324
```
2425

2526
## DESCRIPTION
26-
The **Start-DedupJob** starts a new data deduplication job for one or more volumes.
27-
The data deduplication job can queue if the server is running another job on the same volume or if the computer does not have sufficient resources to run the job.
28-
The server marks the queued jobs that you start with this cmdlet as manual jobs and gives the manual jobs priority over scheduled jobs.
27+
28+
The `Start-DedupJob` starts a new data deduplication job for one or more volumes. The data
29+
deduplication job can queue if the server is running another job on the same volume or if the
30+
computer does not have sufficient resources to run the job. The server marks the queued jobs that
31+
you start with this cmdlet as manual jobs and gives the manual jobs priority over scheduled jobs.
2932
The server returns a **DeduplicationJob** object for each job that you start with this cmdlet.
3033

31-
For multi-volume data deduplication jobs, you can use the **Preempt** parameter to move a job to the top of the job queue and cancel the current job.
34+
For multi-volume data deduplication jobs, you can use the **Preempt** parameter to move a job to the
35+
top of the job queue and cancel the current job.
3236

3337
## EXAMPLES
3438

3539
### Example 1: Start an optimization job
36-
```
37-
PS C:\> Start-DedupJob -Volume "D:" -Type Optimization -Memory 50
40+
41+
```powershell
42+
Start-DedupJob -Volume "D:" -Type Optimization -Memory 50
3843
```
3944

40-
This command starts a deduplication optimization job on drive D: and consume up to a maximum of 50 percent of RAM.
45+
This command starts a deduplication optimization job on drive `D:` and consume up to a maximum of
46+
`50` percent of RAM.
4147

4248
## PARAMETERS
4349

4450
### -AsJob
45-
Runs the cmdlet as a background job. Use this parameter to run commands that take a long time to complete.
4651

47-
The cmdlet immediately returns an object that represents the job and then displays the command prompt.
48-
You can continue to work in the session while the job completes.
49-
To manage the job, use the `*-Job` cmdlets.
50-
To get the job results, use the [Receive-Job](https://go.microsoft.com/fwlink/?LinkID=113372) cmdlet.
52+
Runs the cmdlet as a background job. Use this parameter to run commands that take a long time to
53+
complete.
5154

52-
For more information about Windows PowerShell background jobs, see [about_Jobs](https://go.microsoft.com/fwlink/?LinkID=113251).
55+
The cmdlet immediately returns an object that represents the job and then displays the command
56+
prompt. You can continue to work in the session while the job completes. To manage the job, use the
57+
`*-Job` cmdlets. To get the job results, use the
58+
[Receive-Job](https://go.microsoft.com/fwlink/?LinkID=113372) cmdlet.
59+
60+
For more information about Windows PowerShell background jobs, see
61+
[about_Jobs](https://go.microsoft.com/fwlink/?LinkID=113251).
5362

5463
```yaml
55-
Type: SwitchParameter
64+
Type: System.Management.Automation.SwitchParameter
5665
Parameter Sets: (All)
5766
Aliases:
5867

@@ -64,12 +73,14 @@ Accept wildcard characters: False
6473
```
6574
6675
### -CimSession
67-
Runs the cmdlet in a remote session or on a remote computer.
68-
Enter a computer name or a session object, such as the output of a [New-CimSession](/powershell/module/cimcmdlets/new-cimsession) or [Get-CimSession](https://go.microsoft.com/fwlink/p/?LinkId=227966) cmdlet.
69-
The default is the current session on the local computer.
76+
77+
Runs the cmdlet in a remote session or on a remote computer. Enter a computer name or a session
78+
object, such as the output of a [New-CimSession](/powershell/module/cimcmdlets/new-cimsession) or
79+
[Get-CimSession](https://go.microsoft.com/fwlink/p/?LinkId=227966) cmdlet. The default is the
80+
current session on the local computer.
7081
7182
```yaml
72-
Type: CimSession[]
83+
Type: Microsoft.Management.Infrastructure.CimSession[]
7384
Parameter Sets: (All)
7485
Aliases: Session
7586

@@ -81,10 +92,11 @@ Accept wildcard characters: False
8192
```
8293
8394
### -Cores
95+
8496
Specifies the maximum percentage of physical cores that a job uses.
8597
8698
```yaml
87-
Type: UInt32
99+
Type: System.UInt32
88100
Parameter Sets: (All)
89101
Aliases: MaximumCoresPercentage
90102

@@ -96,16 +108,21 @@ Accept wildcard characters: False
96108
```
97109
98110
### -Full
99-
Indicates that garbage collection jobs free up all deleted or unreferenced data on the volume, if you specify the value GarbageCollection for the **Type** parameter.
100-
If you do not specify this parameter, garbage collection jobs free up space after a system threshold of delete data is exceeded.
101-
We recommend that you run garbage collection regularly without specifying this parameter, and then once a month specify this parameter and run garbage collection again.
102111
103-
If you specify the value Scrubbing for the **Type** parameter, this parameter indicates that scrubbing jobs validate the integrity of all data on the volume.
104-
If you do not specify this parameter, the scrubbing job validates only critical metadata and data integrity issues that data deduplication previously encountered.
105-
We recommend that you run scrubbing regularly without specifying this parameter, and then once a month specify this parameter and run scrubbing again.
112+
Indicates that garbage collection jobs free up all deleted or unreferenced data on the volume, if
113+
you specify the value `GarbageCollection` for the **Type** parameter. If you do not specify this
114+
parameter, garbage collection jobs free up space after a system threshold of delete data is
115+
exceeded. We recommend that you run garbage collection regularly without specifying this parameter,
116+
and then once a month specify this parameter and run garbage collection again.
117+
118+
If you specify the value `Scrubbing` for the **Type** parameter, this parameter indicates that
119+
scrubbing jobs validate the integrity of all data on the volume. If you do not specify this
120+
parameter, the scrubbing job validates only critical metadata and data integrity issues that data
121+
deduplication previously encountered. We recommend that you run scrubbing regularly without
122+
specifying this parameter, and then once a month specify this parameter and run scrubbing again.
106123

107124
```yaml
108-
Type: SwitchParameter
125+
Type: System.Management.Automation.SwitchParameter
109126
Parameter Sets: (All)
110127
Aliases:
111128
@@ -117,13 +134,14 @@ Accept wildcard characters: False
117134
```
118135

119136
### -InputOutputThrottle
120-
Specifies the amount of input/output throttling applied to the deduplication job.
121-
Throttling ensures that deduplication does not interfere with other I/O intensive processes.
122-
The acceptable values for this parameter are: integers from 0 to 100.
123-
If you specify this parameter and the **InputOutputThrottleLevel** parameter, **InputOutputThrottle** takes precedence.
137+
138+
Specifies the amount of input/output throttling applied to the deduplication job. Throttling ensures
139+
that deduplication does not interfere with other I/O intensive processes. The acceptable values for
140+
this parameter are: integers from `0` to `100`. If you specify this parameter and the
141+
**InputOutputThrottleLevel** parameter, **InputOutputThrottle** takes precedence.
124142

125143
```yaml
126-
Type: UInt32
144+
Type: System.UInt32
127145
Parameter Sets: (All)
128146
Aliases:
129147
@@ -135,15 +153,17 @@ Accept wildcard characters: False
135153
```
136154

137155
### -InputOutputThrottleLevel
138-
Specifies the amount of I/O throttling that the job provides to ensure that the job does not interfere with other I/O intensive processes.
139-
The acceptable values for this parameter are:
140156

141-
- None
142-
- Low
143-
- Medium
144-
- High
157+
Specifies the amount of I/O throttling that the job provides to ensure that the job does not
158+
interfere with other I/O intensive processes. The acceptable values for this parameter are:
159+
160+
- `None`
161+
- `Low`
162+
- `Medium`
163+
- `High`
145164

146-
If you specify this parameter and the **InputOutputThrottle** parameter, **InputOutputThrottle** takes precedence.
165+
If you specify this parameter and the **InputOutputThrottle** parameter, **InputOutputThrottle**
166+
takes precedence.
147167

148168
```yaml
149169
Type: InputOutputThrottleLevel
@@ -159,13 +179,17 @@ Accept wildcard characters: False
159179
```
160180

161181
### -Memory
162-
Specifies the maximum percentage of physical computer memory that the data deduplication job can use.
163182

164-
For optimization jobs, we recommend that you set a range from 15 to 50, and a higher memory consumption for jobs that you schedule to run when you specify the **StopWhenSystemBusy** parameter.
165-
For garbage collection and scrubbing jobs, which you typically schedule to run in off hours, you can set a higher memory consumption, such as 50.
183+
Specifies the maximum percentage of physical computer memory that the data deduplication job can
184+
use.
185+
186+
For optimization jobs, we recommend that you set a range from `15` to `50`, and a higher memory
187+
consumption for jobs that you schedule to run when you specify the **StopWhenSystemBusy** parameter.
188+
For garbage collection and scrubbing jobs, which you typically schedule to run in off hours, you can
189+
set a higher memory consumption, such as `50`.
166190

167191
```yaml
168-
Type: UInt32
192+
Type: System.UInt32
169193
Parameter Sets: (All)
170194
Aliases: MaximumMemoryPercentage
171195
@@ -177,14 +201,16 @@ Accept wildcard characters: False
177201
```
178202

179203
### -Preempt
180-
Indicates that the deduplication engine moves the job to the top of the job queue and cancels the current job.
181-
After the server cancels the current job, the deduplication engine cannot run the preempting job if the server does not have enough memory to run the job.
182204

183-
This parameter applies to manual data deduplication jobs only and is ignored for scheduled jobs.
184-
You can preempt only deduplication jobs on multiple volumes.
205+
Indicates that the deduplication engine moves the job to the top of the job queue and cancels the
206+
current job. After the server cancels the current job, the deduplication engine cannot run the
207+
preempting job if the server does not have enough memory to run the job.
208+
209+
This parameter applies to manual data deduplication jobs only and is ignored for scheduled jobs. You
210+
can preempt only deduplication jobs on multiple volumes.
185211

186212
```yaml
187-
Type: SwitchParameter
213+
Type: System.Management.Automation.SwitchParameter
188214
Parameter Sets: (All)
189215
Aliases:
190216
@@ -196,9 +222,11 @@ Accept wildcard characters: False
196222
```
197223

198224
### -Priority
199-
Sets the CPU and I/O priority for the optimization job run that you run by using this cmdlet.
200-
For jobs that you run when you specify the **StopWhenSystemBusy** parameter, we recommend that you set this parameter to Low.
201-
For typical optimization jobs, we recommend that you set this parameter to Normal.
225+
226+
Sets the CPU and I/O priority for the optimization job run that you run by using this cmdlet. For
227+
jobs that you run when you specify the **StopWhenSystemBusy** parameter, we recommend that you set
228+
this parameter to `Low`. For typical optimization jobs, we recommend that you set this parameter to
229+
`Normal`.
202230

203231
```yaml
204232
Type: Priority
@@ -214,10 +242,12 @@ Accept wildcard characters: False
214242
```
215243

216244
### -ReadOnly
217-
Indicates that the scrubbing job process and report on corruptions that it finds but does not run any repair actions.
245+
246+
Indicates that the scrubbing job process and report on corruptions that it finds but does not run
247+
any repair actions.
218248

219249
```yaml
220-
Type: SwitchParameter
250+
Type: System.Management.Automation.SwitchParameter
221251
Parameter Sets: (All)
222252
Aliases:
223253
@@ -229,11 +259,12 @@ Accept wildcard characters: False
229259
```
230260

231261
### -StopWhenSystemBusy
232-
Indicates that the server stops the job when the system is busy and retries later.
233-
We recommend that you specify this parameter when you set a low priority for the job.
262+
263+
Indicates that the server stops the job when the system is busy and retries later. We recommend that
264+
you specify this parameter when you set a low priority for the job.
234265

235266
```yaml
236-
Type: SwitchParameter
267+
Type: System.Management.Automation.SwitchParameter
237268
Parameter Sets: (All)
238269
Aliases:
239270
@@ -245,12 +276,15 @@ Accept wildcard characters: False
245276
```
246277

247278
### -ThrottleLimit
248-
Specifies the maximum number of concurrent operations that can be established to run the cmdlet.
249-
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.
250-
The throttle limit applies only to the current cmdlet, not to the session or to the computer.
279+
280+
Specifies the maximum number of concurrent operations that can be established to run the cmdlet. If
281+
this parameter is omitted or a value of `0` is entered, then Windows PowerShell® calculates an
282+
optimum throttle limit for the cmdlet based on the number of CIM cmdlets that are running on the
283+
computer. The throttle limit applies only to the current cmdlet, not to the session or to the
284+
computer.
251285

252286
```yaml
253-
Type: Int32
287+
Type: System.Int32
254288
Parameter Sets: (All)
255289
Aliases:
256290
@@ -262,12 +296,13 @@ Accept wildcard characters: False
262296
```
263297

264298
### -Timestamp
265-
Specifies a date and time.
266-
This parameter applies only to unoptimization jobs.
267-
The deduplication engine unoptimizes only files that it optimized or reoptimized since the **DateTime** value that you specify.
299+
300+
Specifies a date and time. This parameter applies only to unoptimization jobs. The deduplication
301+
engine unoptimizes only files that it optimized or reoptimized since the **System.DateTime** value
302+
that you specify.
268303

269304
```yaml
270-
Type: DateTime
305+
Type: System.DateTime
271306
Parameter Sets: (All)
272307
Aliases:
273308
@@ -279,12 +314,13 @@ Accept wildcard characters: False
279314
```
280315

281316
### -Type
282-
Specifies the type of data deduplication job.
283-
The acceptable values for this parameter are:
284-
- Optimization
285-
- GarbageCollection
286-
- Scrubbing
287-
- Unoptimization
317+
318+
Specifies the type of data deduplication job. The acceptable values for this parameter are:
319+
320+
- `Optimization`
321+
- `GarbageCollection`
322+
- `Scrubbing`
323+
- `Unoptimization`
288324

289325
```yaml
290326
Type: Type
@@ -300,11 +336,11 @@ Accept wildcard characters: False
300336
```
301337

302338
### -Volume
339+
303340
Specifies an array of system volumes for which you want to manually queue data deduplication jobs.
304-
Enter one or more volume IDs, drive letters, or volume GUID paths.
305-
For drive letters, use the format D:.
306-
For volume GUID paths, use the format \\\\?\Volume{{GUID}}\.
307-
Separate multiple volumes with a comma.
341+
Enter one or more volume IDs, drive letters, or volume GUID paths. For drive letters, use the format
342+
`D:`. For volume GUID paths, use the format `\\?\Volume{{GUID}}\`. Separate multiple volumes with a
343+
comma.
308344

309345
```yaml
310346
Type: String[]
@@ -319,10 +355,12 @@ Accept wildcard characters: False
319355
```
320356

321357
### -Wait
322-
Indicates that the cmdlet waits for the job to complete and provides progress information to the client.
358+
359+
Indicates that the cmdlet waits for the job to complete and provides progress information to the
360+
client.
323361

324362
```yaml
325-
Type: SwitchParameter
363+
Type: System.Management.Automation.SwitchParameter
326364
Parameter Sets: (All)
327365
Aliases:
328366
@@ -334,7 +372,11 @@ Accept wildcard characters: False
334372
```
335373

336374
### CommonParameters
337-
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](https://go.microsoft.com/fwlink/?LinkID=113216).
375+
376+
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable,
377+
-InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose,
378+
-WarningAction, and -WarningVariable. For more information, see
379+
[about_CommonParameters](https://go.microsoft.com/fwlink/?LinkID=113216).
338380

339381
## INPUTS
340382

@@ -351,8 +393,10 @@ This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable
351393
## OUTPUTS
352394

353395
### Microsoft.Management.Infrastructure.CimInstance
354-
The `Microsoft.Management.Infrastructure.CimInstance` object is a wrapper class that displays Windows Management Instrumentation (WMI) objects.
355-
The path after the pound sign (`#`) provides the namespace and class name for the underlying WMI object.
396+
397+
The **Microsoft.Management.Infrastructure.CimInstance** object is a wrapper class that displays
398+
Windows Management Instrumentation (WMI) objects. The path after the pound sign (`#`) provides the
399+
namespace and class name for the underlying WMI object.
356400

357401
## NOTES
358402

0 commit comments

Comments
 (0)