- November 2017. Volume 32 Number 11 Visual Studio Code Editing and Debugging in Visual Studio for Mac. By Alessandro Del November 2017. Visual Studio for Mac is the powerful, new native development environment from Microsoft that perfectly embodies the company’s mobile-first, cloud-first vision.
- The protection on Windows works differently than on the Mac. The type of protection yu describe is not available on the Mac, so the Mac version prohibits any editing on files protected in that way. The ONLY alternative, is to open the file to a Windows version of Excel, completely unprotect it and save it.
- Mar 19, 2019 Your account doesn't allow editing on a Mac. To learn more, contact your admin about your Office plan. This article lists possible solutions to the issue. Microsoft office identities settings 2; search for all occurrences of adal in the keychain and remove all those entries if present.
November 2017
Fix: Account Doesn’t Allow Editing on a Mac If the issue is with your Computer or a Laptop you should try using Reimage Plus which can scan the repositories and replace corrupt and missing files. This works in most cases, where the issue is originated due to a system corruption.
Volume 32 Number 11
[Visual Studio]
By Alessandro Del | November 2017
Visual Studio for Mac is the powerful, new native development environment from Microsoft that perfectly embodies the company’s mobile-first, cloud-first vision. It helps you build cross-platform apps with Xamarin and .NET Core—and games with Unity—using your existing .NET skills and your favorite programming languages, such as C# and F#. You’ll find an introduction to Visual Studio for Mac at msdn.com/magazine/mt790182. In this article, I’ll focus on some powerful features in the code editor and the debugging tools that will help you increase your productivity.
A Roslyn-Powered Code Editor
Visual Studio for Mac allows you to write code in C# and F# on macOS. This is possible because the IDE leverages the .NET Compiler Platform, also known as Project “Roslyn” (github.com/dotnet/roslyn). Roslyn provides open source, cross-platform .NET compilers that expose rich code analysis APIs. As in Visual Studio 2015 and 2017 on Windows, Roslyn powers the code editor in Visual Studio for Mac, providing an enhanced coding experience with syntax colorization, IntelliSense, live code issue detection, fixes and refactorings. The official documentation explains how to use code fixes and refactorings in general (bit.ly/2jKt69D), so in this article I’ll focus more specifically on features and capabilities such as generating types, removing redundant code, navigating code, adding support for custom languages and code snippets. All of these features are available to both Xamarin and .NET Core projects.
Generating Types On-the-Fly
One of the nicest productivity features in the code editor is the ability to generate new types while coding, without losing your focus on the active editor. For example, you can write the name of a type that doesn’t exist yet, and when the code editor highlights the type name as a code issue, you can right-click it (or press Alt+Enter), select Quick Fix | Generate Type. Figure 1 shows an example based on generating a type called Person.
Figure 1 Generating a New Type While in the Active Editor
The first option, Generate class ‘Person’ in new file, will generate a new class called Person with the internal modifier inside a new file called Person.cs. The second option, Generate class ‘Person,’ will generate a new class called Person with the internal modifier inside the current file. The third option, Generate nested class ‘Person,’ will generate a new private class called Person nested inside the type that’s currently active in the code editor (in this case the new class would be generated inside the Program class). You can then change the internal or private modifier either manually or by right-clicking the modifier and then still selecting Quick Fix. In all cases, the new class is generated with an empty constructor. The fourth option, Generate new type, instead shows a dialog where you can specify what type you wish to create (class, interface or enumeration), the access modifier and the destination. And you’re not limited to this—you can use the same technique to add members to the newly generated type. You can simply assign or invoke a property, field or method that doesn’t yet exist and leverage quick fixes to add one easily, as demonstrated in Figure 2, which shows how to add a new property called LastName to the Person class. The Generate variable ‘LastName’ option provides different suggestions based on the current context.
Figure 2 Generating a New Member
In this case, the code is making an assignment, so the code editor suggests you generate a new property or field. Based on the code, the code editor will also assign the proper type to the newly generated member, which means it will generate a property (or field) of type string. The code editor can analyze method invocations and generate matching method signatures. This feature is part of the code refactoring tooling and helps you keep your focus on the code while writing.
Removing Redundant Code
The code editor in Visual Studio for Mac also highlights redundant code—code that’s not necessary and not utilized. Redundant code is easily recognizable because it’s grayed out. Behind the scenes, redundant code is highlighted based on some source analysis rules that cause the redundant code to be considered an issue. (You can control these rules, but that’s out of scope here.) Most of the time you’ll find examples of redundant code based on unnecessary using directives, but redundant code recognition isn’t limited to this. For example, an empty constructor and the internal modifier are highlighted as redundant in Figure 3.
Figure 3 Removing Redundant Code
If you right-click some redundant code, which you recognize by its lighter color, you can then select Quick Fix and Visual Studio will show a code fix that will remove the unnecessary code. Additionally, you’ll see a submenu called Options that allows you to:
- Suppress the current issue detection.
- Configure the analysis rule further in the Visual Studio preferences.
- Apply the code fix for multiple issues of the same type at the document, project or solution level.
Similarly, in the earlier example you can easily fix redundant internal modifiers for type definitions (internal is, in fact, the default modifier in C#). This technique applies to any analysis rule that highlights redundant code in the editor.
Navigating Code
Navigating between code files and between members in a code file is extremely common and having built-in, powerful navigation tools significantly aids productivity. Visual Studio for Mac provides a number of robust tools that make it easier to navigate between files, types and members. First of all, you can quickly move between code files by pressing Control+Tab. This action shows a popup where you can see a list of files in your solution. Holding Control and pressing Tab again cycles down the list and then, when you release, the selected file will be opened in the editor. For source code navigation, the next subsections talk about less-known productivity features that are incredibly useful.
The Find All References and Navigate Tools
The Find All References tool allows you to retrieve all the references to a type or member in the solution. To see this tool in action, simply right-click a type or member name in the code editor and then select Find All References. References are shown in the Search Results pad, as shown in Figure 4.
Figure 4 Finding a Type or Member References
In the Search Results pad, you can see (starting from left to right) the project that contains the reference, the code file including the position, the source text that contained the referenced object, and the full pathname of the source file. You can double-click a reference and the code editor will open the appropriate code file and place the cursor on the selected occurrence. Notice how the source code in the Text column has basic syntax colorization. Find All References is very powerful, but sometimes you might want to filter your search based on certain type and member characteristics. To accomplish this, you can use the Navigate tool, which you invoke by right-clicking a type or member and then selecting Navigate. You’ll be presented with a submenu that shows the following search options:
Find References of All Overloads finds all references of a method and its overloads.
Base Symbols allows you to find the list of base types and interfaces that the type on which you invoked Navigate is inheriting from or is implementing. In the case of methods, Navigate will find the list of methods that the current method is overriding.
Derived Symbols allows you to find the list of types that inherit from the type on which you invoked Navigate. In the case of methods, it finds the list of methods that are overriding the one on which you invoked Navigate.
Extension Methods finds all the extension methods for the type on which you invoked Navigate and that are defined in the current solution.
Member Overloads is similar to Extension Methods, but it finds the list of method overloads defined in the current solution.
Implementing Members, if invoked on an abstract class or interface, shows the list of types and members that implement that type or interface.
The Navigate tool shows the search results in the Search Results pad exactly like Find All References.
The Scrollbar and Minimap Mode
The code editor’s scrollbar displays colored markers that represent code issues, such as warnings and errors, breakpoints, ToDo items, and a colored dot at the top that’s red if the active file contains errors, yellow if the active file contains warnings, or green if no issues are detected. In addition, the scrollbar provides the so-called Minimap mode. When this mode is enabled, the scrollbar displays a preview of the source code for easy navigation, as shown in Figure 5.
Figure 5 The Scrollbar Minimap Mode
You enable Minimap mode by right-clicking the scrollbar and selecting Show Minimap. You can click an area on the map and the code editor will move the cursor to the appropriate point. To disable Minimap mode, you right-click the scrollbar again and select Show Tasks. Minimap mode is particularly useful with long files and helps you have a visual representation of the whole file.
Browsing Objects in a Code File
Visual Studio for Mac offers visual ways to easily browse type and members within a code file. Each code editor window shows breadcrumbs that you can click to see a list of the types defined in the active editor; when you select a type, an additional tab allows you to display the list of its members. Additionally, you can use the Document Outline pad to get a visual representation of the type structure in the active file (see Figure 6).
Figure 6 Browsing Objects in a Code File
Notice how different icons represent the different kinds of members. You might already know the Document Outline pad for its capabilities to show the visual hierarchy of the UI, but you can also use it to get a view of a type’s structure, which is very helpful. You can simply double-click an object within Document Outline and the editor will move the cursor to its definition.
Working with Code Snippets
Visual Studio for Mac supports IntelliSense code snippets—pre-written code block templates that can be customized to match your needs. If you have experience with Visual Studio on Windows, you already know what code snippets are. In Visual Studio for Mac, you have two options to insert a code snippet. The first option is right-clicking the code editor and then selecting Insert Template. A list of available code snippets will appear and you just select the one you need. The second option is picking up a code snippet from the IntelliSense completion list as you type. Figure 7 shows an example where a code snippet is highlighted (you press Tab twice to insert the snippet).
Figure 7 Adding a Code Snippet
Code snippets are represented with the (…) icon, which makes them immediately recognizable. In both cases, a tooltip describes the code snippet’s purpose when you hover over its name with the mouse. Visual Studio for Mac also lets you create new custom code snippets and edit existing ones from within the IDE, without the need of external tools. To accomplish this, select Preferences in the Visual Studio menu, then in the Preferences dialog locate and select the Code Snippets item under Text Editor. There you’ll see a list of code snippets grouped by language. If you select an existing snippet, you just press the Edit button to edit the code. If you in-stead click Add, you will have the option to create a new code snippet. This is done in the New template dialog, where you provide a keyboard shortcut, a description, a MIME type, a language group and, of course, the source code. Figure 8 shows an example.
Figure 8 Creating a Custom Code Snippet
Notice that the $ symbol is used to mark identifiers for replacement, whereas the $selected$$end$ expression delimits the current snippet. When you mark identifiers for replacement, you can also provide additional information on the identifier itself, such as its default value and a tooltip that describes its meaning, in the boxes on the right side of the dialog. When you’re done, simply click OK and close the Preferences dialog. At this point, your new code snippet is in the snippet library and ready to be used in the code editor through IntelliSense. It’s worth noting that you can edit existing snippets to assign a keyboard shortcut if one’s not already available. This allows you to type the keyboard shortcut within the code editor and insert a snippet faster. If you’re like me and use code snippets a lot, having the option to create them from within the IDE will save you a huge amount of time.
Adding Custom Languages
One of the things you’ll love in Visual Studio for Mac is the ability to add new languages that aren’t included out of the box, whose grammar is based on the TextMate and Sublime Text de facto standards. In fact, Visual Studio for Mac supports both standards and allows adding language bundles offering editing features such as syntax colorization, code snippets and word completion. For example, suppose you want to add syntax support for editing Swift files, which could be very useful on a Mac. In either TextMate or Sublime Text, you install a Swift language bundle and then export the package of the language bundle to disk. Then you can import the language bundle into Visual Studio for Mac. To accomplish this, you use the Language Bundles node of the Preferences dialog. Here you’ll be able to click Add and select the language package exported before. At this point, you’ll be able to open .swift files (or other file types depending on the bundle you imported) and to take advantage of features such as syntax colorization and code blocks folding.
The code editor also lets you insert code snippets if the language bundle you selected contains any. Obviously, Visual Studio for Mac doesn’t support compiling source files or building and publishing applications based on external language bundles. What you can do instead is automate the execution of external tools, such as compilers, with the Edit Custom Tools command in the Options menu.
Debugging Productivity with Pads and the Debug Class
Debugging is tremendously important and Visual Studio for Mac ships with the kind of first-class debugging tools every developer needs to build high-quality applications in a productive way. The official documentation (bit.ly/2xgJkx0) describes the most commonly used tools, such as breakpoints, data visualizers and conditional flow control. I’m going to describe some other nice features you might want to know about, especially if you’re familiar with debugging in Visual Studio on Windows and you expect to see the same tools on the Mac. Let’s start with the System.Diagnostics.Debug class, which lets you print the evaluation of an expression to the Application Output pad from C# code, without breaking the execution of an application. Suppose you have a .NET Core console application that waits for the user input with the following code:
The Debug.WriteLine method prints the expression to the Application Output pad, as depicted in Figure 9, without stopping application execution. In this case, the expression is an interpolated string that contains the length of the string entered by the user.
Figure 9 The Result of an Evaluation Printed to the Application Output Pad Can't quit mail on mac.
And you’re not limited to the WriteLine method; in fact, you can use all the other supported methods, such as Assert, Equals, Fail, Write, WriteIf and WriteLineIf (see bit.ly/2ydS8jO for details).
In Visual Studio for Mac, there are other ways to evaluate expressions and to inspect object values while debugging. You can use breakpoints and data visualizers, but you can also use the Watch pad, whose purpose is to provide a way to visually monitor variables, methods and expressions. While in break mode, the Watch window is automatically enabled and you can click inside it to add a new object to monitor. Figure 10 shows an example based on a property’s value.
Figure 10 Monitoring Objects with the Watch Pad
For each object you monitor, you can see its members and their values. You can also click the value and change it, so you can see how your code behaves with a different object value. The Watch pad still provides shortcuts to the data visualizers, which you can recognize through the eye and pencil icons. You’ll also find other two debugging pads very useful: the Threads pad and the Call Stack pad, both visible in Figure 11.
Figure 11 Monitoring Threads and Method Calls with the Threads and Call Stack Pads
The Threads pad shows the list of running threads and is useful for understanding the code locations in which your app’s various threads are paused. It shows the thread ID, the name and the location of the code that refers to each thread. You can also enter a name for threads if one doesn’t exist already. The Call Stack pad shows the hierarchy of method calls, and you can enable it to also display calls to code that’s not in your solution; for example, interop frames. To accomplish this, you right-click the pad and enable the Show External Code option. By leveraging all of these, you have a complete and powerful suite of debugging tools that, together with breakpoints, the Locals pad, and data visualizer, give you deep control over your .NET Core and Xamarin solutions.
Wrapping Up
Visual Studio for Mac not only helps you build cross-platform applications for mobile devices and the cloud with Xamarin and .NET Core on macOS, it also offers all the productivity tools you need to write high-quality code. This includes productivity features in the code editor and in the debugging tools that will make you feel at home with this IDE, especially if you have experience with Visual Studio on Windows.
Alessandro Del Solehas been a Microsoft MVP since 2008. Awarded MVP of the Year five times, he has authored many books, eBooks, instructional videos and articles about .NET development with Visual Studio. Del Sole works as a senior .NET developer, focusing on .NET and mobile app development, training and consulting. He has recently authored an upcoming book called “Beginning Visual Studio for Mac” (bit.ly/2hsRxYx). You can follow him on Twitter: @progalex.
Thanks to the following Microsoft technical expert for reviewing this article: Mikayla Hutchinson
-->Meeting policies are used to control the features that are available to meeting participants for meetings that are scheduled by users in your organization. After you create a policy and make your changes, you can then assign users to the policy. You manage meeting policies in the Microsoft Teams admin center or by using PowerShell.
You can implement policies in the following ways, which affect the meeting experience for users before a meeting starts, during a meeting, or after a meeting.
Implementation type | Description |
---|---|
Per-organizer | When you implement a per-organizer policy, all meeting participants inherit the policy of the organizer. For example, Automatically admit people is a per-organizer policy and controls whether users join the meeting directly or wait in the lobby for meetings scheduled by the user who is assigned the policy. |
Per-user | When you implement a per-user policy, only the per-user policy applies to restrict certain features for the organizer and/or meeting participants. For example, Allow Meet now in channels is a per-user policy. |
Per-organizer and per-user | When you implement a combination of a per-organizer and per-user policy, certain features are restricted for meeting participants based on their policy and the organizer's policy. For example, Allow cloud recording is a per-organizer and per-user policy. Turn on this setting to allow the meeting organizer and participants to start and stop a recording. |
Microsoft Doesn T Allow Editing On Mac
By default, a policy named Global (Org-wide default) is created. All users in your organization are assigned the Global meeting policy by default. You can either make changes to it or create one or more custom policies and assign users to them. Users will get the Global policy unless you create and assign a custom policy. When you create a custom policy, you can allow or prevent certain features from being available to your users, and then assign it to one or more users who will have the settings applied to them.
Change or create a meeting policy
To change or create a meeting policy, go to the Microsoft Teams admin center > Meetings > Meeting policies. Select a policy from the list or select Add. If you're creating a new policy, add a name and description. The name can't contain special characters or be longer than 64 characters. Choose your settings, and then select Save.
For example, say you have a bunch of users and you want to limit the amount of bandwidth that their meeting would require. You would create a new custom policy named 'Limited bandwidth' and disable the following settings:
Under Audio & video:
- Turn off Allow cloud recording.
- Turn off Allow IP video.
Under Content sharing:
- Disable screen sharing mode.
- Turn off Allow whiteboard.
- Turn off Allow shared notes.
Then assign the policy to the users.
Note
A user can be assigned only one meeting policy at a time.
Assign a meeting policy to users
- In the left navigation of the Microsoft Teams admin center, go to Users, and then click the user.
- Select the user by clicking to the left of the user name, and then click Edit settings.
- Under Meeting policy, select the policy you want to assign, and then click Apply.
To assign a policy to multiple users at a time, see Edit Teams user settings in bulk.
Or, you can also do the following:
- In the left navigation of the Microsoft Teams admin center, go to Meetings > Meeting policies.
- Select the policy by clicking to the left of the policy name.
- Select Manage users.
- In the Manage users pane, search for the user by display name or by user name, select the name, and then select Add. Repeat this step for each user that you want to add.
- After you finish adding users, select Save.
Note
You can't delete a policy if users are assigned to it. You must first assign a different policy to all affected users, and then you can delete the original policy.
Meeting policy settings
When you select an existing policy on the Meeting policies page or select Add to add a new policy, you can configure settings for the following.
Meeting policy settings - General
Allow Meet now in channels
This is a per-user policy and applies before a meeting starts. This setting controls whether a user can start an ad hoc meeting in a Teams channel. If you turn this on, when a user posts a message in a Teams channel, the user can click Meet now under the compose box to start an ad hoc meeting in the channel.
Allow the Outlook add-in
Update Microsoft On Mac
This is a per-user policy and applies before a meeting starts. This setting controls whether Teams meetings can be scheduled from within Outlook (Windows, Mac, web, and mobile).
If you turn this off, users are unable to schedule Teams meetings when they create a new meeting in Outlook. For example, in Outlook on Windows, the New Teams Meeting option won't show up in the ribbon.
Allow channel meeting scheduling
This is a per-user policy and applies before a meeting starts. This setting controls whether users can schedule a meeting in a Teams channel. If you turn this off, the Schedule a meeting option won't be available to the user when they start a meeting in a Teams channel and the Add channel option is disabled for users in Teams.
Allow scheduling private meetings
This is a per-user policy and applies before a meeting starts. This setting controls whether users can schedule private meetings in Teams. A meeting is private when it's not published to a channel in a team.
Note that if you turn off Allow scheduling private meetings and Allow channel meeting scheduling, the Add required attendees and Add channel options are disabled for users in Teams.
Meeting policy settings - Audio & video
Allow transcription
This is a combination of a per-organizer and per-user policy. This setting controls whether captions and transcription features are available during playback of meeting recordings. If you turn this off, the Search and CC options won't be available during playback of a meeting recording. The person who started the recording needs this setting turned on so that the recording also includes transcription.
Note that transcription for recorded meetings is currently only supported for users who have the language in Teams set to English and when English is spoken in the meeting.
Allow cloud recording
This is a combination of a per-organizer and per-user policy. This setting controls whether this user's meetings can be recorded. The recording can be started by the meeting organizer or by another meeting participant if the policy setting is turned on for the participant and if they're an authenticated user from the same organization.
People outside your organization, such as federated and anonymous users, can't start the recording. Guest users can't start or stop the recording.
Let's look at the following example.
User | Meeting policy | Allow cloud recording |
---|---|---|
Daniela | Global | False |
Amanda | Location1MeetingPolicy | True |
John (external user) | Not applicable | Not applicable |
Meetings organized by Daniela can't be recorded and Amanda, who has the policy setting enabled, can't record meetings organized by Daniela. Meetings organized by Amanda can be recorded, however, Daniela, who has the policy setting disabled and John who is an external user, can't record meetings organized by Amanda.
To learn more about cloud meeting recording, see Teams cloud meeting recording.
Allow IP video
This is a combination of a per-organizer and per-user policy. Video is a key component to meetings. In some organizations, admins might want more control over which users’ meetings have video. This setting controls whether video can be turned on in meetings hosted by a user and in 1:1 calls and group calls started by a user. Meetings organized by a user who has this policy enabled, allow video sharing in the meeting by the meeting participants, if the meeting participants also have the policy enabled. Meeting participants who don't have any policies assigned (for example, anonymous and federated participants) inherit the policy of the meeting organizer.
Let's look at the following example.
User | Meeting policy | Allow IP Video |
---|---|---|
Daniela | Global | True |
Amanda | Location1MeetingPolicy | False |
Meetings hosted by Daniela allow video to be turned on. Daniela can join the meeting and turn on video. Amanda can't turn on video in Daniela's meeting because Amanda’s policy is set to not allow video. Amanda can see videos shared by other participants in the meeting.
In meetings hosted by Amanda, no one can turn on video, regardless of the video policy assigned to them. This means Daniela can't turn on video in Amanda’s meetings.
If Daniela calls Amanda with video on, Amanda can answer the call with audio only. When the call is connected, Amanda can see Daniela’s video, but can't turn on video. If Amanda calls Daniela, Daniela can answer the call with video and audio. When the call is connected, Daniela can turn on or turn off her video, as needed.
Media bit rate (KBs)
This is a per-user policy. This setting determines the media bit rate for audio, video, and video-based app sharing transmissions in calls and meetings for the user. It's applied to both the uplink and downlink media traversal for users in the call or meeting. This setting gives you granular control over managing bandwidth in your organization. Depending on the meetings scenarios required by users, we recommend having enough bandwidth in place for a good quality experience. The minimum value is 30 Kbps and the maximum value depends on the meeting scenario. To learn more about the minimum recommended bandwidth for good quality meetings, calls, and live events in Teams, see Bandwidth requirements.
If there isn’t enough bandwidth for a meeting, participants see a message that indicates poor network quality.
For meetings that need the highest quality video experience, such as CEO board meetings and Teams live events, we recommend you set the bandwidth to 10 Mbps. Even when the maximum experience is set, the Teams media stack adapts to low bandwidth conditions when certain network conditions are detected, depending on the scenario.
Meeting policy settings - Content sharing
Screen sharing mode
This is a combination of a per-organizer and per-user policy. Microsoft office home and business 2016 mac torrent download free. This setting controls whether desktop and/or window sharing is allowed in the user's meeting. Meeting participants who don't have any policies assigned (for example, anonymous, guest, B2B, and federated participants) inherit the policy of the meeting organizer.
Setting value | Behavior |
---|---|
Entire screen | Full desktop sharing and application sharing is allowed in the meeting |
Single application | Application sharing is allowed in the meeting |
Disabled | Screen sharing and application sharing turned off in the meeting. |
Let's look at the following example.
User | Meeting policy | Screen sharing mode |
---|---|---|
Daniela | Global | Entire screen |
Amanda | Location1MeetingPolicy | Disabled |
Meetings hosted by Daniela allow meeting participants to share their entire screen or a specific application. If Amanda joins Daniela’s meeting, Amanda can't share her screen or a specific application as her policy setting is disabled. In meetings hosted by Amanda, no one is allowed to share their screen or a single application, regardless of the screen sharing mode policy assigned to them. This means that Daniela can't share her screen or a single application in Amanda’s meetings.
Currently, users can't play video or share their screen in a Teams meeting if they're using Google Chrome.
Allow a participant to give or request control
This is a per-user policy. This setting controls whether the user can give control of the shared desktop or window to other meeting participants. To give control, hover over the top of the screen.
If this setting is turned on for the user, the Give Control option is displayed in the top bar in a sharing session.
If the settings is turned off for the user, the Give Control option isn't available.
Let's look at the following example.
User | Meeting policy | Allow participant to give or request control |
---|---|---|
Daniela | Global | True |
Babek | Location1MeetingPolicy | False |
Daniela can give control of the shared desktop or window to other participants in a meeting organized by Babek whereas Babek can't give control to other participants.
To use PowerShell to control who can give control or accept requests for control, use the AllowParticipantGiveRequestControl cmdlet.
Note
To give and take control of shared content during sharing, both parties must be using the Teams desktop client. Control isn't supported when either party is running Teams in a browser. This is due to a technical limitation that we're planning to fix.
Allow an external participant to give or request control
![Mac Mac](https://cdn.appuals.com/wp-content/uploads/2018/11/7-19.jpg)
This is a per-user policy. This setting controls whether external participants in a meeting can give control of their shared desktop or window to other participants in the meeting. External participants in Teams meetings can be categorized as follows:
- Anonymous user
- Guest users
- B2B user
- Federated user
Whether federated users can give control to external users while sharing is controlled by the Allow an external participant to give or request control setting in their organization.
To use PowerShell to control whether external participants can give control or accept requests for control, use the AllowExternalParticipantGiveRequestControl cmdlet.
Allow PowerPoint sharing
This is a per-user policy. This setting controls whether the user can share PowerPoint slide decks in a meeting. External users, including anonymous, guest, and federated users, inherit the policy of the meeting organizer.
Let's look at the following example.
User | Meeting policy | Allow PowerPoint sharing |
---|---|---|
Daniela | Global | True |
Amanda | Location1MeetingPolicy | False |
Amanda can't share PowerPoint slide decks in meetings even if she's the meeting organizer. Daniela can share PowerPoint slide decks even if the meeting is organized by Amanda. Amanda can view the PowerPoint slide decks shared by others in the meeting, even though she can't share PowerPoint slide decks.
Allow whiteboard
This is a per-user policy. This setting controls whether a user can share the whiteboard in a meeting. External users, including anonymous, B2B, and federated users, inherit the policy of the meeting organizer.
Let's look at the following example.
User | Meeting policy | Allow whiteboard |
---|---|---|
Daniela | Global | True |
Amanda | Location1MeetingPolicy | False |
Amanda can't share the whiteboard in a meeting even if she's the meeting organizer. Daniela can share the whiteboard even if a meeting is organized by Amanda.
Allow shared notes
This is a per-user policy. This setting controls whether a user can create and share notes in a meeting. External users, including anonymous, B2B, and federated users, inherit the policy of the meeting organizer. The Meeting Notes tab is currently only supported in meetings that have less than 20 participants.
Let's look at the following example.
User | Meeting policy | Allow shared notes |
---|---|---|
Daniela | Global | True |
Amanda | Location1MeetingPolicy | False |
Daniela can take notes in Amanda's meetings and Amanda can't take notes in any meetings.
Meeting policy settings - Participants & guests
These settings control which meeting participants wait in the lobby before they are admitted to the meeting and the level of participation they are allowed in a meeting.
Note
Options to join a meeting will vary, depending on the settings for each Teams group, and the connection method. If your group has audio conferencing, and uses it to connect, see Audio Conferencing in Office 365. If your Teams group does not have audio conferencing, refer to Join a meeting in Teams.
Let anonymous people start a meeting
This is a per-organizer policy. This setting controls whether anonymous people, including B2B, and federated users, can join the user's meeting without an authenticated user from the organization in attendance.
Here's the join behavior of anonymous people when authenticated users are present in the meeting.
Let anonymous people start a meeting | Automatically admit people | Join behavior of anonymous people |
---|---|---|
True | Everyone | Join directly |
Everyone in your organization | Wait in lobby | |
Everyone in your organization and federated organizations | Wait in lobby | |
False | Everyone | Join directly |
Everyone in your organization | Wait in lobby | |
Everyone in your organization and federated organizations | Wait in lobby |
Here's the join behavior of anonymous people when no authenticated users are present in the meeting.
Let anonymous people start a meeting | Automatically admit people | Join behavior of anonymous people |
---|---|---|
True | Everyone | Join directly |
Everyone in your organization | Wait in lobby | |
Everyone in your organization and federated organizations | Wait in lobby | |
False | Everyone | Wait in lobby. Users are automatically admitted when the first authenticated user joins the meeting. |
Everyone in your organization | Wait in lobby | |
Everyone in your organization and federated organizations | Wait in lobby |
Automatically admit people
This is a per-organizer policy. This setting controls whether people join a meeting directly or wait in the lobby until they are admitted by an authenticated user.
Meeting organizers can click Meeting Options in the meeting invitation to change this setting for each meeting they schedule. (coming soon) Microsoft trust center on mac computer.
Setting value | Join behavior |
---|---|
Everyone | All meeting participants join the meeting directly without waiting in the lobby. This includes authenticated users, federated users, guests, anonymous users, and people who dial in by phone. |
Everyone in your organization and federated organizations | Authenticated users within the organization, including guest users and the users from federated organizations, join the meeting directly without waiting in the lobby. Anonymous users and users who dial in by phone wait in the lobby. |
Everyone in your organization | Authenticated users from within the organization, including guest users, join the meeting directly without waiting in the lobby. Federated users, anonymous users, and users who dial in by phone wait in the lobby. |
Allow dial-in users to bypass the lobby
This is a per-organizer policy. This setting controls whether people who dial in by phone join the meeting directly or wait in the lobby regardless of the Automatically admit people setting.
Here's the join behavior of people who dial in by phone.
Allow dial-in users to bypass the lobby | Automatically admit people | Join behavior of people who dial in |
---|---|---|
True | Everyone | Join directly |
Everyone in your organization | Join directly | |
Everyone in your organization and federated organizations | Join directly | |
False | Everyone | Join directly |
Everyone in your organization | Wait in lobby | |
Everyone in your organization and federated organizations | Wait in lobby |
Allow Meet now in private meetings
This is a per-user policy and applies before a meeting starts. This setting controls whether a user can start an ad hoc private meeting.
Enable live captions
This is a per-user policy and applies during a meeting. This setting controls whether the Turn on live captions option is available for the user to turn on and turn off live captions in meetings that the user attends.
Setting value | Behavior |
---|---|
Disabled but the organizer can override | Live captions aren't automatically turned on for the user during a meeting. The user sees the Turn on live captions option in the overflow (..) menu to turn them on. This is the default setting. |
Disabled | Live captions are disabled for the user during a meeting. The user doesn't have the option to turn them on. |
Allow chat in meetings
This is a per-organizer policy. This setting controls whether meeting chat is allowed in the user's meeting.