Skip to content

Get-UserAndContentMoveState

SharePoint Online: Gets user and content move state

#Requires -Version 5.1
#Requires -Modules Microsoft.Online.SharePoint.PowerShell

[CmdletBinding(DefaultParameterSetName = 'User')]
Param(
    [Parameter(Mandatory = $true, ParameterSetName = 'User')]
    [string]$UserPrincipalName,
    [Parameter(Mandatory = $true, ParameterSetName = 'OdbMove')]
    [string]$OdbMoveId,
    [Parameter(ParameterSetName = 'MoveReport')]
    [ValidateSet('All','MoveIn','MoveOut')]
    [string]$MoveDirection,
    [Parameter(ParameterSetName = 'MoveReport')]
    [ValidateSet('All','NotStarted','Scheduled','InProgress','Stopped','Success','Failed')]
    [string]$MoveState,
    [Parameter(ParameterSetName = 'MoveReport')]
    [datetime]$MoveEndTime,
    [Parameter(ParameterSetName = 'MoveReport')]
    [datetime]$MoveStartTime
)

Process {
    try {
        $cmdArgs = @{ ErrorAction = 'Stop' }
        if ($PSCmdlet.ParameterSetName -eq 'OdbMove') { $cmdArgs.Add('OdbMoveId', $OdbMoveId) }
        elseif ($PSCmdlet.ParameterSetName -eq 'User') { $cmdArgs.Add('UserPrincipalName', $UserPrincipalName) }
        if ($PSBoundParameters.ContainsKey('MoveDirection')) { $cmdArgs.Add('MoveDirection', $MoveDirection) }
        if ($PSBoundParameters.ContainsKey('MoveState')) { $cmdArgs.Add('MoveState', $MoveState) }
        if ($PSBoundParameters.ContainsKey('MoveEndTime')) { $cmdArgs.Add('MoveEndTime', $MoveEndTime) }
        if ($PSBoundParameters.ContainsKey('MoveStartTime')) { $cmdArgs.Add('MoveStartTime', $MoveStartTime) }
        $result = Get-SPOUserAndContentMoveState @cmdArgs | Select-Object *
        if ($null -ne $result) { foreach ($item in $result) { $item | Add-Member -NotePropertyName Timestamp -NotePropertyValue (Get-Date -Format "yyyy-MM-dd HH:mm:ss") -PassThru -Force } }
    }
    catch { throw }
}

User principal name to check move state

OneDrive GUID MoveID for the job

Direction of the user move

Current move state status

Filter moves scheduled to end by a particular time

Filter moves scheduled to begin at a particular time

An interactive directory of PowerShell scripts.