Skip to content

Commit 3ae4289

Browse files
authored
Merge branch 'master' into patch-302
2 parents fefa9fa + cd1e0f3 commit 3ae4289

File tree

9 files changed

+100
-155
lines changed

9 files changed

+100
-155
lines changed

exchange/docs-conceptual/find-exchange-cmdlet-permissions.md

Lines changed: 69 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -20,31 +20,31 @@ You can use PowerShell to find the permissions required to run any Exchange or E
2020

2121
- Estimated time to complete this procedure: less than 5 minutes.
2222

23-
- You can only use PowerShell to perform this procedure.
23+
- You can only use PowerShell to perform these procedures.
2424

25-
- Basically, you need to be an administrator to complete this procedure. Specifically, you need access to the **Get-ManagementRole** and **Get-ManagementRoleAssignment** cmdlets. By default, access to these cmdlets is granted by the **View-Only Configuration** or **Role Management** roles, which are typically assigned to the **View-Only Organization Management** and **Organization Management** role groups.
25+
- Basically, you need to be an administrator to complete this procedure. Specifically, you need access to the **Get-ManagementRole** and **Get-ManagementRoleAssignment** cmdlets. By default, access to these cmdlets is granted by the **View-Only Configuration** or **Role Management** roles, which are only assigned to the **View-Only Organization Management** and **Organization Management** role groups by default.
2626

27-
- The procedures in this topic don't work in Security & Compliance Center PowerShell. For more information about permissions in the Security & Compliance Center, see [Permissions in the Security & Compliance Center](https://docs.microsoft.com/microsoft-365/security/office-365-security/permissions-in-the-security-and-compliance-center).
28-
29-
- The procedures in this topic don't work in standalone Exchange Online Protection (EOP) PowerShell (Microsoft 365 organizations without Exchange Online mailboxes). For more information about permissions in standalone EOP, see [Feature permissions in EOP](https://docs.microsoft.com/microsoft-365/security/office-365-security/feature-permissions-in-eop).
27+
- The procedures in this article don't work in Security & Compliance Center PowerShell or standalone Exchange Online Protection (EOP) PowerShell (Microsoft 365 organizations without Exchange Online mailboxes). For more information about permissions in these environments, see the following articles:
28+
- [Permissions in the Security & Compliance Center](https://docs.microsoft.com/microsoft-365/security/office-365-security/permissions-in-the-security-and-compliance-center).
29+
- [Permissions in standalone EOP](https://docs.microsoft.com/microsoft-365/security/office-365-security/feature-permissions-in-eop).
3030

3131
> [!TIP]
3232
> Having problems? Ask for help in the Exchange forums. Visit the forums at: [Exchange Server](https://go.microsoft.com/fwlink/p/?linkId=60612) or [Exchange Online](https://go.microsoft.com/fwlink/p/?linkId=267542).
3333
3434
## Use PowerShell to find the permissions required to run a cmdlet
3535

36-
1. Open the PowerShell environment where you want to run the cmdlet.
37-
36+
1. If you haven't already, open the Exchange PowerShell environment that you're interested in:
3837
- **Exchange Online**: [Connect to Exchange Online PowerShell](connect-to-exchange-online-powershell.md).
39-
4038
- **Exchange Server**: [Open the Exchange Management Shell](open-the-exchange-management-shell.md) or [Connect to Exchange servers using remote PowerShell](connect-to-exchange-servers-using-remote-powershell.md).
4139

42-
2. Run the following command to identify the cmdlet and, optionally, one or more parameters on the cmdlet. Be sure to replace `<Cmdlet>` and optionally, `<Parameter1>,<Parameter2>,...` with the actual cmdlet and parameter names you are interested in. If you specify multiple parameters separated by commas, only the roles that include **all** of the parameters are returned.
40+
2. Replace `<Cmdlet>` and optionally, `<Parameter1>,<Parameter2>,...` with the values that you want to use, and run the following command:
4341

4442
```powershell
4543
$Perms = Get-ManagementRole -Cmdlet <Cmdlet> [-CmdletParameters <Parameter1>,<Parameter2>,...]
4644
```
4745

46+
**Note**: If you specify multiple parameters, only roles that include the cmdlet with **all** of the parameters are returned.
47+
4848
3. Run the following command:
4949

5050
```powershell
@@ -57,78 +57,95 @@ The results contain the following information:
5757

5858
- **Role**: Indicates the role that gives access to the cmdlet or the combination of cmdlet and parameters. Note that role names that begin with "My" are user roles that allow regular users to operate on objects they own (for example, their own mailbox or their distribution groups).
5959

60-
- **RoleAssigneeType** and **RoleAssigneeName**: These values are inter-related. **RoleAssigneeType** is the type of object that has the role assigned to it, and **RoleAssigneeName** is the name of the object. **RoleAssigneeType** can be a role group, role assignment policy, security group, or user. Typically, administrator roles are assigned to role groups.
60+
- **RoleAssigneeType** and **RoleAssigneeName**: These values are inter-related:
61+
- **RoleAssigneeType** is the type of object that has the role assigned to it. For administrator roles, this value is typically a role group, but it can also be a role assignment policy, a security group, or a user.
62+
- **RoleAssigneeName** is the name of the role group, role assignment policy, security group, or user.
6163

6264
## Troubleshooting
6365

6466
What if there are no results?
6567

6668
- Verify that you entered the cmdlet and parameter names correctly.
6769

68-
- You might have entered too many parameters, and all of the parameters on the cmdlet aren't defined in a single role. Try specifying only the cmdlet name in Step 2, and run Step 3 to verify that the cmdlet is available in your environment. Then, add parameters one at a time to Step 2 before running Step 3.
70+
- The parameters that you specified are actually available for a cmdlet in a single role. Try specifying only the cmdlet name in the first command before you run the second command. Then, add the parameters one at a time to the first command before you run the second command.
6971

70-
- These possible causes have the same solution:
72+
Otherwise, no results are likely caused by one of the following conditions:
7173

72-
- You might have entered a cmdlet or parameters that are defined in a role that isn't assigned to anyone by default.
74+
- The cmdlet or parameters are defined in a role that isn't assigned to any role groups by default.
75+
- The cmdlet or parameters aren't available in your environment. For example, you specified an Exchange Online cmdlet or Exchange Online parameters in an on-premises Exchange environment.
7376

74-
- You might have entered a cmdlet or parameter that isn't available in your environment. For example, when you enter an Exchange Online cmdlet or parameters in an on-premises Exchange 2016 environment.
77+
To find the roles in your environment (if any) that contain the cmdlet or parameters, replace `<Cmdlet>` and optionally, `<Parameter1>,<Parameter2>,...` with the values that you want to use and run the following command:
7578

76-
Run the following command to find the role that contains the cmdlet or parameters. Be sure to replace `<Cmdlet>` and optionally, `<Parameter1>,<Parameter2>,...` with the actual cmdlet and parameter names you are interested in. Note that you can use wildcard characters (*) in the cmdlet and parameter names (for example, `*-Mailbox*`).
79+
```powershell
80+
Get-ManagementRoleEntry -Identity *\<Cmdlet> [-Parameters <Parameter1>,<Parameter2>,...]
81+
```
7782

78-
```powershell
79-
Get-ManagementRoleEntry -Identity *\<Cmdlet> [-Parameters <Parameter1>,<Parameter2>,... ]
80-
```
83+
**Note**: You can use wildcard characters (*) in the cmdlet and parameter names (for example, `*-Mailbox*`).
8184

82-
- If the command returns an error saying the object couldn't be found, the cmdlet or parameters aren't available in your environment.
85+
If the command returns an error saying the object couldn't be found, the cmdlet or parameters aren't available in your environment.
8386

84-
- If the command returns one or more entries for **Name**, **Role**, and **Parameters**, the cmdlet (or parameters on the cmdlet) is available in your environment, but the required role isn't assigned to anyone. To see all roles that aren't assigned to anyone, run the following command:
87+
If the command returns results, the cmdlet or parameters are available in your environment, but the required role isn't assigned to any role groups. To find roles that aren't assigned to any role groups, run the following command:
8588

86-
```powershell
87-
$na = Get-ManagementRole ; $na | foreach {If ((Get-ManagementRoleAssignment -Role $_.Name -Delegating $false) -eq $null) {$_.Name}}
88-
```
89+
```powershell
90+
$na = Get-ManagementRole; $na | foreach {If ((Get-ManagementRoleAssignment -Role $_.Name -Delegating $false) -eq $null) {$_.Name}}
91+
```
8992

9093
## Related procedures
9194

92-
- Management role scopes define where cmdlets can operate (in particular, write scopes).
95+
### Include management role scopes
96+
97+
Management role scopes (in particular, write scopes) define where cmdlets can operate. For example, the entire organization or only on specific user objects.
98+
99+
To include scope information in the [Use PowerShell to find the permissions required to run a cmdlet](#use-powershell-to-find-the-permissions-required-to-run-a-cmdlet) output, add `*Scope*` to the second command:
100+
101+
```powershell
102+
$Perms | foreach {Get-ManagementRoleAssignment -Role $_.Name -Delegating $false | Format-List Role,RoleAssigneeType,RoleAssigneeName,*Scope*}
103+
```
104+
105+
For detailed information about management role scopes, see [Understanding management role scopes](https://docs.microsoft.com/exchange/understanding-management-role-scopes-exchange-2013-help).
106+
107+
### Find all roles assigned to a specific user
108+
109+
To see all roles that are assigned to a specific user, replace `<UserIdentity>` with the name, alias, or email address of the user and run the following command:
110+
111+
```powershell
112+
Get-ManagementRoleAssignment -RoleAssignee <UserIdentity> -Delegating $false | Format-Table -Auto Role,RoleAssigneeName,RoleAssigneeType
113+
```
93114

94-
To include scope information in Step 2, substitute the following command:
115+
For example:
95116

96-
```powershell
97-
$Perms | foreach {Get-ManagementRoleAssignment -Role $_.Name -Delegating $false | Format-List Role,RoleAssigneeType,RoleAssigneeName,*Scope*}
98-
```
117+
```powershell
118+
Get-ManagementRoleAssignment -RoleAssignee [email protected] -Delegating $false | Format-Table -Auto Role,RoleAssigneeName,RoleAssigneeType
119+
```
99120

100-
- To see all roles assigned to a specific user, run the following command:
121+
**Note**: The _RoleAssignee_ parameter returns both direct role assignments to users (uncommon) and indirect role assignments granted to the user through their membership in role groups.
101122

102-
```powershell
103-
Get-ManagementRoleAssignment -RoleAssignee <UserIdentity> -Delegating $false | Format-Table -Auto Role,RoleAssigneeName,RoleAssigneeType
104-
```
123+
### Find all users who have a specific role assigned
105124

106-
For example:
125+
To see all users who have a specific role assigned to them, replace `<Role name>` with the name of the role and run the following command:
107126

108-
```powershell
109-
Get-ManagementRoleAssignment -RoleAssignee [email protected] -Delegating $false | Format-Table -Auto Role,RoleAssigneeName,RoleAssigneeType
110-
```
127+
```powershell
128+
Get-ManagementRoleAssignment -Role "<Role name>" -GetEffectiveUsers -Delegating $false | Where-Object {$_.EffectiveUserName -ne "All Group Members"} | Format-Table -Auto EffectiveUserName,Role,RoleAssigneeName,AssignmentMethod
129+
```
111130

112-
- To see all users who are assigned a specific role, run the following command:
131+
For example:
113132

114-
```powershell
115-
Get-ManagementRoleAssignment -Role "<Role name>" -GetEffectiveUsers -Delegating $false | Where-Object {$_.EffectiveUserName -ne "All Group Members"} | Format-Table -Auto EffectiveUserName,Role,RoleAssigneeName,AssignmentMethod
116-
```
133+
```powershell
134+
Get-ManagementRoleAssignment -Role "Mailbox Import Export" -GetEffectiveUsers -Delegating $false | Where-Object {$_.EffectiveUserName -ne "All Group Members"} | Format-Table -Auto EffectiveUserName,Role,RoleAssigneeName,AssignmentMethod
135+
```
117136

118-
For example:
137+
### Find the members of a role group
119138

120-
```powershell
121-
Get-ManagementRoleAssignment -Role "Mailbox Import Export" -GetEffectiveUsers -Delegating $false | Where-Object {$_.EffectiveUserName -ne "All Group Members"} | Format-Table -Auto EffectiveUserName,Role,RoleAssigneeName,AssignmentMethod
122-
```
139+
To see the members of a specific role group, replace `<Role group name>` with the name of the role group and run the following command:
123140

124-
- To see the members of a specific role group, run the following command:
141+
```powershell
142+
Get-RoleGroupMember "<Role group name>"
143+
```
125144

126-
```powershell
127-
Get-RoleGroupMember "<Role group name>"
128-
```
145+
For example:
129146

130-
For example:
147+
```powershell
148+
Get-RoleGroupMember "Organization Management"
149+
```
131150

132-
```powershell
133-
Get-RoleGroupMember "Organization Management"
134-
```
151+
**Note**: To see the names of all available role groups, run `Get-RoleGroup`.

exchange/exchange-ps/exchange/New-MailboxImportRequest.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -482,12 +482,12 @@ Accept wildcard characters: False
482482
### -ConflictResolutionOption
483483
The ConflictResolutionOption parameter specifies what to do if there are multiple matching messages in the target. Valid values are:
484484

485-
- ForceCopy
485+
- ForceCopy (Exchange 2016 or later)
486486
- KeepAll
487487
- KeepLatestItem
488-
- KeepSourceItem (This is the default value.)
489-
- KeepTargetItem
490-
- UpdateFromSource
488+
- KeepSourceItem (This is the default value)
489+
- KeepTargetItem (Exchage 2016 or later)
490+
- UpdateFromSource (Exchange 2016 or later)
491491

492492
```yaml
493493
Type: ConflictResolutionOption

exchange/exchange-ps/exchange/New-SafeLinksPolicy.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ Accept wildcard characters: False
134134
### -DeliverMessageAfterScan
135135
The DeliverMessageAfterScan parameter specifies whether to deliver email messages only after Safe Links scanning is complete. Valid values are:
136136

137-
- $true: Wait until Safe Links scanning is complete before delivering the message.
137+
- $true: Wait until Safe Links scanning is complete before delivering the message. Messages that contain malicious links are not delivered.
138138
- $false: If Safe Links scanning can't complete, deliver the message anyway. This is the default value.
139139

140140
```yaml

exchange/exchange-ps/exchange/Set-CASMailbox.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -834,7 +834,7 @@ This parameter is available only in on-premises Exchange.
834834

835835
The MAPIBlockOutlookVersions parameter blocks access to the mailbox for specific versions of Outlook.
836836

837-
For example, if you specify the value 15.0.4569.1503, only Outlook 2013 Service Pack 1 (SP1) or later clients are allowed to access the mailbox. Earlier versions of Outlook are blocked.
837+
For example, if you specify the value 15.0.4569, only Outlook 2013 Service Pack 1 (SP1) or later clients are allowed to access the mailbox. Earlier versions of Outlook are blocked.
838838

839839
The default value is blank. To reset this parameter, use the value $null.
840840

exchange/exchange-ps/exchange/Set-SafeLinksPolicy.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ Accept wildcard characters: False
134134
### -DeliverMessageAfterScan
135135
The DeliverMessageAfterScan parameter specifies whether to deliver email messages only after Safe Links scanning is complete. Valid values are:
136136

137-
- $true: Wait until Safe Links scanning is complete before delivering the message.
137+
- $true: Wait until Safe Links scanning is complete before delivering the message. Messages that contain malicious links are not delivered.
138138
- $false: If Safe Links scanning can't complete, deliver the message anyway. This is the default value.
139139

140140
```yaml

sharepoint/sharepoint-ps/sharepoint-online/Get-SPOCrossGeoUsers.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,10 @@ Returns a single user from SharePoint Online in a multi-geo tenant and validates
5656

5757
### -ValidDataLocation
5858

59-
PARAMVALUE: $true | $false
59+
Use this parameter to validate the location of the data. The acceptable values for this parameter are:
60+
61+
- $False
62+
- $True
6063

6164
```yaml
6265
Type: Boolean

sharepoint/sharepoint-ps/sharepoint-online/Set-SPOSite.md

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -667,17 +667,14 @@ Accept wildcard characters: False
667667

668668
### -SharingDomainRestrictionMode
669669

670-
Specifies the external sharing mode for domains.
670+
Specifies the sharing mode for external domains.
671671

672-
The following values are:
672+
Possible values are:
673+
- None - Do not restrict sharing by domain
674+
- AllowList - Sharing is allowed only with external users that have account on domains specified within -SharingAllowedDomainList
675+
- BlockList - Sharing is allowed with external users in all domains except in domains specified within -SharingBlockedDomainList
673676

674-
None
675-
676-
AllowList
677-
678-
BlockList
679-
680-
For additional information about how to restrict a domain sharing, see Restricted Domains Sharing in Office 365 SharePoint Online and OneDrive for Business.
677+
For additional information about how to restrict a domain sharing, see [Restrict sharing of SharePoint and OneDrive content by domain](https://docs.microsoft.com/sharepoint/restricted-domains-sharing).
681678

682679
```yaml
683680
Type: SharingDomainRestrictionModes
@@ -729,10 +726,10 @@ The default link type for the site collection
729726

730727
PARAMVALUE: None | AnonymousAccess | Internal | Direct
731728

732-
None - Respect the organization default sharing link type
733-
AnonymousAccess - Sets the default sharing link for this site to an Anonymous Access or Anyone link
734-
Internal - Sets the default sharing link for this site to the "organization" link or company shareable link
735-
Direct - Sets the default sharing link for this site to the "Specific people" link
729+
- None - Respect the organization default sharing link type
730+
- AnonymousAccess - Sets the default sharing link for this site to an Anonymous Access or Anyone link
731+
- Internal - Sets the default sharing link for this site to the "organization" link or company shareable link
732+
- Direct - Sets the default sharing link for this site to the "Specific people" link
736733

737734
```yaml
738735
Type: SharingLinkType
@@ -772,9 +769,9 @@ The default link permission for the site collection
772769

773770
PARAMVALUE: None | View | Edit
774771

775-
None - Respect the organization default link permission
776-
View - Sets the default link permission for the site to "view" permissions
777-
Edit - Sets the default link permission for the site to "edit" permissions
772+
- None - Respect the organization default link permission
773+
- View - Sets the default link permission for the site to "view" permissions
774+
- Edit - Sets the default link permission for the site to "edit" permissions
778775

779776
```yaml
780777
Type: SharingPermissionType
@@ -794,9 +791,9 @@ Choose whether to override the anonymous or anyone link expiration policy on thi
794791

795792
PARAMVALUE: None | False | True
796793

797-
None - Respect the organization-level policy for anonymous or anyone link expiration
798-
False - Respect the organization-level policy for anonymous or anyone link expiration
799-
True - Override the organization-level policy for anonymous or anyone link expiration (can be more or less restrictive)
794+
- None - Respect the organization-level policy for anonymous or anyone link expiration
795+
- False - Respect the organization-level policy for anonymous or anyone link expiration
796+
- True - Override the organization-level policy for anonymous or anyone link expiration (can be more or less restrictive)
800797

801798
```yaml
802799
Type: Boolean

0 commit comments

Comments
 (0)