Repository navigation
Releases: mardahl/Exchange-SOA-Manager
Releases · mardahl/Exchange-SOA-Manager
Release list
v1.5.10
Immutable
release. Only release title and notes can be modified.
Changed
- Mailbox loading requests Exchange Online pages of up to 100 entries and
shows received counts as worker output arrives. The mailbox list remains
unavailable until retrieval succeeds; background cancellation is retained. - Groups tab lists mail-enabled groups only (distribution lists and
mail-enabled security groups). Plain security groups are out of scope for
an Exchange-focused SOA tool; filter ismailEnabled eq trueon both
Graph queries (and the enumeration fallback).
v1.5.9
Fixed
- False failure when converting contacts/groups to cloud-managed.
PATCH .../onPremisesSyncBehaviorreturns 204 No Content, so the Graph worker'sokenvelope carried novaluekey. Reading$obj.valueinInvoke-GraphWorkerthrewPropertyNotFoundExceptionunderSet-StrictMode -Version 2.0, marking the conversion as failed even though Graph had already applied the change. Response value is now read viaGet-PropSafe, returning$nullfor bodyless responses.
v1.5.8
Immutable
release. Only release title and notes can be modified.
Fixed
PropertyNotFoundException: StdErrLinescrash on worker startup.
Follow-up to 1.5.6: theStdErrLinesqueue key was assigned dynamically
but never added to the$script:GraphWorkerstate hashtable, so the first
Stop-GraphWorkercall threw underSet-StrictMode -Version 2.0.
v1.5.7
Immutable
release. Only release title and notes can be modified.
Fixed
- Graph sign-in failed with
A window handle must be configuredon
Windows. The worker child process was started with
CreateNoWindow = $true, leaving it without a console window. MSAL's WAM
broker (enabled by default on Windows) resolves its parent window handle
fromGetConsoleWindow(), which returns null without a console, so
Connect-MgGraphthrewAuthenticationFailedExceptionbefore sign-in
could even start. The worker now shares the parent's console
(CreateNoWindow = $false), giving WAM a valid handle.
v1.5.6
Immutable
release. Only release title and notes can be modified.
Fixed
- Worker startup failures were invisible without
-DebugLog. The stderr
drain only wrote to the debug log, so a Graph worker that died before
signalling readiness reported the bareGraph worker exited before signalling readiness.with no cause. Drained stderr lines now also land in
a thread-safe queue, and the thrown error includes the worker's stderr text
and process exit code.
v1.5.5
Immutable
release. Only release title and notes can be modified.
Fixed
- Graph connection crashed with
Cannot find an overload for "Run" and the argument count: "2"on Windows PowerShell 5.1. The stderr drain used
Task.Run(Action, state), an overload that does not exist on .NET
Framework 4.x. Scriptblocks onTask.Runalso fail because threadpool
threads have no default runspace. The drain now runs in a dedicated
[PowerShell]runspace, which works identically on 5.1 and 7.
v1.5.4
Immutable
release. Only release title and notes can be modified.
Fixed
- Graph connection crashed with
PropertyNotFoundException: StdErrTask.
UnderSet-StrictMode -Version 2.0, reading a missing hashtable key throws.
$script:GraphWorkerwas initialised without theStdErrTaskkey (added in
1.5.3), so the firstStop-GraphWorkercleanup call inside
Start-GraphWorkerfailed before the key was ever assigned. The key is now
part of the initial state hashtable.
v1.5.3
Immutable
release. Only release title and notes can be modified.
Fixed
- Graph connection failed with
Invalid JSON primitive: WARNINGafter
Exchange module loaded. AfterExchangeOnlineManagementwas imported in
the parent process, warning text leaked onto the Graph worker's stdout
channel, breaking the JSON envelope protocol (ConvertFrom-Jsonfailed on
WARNING.). The worker now prefixes every envelope withSOA::and sends
warnings/verbose/info to stderr; the parent drains stderr into the debug
log and skips non-envelope stdout lines, so worker diagnostics are visible
and the protocol stays clean.
v1.5.2: fix: false FAILED on mailbox conversion from Set-Mailbox output leak
Immutable
release. Only release title and notes can be modified.
Fixed
- Mailbox conversions reported a false
FAILEDwith a blank message.
ExchangeOnlineManagement3.10.0'sSet-Mailbox -IsExchangeCloudManaged
emits an object on success. That output leaked intoConvert-MailboxSoa's
return value, turning the result hashtable into anObject[]; the pipeline
then readOk/Msgas empty and logged
FAILED converting '<name>' (<id>):with no message and no error detail,
even though the SOA change was applied. TheSet-Mailboxcall is now wrapped
in[void](...)so success output can no longer pollute the return value.
v1.5.1
Immutable
release. Only release title and notes can be modified.
Fixed
-DebugLogswitch had no effect. In a top-level.ps1script the
-DebugLogparameter and$script:DebugLogare the same variable;
src/00-globals.ps1's own default ($script:DebugLog = $false, dot-sourced
after the parameter binds) silently reset it back to false regardless of
what was passed on the command line, so DEBUG-level logging never
activated. The switch's value is now captured before the dot-source loop
runs and applied afterward.