Problem Statement
Interactive Connect-ExchangeOnline can fail in some hosts due to module/assembly conflicts (e.g., when Graph/Az and EXO are used together). In practice, using -AccessToken avoids the issue, so this enhancement is low priority, but an isolated process mode would provide a robust mitigation and a clean troubleshooting option.
Proposed Solution
Add an optional provider execution mode:
ExecutionMode = InProcess (default, current behavior)
ExecutionMode = IsolatedProcess (new): run ExchangeOnline commands in a child pwsh -NoProfile -NonInteractive process.
Requirements:
- Default remains
InProcess (no breaking change).
- Request/response marshalling via JSON (STDIN/STDOUT).
- Do not pass tokens via command line arguments (avoid leakage).
- Document configuration and troubleshooting in provider docs (template-conform), with cross-reference from Troubleshooting section.
Alternatives Considered
- Keep current behavior only (use
-AccessToken externally).
- Move to direct REST/Graph calls (higher risk for future capabilities).
Impact
- Does this affect existing workflows?
- No, default is unchanged (opt-in).
- Any backward compatibility concerns?
- None expected (new optional configuration only).
Additional Context
This is a mitigation feature and can be prioritized after fixing provider prerequisites documentation + sanity checks.
Problem Statement
Interactive
Connect-ExchangeOnlinecan fail in some hosts due to module/assembly conflicts (e.g., when Graph/Az and EXO are used together). In practice, using-AccessTokenavoids the issue, so this enhancement is low priority, but an isolated process mode would provide a robust mitigation and a clean troubleshooting option.Proposed Solution
Add an optional provider execution mode:
ExecutionMode = InProcess(default, current behavior)ExecutionMode = IsolatedProcess(new): run ExchangeOnline commands in a childpwsh -NoProfile -NonInteractiveprocess.Requirements:
InProcess(no breaking change).Alternatives Considered
-AccessTokenexternally).Impact
Additional Context
This is a mitigation feature and can be prioritized after fixing provider prerequisites documentation + sanity checks.