Team Owners Might Not Know Shared and Private Channels Exist
A post by Philip Worrell highlights a potential impact on those who own or access shared channels in archived teams. The same problem exists for private channels, and its origin lies in the fact that team owners are not, by default, members of private or shared channels and therefore have no idea if these channels are active. Let’s plunge into the details.
Archiving Teams
Archival is intended to be part of the natural lifecycle of teams. Once a team serves its purpose, its owners can archive it to put the team into a read-only state. Optionally, the SharePoint site belonging to the team can also be made read-only. Team members can access archived teams, but only to read information. Team owners can continue to update content in the team (and its site).
In archived teams, private and shared channels become read-only along with the channel sites. This is what you want: it would be strange to have regular team channels read-only while shared and private channels remain writable.
According to Microsoft’s documentation, when a team owner archives a team, it moves to the hidden teams section of the teams list. My experience is that this action is inconsistent for the team owner as often the archived team doesn’t show up in the hidden list. However, moving to hidden does seem to work for team members. When you restore an archived team, it always goes back into the hidden list, even some users had it as a featured team. I guess that it’s hard for Teams to figure out where a restored team should appear.
The Problem of Channel Visibility
Shared and private channels are owned by the team member who creates them (other owners can be added later). If they create shared or private channels, team owners know that these channels exist, but unless they become a channel member, they have no visibility into the channel. It might be that nothing happens, that no one participates in channel conversations or works on documents stored in the channel site. On the other hand, the channel could be very busy with frequent and ongoing contributions from tenant and external members. The point is that team owners don’t know what’s going on.
When the time comes to archive a team, the team owner can perform the action from:
The Manage teams section of the Teams desktop or browser client.
The Teams section of the Teams admin center.
Using the Set-TeamArchivedState cmdlet from the Teams PowerShell module.
Archiving through the Teams desktop client doesn’t give an owner visibility into channels. As Figure 1 shows, even if the owner is a member of the team, unless they are a member of the channels, they see only regular channels listed for the team.
Figure 1: Archiving a team from the Teams desktop client
The Teams admin center option (Figure 2) tells the administrator that shared and private channels are present. They can then examine the properties of the channels to find out who the owners are and check in with the channel owners to discover if it’s OK to proceed with archiving.
Figure 2: The Teams admin center shows shared and private channels for a team
To find channel information with PowerShell, you:
Retrieve the group identifier for the team with Get-Team.
Retrieve the list of channels for the team with Get-TeamChannel.
Check the membership of the channels with Get-TeamChannelUser.
For example:
$GroupId = (Get-Team -DisplayName "Rugby Lovers").GroupId
Get-TeamChannel -GroupId $GroupId | Format-Table Id, DisplayName,MembershipType
Id DisplayName MembershipType
-- ----------- --------------
19:2bd93bd207a544c98457589df77c8dd6@thread.skype General Standard
19:beb3bb67cdc14e0f8c142245e26e0622@thread.skype Private Rugby Private
19:ZbgcM0KcWCYYEtHQfVc9REgP03U8IWowH49DW6KgrFc1@thread.skype Shared Oval Balls Shared
Get-TeamChannelUser -GroupId $GroupId -DisplayName "Shared Oval Balls" | Format-Table name, Role
Name Role
---- ----
Kim Akers Owner
Ken Bowers Member
Terry Hegarty Member
Warren Gatland Member
James Hoover Member
When you’re happy to go ahead and archive the team, you can run the Set-TeamArchivedState cmdlet. The SetSpoSiteReadOnlyForMembers setting controls if the channel’s SharePoint site becomes read-only.
Administrators might be quite happy with their ability to archive teams. They have three ways to choose from and all are effective. Things aren’t quite so benign from the user perspective. Channel owners aren’t alerted about team archival, and Teams moves the archived teams into the hidden section of the teams list. The combination means that users don’t find out about archiving until they go to access the team and discover that it’s no longer in their active list.
Users can find the archived team by:
Looking in the hidden section of the teams list.
Viewing their teams through the Manage teams option.
Finding a notification about the team in their Activity Feed.
But when they access the team, they’ll have the happy surprise to discover that it’s read-only (Figure 3), including any shared or private channels they own.
Figure 3: Teams doesn’t allow new posts to a shared channel in an archived team
Recovery
The recovery process is straightforward. A team owner or administrator can restore the team and all its channels. Regretfully, the Teams admin center doesn’t seem to include an option to list all archived teams. This is easily done with PowerShell or a Graph query, so it’s a curious oversight. For example:
$ArchivedTeams = Get-Team -Archived $True
$ArchivedTeams | Format-Table GroupId, DisplayName, Description
GroupId DisplayName Description
------- ----------- -----------
0b9313ca-5b39-43a9-bde3-e0cd4e6ca4e0 Operations Department (Team) The ops people
06fc846d-141d-4e38-8b29-964903b9013d Windows File Server Replacement Project A team to figure out the detailed plann...
397929bc-198d-4754-9411-c0d4e434908b Web Site Planning All about our web site
5cf39594-8a0a-4951-a4e9-20c98d074c40 Xmas Gift Planning All about Xmas Gifts
4e9393c3-67e9-4f95-a0df-70103a667c0a Global Trading Desk A desk for global traders
889ea6bb-0c1d-4a5e-a1ff-787e290c24f1 BRK3001 Composing the best session for Ignite 2016
d2d1b73c-0220-4d1b-ac31-525d9adaa1e6 SSL Admin 2 SSL Admin test 2
b9aa3cbe-f09c-41a3-a009-d4f9130267b2 Top Performers Our top people
To restore (or unarchive, which is the term used in the Teams admin center) all the archived teams, I can do:
Teams logs audit events when people archive or restore a team. You can read more about the topic here.
As Philip Worrell says, restoring teams from archive might increase the amount of teams sprawl in an organization, but it might also make administrators’ lives a little easier. Wouldn’t that be nice!
Make sure that you’re not surprised about changes which appear inside Office 365 applications by subscribing to the Office 365 for IT Pros eBook. Our monthly updates make sure that our subscribers stay informed.
4 Replies to “Archived Teams Pose Visibility Challenge for Shared and Private Channels”
Does Microsoft have any comments or work in progress to fix the issue where a team disappears for the Owner(s) when it is archived? I noticed this behavior when archiving was first introduced and tested it just now with the same result – the team doesn’t show up anywhere even under the ‘Hidden Teams’ section.
Not totally sure how to refresh the client, I did exit it (and close it from the tray) and go back in and it’s still not showing up under Hidden Teams. It does show when I click the gear under Archived though.
{"id":null,"mode":"button","open_style":"in_modal","currency_code":"EUR","currency_symbol":"\u20ac","currency_type":"decimal","blank_flag_url":"https:\/\/office365itpros.com\/wp-content\/plugins\/tip-jar-wp\/\/assets\/images\/flags\/blank.gif","flag_sprite_url":"https:\/\/office365itpros.com\/wp-content\/plugins\/tip-jar-wp\/\/assets\/images\/flags\/flags.png","default_amount":100,"top_media_type":"featured_image","featured_image_url":"https:\/\/office365itpros.com\/wp-content\/uploads\/2022\/11\/cover-141x200.jpg","featured_embed":"","header_media":null,"file_download_attachment_data":null,"recurring_options_enabled":true,"recurring_options":{"never":{"selected":true,"after_output":"One time only"},"weekly":{"selected":false,"after_output":"Every week"},"monthly":{"selected":false,"after_output":"Every month"},"yearly":{"selected":false,"after_output":"Every year"}},"strings":{"current_user_email":"","current_user_name":"","link_text":"Virtual Tip Jar","complete_payment_button_error_text":"Check info and try again","payment_verb":"Pay","payment_request_label":"Office 365 for IT Pros","form_has_an_error":"Please check and fix the errors above","general_server_error":"Something isn't working right at the moment. Please try again.","form_title":"Office 365 for IT Pros","form_subtitle":null,"currency_search_text":"Country or Currency here","other_payment_option":"Other payment option","manage_payments_button_text":"Manage your payments","thank_you_message":"Thank you for supporting the work of Office 365 for IT Pros!","payment_confirmation_title":"Office 365 for IT Pros","receipt_title":"Your Receipt","print_receipt":"Print Receipt","email_receipt":"Email Receipt","email_receipt_sending":"Sending receipt...","email_receipt_success":"Email receipt successfully sent","email_receipt_failed":"Email receipt failed to send. Please try again.","receipt_payee":"Paid to","receipt_statement_descriptor":"This will show up on your statement as","receipt_date":"Date","receipt_transaction_id":"Transaction ID","receipt_transaction_amount":"Amount","refund_payer":"Refund from","login":"Log in to manage your payments","manage_payments":"Manage Payments","transactions_title":"Your Transactions","transaction_title":"Transaction Receipt","transaction_period":"Plan Period","arrangements_title":"Your Plans","arrangement_title":"Manage Plan","arrangement_details":"Plan Details","arrangement_id_title":"Plan ID","arrangement_payment_method_title":"Payment Method","arrangement_amount_title":"Plan Amount","arrangement_renewal_title":"Next renewal date","arrangement_action_cancel":"Cancel Plan","arrangement_action_cant_cancel":"Cancelling is currently not available.","arrangement_action_cancel_double":"Are you sure you'd like to cancel?","arrangement_cancelling":"Cancelling Plan...","arrangement_cancelled":"Plan Cancelled","arrangement_failed_to_cancel":"Failed to cancel plan","back_to_plans":"\u2190 Back to Plans","update_payment_method_verb":"Update","sca_auth_description":"Your have a pending renewal payment which requires authorization.","sca_auth_verb":"Authorize renewal payment","sca_authing_verb":"Authorizing payment","sca_authed_verb":"Payment successfully authorized!","sca_auth_failed":"Unable to authorize! Please try again.","login_button_text":"Log in","login_form_has_an_error":"Please check and fix the errors above","uppercase_search":"Search","lowercase_search":"search","uppercase_page":"Page","lowercase_page":"page","uppercase_items":"Items","lowercase_items":"items","uppercase_per":"Per","lowercase_per":"per","uppercase_of":"Of","lowercase_of":"of","back":"Back to plans","zip_code_placeholder":"Zip\/Postal Code","download_file_button_text":"Download File","input_field_instructions":{"tip_amount":{"placeholder_text":"How much would you like to tip?","initial":{"instruction_type":"normal","instruction_message":"How much would you like to tip? Choose any currency."},"empty":{"instruction_type":"error","instruction_message":"How much would you like to tip? Choose any currency."},"invalid_curency":{"instruction_type":"error","instruction_message":"Please choose a valid currency."}},"recurring":{"placeholder_text":"Recurring","initial":{"instruction_type":"normal","instruction_message":"How often would you like to give this?"},"success":{"instruction_type":"success","instruction_message":"How often would you like to give this?"},"empty":{"instruction_type":"error","instruction_message":"How often would you like to give this?"}},"name":{"placeholder_text":"Name on Credit Card","initial":{"instruction_type":"normal","instruction_message":"Enter the name on your card."},"success":{"instruction_type":"success","instruction_message":"Enter the name on your card."},"empty":{"instruction_type":"error","instruction_message":"Please enter the name on your card."}},"privacy_policy":{"terms_title":"Terms and conditions","terms_body":null,"terms_show_text":"View Terms","terms_hide_text":"Hide Terms","initial":{"instruction_type":"normal","instruction_message":"I agree to the terms."},"unchecked":{"instruction_type":"error","instruction_message":"Please agree to the terms."},"checked":{"instruction_type":"success","instruction_message":"I agree to the terms."}},"email":{"placeholder_text":"Your email address","initial":{"instruction_type":"normal","instruction_message":"Enter your email address"},"success":{"instruction_type":"success","instruction_message":"Enter your email address"},"blank":{"instruction_type":"error","instruction_message":"Enter your email address"},"not_an_email_address":{"instruction_type":"error","instruction_message":"Make sure you have entered a valid email address"}},"note_with_tip":{"placeholder_text":"Your note here...","initial":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"empty":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"not_empty_initial":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"saving":{"instruction_type":"normal","instruction_message":"Saving note..."},"success":{"instruction_type":"success","instruction_message":"Note successfully saved!"},"error":{"instruction_type":"error","instruction_message":"Unable to save note note at this time. Please try again."}},"email_for_login_code":{"placeholder_text":"Your email address","initial":{"instruction_type":"normal","instruction_message":"Enter your email to log in."},"success":{"instruction_type":"success","instruction_message":"Enter your email to log in."},"blank":{"instruction_type":"error","instruction_message":"Enter your email to log in."},"empty":{"instruction_type":"error","instruction_message":"Enter your email to log in."}},"login_code":{"initial":{"instruction_type":"normal","instruction_message":"Check your email and enter the login code."},"success":{"instruction_type":"success","instruction_message":"Check your email and enter the login code."},"blank":{"instruction_type":"error","instruction_message":"Check your email and enter the login code."},"empty":{"instruction_type":"error","instruction_message":"Check your email and enter the login code."}},"stripe_all_in_one":{"initial":{"instruction_type":"normal","instruction_message":"Enter your credit card details here."},"empty":{"instruction_type":"error","instruction_message":"Enter your credit card details here."},"success":{"instruction_type":"normal","instruction_message":"Enter your credit card details here."},"invalid_number":{"instruction_type":"error","instruction_message":"The card number is not a valid credit card number."},"invalid_expiry_month":{"instruction_type":"error","instruction_message":"The card's expiration month is invalid."},"invalid_expiry_year":{"instruction_type":"error","instruction_message":"The card's expiration year is invalid."},"invalid_cvc":{"instruction_type":"error","instruction_message":"The card's security code is invalid."},"incorrect_number":{"instruction_type":"error","instruction_message":"The card number is incorrect."},"incomplete_number":{"instruction_type":"error","instruction_message":"The card number is incomplete."},"incomplete_cvc":{"instruction_type":"error","instruction_message":"The card's security code is incomplete."},"incomplete_expiry":{"instruction_type":"error","instruction_message":"The card's expiration date is incomplete."},"incomplete_zip":{"instruction_type":"error","instruction_message":"The card's zip code is incomplete."},"expired_card":{"instruction_type":"error","instruction_message":"The card has expired."},"incorrect_cvc":{"instruction_type":"error","instruction_message":"The card's security code is incorrect."},"incorrect_zip":{"instruction_type":"error","instruction_message":"The card's zip code failed validation."},"invalid_expiry_year_past":{"instruction_type":"error","instruction_message":"The card's expiration year is in the past"},"card_declined":{"instruction_type":"error","instruction_message":"The card was declined."},"missing":{"instruction_type":"error","instruction_message":"There is no card on a customer that is being charged."},"processing_error":{"instruction_type":"error","instruction_message":"An error occurred while processing the card."},"invalid_request_error":{"instruction_type":"error","instruction_message":"Unable to process this payment, please try again or use alternative method."},"invalid_sofort_country":{"instruction_type":"error","instruction_message":"The billing country is not accepted by SOFORT. Please try another country."}}}},"fetched_oembed_html":false}
Does Microsoft have any comments or work in progress to fix the issue where a team disappears for the Owner(s) when it is archived? I noticed this behavior when archiving was first introduced and tested it just now with the same result – the team doesn’t show up anywhere even under the ‘Hidden Teams’ section.
Did you refresh the client? I sometimes had to do this to see an archived team.
Not totally sure how to refresh the client, I did exit it (and close it from the tray) and go back in and it’s still not showing up under Hidden Teams. It does show when I click the gear under Archived though.