Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,16 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
## [Current nightly]

### Added
- Added `Start-PnPUserAndContentMove` cmdlet to start user and content move jobs in SharePoint Multi-Geo environments [#5215](https://github.com/pnp/powershell/pull/5215)
- Added `Get-PnPUserAndContentMoveState` cmdlet to retrieve status and details of user and content move operations in SharePoint Multi-Geo environments [#5215](https://github.com/pnp/powershell/pull/5215)
- Added `Get-PnPGeoMoveCrossCompatibilityStatus` cmdlet to check cross-compatibility status for geo move operations between different data locations in SharePoint Multi-Geo tenants [#5215](https://github.com/pnp/powershell/pull/5215)
- Added `Get-PnPSiteContentMoveState` cmdlet to retrieve status and details of site content move operations in SharePoint Multi-Geo environments [#5215](https://github.com/pnp/powershell/pull/5215)
- Added `Start-PnPSiteContentMove` cmdlet to start site content move jobs in SharePoint Multi-Geo environments [#5215](https://github.com/pnp/powershell/pull/5215)
- Added `Get-PnPUnifiedGroup` cmdlet to retrieve information about Microsoft 365 Groups in SharePoint Multi-Geo environments [#5215](https://github.com/pnp/powershell/pull/5215)
- Added `Set-PnPUnifiedGroup` cmdlet to set the preferred data location for Microsoft 365 Groups in SharePoint Multi-Geo environments [#5215](https://github.com/pnp/powershell/pull/5215)
- Added `Get-PnPUnifiedGroupMoveState` cmdlet to retrieve status and details of Microsoft 365 Group move operations in SharePoint Multi-Geo environments [#5215](https://github.com/pnp/powershell/pull/5215)
- Added `Start-PnPUnifiedGroupMove` cmdlet to start Microsoft 365 Group move jobs in SharePoint Multi-Geo environments [#5215](https://github.com/pnp/powershell/pull/5215)
- Added `Set-PnPMultiGeoExperience` cmdlet to upgrade the multi-geo experience in SharePoint Multi-Geo tenants [#5215](https://github.com/pnp/powershell/pull/5215)
- Added `Copy-PnPFileMetadata` to copy Metadata fields (Created, Modified, Author, Editor) between items [#5072](https://github.com/pnp/powershell/pull5072)
- Added `-NewFileName` parameter to `Convert-PnPFile` cmdlet to choose custom output file name.
- Added `-User` parameter to `Get-PnPTeamsTeam` cmdlet to allow fetching list of teams a user has access to.
Expand Down
93 changes: 93 additions & 0 deletions documentation/Get-PnPGeoMoveCrossCompatibilityStatus.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
---
Module Name: PnP.PowerShell
schema: 2.0.0
applicable: SharePoint Online
online version: https://pnp.github.io/powershell/cmdlets/Get-PnPGeoMoveCrossCompatibilityStatus.html
external help file: PnP.PowerShell.dll-Help.xml
title: Get-PnPGeoMoveCrossCompatibilityStatus
---

# Get-PnPGeoMoveCrossCompatibilityStatus

## SYNOPSIS
Gets the geo move cross-compatibility status for geo locations in a SharePoint Multi-Geo tenant.

## DESCRIPTION
Gets the cross-compatibility status for geo move operations between different data locations in a SharePoint Multi-Geo tenant. This cmdlet helps determine which geo locations are compatible for user and content moves.

## Syntax

```powershell
Get-PnPGeoMoveCrossCompatibilityStatus [-Connection <PnPConnection>]
```

## Description
This cmdlet retrieves the compatibility matrix for user and content moves between different geo locations within a SharePoint Multi-Geo tenant. It shows which source and destination data location combinations are supported for move operations.

## Examples

### Example 1: Get all geo move compatibility statuses
```powershell
Get-PnPGeoMoveCrossCompatibilityStatus
```
Retrieves the compatibility status for moves between all available geo locations in the tenant.

### Example 2: Filter compatible moves only
```powershell
Get-PnPGeoMoveCrossCompatibilityStatus | Where-Object { $_.CompatibilityStatus -eq "Compatible" }
```
Gets only the geo location pairs that are fully compatible for user moves.

### Example 3: Check specific source location compatibility
```powershell
Get-PnPGeoMoveCrossCompatibilityStatus | Where-Object { $_.SourceDataLocation -eq "NAM" }
```
Shows compatibility status for moves originating from the North American data location.

### Example 4: Export compatibility matrix to CSV
```powershell
Get-PnPGeoMoveCrossCompatibilityStatus | Export-Csv -Path "GeoMoveCompatibility.csv" -NoTypeInformation
```
Exports the complete compatibility matrix to a CSV file for analysis and documentation.

## Parameters

### -Connection
Optional connection to be used by the cmdlet. Retrieve the value for this parameter by either specifying -ReturnConnection on Connect-PnPOnline or by executing Get-PnPConnection.

```yaml
Type: PnPConnection
Parameter Sets: (All)
Aliases:
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
```

## Outputs

### System.Management.Automation.PSObject
Returns PSObjects with the following properties:
- **SourceDataLocation**: The source geo location code
- **DestinationDataLocation**: The destination geo location code
- **CompatibilityStatus**: The compatibility status (Compatible, Incompatible, PartiallyCompatible, Unknown)

## Notes
- This cmdlet requires SharePoint Online admin permissions
- The cmdlet works only with SharePoint Multi-Geo tenants
- Compatibility status may change based on tenant configuration and feature availability
- Use this information to plan user and content moves in advance

### Compatibility Status Values
- **Compatible**: Full support for moves between these locations
- **Incompatible**: Moves are not supported between these locations
- **PartiallyCompatible**: Some limitations may apply to moves between these locations
- **Unknown**: Compatibility status could not be determined

## Related Links

[Start-PnPUserAndContentMove](Start-PnPUserAndContentMove.md)
[Get-PnPUserAndContentMoveState](Get-PnPUserAndContentMoveState.md)
[SharePoint Multi-Geo documentation](https://docs.microsoft.com/en-us/microsoft-365/enterprise/multi-geo-capabilities-in-onedrive-and-sharepoint-online-in-microsoft-365)
212 changes: 212 additions & 0 deletions documentation/Get-PnPSiteContentMoveState.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,212 @@
---
Module Name: PnP.PowerShell
schema: 2.0.0
applicable: SharePoint Online
online version: https://pnp.github.io/powershell/cmdlets/Get-PnPSiteContentMoveState.html
external help file: PnP.PowerShell.dll-Help.xml
title: Get-PnPSiteContentMoveState
---

# Get-PnPSiteContentMoveState

## SYNOPSIS
Gets the status of a site content move job in a SharePoint Multi-Geo tenant.

## DESCRIPTION
Gets the status and details of site content move operations in a SharePoint Multi-Geo tenant. This cmdlet allows you to monitor the progress of site move jobs, check their current state, and retrieve historical site move operation data.

## Syntax

### MoveReport (Default)
```powershell
Get-PnPSiteContentMoveState [-MoveState <MoveState>] [-MoveDirection <MoveDirection>]
[-Limit <UInt32>] [-MoveStartTime <DateTime>] [-MoveEndTime <DateTime>] [-Connection <PnPConnection>]
```

### SourceSiteUrl
```powershell
Get-PnPSiteContentMoveState -SourceSiteUrl <String> [-Connection <PnPConnection>]
```

### SiteMoveId
```powershell
Get-PnPSiteContentMoveState -SiteMoveId <Guid> [-Connection <PnPConnection>]
```

## Description
This cmdlet retrieves information about site content move operations in a SharePoint Multi-Geo environment. You can get information about specific site moves by URL or move ID, or retrieve a filtered list of all site move operations within your tenant.

## Examples

### Example 1: Get all site move jobs
```powershell
Get-PnPSiteContentMoveState
```
Retrieves all site move jobs with default filters (last 200 operations).

### Example 2: Get move state for specific site
```powershell
Get-PnPSiteContentMoveState -SourceSiteUrl "https://contoso.sharepoint.com/sites/marketing"
```
Gets the move job status for the specified site URL.

### Example 3: Get move job by ID
```powershell
Get-PnPSiteContentMoveState -SiteMoveId "12345678-1234-1234-1234-123456789012"
```
Retrieves details for a specific site move job using its unique identifier.

### Example 4: Get failed site move operations
```powershell
Get-PnPSiteContentMoveState -MoveState Failed -Limit 50
```
Gets the last 50 failed site move operations.

### Example 5: Get site moves within date range
```powershell
Get-PnPSiteContentMoveState -MoveStartTime (Get-Date).AddDays(-30) -MoveEndTime (Get-Date) -MoveState InProgress
```
Retrieves in-progress site move operations that started within the last 30 days.

### Example 6: Get outbound site moves to other geo locations
```powershell
Get-PnPSiteContentMoveState -MoveDirection MoveOut -MoveState Success -Limit 100
```
Gets the last 100 successful site moves from the current geo location to other geo locations.

### Example 7: Export site move data to CSV
```powershell
Get-PnPSiteContentMoveState -Limit 500 | Export-Csv -Path "SiteMoveHistory.csv" -NoTypeInformation
```
Exports site move history to a CSV file for analysis and reporting.

## Parameters

### -MoveState
Specifies the state of site move operations to retrieve.

```yaml
Type: MoveState
Parameter Sets: MoveReport
Aliases:
Accepted values: All, NotStarted, InProgress, Success, Failed, ReadyToTrigger, MovedByOtherMeans
Required: False
Position: Named
Default value: All
Accept pipeline input: False
Accept wildcard characters: False
```

### -MoveDirection
Specifies the direction of site move operations to retrieve.

```yaml
Type: MoveDirection
Parameter Sets: MoveReport
Aliases:
Accepted values: All, MoveIn, MoveOut
Required: False
Position: Named
Default value: All
Accept pipeline input: False
Accept wildcard characters: False
```

### -SourceSiteUrl
The URL of the source site whose move job status you want to retrieve.

```yaml
Type: String
Parameter Sets: SourceSiteUrl
Aliases:
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
```

### -SiteMoveId
The unique identifier of the site move job to retrieve.

```yaml
Type: Guid
Parameter Sets: SiteMoveId
Aliases:
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
```

### -Limit
The maximum number of site move jobs to retrieve. Valid range is 1-1000.

```yaml
Type: UInt32
Parameter Sets: MoveReport
Aliases:
Required: False
Position: Named
Default value: 200
Accept pipeline input: False
Accept wildcard characters: False
```

### -MoveStartTime
Filters site move jobs that started on or after the specified date and time.

```yaml
Type: DateTime
Parameter Sets: MoveReport
Aliases:
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
```

### -MoveEndTime
Filters site move jobs that started on or before the specified date and time.

```yaml
Type: DateTime
Parameter Sets: MoveReport
Aliases:
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
```

## Outputs

### System.Management.Automation.PSObject
Returns PSObjects containing details about the site move operations, including:
- **JobId**: Unique identifier for the move job
- **SourceSiteUrl**: Original URL of the site being moved
- **DestinationDataLocation**: Target geo location code
- **DestinationUrl**: New URL after the move
- **Status**: Current status of the move operation
- **CreatedDate**: When the move job was created
- **CompletedDate**: When the move job completed (if applicable)
- **LastModified**: Last time the job status was updated
- **ProgressPercentage**: Completion percentage of the move
- **SiteSize**: Size of the site being moved (in bytes)
- **ErrorMessage**: Error details (if the move failed)

## Notes
- This cmdlet requires SharePoint Online admin permissions
- The cmdlet works with SharePoint Multi-Geo tenants
- Site move operations are sorted by last modified date in descending order (newest first)
- Site moves can take considerable time depending on the size and complexity of the site

## Related Links

[Start-PnPUserAndContentMove](Start-PnPUserAndContentMove.md)
[Get-PnPUserAndContentMoveState](Get-PnPUserAndContentMoveState.md)
[Get-PnPGeoMoveCrossCompatibilityStatus](Get-PnPGeoMoveCrossCompatibilityStatus.md)
[SharePoint Multi-Geo documentation](https://docs.microsoft.com/en-us/microsoft-365/enterprise/multi-geo-capabilities-in-onedrive-and-sharepoint-online-in-microsoft-365)
Loading
Loading