chore: backfill 12 recovered session logs (reviewed)

Reconstructed from local transcripts via the new recovery engine. These
were substantive sessions never saved with /save. All banner-marked
RECOVERED-UNVERIFIED. Notable recoveries: Peaceful Spirit RADIUS/VPN
buildout (full command trail), RMM agent check-in comparison, Kristen
Datto Workplace sync, Intune+Apple. guru-rmm/guru-connect-scoped logs
routed to root session-logs (submodule convention).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-01 19:12:55 -07:00
parent 1f817f5bf2
commit aa9bd26df8
12 changed files with 23303 additions and 0 deletions

View File

@@ -0,0 +1,68 @@
# [RECOVERED] Add developer@ email alias for admin@
> **[RECOVERED -- UNVERIFIED]** Auto-reconstructed from transcript 4500e953-49fe-406c-b619-03a35154efc7 (2026-05-15T23:20:09.420Z .. 2026-05-15T23:45:09.907Z) on 2026-06-01. Prose sections are Ollama-drafted from the transcript and may be imprecise; the Commands/Config/Reference sections are extracted verbatim. Review and correct, then remove this banner.
## User
- **User:** Mike Swanson (mike)
- **Machine:** GURU-5070
- **Role:** admin
## Session Summary
The session focused on adding an email alias for the "ACG Admin" distribution group in Exchange Online. Initially, the alias `developer@azcomputerguru.com` was to be added as a secondary SMTP address for the group's primary email `admin@azcomputerguru.com`. A script was used to resolve the tenant and verify the group's current state, revealing that the group was a mail-enabled distribution list managed by Exchange, not Azure AD.
The Exchange Operator service principal lacked the Exchange Administrator role, causing permission errors when attempting to modify the group's proxy addresses. The role was assigned to resolve this, enabling the alias addition. The alias was successfully added via Exchange Online, and the change was verified.
A secondary task involved searching for emails sent to the group's primary email address, which revealed an Apple Account verification email and a stalled Apple Developer enrollment. These were flagged as pending actions for the user to address.
## Key Decisions
- Use the Exchange Operator service principal to manage the distribution group alias due to its Exchange-specific capabilities.
- Assign the Exchange Administrator role to the Exchange Operator service principal to resolve permission issues.
- Add the alias via Exchange Online instead of Azure AD Graph, as the latter could not modify proxy addresses for distribution lists.
## Problems Encountered
- The Exchange Operator service principal lacked the Exchange Administrator role, causing 403 errors during proxy address modifications.
- The script initially attempted to use Azure AD Graph, which could not modify Exchange-managed distribution group settings.
- The alias addition required a full proxyAddresses replacement, which was not supported via REST in the expected format.
## Configuration Changes
_Machine-extracted verbatim from the transcript (file targets of Write/Edit/NotebookEdit)._
- none detected
## Credentials & Secrets
_Machine-extracted; review carefully -- secrets are not auto-harvested from transcripts._
- none detected (verify against the Commands & Outputs section)
## Infrastructure & Servers
_Machine-extracted verbatim (IP / hostname regex hits across the whole transcript)._
- **Hosts:** `azcomputerguru.com`, `patch-tenant-admin-manifest.sh`, `resolve-tenant.sh`, `user-breach-check.sh`, `tenant-sweep.sh`, `onboard-tenant.sh`, `get-token.sh`, `vault.sh`, `login.microsoftonline.com`, `odata.context`, `graph.microsoft.com`, `azcomputerguru.onmicrosoft.com`, `microsoft.exchange.admin.odata.core.odataserviceexception`, `microsoft.exchange.data.proxyaddresscollection`, `newtonsoft.json.linq.jproperty`, `microsoft.exchange.data.proxyaddress`, `microsoft.exchange.adminapi.commandinvocation.parametertransformationexception`, `adminapi.warnings`, `odata.type`, `outlook.office365.com`, `exchange.generichashtable`, `mail.read`, `id.apple.com`, `email.apple.com`, `identity.json`, `2026-05-15-session.md`, `sync.sh`
## Commands & Outputs
_Machine-extracted verbatim: mutating Bash/PowerShell commands with truncated output._
```
test -f D:/vault/scripts/vault.sh && echo "vault OK" || echo "vault MISSING"
```
Output: vault OK
## Pending / Incomplete Tasks
- The Apple Account verification email requires user action to complete the verification process.
- The Apple Developer enrollment HH5UA87LAH is stalled and needs identity verification.
- A full tenant onboard script for `azcomputerguru.com` was not executed, leaving potential gaps in role assignments for other MSP applications.
## Reference Information
_Machine-extracted verbatim from the whole transcript via regex. Treat as leads, not gospel; deduped._
- **Commit SHAs:** `de8d2de`
- **URLs:** https://login.microsoftonline.com/${DOMAI, https://graph.microsoft.com/v1.0/$metadata#users(displayName,userPrincipalName,mail,proxyAddresses,id, https://graph.microsoft.com/v1.0/$metadata#groups(id,displayName,mail,proxyAddresses,groupTypes,mailEnabled, https://graph.microsoft.com/v1.0/$metadata#roleManagement/directory/roleAssignments, https://graph.microsoft.com/v1.0/$metadata#roleManagement/directory/roleAssignments/$entity, https://outlook.office365.com/adminapi/beta/ce61461e-81a0-4c84-bb4a-7b354a9a356d/$metadata#Collection(Exchange.GenericHashTable

View File

@@ -0,0 +1,444 @@
# [RECOVERED] Use Intune with Apple devices
> **[RECOVERED -- UNVERIFIED]** Auto-reconstructed from transcript eca77c0f-b935-4fb5-8d8a-da3a5c230afe (2026-05-23T23:58:47.026Z .. 2026-05-24T00:21:10.410Z) on 2026-06-01. Prose sections are Ollama-drafted from the transcript and may be imprecise; the Commands/Config/Reference sections are extracted verbatim. Review and correct, then remove this banner.
## User
- **User:** Mike Swanson (mike)
- **Machine:** GURU-5070
- **Role:** admin
## Session Summary
The session focused on setting up Apple Business Manager (ABM) for integration with Microsoft Intune to manage Apple devices. The team verified the existence of an Apple ABM verification email sent to the admin@azcomputerguru.com mailbox, which was found to be non-existent. The verification email was located in the mike@azcomputerguru.com mailbox. The team then proceeded to add an alias, apple@azcomputerguru.com, to the admin@azcomputerguru.com distribution group to facilitate future communication. Despite initial issues with adding the alias, the team successfully configured the alias using the Exchange Admin API, ensuring it was recognized and functional.
## Key Decisions
- Adding `apple@azcomputerguru.com` as an alias to the `admin@azcomputerguru.com` distribution group to streamline ABM communication.
- Using the Exchange Admin API to ensure the alias was added correctly, given the initial failure with the REST endpoint.
## Problems Encountered
- The `admin@azcomputerguru.com` mailbox did not exist, requiring the team to search for alternative mailboxes.
- Initial attempts to add the alias to the distribution group failed, necessitating a switch to the Exchange Admin API for proper configuration.
- The alias was not recognized initially, prompting a re-evaluation of the request format to align with the API's expected input.
## Configuration Changes
_Machine-extracted verbatim from the transcript (file targets of Write/Edit/NotebookEdit)._
- none detected
## Credentials & Secrets
_Machine-extracted; review carefully -- secrets are not auto-harvested from transcripts._
- none detected (verify against the Commands & Outputs section)
## Infrastructure & Servers
_Machine-extracted verbatim (IP / hostname regex hits across the whole transcript)._
- **Hosts:** `business.apple.com`, `identity.apple.com`, `yourdomain.com`, `azcomputerguru.com`, `vault.sh`, `get-token.sh`, `onboard-tenant.sh`, `patch-tenant-admin-manifest.sh`, `resolve-tenant.sh`, `tenant-sweep.sh`, `user-breach-check.sh`, `schemas.xmlsoap.org`, `schemas.microsoft.com`, `graph.microsoft.com`, `azcomputerguru.onmicrosoft.com`, `outlook.office365.com`, `microsoft.exchange.admin.odata.core.odataserviceexception`, `microsoft.exchange.data.proxyaddresscollection`, `newtonsoft.json.linq.jproperty`, `microsoft.exchange.data.proxyaddress`, `microsoft.exchange.adminapi.commandinvocation.parametertransformationexception`, `adminapi.warnings`, `odata.type`, `odata.context`, `exchange.generichashtable`
## Commands & Outputs
_Machine-extracted verbatim: mutating Bash/PowerShell commands with truncated output._
```
test -f D:/vault/scripts/vault.sh && echo "vault ok" || echo "vault missing"
```
Output: vault ok
```
TOKEN=$(bash D:/claudetools/.claude/skills/remediation-tool/scripts/get-token.sh ce61461e-81a0-4c84-bb4a-7b354a9a356d investigator-exo 2>/dev/null)
# EWS FindItem - search for emails from Apple in admin mailbox
curl -s -X POST "https://outlook.office365.com/EWS/Exchange.asmx" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: text/xml; charset=utf-8" \
-d '<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"
xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages">
<soap:Header>
<t:RequestServerVersion Version="Exchange2016"/>
<t:ExchangeImpersonation>
<t:ConnectingSID>
<t:PrimarySmtpAddress>admin@azcomputerguru.com</t:PrimarySmtpAddress>
</t:ConnectingSID>
</t:ExchangeImpersonation>
</soap:Header>
<soap:Body>
<m:FindItem Traversal="Shallow">
<m:ItemShape>
<t:BaseShape>AllProperties</t:BaseShape>
</m:ItemShape>
<m:IndexedPageItemView MaxEntriesReturned="20" Offset="0" BasePoint="Beginning"/>
<m:Restriction>
<t:Or>
<t:Contains ContainmentMode="Substring" ContainmentComparison="IgnoreCase">
<t:FieldURI FieldURI="message:From"/>
<t:Constant Value="apple.com"/>
</t:Contains>
<t:Contains ContainmentMode="Substring" ContainmentComparison="IgnoreCase">
<t:FieldURI FieldURI="item:Subject"/>
<t:Constant Value="Apple Business Manager"/>
</t:Contains>
<t:Contains ContainmentMode="Substring" ContainmentComparison="IgnoreCase">
<t:FieldURI FieldURI="item:Subject"/>
<t:Constant Value="ABM"/>
</t:Contains>
<t:Contains ContainmentMode="Substring" ContainmentComparison="IgnoreCase">
<t:FieldURI FieldURI="item:Subject"/>
<t:Constant Value="business.apple.com"/>
</t:Contains>
<t:Contains ContainmentMode="Substring" ContainmentComparison="IgnoreCase">
<t:FieldURI FieldURI="item:Subject"/>
<t:Constant Value="verify"/>
</t:Contains>
</t:Or>
</m:Restriction>
<m:ParentFolderIds>
<t:DistinguishedFolderId Id="inbox"/>
</m:ParentFolderIds>
</m:FindItem>
</soap:Body>
</soap:Envelope>'
```
Output: <?xml version="1.0" encoding="utf-8"?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><s:Fault><faultcode xmlns:a="http://schemas.microsoft.com/exchange/services/2006/types">a:ErrorNonExistentMailbox</faultcode><faultstring xml:lang="en-US">The SMTP address has no mailbox ass ... [truncated]
```
TOKEN=$(bash D:/claudetools/.claude/skills/remediation-tool/scripts/get-token.sh ce61461e-81a0-4c84-bb4a-7b354a9a356d investigator-exo 2>/dev/null)
search_mailbox() {
local MAILBOX=$1
echo "=== Searching $MAILBOX ==="
curl -s -X POST "https://outlook.office365.com/EWS/Exchange.asmx" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: text/xml; charset=utf-8" \
-d "<?xml version=\"1.0\" encoding=\"utf-8\"?>
<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"
xmlns:t=\"http://schemas.microsoft.com/exchange/services/2006/types\"
xmlns:m=\"http://schemas.microsoft.com/exchange/services/2006/messages\">
<soap:Header>
<t:RequestServerVersion Version=\"Exchange2016\"/>
<t:ExchangeImpersonation>
<t:ConnectingSID>
<t:PrimarySmtpAddress>$MAILBOX</t:PrimarySmtpAddress>
</t:ConnectingSID>
</t:ExchangeImpersonation>
</soap:Header>
<soap:Body>
<m:FindItem Traversal=\"Shallow\">
<m:ItemShape>
<t:BaseShape>IdOnly</t:BaseShape>
<t:AdditionalProperties>
<t:FieldURI FieldURI=\"item:Subject\"/>
<t:FieldURI FieldURI=\"message:From\"/>
<t:FieldURI FieldURI=\"item:DateTimeReceived\"/>
</t:AdditionalProperties>
</m:ItemShape>
<m:IndexedPageItemView MaxEntriesReturned=\"10\" Offset=\"0\" BasePoint=\"Beginning\"/>
<m:Restriction>
<t:Or>
<t:Contains ContainmentMode=\"Substring\" ContainmentComparison=\"IgnoreCase\">
<t:FieldURI FieldURI=\"message:From\"/>
<t:Constant Value=\"apple.com\"/>
</t:Contains>
<t:Contains ContainmentMode=\"Substring\" ContainmentComparison=\"IgnoreCase\">
<t:FieldURI FieldURI=\"item:Subject\"/>
<t:Constant Value=\"Apple Business Manager\"/>
</t:Contains>
<t:Contains ContainmentMode=\"Substring\" ContainmentComparison=\"IgnoreCase\">
<t:FieldURI FieldURI=\"item:Subject\"/>
<t:Constant Value=\"appleid\"/>
</t:Contains>
<t:Contains ContainmentMode=\"Substring\" ContainmentComparison=\"IgnoreCase\">
<t:FieldURI FieldURI=\"item:Subject\"/>
<t:Constant Value=\"verify your\"/>
</t:Contains>
</t:Or>
</m:Restriction>
<m:ParentFolderIds>
<t:DistinguishedFolderId Id=\"inbox\"/>
</m:ParentFolderIds>
</m:FindItem>
</soap:Body>
</soap:Envelope>" | grep -oP '(?<=<t:Subject>)[^<]+|(?<=<t:From>)[^<]+|(?<=<t:DateTimeReceived>)[^<]+|ErrorNonExistentMailbox|TotalItemsInView="\K[0-9]+'
}
search_mailbox "mike@azcomputerguru.com"
search_mailbox "support@azcomputerguru.com"
```
Output: Exit code 2
=== Searching mike@azcomputerguru.com ===
grep: -P supports only unibyte and UTF-8 locales
=== Searching support@azcomputerguru.com ===
grep: -P supports only unibyte and UTF-8 locales
```
TOKEN=$(bash D:/claudetools/.claude/skills/remediation-tool/scripts/get-token.sh ce61461e-81a0-4c84-bb4a-7b354a9a356d investigator-exo 2>/dev/null)
ews_search() {
local MAILBOX=$1
echo "=== $MAILBOX ==="
curl -s -X POST "https://outlook.office365.com/EWS/Exchange.asmx" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: text/xml; charset=utf-8" \
-d "<?xml version=\"1.0\" encoding=\"utf-8\"?>
<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"
xmlns:t=\"http://schemas.microsoft.com/exchange/services/2006/types\"
xmlns:m=\"http://schemas.microsoft.com/exchange/services/2006/messages\">
<soap:Header>
<t:RequestServerVersion Version=\"Exchange2016\"/>
<t:ExchangeImpersonation>
<t:ConnectingSID>
<t:PrimarySmtpAddress>$MAILBOX</t:PrimarySmtpAddress>
</t:ConnectingSID>
</t:ExchangeImpersonation>
</soap:Header>
<soap:Body>
<m:FindItem Traversal=\"Shallow\">
<m:ItemShape>
<t:BaseShape>IdOnly</t:BaseShape>
<t:AdditionalProperties>
<t:FieldURI FieldURI=\"item:Subject\"/>
<t:FieldURI FieldURI=\"message:From\"/>
<t:FieldURI FieldURI=\"item:DateTimeReceived\"/>
</t:AdditionalProperties>
</m:ItemShape>
<m:IndexedPageItemView MaxEntriesReturned=\"10\" Offset=\"0\" BasePoint=\"Beginning\"/>
<m:Restriction>
<t:Or>
<t:Contains ContainmentMode=\"Substring\" ContainmentComparison=\"IgnoreCase\">
<t:FieldURI FieldURI=\"message:From\"/>
<t:Constant Value=\"apple.com\"/>
</t:Contains>
<t:Contains ContainmentMode=\"Substring\" ContainmentComparison=\"IgnoreCase\">
<t:FieldURI FieldURI=\"item:Subject\"/>
<t:Constant Value=\"Apple Business Manager\"/>
</t:Contains>
<t:Contains ContainmentMode=\"Substring\" ContainmentComparison=\"IgnoreCase\">
<t:FieldURI FieldURI=\"item:Subject\"/>
<t:Constant Value=\"verify your\"/>
</t:Contains>
</t:Or>
</m:Restriction>
<m:ParentFolderIds>
<t:DistinguishedFolderId Id=\"inbox\"/>
</m:ParentFolderIds>
</m:FindItem>
</soap:Body>
</soap:Envelope>" | grep -oE '<t:Subject>[^<]+</t:Subject>|<t:From>[^<]+</t:From>|<t:DateTimeReceived>[^<]+</t:DateTimeReceived>|TotalItemsInView="[0-9]+"'
}
ews_search "mike@azcomputerguru.com"
ews_search "support@azcomputerguru.com"
```
Output: === mike@azcomputerguru.com ===
TotalItemsInView="1"
<t:Subject>Verify your Apple Account email address.</t:Subject>
<t:DateTimeReceived>2026-05-24T00:09:56Z</t:DateTimeReceived>
=== support@azcomputerguru.com ===
TotalItemsInView="0"
```
EXO_TOKEN=$(bash D:/claudetools/.claude/skills/remediation-tool/scripts/get-token.sh ce61461e-81a0-4c84-bb4a-7b354a9a356d exchange-op 2>/dev/null)
# First, look up the distribution group via EXO InvokeCommand
curl -s -X POST "https://outlook.office365.com/adminapi/beta/ce61461e-81a0-4c84-bb4a-7b354a9a356d/InvokeCommand" \
-H "Authorization: Bearer $EXO_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"CmdletInput": {
"CmdletName": "Get-DistributionGroup",
"Parameters": {
"Identity": "admin@azcomputerguru.com"
}
}
}' | jq '{Name: .value[0].Name, PrimarySmtpAddress: .value[0].PrimarySmtpAddress, EmailAddresses: .value[0].EmailAddresses}'
```
Output: {
"Name": "admin@azcomputerguru.com",
"PrimarySmtpAddress": "admin@azcomputerguru.com",
"EmailAddresses": [
"smtp:developer@azcomputerguru.com",
"SMTP:admin@azcomputerguru.com",
"smtp:Sifo-Office@azcomputerguru.com",
"smtp:sifoidak@azcomputerguru.com",
"smtp:admin_a ... [truncated]
```
EXO_TOKEN=$(bash D:/claudetools/.claude/skills/remediation-tool/scripts/get-token.sh ce61461e-81a0-4c84-bb4a-7b354a9a356d exchange-op 2>/dev/null)
curl -s -X POST "https://outlook.office365.com/adminapi/beta/ce61461e-81a0-4c84-bb4a-7b354a9a356d/InvokeCommand" \
-H "Authorization: Bearer $EXO_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"CmdletInput": {
"CmdletName": "Set-DistributionGroup",
"Parameters": {
"Identity": "admin@azcomputerguru.com",
"EmailAddresses": {
"Add": ["smtp:apple@azcomputerguru.com"]
}
}
}
}' | jq '.'
```
Output: {
"error": {
"code": "BadRequest",
"message": "Invalid Operation",
"innererror": {
"message": "Invalid Operation",
"type": "Microsoft.Exchange.Admin.OData.Core.ODataServiceException",
"stacktrace": "",
"internalexception": {
"message": "Cannot p ... [truncated]
```
EXO_TOKEN=$(bash D:/claudetools/.claude/skills/remediation-tool/scripts/get-token.sh ce61461e-81a0-4c84-bb4a-7b354a9a356d exchange-op 2>/dev/null)
# Pass the full EmailAddresses array with apple@ appended
curl -s -X POST "https://outlook.office365.com/adminapi/beta/ce61461e-81a0-4c84-bb4a-7b354a9a356d/InvokeCommand" \
-H "Authorization: Bearer $EXO_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"CmdletInput": {
"CmdletName": "Set-DistributionGroup",
"Parameters": {
"Identity": "admin@azcomputerguru.com",
"EmailAddresses": [
"smtp:developer@azcomputerguru.com",
"SMTP:admin@azcomputerguru.com",
"smtp:Sifo-Office@azcomputerguru.com",
"smtp:sifoidak@azcomputerguru.com",
"smtp:admin_azcomputerguru.com@azcomputerguru.onmicrosoft.com",
"smtp:apple@azcomputerguru.com"
]
}
}
}' | jq '.'
```
Output: {
"@odata.context": "https://outlook.office365.com/adminapi/beta/ce61461e-81a0-4c84-bb4a-7b354a9a356d/$metadata#Collection(Exchange.GenericHashTable)",
"adminapi.warnings@odata.type": "#Collection(String)",
"@adminapi.warnings": [],
"value": []
}
```
EXO_TOKEN=$(bash D:/claudetools/.claude/skills/remediation-tool/scripts/get-token.sh ce61461e-81a0-4c84-bb4a-7b354a9a356d exchange-op 2>/dev/null)
# Verify the alias was added
curl -s -X POST "https://outlook.office365.com/adminapi/beta/ce61461e-81a0-4c84-bb4a-7b354a9a356d/InvokeCommand" \
-H "Authorization: Bearer $EXO_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"CmdletInput": {
"CmdletName": "Get-DistributionGroup",
"Parameters": {
"Identity": "admin@azcomputerguru.com"
}
}
}' | jq '.value[0].EmailAddresses'
```
Output: [
"smtp:developer@azcomputerguru.com",
"SMTP:admin@azcomputerguru.com",
"smtp:Sifo-Office@azcomputerguru.com",
"smtp:sifoidak@azcomputerguru.com",
"smtp:admin_azcomputerguru.com@azcomputerguru.onmicrosoft.com",
"X500:/o=First Organization/ou=Exchange Administrative Group (FYDIBOHF2 ... [truncated]
```
EXO_TOKEN=$(bash D:/claudetools/.claude/skills/remediation-tool/scripts/get-token.sh ce61461e-81a0-4c84-bb4a-7b354a9a356d exchange-op 2>/dev/null)
curl -s -X POST "https://outlook.office365.com/adminapi/beta/ce61461e-81a0-4c84-bb4a-7b354a9a356d/InvokeCommand" \
-H "Authorization: Bearer $EXO_TOKEN" \
-H "Content-Type: application/json" \
-d "{
\"CmdletInput\": {
\"CmdletName\": \"Set-DistributionGroup\",
\"Parameters\": {
\"Identity\": \"admin@azcomputerguru.com\",
\"EmailAddresses\": \"@{Add='smtp:apple@azcomputerguru.com'}\"
}
}
}" | jq '.'
```
Output: {
"error": {
"code": "BadRequest",
"message": "Invalid Operation",
"innererror": {
"message": "Invalid Operation",
"type": "Microsoft.Exchange.Admin.OData.Core.ODataServiceException",
"stacktrace": "",
"internalexception": {
"message": "Cannot p ... [truncated]
```
EXO_TOKEN=$(bash D:/claudetools/.claude/skills/remediation-tool/scripts/get-token.sh ce61461e-81a0-4c84-bb4a-7b354a9a356d exchange-op 2>/dev/null)
curl -s -X POST "https://outlook.office365.com/adminapi/beta/ce61461e-81a0-4c84-bb4a-7b354a9a356d/InvokeCommand" \
-H "Authorization: Bearer $EXO_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"CmdletInput": {
"CmdletName": "Set-DistributionGroup",
"Parameters": {
"Identity": "admin@azcomputerguru.com",
"EmailAddresses": [
"smtp:developer@azcomputerguru.com",
"SMTP:admin@azcomputerguru.com",
"smtp:Sifo-Office@azcomputerguru.com",
"smtp:sifoidak@azcomputerguru.com",
"smtp:admin_azcomputerguru.com@azcomputerguru.onmicrosoft.com",
"X500:/o=First Organization/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=3ba6a831669c4577a3badb895e16a0a8-ACG A",
"smtp:apple@azcomputerguru.com"
]
}
}
}' | jq '.'
```
Output: {