> For the complete documentation index, see [llms.txt](https://docs.realmjoin.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.realmjoin.com/automation/runbooks/runbook-references/group/general/add-or-remove-user.md).

# Add Or Remove User

### Description

This runbook adds a user to a group or removes a user from a group. It supports Microsoft Entra ID groups and Exchange Online distribution or mail-enabled security groups. Use the Remove switch to remove the user instead of adding the user.

### Location

Group → General → Add Or Remove User

**Full Runbook name**

rjgit-group\_general\_add-or-remove-user

### Details

| Property         | Value                              |
| ---------------- | ---------------------------------- |
| Version          | 1.0.1                              |
| Required modules | RealmJoin.RunbookHelper (>= 0.8.9) |
| Schedulable      | no                                 |

### Permissions

#### Application permissions

* **Type**: Microsoft Graph
  * User.Read.All
    * *Resolves the target user before adding or removing the membership*
  * Group.ReadWrite.All
    * *Reads the target group and backs the member changes*
  * GroupMember.ReadWrite.All
    * *Checks membership and adds or removes the user via /groups/{id}/members/$ref*
* **Type**: Office 365 Exchange Online
  * Exchange.ManageAsApp *(optional — feature: Mail-enabled groups)*
    * *Manages members via the Exchange Online distribution group cmdlets*

#### RBAC roles

* Exchange Administrator
  * *Required for the app-only Exchange Online session managing distribution group members*

### Parameters

#### GroupID

Object ID of the target group.

| Property         | Value                                  |
| ---------------- | -------------------------------------- |
| Required         | true                                   |
| Default Value    |                                        |
| Type             | String                                 |
| Hidden in portal | yes (preset via runbook customization) |

#### UserId

Object ID of the user to add or remove.

| Property      | Value  |
| ------------- | ------ |
| Required      | true   |
| Default Value |        |
| Type          | String |

#### Remove

"Add User to Group" (final value: $false) or "Remove User from Group" (final value: $true) can be selected as action to perform. If set to true, the runbook will remove the user from the group. If set to false, it will add the user to the group.

| Property            | Value              |
| ------------------- | ------------------ |
| Required            | false              |
| Default Value       | False              |
| Type                | Boolean            |
| Portal display name | Add or Remove User |

**Portal options**

| Portal option         | Value |
| --------------------- | ----- |
| Add User as member    | false |
| Remove User as member | true  |

[Back to Runbook Reference overview](/automation/runbooks/runbook-references.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.realmjoin.com/automation/runbooks/runbook-references/group/general/add-or-remove-user.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
