S2DCartographer

0.1.0-preview2

Storage Spaces Direct analysis, visualization, and reporting for Azure Local and Windows Server clusters. Inventories physical disks, storage pools, and volumes; computes capacity waterfalls with TiB/TB dual display; generates HTML dashboards, Word documents, PDFs, and Excel workbooks with publication-quality diagrams.

Minimum PowerShell version

7.0

This is a prerelease version of S2DCartographer.

Installation Options

Copy and Paste the following command to install this package using PowerShellGet More Info

Install-Module -Name S2DCartographer -RequiredVersion 0.1.0-preview2 -AllowPrerelease

Copy and Paste the following command to install this package using Microsoft.PowerShell.PSResourceGet More Info

Install-PSResource -Name S2DCartographer -Version 0.1.0-preview2 -Prerelease

You can deploy this package directly to Azure Automation. Note that deploying packages with dependencies will deploy all the dependencies to Azure Automation. Learn More

Manually download the .nupkg file to your system's default download location. Note that the file won't be unpacked, and won't include any dependencies. Learn More

Owners

Copyright

(c) 2026 Hybrid Cloud Solutions. All rights reserved.

Package Details

Author(s)

  • Azure Local Cloud

Tags

S2D StorageSpacesDirect AzureLocal AzureStackHCI Storage HCI HyperConverged Reporting Visualization Capacity CapacityPlanning PowerShell

Functions

Connect-S2DCluster Disconnect-S2DCluster Get-S2DPhysicalDiskInventory ConvertTo-S2DCapacity

PSEditions

Core

Dependencies

This module has no dependencies.

Release Notes

## v0.1.0-preview2 — Bug fix: non-domain-joined connectivity

### Bug Fixes
- Fixed Connect-S2DCluster failing on non-domain-joined management machines.
 S2D validation now uses Get-StoragePool via CIM instead of Get-ClusterS2D,
 which required the local FailoverClusters RSAT module.
- Fixed cluster node discovery to use MSCluster_Node CIM class via remote
 session instead of Get-ClusterNode (also requires local RSAT).

## v0.1.0-preview1 — Foundation preview

Phase 1 foundation: S2DCapacity class, ConvertTo-S2DCapacity,
Connect-S2DCluster, Disconnect-S2DCluster, and Get-S2DPhysicalDiskInventory.

FileList

  • S2DCartographer.nuspec
  • .git\COMMIT_EDITMSG
  • .git\HEAD
  • .git\config
  • .git\description
  • .git\hooks\applypatch-msg.sample
  • .git\hooks\commit-msg.sample
  • .git\hooks\fsmonitor-watchman.sample
  • .git\hooks\post-update.sample
  • .git\hooks\pre-applypatch.sample
  • .git\hooks\pre-commit.sample
  • .git\hooks\pre-merge-commit.sample
  • .git\hooks\pre-push.sample
  • .git\hooks\pre-rebase.sample
  • .git\hooks\pre-receive.sample
  • .git\hooks\prepare-commit-msg.sample
  • .git\hooks\push-to-checkout.sample
  • .git\hooks\sendemail-validate.sample
  • .git\hooks\update.sample
  • .git\index
  • .git\info\exclude
  • .git\logs\HEAD
  • .git\logs\refs\heads\main
  • .git\logs\refs\remotes\origin\main
  • .git\objects\02\1ff562a4420bcd53c82fed61bc19f971f78b69
  • .git\objects\02\c094b3e0fb45ef97d135f0d83a368c95a9b13d
  • .git\objects\06\3734ba9d6c68697c6c68a929b0e8f372d6071d
  • .git\objects\06\b3bb79c188d1c2877bcea70d29ab9e839d09dc
  • .git\objects\07\ed7cc6ad959e18bbf3472be62ee406e6ffb408
  • .git\objects\09\eff5e00d8fadae58bf264958d2389ad671c1a1
  • .git\objects\0c\246ce501df5d7e46c32451e5bc78c2fe6a292b
  • .git\objects\0d\940b4e447711ba502498079cfa7d111ead9159
  • .git\objects\15\4519b436ec9d67bc853d30c830271234f78e54
  • .git\objects\16\f62fd0bd71417b536686903f29650123543701
  • .git\objects\17\099e052941dfe0eb4c4d33b4bd6bdfd140791e
  • .git\objects\19\8556f01ed2e96908f4a671cd42b5ecb74b800c
  • .git\objects\19\e3d2f3c39fd2bf80185eef880c3c50b7a6c0f2
  • .git\objects\19\ee168e1a18d72cb49aeeffc1247eefce9c6908
  • .git\objects\1a\ec5b0f6da466ed1a9747100100de55b9efcb9d
  • .git\objects\1b\52901f5c3341a1b87fc06c9f38d9cf2469abaf
  • .git\objects\1b\80263243b16c83769fce2de6d8c1f4e4b72bae
  • .git\objects\1b\9bd3a16f944549f9e3b839ca4c7d460e0ab80f
  • .git\objects\1c\0fb9bd8139f72f17777e8bf88f903fdba6f58e
  • .git\objects\20\3dd9801ccc25811d61fa7c9695d622d720c30f
  • .git\objects\21\0bac34c1e827e93accea38b84214a6f5dfbdd7
  • .git\objects\26\b35a2fd978e0502f19eda268749b03466b004d
  • .git\objects\28\b463ada447729242b412aa84ea57c5a73a735d
  • .git\objects\2d\d9aa35920af49be70e7c070c5738e6538039c9
  • .git\objects\30\0cedf4c5260d7ce5e42a4e34f6a771f9e552d3
  • .git\objects\30\ecc217fa447ecb2ab535e5592e22c33118a506
  • .git\objects\30\f01ca3211991b4eb2c0b646d4fb1e82d06b090
  • .git\objects\31\778caee6a830cbe0c19c9add8d03c5432ba9aa
  • .git\objects\32\dafc2c17410876e9cc4a66facb801433ebffa6
  • .git\objects\33\e049272dbf1f044c4a53da0a6f74303f5bfb53
  • .git\objects\34\7a3d30bbc1855cd3eb910ea0425a3ab4e8bb5b
  • .git\objects\34\ffbb5efce3ada7539dedcc03685219208dadf4
  • .git\objects\38\83037f50c99a57f8a06fe76e3c0e4ccaa21a08
  • .git\objects\3d\11b7e977d7239fbac48ab07be596ff3fa94ea6
  • .git\objects\3d\3960e15ae3cca53dd5e87798a2b42472d29898
  • .git\objects\3e\b6571c23bd1c86dbe3c873080b459de5d6d781
  • .git\objects\43\1790f63a66d434d2e0d96b840d4e24b64c8209
  • .git\objects\46\15c99544785679becd55c096478b03b7b4ba04
  • .git\objects\46\43be49c2da599fb061875f9caa26e54cf86284
  • .git\objects\46\6df71c83b8a7e33fc928e10a3b357954ff91b3
  • .git\objects\47\0de6b50b44c43f2a079aeaebcbfe229962d1e0
  • .git\objects\49\28f6805140fc23bf50d959ab2f8505ebcb5296
  • .git\objects\4a\5593987d4177932ac2605f8f9ff54b3d9b3f82
  • .git\objects\4b\4da142eb7efcdafdfa8d50cbcd2d56ca027a9c
  • .git\objects\4c\5c2f6cc2c246b76fac1a24669e11cb29e82fb6
  • .git\objects\50\748374d0db3e225013025e8588dd4c28eb0567
  • .git\objects\50\f5b7b4400d9462b7f15ffe4d201a205737c3c9
  • .git\objects\51\db413d81774e362ba57627c401bcda2c317788
  • .git\objects\54\d41f33ca0ad1a6ef1de2714ed993def4d07194
  • .git\objects\55\89253f8edd4d4c521a2a60c013356f1c23765f
  • .git\objects\56\04a9bc0d546f435e5f29fabc030b06204bf791
  • .git\objects\5d\78dfed4f8a8ade511972254a461d35ffe70191
  • .git\objects\5d\a31ddbb81a8f41e6ba94ee0cf9527690e47db6
  • .git\objects\5f\7ce0c3b6ad6d0d42eea60b096b68eb978e0d70
  • .git\objects\65\236e9b01a19786ef55b3b304cfe04e4639c1dd
  • .git\objects\66\694e5d268a982ce35c0401ae6356ffda4973b7
  • .git\objects\6d\7a697e48a2b35d1c6cf7b038eeec14faec045c
  • .git\objects\6d\af6dcb7f8338eeae2a9ab81666240368e7c7d2
  • .git\objects\71\3ebeab878986cec537bf007a2cf5da07478d54
  • .git\objects\71\f016255410b7b38fd75f71bc91de29baef450e
  • .git\objects\74\21a1b70ccf12144b03fd6d5d0fa479b95a0d0b
  • .git\objects\74\fd6f89c57b391faffc014a5fe388e061ed6e50
  • .git\objects\77\0e763dfa3596a5ca6930b66dd241c1b78f0cf3
  • .git\objects\77\ed5aad8ed294369b8be7531af88db9c30b1f77
  • .git\objects\78\77444784863b2ebed81e1e0507a69fa13af43b
  • .git\objects\79\76a4c124a41b435f50a847859ea6011a161615
  • .git\objects\7a\eb7379ee2659d57257b6bf6eede8f102780334
  • .git\objects\7c\a9854346c28b26d36fcfa7d55cbe635c941db0
  • .git\objects\7d\19a923eafd4c6ce28618ef40b6d27979e37d5a
  • .git\objects\7f\6ab775d96cb29050f243b13fa1fcb41110b20a
  • .git\objects\83\414e0a35807d447723f79aa1274a52c3a3aa3e
  • .git\objects\88\3e7e310675d66213bae948450caa96dbbe9591
  • .git\objects\8a\10045a1d194a3045598065ff623f21b7902537
  • .git\objects\8b\172bf68c5f7d68f51a7737bd579b770a5fab14
  • .git\objects\8c\a1a9c2563db866233a162291e54c31bdf06978
  • .git\objects\8d\49c5c17017cc5967da464ff09ca2e6c48d71b9
  • .git\objects\8d\523001c288b3d4200b0445a1fd6714d1bcb5ef
  • .git\objects\8d\702e650f1b064cd28358b67e719c4cddeefee1
  • .git\objects\8f\4abf9e09b0c3f4c7912f1959be00baf52c768e
  • .git\objects\90\c985340d9f83f3573c011fef804f2d8f040649
  • .git\objects\91\8d4085c6454d36d2344afabbaae49f04d7b15e
  • .git\objects\93\70ff7e49f42ec7e7c225e7693a9fc51852b1a6
  • .git\objects\93\9ddb2bf0a443236cf263c1c1041d73185d435d
  • .git\objects\94\7012825423e8cf990b7ecddf965d660af1c157
  • .git\objects\97\03411d7e2900758a4b4c39507279b02a4236e3
  • .git\objects\9c\cecd18255247eea28ff6b22b47c5ea9043670e
  • .git\objects\9d\379a7dbf74276dcbbb2839754b7482f5acf8ac
  • .git\objects\9e\2abd7a2b54ce79416c98a942469105d24e5c9c
  • .git\objects\a1\e8289764a4b389597001abeef6a544fce60ecc
  • .git\objects\a1\f93513745d98225a9a97d276ad7a0f499bbe9a
  • .git\objects\a4\58f17e840310fd06561a60cfd7fc01690e6adb
  • .git\objects\a4\6233e44b4210becb5e3c32eecffdba7870e57c
  • .git\objects\a4\a106495d114142eea67a1521b92a4d2d711f33
  • .git\objects\a6\460402b5cc5f757c1d3f7e4e682733d548866c
  • .git\objects\a9\029704e577d1266d3788ab825e73785a6428e8
  • .git\objects\aa\9d8fd9d8612610a6072bf50b8b8791c407cd99
  • .git\objects\ae\a81e0b5d21efddd029d9df8fd43e77f0711a6f
  • .git\objects\ae\f563b4169bbb356f746e6a9afbed1bbd4a7ddd
  • .git\objects\af\3691e31489bcebe05b7a8e29cc33c65602c199
  • .git\objects\af\4cc06149b4dec700f123700ea5a4184ac727e4
  • .git\objects\af\be2941460db538a8a3fda32b6c5773316c3c18
  • .git\objects\af\d9eb81735b8318ac4121411ff10052ea7d7e19
  • .git\objects\b1\2fc59745ed57aae4b2be75fe8b6efe88d0b821
  • .git\objects\b3\f712c1ced683a04e8e74a44b32a102124cc4dd
  • .git\objects\b5\a4b653e22c38e2eb8bfdb144c68d3d416a50a2
  • .git\objects\b6\94445db20f3f15c8e339f45ae3c2c13b191ffd
  • .git\objects\bd\aaebde91312bb22157141e994f867b90bffcdd
  • .git\objects\bf\3f0609d93da7843e207d6c5193156cff5eda07
  • .git\objects\bf\7625290ce6f6c8a640ee1536d6d43d3e744e69
  • .git\objects\bf\cf9caf5d4a253043367ef2505b9f665a6e8fdc
  • .git\objects\c1\ca87cc7b27954c1e68b92e8c1aa1c8e73b0112
  • .git\objects\c2\722443684551068cdcbce2f96199caa840fa6c
  • .git\objects\c2\91569bd06aba063f23abd90b2166d77707f68c
  • .git\objects\c3\5d419435ddf389f5d339faf567cf35bd718fe5
  • .git\objects\c7\38baa9e34179678a2dd704d38d51f63ea32c12
  • .git\objects\ca\79573e13521c9a6806d6973a3b0ac8ca4ded78
  • .git\objects\cc\0ae6935ece5b34f2dd76ccb16a14309a855164
  • .git\objects\cc\9568fde0c57edf2f2cc36de0aa9f550265a9bb
  • .git\objects\ce\d3f9c56dbe4d6645dca3107e6b7a97cf62f96a
  • .git\objects\cf\957c44ed9d0d47bc1eccca1d1f6cb94bf32ef2
  • .git\objects\d0\98ba6b88f388b68335dfcf20f8add7dc5fe4d1
  • .git\objects\d0\c2d17d06d068a2a33dffc8f89ad75ce6effc60
  • .git\objects\d1\d7d0aebe1eb6e2f171bdfb4b74c0f252c30739
  • .git\objects\d3\f445abcfc319d4acd7635ee8c7c375810e00df
  • .git\objects\d5\5b2b255862850a5c4ef5ff5c06cfb6f06ad585
  • .git\objects\d5\5e7597a82e28169a916bb68ad8a2a34195833f
  • .git\objects\d5\64d0bc3dd917926892c55e3706cc116d5b165e
  • .git\objects\d6\103b48140a2ddc8d202fcd31c1e36386373519
  • .git\objects\d8\41d7d8e3604aa3491855b8b05666a239e1865f
  • .git\objects\de\d13e1806ed9934874492175a899276c7ebfb31
  • .git\objects\e0\9033a92b31be62c100165b9fc7e93ce7a9212b
  • .git\objects\e1\253df951a30578b242b3231687735110683ecc
  • .git\objects\e2\813492ebc27ab9bcdc4d38b95c4acb0ca204e0
  • .git\objects\e6\069ce5cc7fa247a195f6c6efa69b8bda8bb793
  • .git\objects\e6\9de29bb2d1d6434b8b29ae775ad8c2e48c5391
  • .git\objects\e6\f9a594acbf8f9256a2c7bf8fe67240bf56e951
  • .git\objects\e8\93a4c77e9551a63496f11a1d4d34ebb2820fb1
  • .git\objects\eb\979eed3787a162c19d8b9e450cec115b9ebce5
  • .git\objects\ed\0d73e3e074e23d8db51b45f85d4c6d01de0acd
  • .git\objects\ed\830ee5ce2657eb3116089d9f9658acfbaa1586
  • .git\objects\ed\bc690768b0357dcff0ca07a1b51f26f0fa27cb
  • .git\objects\f0\eae2478c2e13bbd2814e5866b45769416d0286
  • .git\objects\f0\f992ac3800b4b874d8e33ceafd666cec09f358
  • .git\objects\f1\008bf924f59884ff7bbfabe7d8218e057e7651
  • .git\objects\f1\51efa6d1f4e587c34419924970eb194a063fbf
  • .git\objects\f1\6811af6a23e22573b3cb70edb54afa964ebb49
  • .git\objects\f1\c2585c8bfb13fdca7fab8c4efa55b8732c66d7
  • .git\objects\f2\3939b6450e299fce04f0c14561b85ec0096723
  • .git\objects\f2\46b101e0cbb8f067a85acd86fad68d4543a1fd
  • .git\objects\f5\2a36974ddf36a4033a0383715373111520ad15
  • .git\objects\f6\24e921da2cb5884c96bad041e5f1ac85b68e87
  • .git\objects\fb\e42d7e2ca33ee479eb8129fcb637d319465d9a
  • .git\objects\fe\01b74cde3cbf8151af74f46596e38a4f12c7cb
  • .git\refs\heads\main
  • .git\refs\remotes\origin\main
  • .github\CODEOWNERS
  • .github\ISSUE_TEMPLATE\bug_report.yml
  • .github\ISSUE_TEMPLATE\config.yml
  • .github\ISSUE_TEMPLATE\feature_request.yml
  • .github\ISSUE_TEMPLATE\trailhead_milestone_gate.md
  • .github\PULL_REQUEST_TEMPLATE.md
  • .github\workflows\add-to-project.yml
  • .github\workflows\deploy-docs.yml
  • .github\workflows\publish-psgallery.yml
  • .github\workflows\release-please.yml
  • .github\workflows\validate-repo-structure.yml
  • .github\workflows\validate.yml
  • .release-please-manifest.json
  • CHANGELOG.md
  • CONTRIBUTING.md
  • LICENSE
  • Modules\Classes\S2DCapacity.ps1
  • Modules\Private\Get-S2DReserveCalculation.ps1
  • Modules\Private\Get-S2DResiliencyEfficiency.ps1
  • Modules\Private\Resolve-S2DSession.ps1
  • Modules\Public\Connect-S2DCluster.ps1
  • Modules\Public\ConvertTo-S2DCapacity.ps1
  • Modules\Public\Disconnect-S2DCluster.ps1
  • Modules\Public\Get-S2DCacheTierInfo.ps1
  • Modules\Public\Get-S2DCapacityWaterfall.ps1
  • Modules\Public\Get-S2DHealthStatus.ps1
  • Modules\Public\Get-S2DPhysicalDiskInventory.ps1
  • Modules\Public\Get-S2DStoragePoolInfo.ps1
  • Modules\Public\Get-S2DVolumeMap.ps1
  • Modules\Public\Invoke-S2DCartographer.ps1
  • Modules\Public\New-S2DDiagram.ps1
  • Modules\Public\New-S2DReport.ps1
  • README.md
  • S2DCartographer.psd1
  • S2DCartographer.psm1
  • azurelocal-S2DCartographer.code-workspace
  • docs\assets\images\s2dcartographer-banner.svg
  • docs\assets\images\s2dcartographer-icon.svg
  • docs\capacity-math.md
  • docs\changelog.md
  • docs\collectors.md
  • docs\diagrams.md
  • docs\getting-started.md
  • docs\index.md
  • docs\reports.md
  • docs\tib-vs-tb.md
  • mkdocs.yml
  • release-please-config.json
  • repo-management\README.md
  • repo-management\automation.md
  • repo-management\plans\plan.md
  • repo-management\setup.md
  • tests\README.md
  • tests\maproom\Fixtures\16node-enterprise.json
  • tests\maproom\Fixtures\2node-allnvme.json
  • tests\maproom\Fixtures\2node-overcommitted.json
  • tests\maproom\Fixtures\3node-insufficient-reserve.json
  • tests\maproom\Fixtures\3node-mixed-tier.json
  • tests\maproom\Fixtures\4node-3way-mirror.json
  • tests\maproom\Fixtures\4node-mixed-resiliency.json
  • tests\maproom\Fixtures\single-node.json
  • tests\maproom\README.md
  • tests\maproom\docs\maproom-guide.md
  • tests\maproom\scripts\New-S2DFixtures.ps1
  • tests\maproom\scripts\New-S2DSyntheticCluster.ps1
  • tests\maproom\scripts\Test-S2DFromSyntheticCluster.ps1
  • tests\maproom\unit\ConvertTo-S2DCapacity.Tests.ps1
  • tests\maproom\unit\Get-S2DReserveCalculation.Tests.ps1
  • tests\maproom\unit\Get-S2DResiliencyEfficiency.Tests.ps1
  • tests\trailhead\README.md
  • tests\trailhead\field-testing.md
  • tests\trailhead\scripts\New-S2DCartographerFieldTestCycle.ps1
  • tests\trailhead\scripts\Start-TrailheadRun.ps1
  • tests\trailhead\scripts\TrailheadLog-Helpers.ps1

Version History

Version Downloads Last updated
1.0.2 5 4/11/2026
1.0.1 4 4/11/2026
1.0.0 4 4/11/2026
0.1.0-preview2 (current version) 2 4/10/2026
0.1.0-preview1 4 4/10/2026