Logo

Documentation home for Transend tools

Copy-M365SharedDrives

SYNOPSIS

Copies shared drives in a Microsoft 365 tenant to shared drives in another tenant.

SYNTAX

Help (Default)

Copy-M365SharedDrives -Target <String> [-ShowPrereqs] [<CommonParameters>]

Action

Copy-M365SharedDrives -Target <String> -Csv <String> [-TranslationCsv <String>] [-SourceFolder <String>]
 [-TargetFolder <String>] [-IncludePattern <String>] [-DryRun] [-Verbosity <String>]
 [<CommonParameters>]

DESCRIPTION

Use the Copy-M365SharedDrives cmdlet to copy shared drives in a Microsoft 365 tenant to shared drives in another tenant.

See the Examples section for cmdlet requirements.

EXAMPLES

Example 1: Copy Microsoft 365 tenant drives to Google Workspace tenant drives

Description

This example copies pairs of Microsoft 365 tenant and Google Workspace tenant drives listed in shared_drives.csv.

Tenant configuration

Tenant Direction APIs Scopes
Microsoft 365 Source Microsoft Graph Sites.Read.All
Google Workspace Target Google Drive https://www.googleapis.com/auth/drive

CSV format

SourceDisplayName SourceId TargetDisplayName TargetId TargetManager
Source Drive b!CbtYWro… Target Drive 0ADL_3kYG… manager@target.org

TMCTools

@{
  Source = @{
    M365ClientId        = '11111111-2222-3333-4444-555555555555'
    M365ClientSecret    = 'abcDeFghij1lMn23OpQrStUVwx4YzAbCD5EfghIJkLM='
    M365Tenant          = 'source.org'
  }
  Target = @{
    GOAdmin             = 'admin@target.org'
    GOServiceAccountKey = 'C:\ProgramData\Transend\tools\target.org.json'
  }
}

Copy-M365SharedDrives -Csv 'shared_drives.csv' -Target Google

Example 2: Copy Microsoft 365 tenant drives to Microsoft 365 tenant drives with permissions

Description

This example copies pairs of Microsoft 365 tenant and Microsoft 365 tenant drives listed in shared_drives.csv.

Additional parameters change the basic functionality shown in Example 1:

  • Using -SourceFolder and -TargetFolder restricts the operation to the Migration folder.

  • Using Rclone.IncludeMetadata and -TranslationCsv propagates permissions.

Tenant configuration

Tenant Direction APIs Scopes
Microsoft 365 Source Microsoft Graph Sites.Read.All
Microsoft 365 Target Microsoft Graph Sites.ReadWrite.All

CSV format

SourceDisplayName SourceId TargetDisplayName TargetId
Source Drive b!CbtYWro… Target Drive b!EdvAYtq…

Translation CSV format

SourceName TargetName
user1@source.org user1@target.org
user2@source.org user2@target.org
source.org target.org

TMCTools

@{
  Source = @{
    M365ClientId     = '11111111-2222-3333-4444-555555555555'
    M365ClientSecret = 'abcDeFghij1lMn23OpQrStUVwx4YzAbCD5EfghIJkLM='
    M365Tenant       = 'source.org'
  }
  Target = @{
    M365ClientId     = '66666666-7777-8888-9999-000000000000'
    M365ClientSecret = 'mnoPqRstuv1wXy23ZaBcDeFGhi4JkLmNO5PqrsTUvWX='
    M365Tenant       = 'target.org'
  }
  Rclone = @{
    IncludeMetadata  = $true
  }
}

Copy-M365SharedDrives -Csv 'shared_drives.csv' -Target M365 -SourceFolder 'Migration' -TargetFolder 'Migration' -TranslationCsv 'translations.csv'

Example 3: Copy Microsoft 365 tenant drives to Windows filesystem drives

Description

This example copies pairs of Microsoft 365 tenant and Windows filesystem drives listed in shared_drives.csv.

Tenant configuration

Tenant Direction APIs Scopes
Microsoft 365 Source Microsoft Graph Sites.Read.All
Windows filesystem Target N/A N/A

CSV format

SourceDisplayName SourceId TargetDisplayName TargetId
Source Drive b!CbtYWro… Target Drive C:\Drives\Share

TMCTools

@{
  Source = @{
    M365ClientId     = '11111111-2222-3333-4444-555555555555'
    M365ClientSecret = 'abcDeFghij1lMn23OpQrStUVwx4YzAbCD5EfghIJkLM='
    M365Tenant       = 'source.org'
  }
  Target = @{}
}

Copy-M365SharedDrives -Csv 'shared_drives.csv' -Target Windows

Example 4: Copy Microsoft 365 tenant drives to Google Workspace tenant drives with merging

Description

This example uses the TargetFolder CSV field to merge multiple Microsoft 365 tenant drives into a single Google Workspace tenant drive.

Tenant configuration

Tenant Direction APIs Scopes
Microsoft 365 Source Microsoft Graph Sites.Read.All
Google Workspace Target Google Drive https://www.googleapis.com/auth/drive

CSV format

SourceDisplayName SourceId TargetDisplayName TargetId TargetManager TargetFolder
Source Drive 1 b!CbtYWro… Merged Drive 0ADL_3kYG… manager@target.org Source Drive 1
Source Drive 2 b!DcuZXsp… Merged Drive 0ADL_3kYG… manager@target.org Source Drive 2

TMCTools

@{
  Source = @{
    M365ClientId        = '11111111-2222-3333-4444-555555555555'
    M365ClientSecret    = 'abcDeFghij1lMn23OpQrStUVwx4YzAbCD5EfghIJkLM='
    M365Tenant          = 'source.org'
  }
  Target = @{
    GOAdmin             = 'admin@target.org'
    GOServiceAccountKey = 'C:\ProgramData\Transend\tools\target.org.json'
  }
}

Copy-M365SharedDrives -Csv 'shared_drives.csv' -Target Google

PARAMETERS

-Csv

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

-DryRun

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

-IncludePattern

A matching pattern to determine which folders and files to include. See https://rclone.org/filtering/ for syntax details.

Type: String
Parameter Sets: Action
Aliases:

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

-ShowPrereqs

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

-SourceFolder

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

-Target

The target platform. Supported values are Google, M365 and Windows.

Type: String
Parameter Sets: (All)
Aliases:
Accepted values: Google, M365, Windows

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

-TargetFolder

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

-TranslationCsv

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

-Verbosity

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

CommonParameters

This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters.

INPUTS

None

OUTPUTS

System.Void

NOTES

  • OneNote files are not supported.

TMCTools configuration options