Neatbo.

Inventory Windows shortcut declarations

Read stored paths, arguments and opaque components from local LNK originals and export a complete inventory without activating shortcuts.

Browser-local processingInputSelected Windows Shell Link originalsOutputExact originals and complete declaration JSON/CSV ZIPUp to 1 MiB per file · File limit: 1000
  1. 1Add input
  2. 2Adjust settings
  3. 3Get your result

Tool input and files are processed in this browser without being uploaded.

Your input

Inputs are kept temporarily in this tab when switching tools. Refreshing or closing clears them; large results may need to be regenerated.

⌘ / Ctrl + Enter to run

or drag and drop them here

Files stay on this device. Your originals stay unchanged.

Up to 1 MiB per file · File limit: 1000

    Options

    Complete the required options first. You can keep the defaults for the rest.

    Preparing the tool…

    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

    1. Select the original LNK files; preserve a separate copy.
    2. Leave ANSI unconfirmed unless WHATWG windows-1252 is the intended decoding.
    3. Run and inspect source names, simultaneous path declarations, arguments and unresolved fields.
    4. 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