SYNERGY
Chapters

13.3What an agent can do

Last updated

The tools

The server offers 95 tools, grouped by area below. Tools that only read are marked read-only to the client; clients may run those without asking you first. Which tools an agent can actually use depends on its permissions and on whether it has read-only or read-and-write access.

Users

ToolWhat it does
SearchAdUsersSearch users with an LDAP filter, page by page
GetAdUserGet a user by object GUID
LookupAdUserFind a user's GUID from a logon name, UPN or common name
GetAdUserGroupsList the groups a user belongs to
GetAdAccountAuthorizationGroupsList every group in an account's access token (effective membership)
CreateAdUserCreate a user
UpdateAdUserUpdate a user
DeleteAdUserDelete a user
EnableAdUser / DisableAdUserEnable or disable a user account
UnlockAdUserClear a lockout
ResetAdUserPasswordReset a user's password
ChangeAdUserPasswordChange a password by supplying the current one
AssignUserToGroup / AssignUserToGroupsAdd a user to one or several groups
UnassignUserFromGroup / UnassignUserFromGroupsRemove a user from one or several groups
ClearUserGroupsRemove all of a user's group memberships

Groups

ToolWhat it does
SearchAdGroupsSearch groups with an LDAP filter
GetAdGroupGet a group by object GUID
GetAdGroupMembersList a group's members
CreateAdGroup / UpdateAdGroup / DeleteAdGroupCreate, update or delete a group
AssignMemberToGroup / UnassignMemberFromGroupAdd or remove a member
ClearGroupMembersRemove all members of a group

Computers

ToolWhat it does
SearchAdComputersSearch computers with an LDAP filter
LookupAdComputerFind a computer's GUID from its DNS host name or logon name
GetAdComputerGet a computer by object GUID
CreateAdComputer / UpdateAdComputer / DeleteAdComputerCreate, update or delete a computer account
EnableAdComputer / DisableAdComputerEnable or disable a computer account
ResetAdComputerPasswordReset a computer account's password

Accounts

ToolWhat it does
SearchAdAccountsByStateFind user or computer accounts that are locked out, disabled, expired, inactive and so on
SetAdUserAccountExpirationSet or clear a user account's expiry date
SetAdComputerAccountExpirationSet or clear a computer account's expiry date

Organizational units

ToolWhat it does
SearchAdOusSearch organizational units
GetAdOuGet an organizational unit by object GUID
CreateAdOu / UpdateAdOu / DeleteAdOuCreate, update or delete an organizational unit
GetAdOuAccountStatePlanPreview enabling or disabling the accounts in an organizational unit, without changing anything
EnableAdOuAccounts / DisableAdOuAccountsEnable or disable the accounts in an organizational unit, as one batch of at most 100 accounts

Any directory object

ToolWhat it does
SearchAdObjectsSearch any objects by LDAP filter and object class
LookupAdObjectByDnFind any object from its distinguished name
GetAdObjectGet any object by object GUID
CreateAdObject / UpdateAdObject / DeleteAdObjectCreate, update or delete a generic object
MoveAdObjectMove an object to another container
RenameAdObjectRename an object

Password policies

ToolWhat it does
GetAdDefaultPasswordPolicy / UpdateAdDefaultPasswordPolicyRead or change the default domain password policy
GetAdFineGrainedPasswordPolicies / GetAdFineGrainedPasswordPolicyList fine-grained password policies, or read one
CreateAdFineGrainedPasswordPolicy / UpdateAdFineGrainedPasswordPolicy / DeleteAdFineGrainedPasswordPolicyCreate, replace or delete a fine-grained password policy
GetAdPasswordPolicySubjectsList who a fine-grained policy applies to
AddAdPasswordPolicySubjects / RemoveAdPasswordPolicySubjectsApply a fine-grained policy to users or groups, or stop applying it
GetAdUserResultantPasswordPolicyShow the policy that actually governs a user, and when their password expires

Security and delegation

ToolWhat it does
GetAdObjectAclRead an object's decoded access control list
ListAdDelegationTemplatesList the named delegation templates
GetAdObjectDelegationsShow which delegation templates are present on a container
ApplyAdDelegation / RevokeAdDelegationDelegate control of a container to a trustee with a template, or remove it
SetAdOrganizationUnitDeletionProtectionProtect an organizational unit from accidental deletion, or allow its deletion
GetAdSpns / SetAdSpnsRead or replace the service principal names on a user or computer

Service accounts

ToolWhat it does
ListAdServiceAccounts / GetAdServiceAccountList managed and group managed service accounts, or read one
CheckAdKdsRootKeyReadinessCheck whether the forest can host a group managed service account
CreateAdServiceAccount / UpdateAdServiceAccountCreate or update a service account
GetAdServiceAccountPasswordRetrievalPrincipals / SetAdServiceAccountPasswordRetrievalPrincipalsRead or replace who may retrieve a group managed service account's password
GetAdComputerServiceAccountsList the standalone managed service accounts linked to a computer

Domain and forest information

ToolWhat it does
GetAdDirectoryContextEverything below in one call
GetAdDomain / GetAdForest / GetAdRootDseDomain, forest and RootDSE details
GetAdDomainControllersDomain controllers, their sites and roles
GetAdTrustsDomain trusts and their properties
GetAdSites / GetAdSubnets / GetAdSiteLinksReplication sites, subnets and site links
GetAdOptionalFeaturesOptional features, such as the Active Directory Recycle Bin
GetAdKdsRootKeysKey Distribution Service root keys

Saved searches and operations

ToolWhat it does
SearchBySavedSearchRun a saved LDAP filter by its GUID (see Chapter 8, Saved LDAP filters)
GetAdOperationStatusFollow up on a change that was queued for approval

The exact list and wording an agent sees is on the MCP Tools screen. Some capabilities are deliberately not offered to agents at all, for example the REST API's multi-object batch requests, raw access control entry editing and approving operations.

When a change waits for approval

When an agent's change has to wait for a person, the tool does not perform it. Instead it answers with a pending result such as:

json
{
  "status": "pendingApproval",
  "code": "Operation.ApprovalRequired",
  "operationId": "8d1f6c2e-4b5a-4e8f-9a37-0c2d5e6f7a81",
  "displayName": "Delete User",
  "expiresAt": "2026-10-04T09:30:00Z",
  "canApprove": false,
  "reason": "Level",
  "reasonDetail": "This agent asks before destructive and security changes.",
  "message": "… Nothing has been changed yet. Do not call this tool again for the same change: call GetAdOperationStatus with this operationId …"
}

What the fields mean:

  • operationId — the handle for the queued operation.
  • reason and reasonDetail — why it is waiting: a protected target (ProtectedTarget), an operation pinned to always ask agents (Pinned), the agent's supervision level (Level), or an unusual number of recent destructive changes by the same credential (Volume). They call for different answers — wait, change the request, or ask an administrator about the agent's level.
  • canApprove — whether the person the agent acts for may approve it. If they may, and may also open the operations log, an approvalUrl links to the operation in the console, where they sign in and decide. The agent itself can never approve.

There is deliberately no success field: the change neither failed nor succeeded yet, and retrying would put a second request in front of the approver.

The agent follows up with GetAdOperationStatus and the operationId. Its status is WaitingToApprove until somebody decides, then Success, Rejected, Cancelled (the requester withdrew it) or Failed (which includes a request that expired undecided). Once the change has run, a result block names the object it affected; for a create, result.entityId is the new object's GUID. An agent can only read the status of operations its own person requested. The tool needs operations:waiting:list.

Approvers see the queued operation, the agent's name and the reason in the operations log and in their notifications (see Chapter 9, Operations log, approvals and waiting operations).

Your connected agents

Every person can see and disconnect the agents they connected.

  1. Open My profile from the menu under your name (the page is at /dashboard/profile).
  2. Go to the Connected agents section.

Your connected agents in the profile Each agent shows its access (Read only or Read and write), the role and directory you chose, when it was connected, when it was last used and when it expires. Select Disconnect to stop an agent; it stops on its next request. You can connect it again at any time from the agent.

Last updated

Did this page help you?