Show-PowerPivotModel
1.0.0
Services backup (ABF) inside the ZIP member 'xl/model/item.data'. Legacy Power
BI files store the same structure in a member named 'DataModel'.
This script reads that backup and reports what is inside it:
* the backup-log header (bytes 72..4096, UTF-16, null-padded XML)
* the virtual d
Services backup (ABF) inside the ZIP member 'xl/model/item.data'. Legacy Power
BI files store the same structure in a member named 'DataModel'.
This script reads that backup and reports what is inside it:
* the backup-log header (bytes 72..4096, UTF-16, null-padded XML)
* the virtual directory, which maps storage paths to offsets and sizes
* the backup log manifest, which maps storage paths to friendly names
* a decompressed preview of one embedded file
The embedded files are compressed with 'xpress8', which is a chunked framing
around raw MS-XCA Xpress (plain LZ77, no Huffman). Windows can already decode
that: ntdll's RtlDecompressBuffer with COMPRESSION_FORMAT_XPRESS (3) takes a
raw MS-XCA buffer, which is exactly what each chunk body is.
Note that cabinet.dll's Compress/Decompress is the wrong tool here. In buffer
mode it expects its own container header; the COMPRESS_RAW flag does accept a
bare buffer, but only in block mode, where you must supply the exact original
uncompressed size and drive the blocks yourself. RtlDecompressBuffer takes the
bare buffer directly, which is why this fits in a single P/Invoke.
This is deliberately a *glimpse*. All the heavy VertiPaq work - column
segments, RLE runs, dictionaries, hash indexes - is left to pbixray
(https://github.com/Hugoberry/pbixray).
Models compressed with XPress9 are detected and reported, but not decoded;
the Windows compression APIs cannot decode XPress9. Use pbixray for those.
Windows only: it P/Invokes ntdll. Works in Windows PowerShell 5.1 and in
PowerShell 7+ on Windows.
Installation Options
Owners
Copyright
(c) 2026 Igor Cotruta. MIT License.
Package Details
Author(s)
- Igor Cotruta
Tags
PowerPivot VertiPaq PBIX PBIT Excel xlsx AnalysisServices Tabular xpress8 ABF Windows
Functions
Get-ByteRange ConvertFrom-XmlBytes Get-NodeText Expand-VertiPaqSlice Format-Preview
PSEditions
Dependencies
This script has no dependencies.
Release Notes
1.0.0 - Initial release. Lists and decompresses the embedded Analysis Services
backup files inside a Power Pivot .xlsx (or a legacy uncompressed .pbix), using
ntdll's RtlDecompressBuffer for the xpress8 chunks. No external dependencies.
FileList
- Show-PowerPivotModel.nuspec
- Show-PowerPivotModel.ps1
Version History
| Version | Downloads | Last updated |
|---|---|---|
| 1.0.0 (current version) | 4 | 8/13/2026 |