PywerView gives you full control over how results are presented. The default mode prints human-readableDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/the-useless-one/pywerview/llms.txt
Use this file to discover all available pages before exploring further.
key: value pairs that are easy to scan in a terminal, while the --json flag switches to structured JSON output that carries command metadata alongside results — making it straightforward to pipe into jq, save to files, or feed into downstream tooling. Both modes are available on every subcommand. Understanding the output structure and the logging system helps you get the most out of PywerView whether you are doing interactive enumeration or scripting automated workflows.
Default Text Output
Without any flags, PywerView prints each returned Active Directory object as a block ofkey: value lines. Multiple objects are separated by blank lines.
--full-data), every LDAP attribute is printed on its own line:
JSON Output
Add--json to any command to switch to machine-readable output. The JSON envelope includes a cmd block with the submodule name, all parsed arguments, and ISO-format start and end timestamps — giving you a complete audit trail of exactly what was queried and when.
JSON Structure
results array contains one entry per returned AD object. Each entry is produced by calling .to_json() on the underlying object, so attribute names match their LDAP counterparts exactly.
Logging Levels
The-l / --logging-level flag controls the verbosity of diagnostic messages written to stderr. Results always go to stdout, so piping works regardless of logging level.
| Level | Description |
|---|---|
CRITICAL | Only critical errors are shown. (default) |
WARNING | Warnings plus critical errors. |
DEBUG | Verbose internal operations — connection setup, LDAP filter construction, response parsing. |
ULTRA | Extremely verbose. Shows raw LDAP queries and low-level impacket/ldap3 activity. |
The
ULTRA logging level is extremely verbose and is intended only for deep debugging sessions. It exposes raw LDAP queries, packet-level activity from ldap3, and internal state from impacket. Use it when you need to diagnose an unexpected result or a connection failure — not during normal enumeration, as the output volume makes results difficult to read.Pipeline Integration
Extract Specific Fields with jq
Save Results to File
starting_time and ending_time inside the cmd block, saved files retain full provenance — you always know when the data was collected and which arguments produced it.