PsExec Transport

The PsExec transport uses SMB/admin-share staging plus PsExec process execution from the admin workstation.

Endpoint Requirements

Execution Context

V1 supports current admin context and explicit system execution where policy permits it.

LocalSystem execution must be explicit through dispatch run ... --system and the selected config must set dispatch.allow_run_as_system: true. Without that config approval, Dispatch returns policy exit code 7 before planning or endpoint work. Dispatch does not silently elevate or switch contexts.

PsExec fallback is separately policy-gated. Omitted --transport and --transport auto must not implicitly select PsExec unless fallback policy is approved. Explicit --transport psexec remains the CLI opt-in. Config approval is dispatch.allow_psexec_fallback: true; inventory approval can be allow_psexec_fallback: true on defaults, group vars, host entries, or host vars where supported by the implementation. Without fallback approval, Dispatch returns policy exit code 7 before planning or endpoint work.

Current Boundaries

Common Failures

SymptomLikely cause
DNS/name resolution failureTarget name cannot resolve from the admin workstation.
Admin share inaccessibleC$ disabled, blocked, or caller lacks local admin rights.
Access deniedRights, UAC remote restrictions, EDR, or endpoint policy.
PsExec missingPsExec is not installed or not on the configured path.

Example


dispatch run ps .\Fix.ps1 --target PC001 --transport psexec
dispatch run ps .\Fix.ps1 --target PC001 --transport psexec --system