Inventory Windows shortcut declarations
Read stored paths, arguments and opaque components from local LNK originals and export a complete inventory without activating shortcuts.
- 1Add input
- 2Adjust settings
- 3Get your result
Tool input and files are processed in this browser without being uploaded.
Before you start
Select existing LNK files. Inspect all stored local and network declarations, strings, flags and ExtraData, while keeping unresolved targets explicit. Download one ZIP with exact originals and complete JSON/CSV.
How to use this tool
- Select the original LNK files; preserve a separate copy.
- Leave ANSI unconfirmed unless WHATWG windows-1252 is the intended decoding.
- Run and inspect source names, simultaneous path declarations, arguments and unresolved fields.
- Download the ZIP and inspect complete JSON/CSV and exact originals.
Supported inputs and limits
Up to 1,000 originals, each 1 MiB and combined 32 MiB. Each filename is at most 512 UTF-16 units. One malformed file refuses the whole batch.
Strict 76-byte Shell Link header; all flags, unsigned decimal FILETIME values, signed icon index and raw/effective show command are retained. Local and network LinkInfo declarations can coexist. Unicode volume, share, device, path and suffix values remain separate stored fields.
All five StringData fields are read. Ordinary fields permit up to 260 units; command arguments use the uint16 wire limit of 65,535 units. Strict UTF-16 preserves literal BOM characters; malformed strings and embedded NUL are refused.
ANSI defaults to unconfirmed: values remain null with exact raw references. Only an explicit WHATWG windows-1252 choice enables ANSI decoding. Host locale, ConsoleFE and installed Windows codepages are never guessed; other codecs are outside this release.
All 11 known ExtraData signatures are framed and required sizes/offsets checked. IDList items, Console, PropertyStore and unknown payloads remain explicitly opaque where interpretation is unsupported. Environment and installer strings are literal, without expansion or resolution.
At most 10,000 ExtraData blocks and 10,000 IDList items per file, and 100,000 structure visits across the batch. Complete compact JSON plus formula-protected CSV must fit 40 MiB. The 74 MiB ZIP cap is a dominated allocation guard, not a separately reachable supported ceiling.
The ZIP contains controlled sources/NNNN.lnk originals, shortcut-inventory.json and shortcut-map.csv. JSON keeps original names and values; CSV alone prefixes formula-leading cells. The table keeps all source rows, with cells shortened to 2,000 UTF-16 units; complete fields and every raw span remain in downloads.
No COM, Shell activation, commands, URL navigation, filesystem/network lookup, environment expansion, installed-application resolution or target existence check. resolvedTarget is always null. This is stored-declaration inventory, not a scan of your live Start Menu or anonymization.
Worked example
Example input
One 524-byte controlled shortcut with local and network declarations and literal launch arguments.
Example options
{"ansi":"windows-1252"}Example output
One source row and complete stored components, original SHA256 and raw references; no resolved target.
When something does not work
A malformed file or budget breach creates no download. Correct or remove that file, or adjust the explicit ANSI choice, and rerun. Cancellation discards partial outputs; rerun the same selected originals in a fresh Worker.
Frequently asked questions
Does the tool resolve the shortcut’s current target?
No. It reads stored components only. COM, Shell, installer, StoreApp, environment, path and existence resolution are not performed; resolvedTarget remains null.
Why can an ANSI value be null?
The original may use a system codepage unavailable from the bytes. Unconfirmed values preserve raw offsets and originals without guessing. Explicit WHATWG windows-1252 is the only supported ANSI interpretation.
Documentation & further reading
Related tools
JSON formatting workspace
Format or minify strict JSON, sort object keys, and encode or decode strings while preserving raw number tokens.
Regex tester
Try a pattern and see what it matches in your text.
Compare text
See what changed, side by side.
HTML formatter
Format HTML indentation so its structure is easier to read.