Private Channel is the most awaited feature in Microsoft Teams. Private Channel availability announced at Microsoft Ignite along with more updates and enhancements in Microsoft Teams.

So, what is a Private Channel?

Private channels in Microsoft Teams create focused spaces for collaboration within your teams. Private channels provide you the ability to have a channel within a Microsoft Team that contains a specific set of individuals who are already part of the respective Teams.

Who can see the Private Channels?

  • Team owners can see all private channels in a team.
  • Team members can only see those private channels in which they are part of.

What Can Go Wrong with Private Channel?

  • By default, any member of a Team can create Private Channels. Team Owners can see the list of available Private Channels in their Teams, but they can’t control Private Channel’s membership, settings and all.
  • Each private channel has its own SharePoint site collection optimized for file sharing and fast provisioning. When the Private Channel created unnecessarily, it also creates a new site collection.
  • Microsoft is yet to support configuration for legal hold of private channel messages. However legal hold of files shared in private channels is supported.

Admins can restrict the ability to create private channels to specific users to avoid these scenarios.

How to Restrict Private Channel Creation?

As an admin, you can use Teams policies in Microsoft Teams to control who can create/search Private Channels.

To restrict the creation of the Private Channel, you can use Microsoft Teams Admin Center (GUI), Graph API, or PowerShell (Microsoft Teams PowerShell Module and Skype for Business Online PowerShell Module).

We recommend using the PoSH(PowerShell) method because, in the admin center, we can apply the policy only to org-wide. If we want to apply the policy per user, then it can be done only through PoSH. We have covered both GUI and PowerShell method in this blog. For the simplicity approach, we have covered PoSH over Graph API.

Method 1: Manage Private Channel Using PowerShell Script:

We have developed easy to use PowerShell script which can do following actions.

  1. Private Channel Create Permission
  • Allow for Organization
  • Disable for Organization
  • Allow for a User
  • Disable for a User
  • Allow Users in bulk using CSV import
  • Enable Users in bulk using CSV import
  • Disable Users in bulk using CSV import
  • Private Channel Reporting
    • All Private Channels in Organization
    • All Private Channels in Teams
    • Members and Owners Report of All Private Channels
    • Members and Owners Report of Single Private Channel

    Download Script: PrivateChannelMgmt.ps1

    You can also download from github

    Script Execution Steps:

    Step 1: Download script from above mentioned link.

    Step 2: Start Windows PowerShell as Administrator.

    Step 3: To run this script, you can choose any one of the below methods.

    Method 1: Execute script with non-MFA account

    ./PrivateChannelManagement.ps1

    Method 2: Execute script with MFA account

    ./PrivateChannelManagement.ps1 -MFA

    Method 3: Execute script by explicitly mentioning credential (Scheduler friendly) and required action

    ./PrivateChannelManagement.ps1 -Action 1 -UserName Admin@Contoso.com -Password XXXX

    Unlock the Full Potential of this Script

    1. Allow Private Channel Creation Organization wide:

    You can allow all users available in your organization to create Private Channel by updating Global policy.

    To allow Private Channel creation org-wide, run the script and select required action from the menu or run the below code directly.

    ./PrivateChannelManagement.ps1 – Action 1

    2. Disable Private Channel Creation Organization wide:

    You can block Private Channel creation for all users available in your organization by updating ‘AllowPrivateChannelCreation’ to $false in Global policy.

    To restrict Private Channel creation org-wide, run the script and select required action from the menu or run the below code directly.

    ./PrivateChannelManagement.ps1 – Action 2

    3. Allow Single User to Create Private Channel:

    If you have a policy to allow private channels creation, you can run the Grant-CsTeamsChannelsPolicy cmdlet with policy name and individual user.

    To allow a user to create Private Channel, run the below code

    ./PrivateChannelManagement.ps1 -Action 3

    4. Block Private Channel Creation for a User:

    To restrict Private Channel creation for a user, run the below code.

    ./PrivateChannelManagement.ps1 -Action 4

    5. Allow Private Channel Creation for Bulk Users using CSV Import:

    You can use CSV/txt file to import bulk users.

    The file must follow the format below: UPN separated by new line without header.

    Run the script as follows to allow Private Channel creation for bulk users.

    ./PrivateChannelManagement.ps1 -Action 5

    6. Restrict Private Channel Creation for Bulk Users using CSV Import:

    To restrict Private Channel creation for Bulk users, run the script and then select required action from the menu or run the below code directly.

    ./PrivateChannelManagement.ps1 – Action 6

    7. Export All Private Channel Report:

    This report lists all Private Channels available in your organization. All Private Channels report contains Teams name and Private Channel Name.

    ./PrivateChannelManagement.ps1 – Action 7

    Sample Output:

    8. Export all Private Channels in the Specific Team:

    If you are owner of the Team, you may in the situation to get a list of all Private Channels in the Team. To ease your work, we have pre-built report for you.

    Run the below cmdlet to get Private Channel report of specific Team.

    ./PrivateChannelManagement.ps1 -Action 8

    Sample Output:

    9. Export All Private Channels’ Members and Owners Report:

    To get a list of Private Channels’ members/Owners report, run the below cmdlet.

    ./PrivateChannelManagement.ps1 -Action 9

    Sample Output:

    10. Export Single Private Channel’s Members and Owners Report:

    To get a list of all members and owners of Private Channel, run the below cmdlet.

    ./PrivateChannelManagement.ps1 -Action 10

    Sample Output:

    Note:

    • To manage Private Channels, you must install and use the latest version of the Teams PowerShell module from the PowerShell Test Gallery (Our script will automatically install Microsoft Teams module after getting confirmation from you).
    • To manage/assign Private Channel Policies, you must use Skype for Business Online PowerShell module.

    Method 2: Manage Private Channel creation through Microsoft Teams Admin Center

    Step 1: In Microsoft Teams Admin Center, go to Teams –> Teams Policy.

    Step 2: Select already available policy or create a new policy.

    Step 3: Two options will be shown.

    • Discover private teams – Turn on this setting to allow users to discover private teams in search results and in the team gallery.
    • Create a private channel – Turn off this setting to restrict Private Channel creation.

    Step 4: And how do we change this, per user?

    The Grant-CsTeamsChannelsPolicy allows you to assign specific policies to individual users in the tenant. If you have a policy to block private channels creation, you can run the Grant-CsTeamsChannelsPolicy cmdlet with policy name and individual user.

    Grant-CsTeamsChannelsPolicy -PolicyName PrivateTeamsPolicy –Identity admin@Contoso.com

    Conclusion:

    There is no doubt that Private Channels are the most required addition to the Microsoft Teams. While planning for Private channels, just keep in mind following things.

    • Each Team can have maximum of 30 Private Channels.
    • Each Private Channel can have maximum of 250 members in it.

    I hope this blog will help you to manage Private Channels. If you have any queries, you can mention them in the comment section.