Use the Sync-GOSharedDrives cmdlet to sync the contents of multiple Google Workspace shared drives.
Sync-GOSharedDrives
-Target <String>
[-ShowPrereqs]
[<CommonParameters>]
Sync-GOSharedDrives
-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 sync the contents of a list of shared drive pairs.
See the Examples section for cmdlet requirements.
Description
This example syncs the contents of shared drives to paired shared drives in Google Workspace.
Provider configuration
| Provider | Direction | APIs | Scopes |
|---|---|---|---|
| Google Workspace | Source | Google Drive | https://www.googleapis.com/auth/drive.readonly https://www.googleapis.com/auth/drive |
| Google Workspace | Target | Google Drive | https://www.googleapis.com/auth/drive.readonly https://www.googleapis.com/auth/drive |
CSV format
| SourceDisplayName | SourceId | SourceManager | TargetDisplayName | TargetId | TargetManager |
|---|---|---|---|---|---|
| Source Drive | Target Drive |
TMCTools
@{
Source = @{
GOAdmin = '<ADMIN_ID>'
GOServiceAccountKey = '<KEYFILE_PATH>'
}
Target = @{
GOAdmin = '<ADMIN_ID>'
GOServiceAccountKey = '<KEYFILE_PATH>'
}
}
Sync-GOSharedDrives -Csv 'shared_drives.csv' -Target Google
Description
This example syncs the contents of shared drives to paired shared drives in Microsoft 365.
Provider configuration
| Provider | Direction | APIs | Scopes |
|---|---|---|---|
| Google Workspace | Source | Google Drive | https://www.googleapis.com/auth/drive.readonly https://www.googleapis.com/auth/drive |
| Microsoft 365 | Target | N/A | Files.ReadWrite.All Sites.Manage.All |
CSV format
| SourceDisplayName | SourceId | SourceManager | TargetDisplayName | TargetId |
|---|---|---|---|---|
| Source Drive | Target Drive |
TMCTools
@{
Source = @{
GOAdmin = '<ADMIN_ID>'
GOServiceAccountKey = '<KEYFILE_PATH>'
}
Target = @{
M365Tenant = '<TENANT_ID>'
M365ClientId = '<CLIENT_ID>'
M365ClientSecret = '<CLIENT_SECRET>'
}
}
Sync-GOSharedDrives -Csv 'shared_drives.csv' -Target M365
Description
This example syncs the contents of shared drives to paired shared drives in the local filesystem.
Provider configuration
| Provider | Direction | APIs | Scopes |
|---|---|---|---|
| Google Workspace | Source | Google Drive | https://www.googleapis.com/auth/drive.readonly https://www.googleapis.com/auth/drive |
| Windows filesystem | Target | N/A | N/A |
CSV format
| SourceDisplayName | SourceId | SourceManager | TargetDisplayName | TargetId |
|---|---|---|---|---|
| Source Drive | Target Drive |
TMCTools
@{
Source = @{
GOAdmin = '<ADMIN_ID>'
GOServiceAccountKey = '<KEYFILE_PATH>'
}
Target = @{}
}
Sync-GOSharedDrives -Csv 'shared_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.
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 Source node in config.psd1.
GOAdmin: The ID of your tenant’s administrator.
GOServiceAccountKey: The path to your service account’s JSON key file.
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
These configuration keys are scoped to the Rclone node in config.psd1.
IncludeMetadata: Determines whether Rclone will fetch metadata for files. This option enables or disables
migrating permissions. Note that including metadata can increase processing time significantly.
Default: $false
SkipIfNoTranslation: Determines how to handle permissions for entities that have no match in the translation table.
Set to $true to prevent the entity from being propagated to the target’s metadata. Set to $false to propagate the
untranslated name to the target’s metadata.
Default: $false
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:
SourceDisplayNameSourceFolderTargetDisplayNameTargetFolderKnown limitations
Google Docs files are not supported. This includes Apps Script, Forms, My Maps, Sites and Vids.
Trashed files are not transferred.
Files flagged as malware are not transferred.