Reference
Arcane.users.list()
Lists supported local users plus the platform username policy and accounts the Provisioner must not convert.
This focused page is derived from the mechanically checked full member inventory.
Syntax
Arcane.users.list()
Parameters
None
Return value
Promise<{users, policy, protectedUsernames}>
Description
Lists supported local users plus the platform username policy and accounts the Provisioner must not convert.
Overview
Arcane.users.list() returns local accounts that use the exact Arcane shell or
have a protected Arcane recovery record. It requires users.manage, an
application of type provisioner, and a Core host. It is a read and emits no
operation event. On Microsoft NT an elevated read can temporarily load and
unload a signed-out profile to verify both protected shell bindings; it does not
persistently change the account.
Result
The exact top-level result is {users, policy, protectedUsernames}. policy is
exactly {platform, minimumLength, maximumLength, description, example}.
protectedUsernames contains accounts the Provisioner must not convert.
Every users record contains host account and shell observations plus the
Arcane recovery fields managedByArcane, createdByArcane, passwordStatus,
provisionedAt, passwordChangedAt, prior-shell values and presence flags,
recorded binding/security metadata, canRestoreShell,
restoreRequiresElevatedVerification, shellMutationPhase,
shellRecoveryPrepared, accountMutationPhase, and activationRequired.
Microsoft NT records include username, sid, enabled, profile, shell,
both policy and legacy shell values/presence flags, shellAssigned,
shellBindingVersion, assignmentMode, verification, and source. Linux
records include username, optional uid, enabled, profile, shell,
shellAssigned, verification, and source. Nullable or recorded-only values
must remain unknown; do not coerce them to false.
Errors and recovery
METHOD_NOT_ALLOWED means this is not the admitted Provisioner. Host account,
profile, registry, passwd, or recovery-record failures should be surfaced with
their diagnostic. Refresh only after resolving the cause; do not drop a
recorded-only entry, because it may represent an interrupted transaction that
needs recovery.
Example
const result = await Arcane.users.list();
for (const user of result.users) {
console.log(
user.username,
user.shellAssigned,
user.activationRequired,
user.verification
);
}