You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: exchange/docs-conceptual/find-exchange-cmdlet-permissions.md
+64-45Lines changed: 64 additions & 45 deletions
Original file line number
Diff line number
Diff line change
@@ -33,18 +33,20 @@ You can use PowerShell to find the permissions required to run any Exchange or E
33
33
34
34
## Use PowerShell to find the permissions required to run a cmdlet
35
35
36
-
1.Open the PowerShell environment where you want to run the cmdlet.
36
+
1.If you haven't already, open the Exchange PowerShell environment that you're interested in:
37
37
38
38
-**Exchange Online**: [Connect to Exchange Online PowerShell](connect-to-exchange-online-powershell.md).
39
39
40
40
-**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).
41
41
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.
42
+
2.Replace `<Cmdlet>` and optionally, `<Parameter1>,<Parameter2>,...` with the values that you want to use, and run the following command:
**Note**: If you specify multiple parameters separated by commas, only roles that include the cmdlet with **all** of the parameters are returned.
49
+
48
50
3. Run the following command:
49
51
50
52
```powershell
@@ -57,78 +59,95 @@ The results contain the following information:
57
59
58
60
-**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).
59
61
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.
62
+
-**RoleAssigneeType** and **RoleAssigneeName**: These values are inter-related:
63
+
-**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.
64
+
-**RoleAssigneeName** is the name of the role group, role assignment policy, security group, or user.
61
65
62
66
## Troubleshooting
63
67
64
68
What if there are no results?
65
69
66
70
- Verify that you entered the cmdlet and parameter names correctly.
67
71
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.
72
+
-The parameters that you specified aren't defined 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 until the command returns no results.
69
73
70
-
- These possible causes have the same solution:
74
+
Otherwise, no results are likely caused by one of the following conditions:
71
75
72
-
- You might have entered a cmdlet or parameters that are defined in a role that isn't assigned to anyone by default.
76
+
- The cmdlet or parameters are defined in a role that isn't assigned to any role group by default.
77
+
- 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.
73
78
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.
79
+
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:
75
80
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*`).
**Note**: You can use wildcard characters (*) in the cmdlet and parameter names (for example, `*-Mailbox*`).
81
86
82
-
-If the command returns an error saying the object couldn't be found, the cmdlet or parameters aren't available in your environment.
87
+
If the command returns an error saying the object couldn't be found, the cmdlet or parameters aren't available in your environment.
83
88
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:
89
+
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 see all roles that aren't assigned to any role groups, run the following command:
- Management role scopes define where cmdlets can operate (in particular, write scopes).
97
+
### Include management role scopes
98
+
99
+
Management role scopes (in particular, write scopes) define where cmdlets can operate. For example, the entire organization or only on specific user objects.
100
+
101
+
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:
For more information about management role scopes, see [Understanding management role scopes](https://docs.microsoft.com/exchange/understanding-management-role-scopes-exchange-2013-help).
108
+
109
+
### Find all roles assigned to a specific user
110
+
111
+
To see all roles assigned to a specific user, replace `<UserIdentity>` with the name, alias, or email address of the user and run the following command:
- To see all roles assigned to a specific user, run the following command:
123
+
**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.
0 commit comments