Skip to content

Commit 3364f4c

Browse files
Learn Editor: Update Get-TenantPrivateChannelMigrationStatus.md
1 parent 05d8dff commit 3364f4c

1 file changed

Lines changed: 93 additions & 20 deletions

File tree

teams/teams-ps/MicrosoftTeams/Get-TenantPrivateChannelMigrationStatus.md

Lines changed: 93 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ title: Get-TenantPrivateChannelMigrationStatus
1313

1414
## SYNOPSIS
1515

16-
You use the `Get-TenantPrivateChannelMigrationStatus` cmdlet to check the status of private channel migration for your tenant.
16+
Gets the private channel migration status for a tenant.
1717

1818
## SYNTAX
1919

@@ -22,66 +22,139 @@ Get-TenantPrivateChannelMigrationStatus [<CommonParameters>]
2222
```
2323

2424
## DESCRIPTION
25-
The `Get-TenantPrivateChannelMigrationStatus` cmdlet allows tenant administrators to track the status of the private channel migration for their Microsoft Teams organization. More details about the migration can be found [here](https://techcommunity.microsoft.com/blog/microsoftteamsblog/new-enhancements-in-private-channels-in-microsoft-teams-unlock-their-full-potent/4438767#)
2625

27-
**Note:** This cmdlet requires tenant administrator permissions to execute.
26+
Gets the private channel migration status for the current tenant, including per-channel details for channels that were skipped or failed during migration.
27+
28+
More details about the migration can be found [here](https://techcommunity.microsoft.com/blog/microsoftteamsblog/new-enhancements-in-private-channels-in-microsoft-teams-unlock-their-full-potent/4438767#).
29+
30+
Note: This cmdlet requires tenant administrator permissions to execute.
2831

2932
## EXAMPLES
3033

3134
### Example 1
32-
This example retrieves the private channel migration status for the current tenant.
35+
36+
Gets the migration status for a tenant where all channels have been migrated.
3337

3438
```powershell
3539
Get-TenantPrivateChannelMigrationStatus
3640
37-
3841
TenantId : 12345678-1234-1234-1234-123456789abc
3942
MigrationStatus : Completed
4043
MigrationStartTimeStamp : 2025-10-09T10:15:00.456Z
4144
MigrationCompletionTimeStamp : 2025-10-09T12:45:00.789Z
45+
Details : {"totalChannels":10,"migratedChannels":10,"failedChannels":0,"ownerlessChannels":0,"remainingChannels":0}
46+
```
47+
48+
### Example 2
49+
50+
Gets the migration status for a tenant where some channels require admin attention.
51+
52+
```powershell
53+
Get-TenantPrivateChannelMigrationStatus
54+
55+
TenantId : 94d200e4-2df1-45b9-bc3e-53cfa7cf4997
56+
MigrationStatus : RequiresAdminAttention
57+
MigrationStartTimeStamp : 2026-02-10T06:48:20.000Z
58+
MigrationCompletionTimeStamp :
59+
Details : {"totalChannels":10,"migratedChannels":6,"failedChannels":1,"ownerlessChannels":2,"remainingChannels":1,"ownerlessChannelsDetails":[{"channelThreadId":"19:70c903e82053408790c3941f614a4d36@thread.tacv2","teamId":"12025f7b-4e7d-4d4c-b597-10f52de1c198"},{"channelThreadId":"19:a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6@thread.tacv2","teamId":"b94ac03c-ba25-4e79-89ab-d23f707863f7"}],"failedChannelsDetails":[{"channelThreadId":"19:07soOXSzSPB9aYC_2B94KJikrIWmDmK4W7cXith31FM1@thread.tacv2","teamId":"b94ac03c-ba25-4e79-89ab-d23f707863f7"}]}
60+
```
61+
62+
### Example 3
63+
64+
Parses the Details JSON and lists channels by category.
65+
66+
```powershell
67+
$result = Get-TenantPrivateChannelMigrationStatus
68+
$details = $result.Details | ConvertFrom-Json
69+
70+
Write-Host "Total: $($details.totalChannels), Migrated: $($details.migratedChannels), Failed: $($details.failedChannels), Ownerless: $($details.ownerlessChannels)"
71+
72+
# List ownerless channels
73+
if ($details.ownerlessChannelsDetails) {
74+
foreach ($ch in $details.ownerlessChannelsDetails) {
75+
Write-Host " Channel: $($ch.channelThreadId), Team: $($ch.teamId)"
76+
}
77+
}
78+
79+
# List failed channels (no action needed)
80+
if ($details.failedChannelsDetails) {
81+
foreach ($ch in $details.failedChannelsDetails) {
82+
Write-Host " Channel: $($ch.channelThreadId), Team: $($ch.teamId)"
83+
}
84+
}
4285
```
4386

4487
## PARAMETERS
4588

4689
### CommonParameters
90+
4791
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [About CommonParameters](https://go.microsoft.com/fwlink/?LinkID=113216).
4892

4993
## INPUTS
5094

5195
### None
52-
This cmdlet does not accept pipeline input.
5396

5497
## OUTPUTS
5598

5699
### System.Object
57100

58-
This cmdlet returns a `PrivateChannelMigrationStatusResponse` object with the following properties:
101+
Returns a `PrivateChannelMigrationStatusResponse` object with the following properties:
102+
103+
| Property | Type | Description |
104+
|---|---|---|
105+
| `TenantId` | String | The Microsoft Entra tenant identifier. |
106+
| `MigrationStatus` | String | Overall migration status for the tenant. Possible values: `NotStarted`, `InProgress`, `Completed`, `RequiresAdminAttention`. |
107+
| `MigrationStartTimeStamp` | DateTime | When migration started for this tenant. Empty if migration has not started. |
108+
| `MigrationCompletionTimeStamp` | DateTime | When migration completed. Only populated when all channels are done. |
109+
| `Details` | String | JSON string containing channel counts and per-channel detail arrays. |
59110

60-
**TenantId**: The Azure AD tenant identifier for your organization.
111+
### Migration status values
61112

62-
**MigrationStatus**: The current migration status for private channels in your tenant.
113+
| Value | Description |
114+
|---|---|
115+
| `NotStarted` | No private channels have been processed for this tenant. |
116+
| `InProgress` | Migration is underway. |
117+
| `Completed` | All private channels have been successfully migrated. |
118+
| `RequiresAdminAttention` | One or more channels were skipped because they have no owners. If these channels are still in use, a tenant admin or Teams service admin can add an owner to unblock migration. Failed channels do not require admin action and are retried automatically. |
63119

64-
**MigrationStartTimeStamp**: The timestamp when the migration started for this tenant.
120+
### Details JSON fields
65121

66-
**MigrationCompletionTimeStamp**: The timestamp when the migration completed for this tenant.
122+
| Field | Type | Description |
123+
|---|---|---|
124+
| `totalChannels` | Integer | Total number of private channels for this tenant. |
125+
| `migratedChannels` | Integer | Number of channels migrated successfully. |
126+
| `failedChannels` | Integer | Number of channels where migration failed. No admin action is needed. |
127+
| `ownerlessChannels` | Integer | Number of channels skipped because they have no owners. |
128+
| `remainingChannels` | Integer | Number of channels still in progress or not yet started. |
129+
| `ownerlessChannelsDetails` | Array | Per-channel details for ownerless channels. Each entry contains `channelThreadId` and `teamId`. |
130+
| `failedChannelsDetails` | Array | Per-channel details for failed channels. Each entry contains `channelThreadId` and `teamId`. |
131+
132+
### Channel detail object
133+
134+
| Field | Type | Description |
135+
|---|---|---|
136+
| `channelThreadId` | String | The unique identifier of the private channel. |
137+
| `teamId` | String | The unique identifier (GroupId) of the parent team. This is the same value used by the `-GroupId` parameter in [Get-Team](https://learn.microsoft.com/powershell/module/microsoftteams/get-team), [Get-TeamChannel](https://learn.microsoft.com/powershell/module/microsoftteams/get-teamchannel), and [Microsoft Graph team resource](https://learn.microsoft.com/graph/api/resources/team). |
67138

68139
## NOTES
69-
- This cmdlet requires tenant administrator permissions
70-
- The cmdlet connects to the Teams and Channels service to retrieve migration status information
71-
- Private channels remain functional throughout the migration process
72-
- This enhancement helps make private channels more scalable, manageable, and compliant
73140

74-
Common migration status values include:
75-
- **NotStarted**: Migration has not yet begun
76-
- **InProgress**: Migration is currently running
77-
- **Completed**: Migration has finished successfully
141+
- This cmdlet requires tenant administrator permissions.
142+
- Private channels remain functional throughout the migration process.
143+
- The `Details` property is returned as a JSON string. Use `ConvertFrom-Json` to parse it.
144+
- When no ownerless or failed channels exist, the respective detail arrays may be empty or omitted from the JSON.
145+
- Failed channels do not require admin action. They are retried automatically.
146+
- Ownerless channels were skipped because they have no owners. If these channels are still in use, a tenant admin or Teams service admin can add an owner using [Add-TeamUser](https://learn.microsoft.com/powershell/module/microsoftteams/add-teamuser) and [Add-TeamChannelUser](https://learn.microsoft.com/powershell/module/microsoftteams/add-teamchanneluser).
78147

79148
## RELATED LINKS
149+
80150
[New enhancements in Private Channels in Microsoft Teams unlock their full potential](https://techcommunity.microsoft.com/blog/microsoftteamsblog/new-enhancements-in-private-channels-in-microsoft-teams-unlock-their-full-potent/4438767)
81151

82152
[Microsoft Teams PowerShell Overview](https://learn.microsoft.com/powershell/teams/)
83153

84154
[Get-Team](https://learn.microsoft.com/powershell/module/microsoftteams/get-team)
85155

86-
87156
[Get-TeamChannel](https://learn.microsoft.com/powershell/module/microsoftteams/get-teamchannel)
157+
158+
[Add-TeamUser](https://learn.microsoft.com/powershell/module/microsoftteams/add-teamuser)
159+
160+
[Add-TeamChannelUser](https://learn.microsoft.com/powershell/module/microsoftteams/add-teamchanneluser)

0 commit comments

Comments
 (0)