Logo

Documentation home for Transend tools

Move-M365UserDrives

SYNOPSIS

Moves user drives in a Microsoft 365 tenant to user drives in another tenant.

SYNTAX

Help (Default)

Move-M365UserDrives -Target <String> [-ShowPrereqs] [<CommonParameters>]

Action

Move-M365UserDrives -Target <String> -Csv <String> [-TranslationCsv <String>] [-SourceFolder <String>]
 [-TargetFolder <String>] [-IncludePattern <String>] [-DryRun] [-Verbosity <String>]
 [<CommonParameters>]

DESCRIPTION

Use the Move-M365UserDrives cmdlet to move user drives in a Microsoft 365 tenant to user drives in another tenant.

See the Examples section for cmdlet requirements.

EXAMPLES

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

Description

This example moves pairs of Microsoft 365 tenant and Google Workspace tenant drives listed in user_drives.csv.

Tenant configuration

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

CSV format

SourceId TargetId
user@source.org user@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'
  }
}

Move-M365UserDrives -Csv 'user_drives.csv' -Target Google

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

Description

This example moves pairs of Microsoft 365 tenant and Microsoft 365 tenant drives listed in user_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 Files.ReadWrite.All
Microsoft 365 Target Microsoft Graph Files.ReadWrite.All

CSV format

SourceId TargetId
user@source.org user@target.org

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
  }
}

Move-M365UserDrives -Csv 'user_drives.csv' -Target M365 -SourceFolder 'Migration' -TargetFolder 'Migration' -TranslationCsv 'translations.csv'

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

Description

This example moves pairs of Microsoft 365 tenant and Windows filesystem drives listed in user_drives.csv.

Tenant configuration

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

CSV format

SourceId TargetId
user@source.org C:\Drives\user@target.org

TMCTools

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

Move-M365UserDrives -Csv 'user_drives.csv' -Target Windows

Example 4: Move 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 Files.ReadWrite.All
Google Workspace Target Google Drive https://www.googleapis.com/auth/drive

CSV format

SourceId TargetId TargetFolder
user1@source.org merged@target.org User1
user2@source.org merged@target.org User2

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'
  }
}

Move-M365UserDrives -Csv 'user_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