Skip to content

ExchangeOnline provider option to run in isolated pwsh -NoProfile process (mitigate module/assembly conflicts) #230

@blindzero

Description

@blindzero

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.

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions