Files
claudetools/wiki/clients/sif-oidak.md
Howard Enos d9f877661e wiki(sif-oidak): correct identity model, add printer + onboarding runbook
Sif-oidak was documented as a hybrid AD/M365 environment. It is not: there is no
Entra Connect on either DC, no AD object carries msDS-ConsistencyGuid, and every
M365 user has onPremisesSyncEnabled=null. AD and M365 are disjoint, and email is a
third system entirely (sifoidak.com at GoDaddy; the O365_BUSINESS SKU carries the
EXCHANGE_S_FOUNDATION no-mailbox stub).

That mismatch caused a real failure: Dwayne Ortega had a cloud account only, so he
could not log in to a domain-joined workstation. Created his AD account and recorded
the two-account onboarding rule.

Also documented: printer error 740 (Point-and-Print driver install needs admin,
UAC prompt never surfaces), a GPO pushing the MX-6240N queue from the wrong server,
SIF-SERVER2 confirmed as a backup DC, and refreshed stale laptop agent UUIDs.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-09 20:16:04 -07:00

24 KiB

type, name, display_name, last_compiled, compiled_by, sources, backlinks
type name display_name last_compiled compiled_by sources backlinks
client sif-oidak Sif-oidak District - Tohono O'odham Nation 2026-07-09 HOWARD-HOME/claude-main
clients/sif-oidak/session-logs/2026-05-28-session.md
clients/sif-oidak/session-logs/2026-06-03-session.md
live GuruRMM + Graph investigation 2026-07-09 (dortega AD account creation)

Sif-oidak District — Tohono O'odham Nation

Overview

  • Organization type: Tribal government / district — Sif-oidak District of the Tohono O'odham Nation
  • Contract type: Per-incident (no prepaid block documented)
  • Billing rate: $150/hr remote labor
  • Syncro customer ID: 7694718
  • Primary contact: Deanna Cruz — deanna.cruz@tonation-nsn.gov
  • Environment: NOT hybrid — two independent, unsynced identity systems: an on-premises AD domain (SifOidak.local) and a separate M365 cloud tenant. There is no Entra Connect / AD Connect anywhere (verified 2026-07-09 on both SIF-SERVER and SIF-SERVER2). See Identity model.
  • M365 onboarding: Completed 2026-06-03; all four ACG MSP apps consented, roles assigned

Contacts

Name Role / Notes
Deanna Cruz Primary contact (Syncro record); email: deanna.cruz@tonation-nsn.gov
Joshua Albert End user; jalbert.sod@sifoidak.onmicrosoft.com; domain account: jalbert
Dwayne Ortega End user; Dortega.sod@sifoidak.onmicrosoft.com; new account created 2026-06-03

Identity model (READ BEFORE TOUCHING ANY ACCOUNT)

Sif-oidak runs two separate identity systems with no synchronization between them. A user needs a distinct account in each, and their passwords are independent.

On-prem AD M365 cloud
Directory SifOidak.local sifoidak.onmicrosoft.com
UPN shape jalbert@SifOidak.local jalbert.sod@sifoidak.onmicrosoft.com
Used for Windows workstation sign-in Email / Office / Teams
Password reset via Set-ADAccountPassword on SIF-SERVER Graph API

Verified 2026-07-09: no ADSync service and no "Azure AD Connect" uninstall entry on either SIF-SERVER or SIF-SERVER2; no AD user carries an msDS-ConsistencyGuid; every M365 user has onPremisesSyncEnabled: null. The two directories are genuinely disjoint.

Consequences — these are the traps:

  • Workstations are domain-joined ONLY (dsregcmd: DomainJoined: YES, AzureAdJoined: NO). M365 credentials cannot sign in to a Sif-oidak machine. Creating a cloud user does not give anyone a workstation login.
  • Resetting the M365 password does nothing for a machine login, and vice versa. When a user says "I can't log in," first establish which system — Windows sign-in screen = AD; Outlook/Teams prompt = M365.
  • Onboarding a new employee requires two account creations, not one.

Actually THREE systems — email is not in M365 either

System Directory Used for
On-prem AD SifOidak.local Windows workstation sign-in
M365 cloud sifoidak.onmicrosoft.com Office apps + OneDrive sign-in (no mailbox)
Email sifoidak.com @ GoDaddy Mail (MX -> smtp.secureserver.net)

The M365 SKU is O365_BUSINESS (Microsoft 365 Apps for business). Its Exchange entitlement is EXCHANGE_S_FOUNDATION — the no-mailbox stub. Verified 2026-07-09: all 12 users have mail: null and zero proxyAddresses. There are no Exchange Online mailboxes in this tenant. Mail lives at GoDaddy and is not managed through M365.

Do not confuse "username" with "email" here. Every M365 user's username (UPN) is ...@sifoidak.onmicrosoft.com. Their email address is ...@sifoidak.com at GoDaddy. Both statements are simultaneously true.

USER ONBOARDING RUNBOOK (Mike's standing instruction, 2026-07-09)

Creating a new Sif-oidak user requires creating accounts in BOTH systems. Never just one.

  1. On-prem AD account — on SIF-SERVER, New-ADUser into OU=Domain Users,DC=SifOidak,DC=local, SamAccountName = first-initial + surname, UPN <sam>@SifOidak.local, Domain Users group, temp password with -ChangePasswordAtLogon $true. Verify pwdLastSet=0 on both DCs. (Without this the user cannot log in to their machine at all — see the 2026-07-09 history entry.)
  2. M365 account — Graph user + usageLocation: US before license assignment, then assign O365_BUSINESS. Watch for seat auto-expansion.
  3. Email account — provisioned at GoDaddy on sifoidak.com, not in M365.
  4. Vault every credential (clients/sif-oidak/ad-users.sops.yaml), never paste it into a ticket.

Username convention — no onmicrosoft.com (REQUESTED, BLOCKED)

Mike's requirement (2026-07-09): M365 usernames must not contain onmicrosoft.com.

This is currently impossible. sifoidak.onmicrosoft.com is the tenant's only verified domain (isInitial: true, isDefault: true); no custom domain has been added. A UPN can only use a verified domain. To satisfy the requirement:

  1. Add sifoidak.com as a custom domain in Entra, verify it via a DNS TXT record.
    • The domain is registered at GoDaddy (ns19/ns20.domaincontrol.com). ACG has no GoDaddy credentials for Sif-oidak in the vault — client/registrar access is needed first.
    • Add it without enabling the Exchange service so the existing MX -> secureserver.net GoDaddy mail flow is not disturbed.
  2. Set the new domain as default, then rename UPNs to <user>@sifoidak.com.
  3. Renaming a UPN breaks existing Office sign-ins — users must sign in again. Schedule it and notify them; do not do it silently.

Existing UPNs are also inconsistent — most are <initial><surname>.sod@, but m.allen@ and marcella.enos@ differ. Settle a single convention as part of this change.

AD naming conventions (match these)

  • SamAccountName = first initial + surname (jalbert, dortega, dcruz, drodriguez)
  • CN = full display name (CN=Dwayne Ortega)
  • Container = OU=Domain Users,DC=SifOidak,DC=local (a real OU, not the default CN=Users)
  • UPN suffix = @SifOidak.local (the only suffix in the forest)
  • Departmental groups exist (e.g. AssistancePrograms Group) — do not add a new user to one without asking; Domain Users alone is the safe default.

AD password policy (weak — note for any hardening discussion)

MinPasswordLength: 6, ComplexityEnabled: False, MaxPasswordAge: ~42 days.

Infrastructure

On-Premises Servers

Host Role Domain GuruRMM Agent ID Status (last seen)
SIF-SERVER Primary Domain Controller SifOidak.local def9fdbb-020b-498d-9d3b-edf5912ba298 Online (2026-07-09)
SIF-SERVER2 Backup Domain Controller (DomainRole: 4, confirmed 2026-07-09) SifOidak.local 944b0c4b-048d-44b8-85e5-40da135f58d6 Online (2026-07-09)
Sif-Laptop554 Endpoint — Joshua Albert's (jalbert profile, active console session) SifOidak.local 9e5016f0-e330-4d24-ab01-67cf4e55d46b Online (2026-07-09)
Sif-Laptop555 Endpoint — likely Dwayne Ortega's (unconfirmed) SifOidak.local 1be314d5-0395-4b1c-aa26-3b4a96bd2e22 Offline (2026-07-09)

Laptop agent UUIDs changed between 2026-05-28 and 2026-07-09 (agents re-enrolled). Always resolve hostname → UUID live via rmm-search.sh -c sif-oidak; never reuse a UUID from this table.

Sif-Laptop554 local accounts: Localadmin and Sif (both enabled); Administrator/Guest disabled. Profiles present: jalbert, guru, Sif, Localadmin. Local creds are vaulted at clients/sif-oidak/laptops.sops.yaml.

  • Domain: SifOidak.local
  • SIF-SERVER = PDC (DomainRole: 5); SIF-SERVER2 = backup DC (DomainRole: 4). Both confirmed 2026-07-09.
  • Two DCs means a workstation may authenticate against either. After any AD write, verify the change is present on both (Get-ADUser <u> -Server localhost on each) before telling a user to try again.

Network

  • Internal network details not documented
  • No firewall, IP ranges, or ISP information recorded

M365 Tenant

Field Value
Tenant domain sifoidak.onmicrosoft.com
Tenant ID 568eb763-3b95-4271-8443-530c74b1c6bb
License SKU O365 Business (cdd28e44-67e3-425e-be4c-737fab2899d3)
Seat count 11/11 (auto-expanded from 10 on 2026-06-03 when Dortega was licensed)
CIPP status NOT in CIPP as of 2026-06-03 — GDAP/Partner Center relationship needed

ACG MSP App Principals (consented 2026-06-03 via onboard-tenant.sh)

App Service Principal OID Roles Assigned
Tenant Admin 3cc1f0b3-6cc0-4dc3-ac8c-ac0ed94c5341 Conditional Access Administrator
User Manager 011b990a-c787-4af1-b4d5-606a5461f2e5 User Administrator, Authentication Administrator
Security Investigator 4b42e8e7-615d-4d67-8edf-a4166f1fd179 Exchange Administrator (2 Graph permissions pending — see Open Items)
Exchange Operator 0d51ec52-0070-4073-98c6-2c8eb3caa8b5 Exchange Administrator
  • Onboarding required Tenant Admin app consent first, then onboard-tenant.sh to programmatically consent remaining apps and assign roles
  • User Manager was accidentally consented first; script handled the already-present SP gracefully
  • Two Graph permission grants failed on Security Investigator (df021288 User.Read.All, b0afded3 AuditLog.Read.All) — Graph replication timing; non-blocking
https://login.microsoftonline.com/sifoidak.onmicrosoft.com/adminconsent?client_id=709e6eed-0711-4875-9c44-2d3518c47063&redirect_uri=https://azcomputerguru.com&prompt=consent

Known Users / Accounts

Joshua Albert

Field Value
UPN jalbert.sod@sifoidak.onmicrosoft.com
M365 user ID 55f77ce1-20fc-44b1-a7c7-2fa42b348b76
AD account jalbert (domain: SifOidak.local)
License O365 Business — already assigned prior to 2026-06-03
Password policy PasswordNeverExpires was TRUE; cleared 2026-05-28 (was prerequisite for must-change flag; not restored)

2026-05-28 — AD password reset: Password reset to Temp1234! via Set-ADAccountPassword on SIF-SERVER using GuruRMM remote PowerShell. Must-change flag initially applied then reversed per Mike's revised requirement. PasswordNeverExpires was cleared and NOT restored — improved security posture.

2026-06-03 — M365 password reset: Password reset to user-chosen value Albert#2015 via Graph API PATCH. forceChangePasswordNextSignIn: false (Howard explicitly stated user chose the password).

Dwayne Ortega

Has BOTH accounts as of 2026-07-09. They are unrelated and have independent passwords.

Field M365 cloud On-prem AD
Identifier Dortega.sod@sifoidak.onmicrosoft.com dortega / dortega@SifOidak.local
Object ID / DN 014c1df6-444b-4502-9239-15c3ff935887 CN=Dwayne Ortega,OU=Domain Users,DC=SifOidak,DC=local
Created 2026-06-03 2026-07-09
License O365 Business n/a
Groups Domain Users only
Password reset 2026-07-09T20:33:05Z (by someone other than this session) temp, must change at next logon (pwdLastSet=0)
Credential location not vaulted clients/sif-oidak/ad-users.sops.yaml

M365 user created 2026-06-03: usage location set to US before license assignment (Graph API requirement); license assignment triggered seat auto-expansion from 10 to 11.

AD account created 2026-07-09 to resolve "cannot log in to his machine" — he had a cloud identity only, and the workstations are domain-joined with no Entra join, so no M365 credential could ever have signed him in. See History.

On-Premises Active Directory

  • Domain: SifOidak.local
  • Primary DC: SIF-SERVER (GuruRMM agent ID: def9fdbb-020b-498d-9d3b-edf5912ba298)
  • Confirmed AD cmdlets available: Get-ADUser, Set-ADAccountPassword, Set-ADUser
  • Execution context: NT AUTHORITY\SYSTEM (via GuruRMM remote PowerShell)
  • Password complexity: Standard AD complexity (upper, lower, digit, special char required — Temp1234! meets requirements)
  • jalbert PasswordNeverExpires: Was $true prior to 2026-05-28; cleared and not restored

AD Management Notes

  • Set-ADUser -PasswordNeverExpires $false -ChangePasswordAtLogon $true fails in a single call — AD rejects both flags simultaneously. Use two sequential calls.
  • Set-ADUser -ChangePasswordAtLogon $true may fail even after clearing PasswordNeverExpires in the same command string (possible replication delay). Use net user <user> /logonpasswordchg:yes /domain instead — more reliable.
  • ADSI path with single quotes inside double-quoted JSON strings causes PowerShell parse errors in GuruRMM command payloads. Use DirectorySearcher with double-quoted ADSI path for AD verification.

Printing

Print queues are shared off the domain controllers (not a dedicated print server). All ports point at 192.168.0.99.

Share Host Driver
\\SIF-SERVER\SHARP UD3 PCL6 SIF-SERVER SHARP UD3 PCL6
\\SIF-SERVER\SHARP MX-6070V PCL6 SIF-SERVER SHARP MX-6070V PCL6
\\SIF-SERVER2\SHARP MX-6240N PCL6 SIF-SERVER2 SHARP MX-6240N PCL6

Adding a shared printer requires local admin (error 740)

Symptom: a standard user adds \\SIF-SERVER\SHARP UD3 PCL6 and gets error 740 (ERROR_ELEVATION_REQUIRED). Microsoft-Windows-PrintService/Admin event 600 logs Error code= 800702e4 (0x2E4 = 740) — "failed to import the printer driver ... from \\sif-server\print$\x64\PCC\sv0emenu.inf_amd64_...cab". The event text blames the digital signature; that is a red herring — 0x800702e4 is purely an elevation failure.

Cause: post-KB5005652 (PrintNightmare hardening), RestrictDriverInstallationToAdministrators defaults to 1 — only administrators may install a print driver via Point and Print. The value is absent from the registry on Sif endpoints, so the restrictive default applies. Standard users (e.g. jalbert) are not local admins; local admins are Administrator, Localadmin, and SIFOIDAK\Domain Admins.

In practice the UAC prompt for the driver install does not surface to the user, so it reads as a bare error rather than a permission request (confirmed by Howard 2026-07-09).

Fix: install the printer with admin rights — supply Localadmin credentials at the UAC prompt, or install it for the user. Once the driver is in the local driver store, subsequent connections work.

Do NOT "fix" this by setting RestrictDriverInstallationToAdministrators=0. That re-opens the PrintNightmare (CVE-2021-34527) remote-code-execution class of bug for every user on the machine. Preferred non-interactive alternative: add a per-machine connection as SYSTEM via GuruRMM (rundll32 printui.dll,PrintUIEntry /ga /n"\\SIF-SERVER\<share>" + spooler restart), which installs the driver under an admin context without weakening the policy.

Known defect — GPO pushes a printer from the wrong server

Sif-Laptop554 logs event 513: Group Policy was unable to add per computer connection \\SIF-SERVER\SHARP MX-6240N PCL6. Error code 0x709. The MX-6240N is shared on SIF-SERVER2, not SIF-SERVER, so the GPO path is wrong. Correct the GPO to \\SIF-SERVER2\SHARP MX-6240N PCL6 (or re-share the queue on SIF-SERVER). Unresolved as of 2026-07-09.

Syncro

Field Value
Customer ID 7694718
Customer name Sif-oidak District - Tohono O'odham Nation
Billing rate $150/hr remote

Tickets

Ticket Date Summary Status
#32341 2026-05-28 jalbert domain password reset via GuruRMM Invoiced ($75.00, 0.5h)
#32380 2026-06-03 M365 onboarding, Joshua Albert license/password, Dwayne Ortega new user Created, assigned to Howard

Vault

  • On-prem credentials: clients/sif-oidak/laptops.sops.yaml — local admin / standard user creds for Sif-Laptop554/555
  • M365 admin credentials: NOT vaulted — no shared admin credentials recorded for this tenant

Patterns / Notes

  • "Cannot log in" is ambiguous at this client — disambiguate FIRST. Because AD and M365 are unsynced, the same complaint has two unrelated root causes. Ask (or check) whether the failure is at the Windows sign-in screen (AD) or in an Office app (M365) before touching a password. On 2026-07-09 Dwayne Ortega's cloud password had already been reset the same day, which did nothing for his machine login because he had no AD account at all.
  • Creating an M365 user does NOT create a workstation login. New-hire onboarding here needs two account creations. This is the single easiest mistake to make at Sif-oidak.
  • Tenant identification was non-obvious: Initial attempt used toua.net (Tohono O'odham Nation parent org) before Mike confirmed the correct tenant is sifoidak.onmicrosoft.com. Always use the client's specific subdomain, not the tribal parent. The Syncro primary contact (deanna.cruz@tonation-nsn.gov) uses the parent org domain — that does not indicate the correct M365 tenant.
  • ACG MSP app onboarding order matters: Tenant Admin must be consented first. onboard-tenant.sh then handles all other app SPs and role assignments. Do not skip directly to User Manager or Exchange Operator.
  • Seat auto-expansion accepted without manual purchase: Microsoft 365 auto-expanded from 10 to 11 seats when Dortega's license was assigned. No manual action required in the moment, but billing implications should be verified with client if they have a fixed-seat contract.
  • Graph permission replication timing: Two Security Investigator Graph permissions failed immediately after SP creation — standard replication lag. Re-run onboard-tenant.sh sifoidak.onmicrosoft.com to backfill. Non-blocking for user management operations.
  • Two DCs, not one: SIF-SERVER (PDC) and SIF-SERVER2 (backup DC). Any assumption of a single DC is wrong; confirm AD writes replicated to both before declaring a fix done.
  • PasswordNeverExpires cleared on jalbert: Pre-2026-05-28 state was PasswordNeverExpires = $true. This was cleared as a prerequisite for must-change and was not restored at Mike's direction. If this account is a service account or has special policy exemption, re-enabling may be needed — confirm at next contact.
  • Client not yet in CIPP: Tenant is onboarded into ACG MSP apps but has no GDAP / Partner Center delegated admin relationship. For full MSP visibility and CIPP inclusion, a Partner Center delegated admin request is needed.

Open Items

  • Still outstanding (re-confirmed 2026-07-09): re-run onboard-tenant.sh sifoidak.onmicrosoft.com to backfill 2 missing Security Investigator Graph permissions (User.Read.All, AuditLog.Read.All). A signInActivity query on 2026-07-09 still 403s with "does not have required Microsoft Graph permission(s): AuditLog.Read.All" — so sign-in history is currently unreadable for this tenant.
  • Confirm which laptop is actually Dwayne Ortega's (Sif-Laptop555 assumed, was offline 2026-07-09) and verify he can sign in + complete the forced password change
  • Obtain GoDaddy/registrar access for sifoidak.com — prerequisite for removing onmicrosoft.com from M365 usernames (needs a DNS TXT verification record). Vault it once obtained.
  • Add sifoidak.com as a verified Entra domain (no Exchange service, to protect GoDaddy mail flow), then rename UPNs; notify users, sign-ins will break
  • Settle one UPN convention (m.allen@ and marcella.enos@ deviate from <initial><surname>.sod@)
  • Fix GPO printer path: it pushes \\SIF-SERVER\SHARP MX-6240N PCL6, but that queue is shared on SIF-SERVER2 (event 513, error 0x709)
  • Consider whether AD password policy should be hardened (currently min length 6, complexity OFF)
  • Decide whether Dwayne needs AssistancePrograms Group membership (jalbert has it; Dwayne created with Domain Users only)
  • Add clients/sif-oidak/m365-admin.sops.yaml if client shares admin credentials with ACG
  • Determine if jalbert's PasswordNeverExpires should be restored (was cleared 2026-05-28)
  • Consider GDAP / Partner Center delegated admin relationship to get tenant into CIPP

History

2026-05-28 — jalbert AD password reset (GuruRMM)

Howard requested a remote password reset for domain user jalbert (Joshua Albert) on SIF-SERVER. ACG used GuruRMM remote PowerShell (no RDP). SIF-SERVER confirmed online (agent def9fdbb), execution context NT AUTHORITY\SYSTEM. Password reset to Temp1234! via Set-ADAccountPassword. Must-change flag applied then reversed per Mike's direction. PasswordNeverExpires cleared and not restored. Syncro ticket #32341 created, 0.5h billed at $150/hr ($75.00), invoice #1650451827.

2026-06-03 — M365 tenant onboarding + user provisioning

Howard initiated via Discord requesting an O365 license for Joshua Albert. Tenant sifoidak.onmicrosoft.com was not in CIPP and had no ACG MSP app consent. Tenant identified by Mike after toua.net was tried first (wrong). Onboarded via admin consent + onboard-tenant.sh: Tenant Admin, User Manager, Security Investigator, and Exchange Operator all consented; directory roles assigned. Joshua Albert found to already have O365 Business license. Password reset to user-chosen value Albert#2015. New user Dwayne Ortega created (Dortega.sod@sifoidak.onmicrosoft.com), usage location set to US, O365 Business license assigned — tenant auto-expanded 10 → 11 seats. Syncro ticket #32380 created, assigned to Howard.

2026-07-09 — Dwayne Ortega could not log in to his machine; root cause = no AD account

Howard reported Dwayne Ortega could not log in to his machine. Investigation via GuruRMM found no on-prem AD account matching ortega/dwayne among the 71 domain users — he existed only as an M365 cloud user (created 2026-06-03). dsregcmd on Sif-Laptop554 confirmed the workstations are DomainJoined: YES / AzureAdJoined: NO, so an M365 credential can never authenticate a Windows sign-in here. Neither SIF-SERVER nor SIF-SERVER2 has any Entra Connect / ADSync component, and no AD object carries an msDS-ConsistencyGuid — the directories are fully disjoint, correcting this article's prior "hybrid" description. His cloud password had been reset earlier the same day (lastPasswordChangeDateTime: 2026-07-09T20:33:05Z), which could not have fixed a machine login.

Fix: created AD user dortega (CN=Dwayne Ortega, OU=Domain Users) on SIF-SERVER via GuruRMM -EncodedCommand dispatch, enabled, Domain Users only, matching the client's first-initial+surname convention. Set a temp password with ChangePasswordAtLogon; verified pwdLastSet=0. Temp credential vaulted to clients/sif-oidak/ad-users.sops.yaml (never posted to chat/ticket). Laptop agent UUIDs found stale in this article and corrected.

2026-07-09 — jalbert could not add the SHARP UD3 printer (error 740)

Joshua Albert hit error 740 (ERROR_ELEVATION_REQUIRED) adding \\SIF-SERVER\SHARP UD3 PCL6. PrintService/Admin event 600 confirmed Error code= 800702e4 on three attempts. Root cause: the post-KB5005652 default RestrictDriverInstallationToAdministrators=1 blocks non-admin print-driver installs, and the UAC prompt for the driver install never surfaced to the user, so it presented as a bare error. Howard installed the printer himself with admin rights; no remote change was made. Investigation also surfaced a GPO pushing the MX-6240N queue from the wrong server (event 513).

Also established this session: the tenant has no Exchange mailboxes (O365_BUSINESS = Apps-for-business, EXCHANGE_S_FOUNDATION stub; all users mail: null, no proxyAddresses), and email for sifoidak.com is hosted at GoDaddy. Mike set a standing rule that new Sif-oidak users get both an AD account and an M365 account, and that usernames should drop onmicrosoft.com — the latter is blocked on adding+verifying sifoidak.com as a custom Entra domain (registrar access required). See the Onboarding Runbook.

  • (none yet)