Use the Copy-WINUserDrives cmdlet to copy the contents of multiple filesystem user drives.
Copy-WINUserDrives
-Target <String>
[-ShowPrereqs]
[<CommonParameters>]
Copy-WINUserDrives
-Target <String>
-Csv <String>
[-TranslationCsv <String>]
[-SourceFolder <String>]
[-TargetFolder <String>]
[-IncludePattern <String>]
[-ExcludePattern <String>]
[-MaxAge <String>]
[-MinAge <String>]
[-DryRun]
[-NoCache]
[-Verbosity <String>]
[<CommonParameters>]
Use this cmdlet to copy the contents of a list of user drive pairs.
See the Examples section for cmdlet requirements.
Description
This example copies the contents of user drives to paired user drives in Google Workspace.
Provider configuration
| Provider | Direction | APIs | Scopes |
|---|---|---|---|
| Windows filesystem | Source | N/A | N/A |
| Google Workspace | Target | Google Drive | https://www.googleapis.com/auth/drive.readonly https://www.googleapis.com/auth/drive |
CSV format
| SourceId | TargetId |
|---|---|
TMCTools
@{
Source = @{}
Target = @{
GOAdmin = '<ADMIN_ID>'
GOServiceAccountKey = '<KEYFILE_PATH>'
}
}
Copy-WINUserDrives -Csv 'user_drives.csv' -Target Google
Description
This example copies the contents of user drives to paired user drives in Microsoft 365.
Provider configuration
| Provider | Direction | APIs | Scopes |
|---|---|---|---|
| Windows filesystem | Source | N/A | N/A |
| Microsoft 365 | Target | N/A | Files.ReadWrite.All Sites.Manage.All |
CSV format
| SourceId | TargetId |
|---|---|
TMCTools
@{
Source = @{}
Target = @{
M365Tenant = '<TENANT_ID>'
M365ClientId = '<CLIENT_ID>'
M365ClientSecret = '<CLIENT_SECRET>'
}
}
Copy-WINUserDrives -Csv 'user_drives.csv' -Target M365
Description
This example copies the contents of user drives to paired user drives in the local filesystem.
Provider configuration
| Provider | Direction | APIs | Scopes |
|---|---|---|---|
| Windows filesystem | Source | N/A | N/A |
| Windows filesystem | Target | N/A | N/A |
CSV format
| SourceId | TargetId |
|---|---|
TMCTools
@{
Source = @{}
Target = @{}
}
Copy-WINUserDrives -Csv 'user_drives.csv' -Target Windows
The path to a CSV file containing drives to process. See the examples for the required CSV format.
Type: String
Parameter Sets: Action
Aliases:
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
When specified, only log what would happen instead of actually transferring data.
Type: SwitchParameter
Parameter Sets: Action
Aliases:
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
A matching pattern to determine which folders and files to exclude. Syntax details can be found here.
Type: String
Parameter Sets: Action
Aliases:
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
A matching pattern to determine which folders and files to include. Syntax details can be found here.
Type: String
Parameter Sets: Action
Aliases:
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
The maximum age (modified time) of files to include. Syntax details can be found here.
Type: String
Parameter Sets: Action
Aliases:
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
The minimum age (modified time) of files to include. Syntax details can be found here.
Type: String
Parameter Sets: Action
Aliases:
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Refresh tokens obtained from a prior authentication will be used by default. If you are running different tools that require different permissions or want to log in as a different user, use the -NoCache option to bypass an existing refresh token.
Type: SwitchParameter
Parameter Sets: Action
Aliases:
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Prints the cmdlet prerequisites.
Type: SwitchParameter
Parameter Sets: Help
Aliases:
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Restrict the source-side listing to the specified folder.
Note that this parameter is a global option that applies to all drives listed in the CSV file.
This parameter has no effect if the SourceFolder CSV field is set.
Type: String
Parameter Sets: Action
Aliases:
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
The target provider.
Type: String
Parameter Sets: (All)
Aliases:
Accepted values: Dropbox, Google, M365, Windows
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Specifies the name of a top-level folder in the target into which all data will be transferred. The source folder hierarchy is preserved under the specified folder.
Note that this parameter is a global option that applies to all drives listed in the CSV file.
This parameter has no effect if the TargetFolder CSV field is set.
Type: String
Parameter Sets: Action
Aliases:
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
The path to a CSV file containing translation mappings. The file must use
SourceName;TargetName as the field identifiers.
Note that this parameter has no effect at this time and is reserved for future use.
Type: String
Parameter Sets: Action
Aliases:
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
The amount of detail logged during processing.
Type: String
Parameter Sets: Action
Aliases:
Accepted values: None, Normal, Detailed, Diagnostic
Required: False
Position: Named
Default value: Detailed
Accept pipeline input: False
Accept wildcard characters: False
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters.
Required config.psd1 keys
These configuration keys are scoped to the Target node in config.psd1.
DBXAdmin: The ID of your tenant’s administrator. This must be in dbmid:Q7mX2vK9cR4nT8zLp5aW3yF6uJ1sHdB0eNg
format. Only applies to a Dropbox target.
DBXClientId: The client ID of your tenant’s app. Only applies to a Dropbox target.
DBXClientSecret: The client secret of your tenant’s app. Only applies to a Dropbox target.
GOAdmin: The ID of your tenant’s administrator. Only applies to a Google Workspace target.
GOServiceAccountKey: The path to your service account’s JSON key file. Only applies to a Google Workspace target.
M365ClientId: The client ID of your tenant’s app. Only applies to a Microsoft 365 target.
M365ClientSecret: The client secret of your tenant’s app. Only applies to a Microsoft 365 target.
M365Tenant: The ID of your tenant. For example, target.org. Only applies to a Microsoft 365 target.
Optional config.psd1 keys
These configuration keys are scoped to the Target node in config.psd1.
M365CloudEnvironment: The cloud environment for your tenant. Allowed values are Global, China (.cn),
Germany (.de) and USGovernment (.us). Only applies to a Microsoft 365 target.
Default: Global
Required APIs
See the Examples section for details.
Required scopes
See the Examples section for details.
CSV format
The required fields vary by target. Each example shows the required fields for that target. The following fields are optional:
SourceDisplayNameSourceFolderTargetDisplayNameTargetFolder