# Howard Account Cleanup - 2026-04-22

## Context

Two separate humans share the name "Howard":
- **Howard Enos** — MSP tech at Computer Guru. Accesses Cascades tenant.
- **Dax Howard** — a person who runs Cascades. Has the `dax.howard@cascadestucson.com` member mailbox.

Prior documentation (`docs/cloud/m365.md` as it existed) incorrectly mapped the AD `howard` account to Dax Howard's M365 mailbox, conflating the two identities. The G1 hygiene script executed earlier tonight populated the AD `howard` account's `proxyAddresses` / `mail` / `DisplayName` with Dax Howard's attributes — a genuine error that would have caused a duplicate / orphan at Entra Connect sync time.

## Decision (Howard Enos, 2026-04-22)

1. **Remove the external guest** `howard@azcomputerguru.com` from Cascades tenant — was redundant; MSP access preserved via `sysadmin@cascadestucson.com`.
2. **Remove the AD `howard` account** — orphan MSP-created account (desc "Home Offie" typo, PasswordNeverExpires, unused group memberships). Not in active use.
3. **Leave `dax.howard@cascadestucson.com` alone** — Dax Howard's real Cascades mailbox. Keep as-is.

## Pre-state checks (safety)

- **Global Admin role membership** (Graph): `sysadmin@cascadestucson.com` (Computer Guru Support) holds the Global Administrator role. Admin path preserved after guest removal.
- **Guest's role/group memberships** (Graph): none. Pure sign-in account with no authorization side effects.
- **AD `howard`'s group memberships** (AD): only `Domain Users` (default). No custom groups depending on it.

## Actions executed

### 1. Deleted M365 guest `howard@azcomputerguru.com`

- Tier: `user-manager` (Graph write)
- Object ID: `db2aee97-9c5d-40ce-8610-b75efc3ca906`
- UPN: `howard_azcomputerguru.com#EXT#@NETORGFT4257522.onmicrosoft.com`
- HTTP: 204 (success)
- Verify: subsequent GET returns 404 Request_ResourceNotFound
- **Soft-delete recovery window:** 30 days in Entra (`Restore-MgDirectoryDeletedItem`)

### 2. Deleted AD user `howard`

- Ran via GuruRMM on CS-SERVER (agent `6766e973-e703-47c1-be56-76950290f87c`)
- Script: `docs/migration/scripts/ad-howard-delete.ps1`
- Pre-state exported: `D:\Backups\howard-delete-2026-04-22-205158\howard-pre.xml`
- Pre-state captured:
  - SAM=howard
  - UPN=howard@cascadestucson.com
  - Display="Howard Dax" (wrong value from earlier G1 script — was correct to delete)
  - Description="Home Offie" (typo)
  - mail=dax.howard@cascadestucson.com (wrong value from G1 — was correct to delete)
  - proxyAddresses=SMTP:dax.howard@cascadestucson.com, smtp:cara.lespron@cascadestucson.com (wrong — belonged to Dax)
  - Groups: Domain Users only
- Removed via `Remove-ADUser -Identity howard -Confirm:$false`
- Verified: `Get-ADUser -Identity howard` returns "Cannot find an object"
- **AD Recycle Bin recovery window:** 180 days
- **Rollback:** `Restore-ADObject -Identity 2050d21f-7649-4033-b1fd-83cfc286b056`

### 3. Updated docs/cloud/m365.md

- Corrected the `howard | dax.howard@` mapping line (root cause of the confusion)
- Struck through the `howard@azcomputerguru.com` + `howaed@azcomputerguru.com` external guest entries (both no longer in tenant)

## Dax Howard — open questions

Dax Howard has a Cascades M365 member account (`dax.howard@cascadestucson.com`, Business Standard license, alias `cara.lespron@`) but no AD account. As of 2026-04-22, he's:

- Not on the returned staff CSV from Meredith/John (`reports/cascades-staff-2026-04-22.csv`)
- Not on the working account-setup list (`docs/cloud/cascades-staff-working-list-2026-04-22.md`)
- Has an active licensed mailbox

**Questions to ask Meredith when convenient:**
1. Who is Dax Howard? (executive / regional / legacy?)
2. Is his mailbox actively used?
3. Should he have an AD account created for hybrid identity?
4. Is the `cara.lespron@` alias still needed, or can it be removed?

Not blocking Wave 0.5 — he's cloud-only and stays that way unless an AD counterpart is added.

## Impact on Entra Connect sync plan

- AD now has 41 enabled users (was 42, howard removed).
- The earlier G1 hygiene run's wrong `proxyAddresses` / `mail` / `DisplayName` attributes on AD `howard` are gone with the account — no lingering mismatch to clean up.
- Dax Howard stays cloud-only; his M365 account will show as "Cloud Only" in Entra admin post-sync, separate from the AD-synced population. No conflict.
- No need to re-run the G1 hygiene script — the deletion is idempotent.

## Session log for future reference

Added this cleanup as a concrete lesson: **always verify identity mapping from live Graph data, not from prior doc state**, before bulk AD attribute changes. The G1 script's proxyAddresses mapping came from `docs/cloud/m365.md` which had the wrong assumption baked in. The error was caught immediately by Howard spotting the dual-identity before it reached a sync attempt.
