Invoke-S2DCartographer¶
Full orchestrated S2D analysis run: connect, collect, analyze, and report.
Synopsis¶
Runs the complete S2DCartographer pipeline in a single call:
- Connect to the cluster (
Connect-S2DCluster) - Collect all data — physical disks, pool, volumes, cache tier
- Compute the 7-stage capacity waterfall
- Run all 11 health checks
- Generate requested report formats (HTML, Word, PDF, Excel, JSON, CSV)
- Generate SVG diagrams (if
-IncludeDiagrams) - Disconnect from the cluster
Output files are written to a per-run subfolder:
A session log is written to the same folder capturing each collection step, warnings, and final output paths.
Syntax¶
By cluster name (domain credential):
Invoke-S2DCartographer
-ClusterName <string>
[-Credential <PSCredential>]
[-Authentication <string>]
[-OutputDirectory <string>]
[-Format <string[]>]
[-IncludeNonPoolDisks]
[-IncludeDiagrams]
[-PrimaryUnit <string>]
[-SkipHealthChecks]
[-Author <string>]
[-Company <string>]
[-PassThru]
By cluster name (Azure Key Vault credential):
Invoke-S2DCartographer
-ClusterName <string>
-KeyVaultName <string>
-SecretName <string>
[-Username <string>]
[-OutputDirectory <string>]
[-Format <string[]>]
[-IncludeNonPoolDisks]
[-IncludeDiagrams]
[-PrimaryUnit <string>]
[-SkipHealthChecks]
[-Author <string>]
[-Company <string>]
[-PassThru]
By existing CimSession:
Invoke-S2DCartographer
-CimSession <CimSession>
[-OutputDirectory <string>]
[-Format <string[]>]
[-IncludeNonPoolDisks]
[-IncludeDiagrams]
[-PrimaryUnit <string>]
[-SkipHealthChecks]
[-Author <string>]
[-Company <string>]
[-PassThru]
Local (run from a cluster node):
Invoke-S2DCartographer
-Local
[-OutputDirectory <string>]
[-Format <string[]>]
[-IncludeNonPoolDisks]
[-IncludeDiagrams]
[-PrimaryUnit <string>]
[-SkipHealthChecks]
[-Author <string>]
[-Company <string>]
[-PassThru]
Parameters¶
-ClusterName¶
| Type | string |
| Required | No (unless connecting by name) |
| Default | — |
DNS name or FQDN of the Failover Cluster. Examples: tplabs-clus01 or tplabs-clus01.azrl.mgmt. Not required when -CimSession or -Local is used.
-Credential¶
| Type | PSCredential |
| Required | No |
| Default | — |
PSCredential to authenticate with. Prompted interactively if not supplied and the cluster requires credentials. Mutually exclusive with -KeyVaultName.
-Authentication¶
| Type | string |
| Required | No |
| Default | Negotiate |
| Valid values | Default, Digest, Negotiate, Basic, Kerberos, ClientCertificate, CredSsp |
Authentication method passed through to Connect-S2DCluster and New-CimSession. Negotiate auto-selects NTLM or Kerberos and works in both domain-joined and workgroup/lab environments. Use Kerberos to enforce Kerberos explicitly.
-CimSession¶
| Type | CimSession |
| Required | No |
| Default | — |
Re-use an existing CimSession instead of creating a new one. Skips Connect-S2DCluster.
-Local¶
| Type | switch |
| Required | No |
| Default | off |
Run against the local machine. Use when executing directly on a cluster node — eliminates the need for WinRM remoting.
-KeyVaultName¶
| Type | string |
| Required | No (required with -SecretName) |
| Default | — |
Azure Key Vault name to retrieve credentials from. Requires the Az.KeyVault module to be installed and the caller authenticated to Azure (Connect-AzAccount).
-SecretName¶
| Type | string |
| Required | No (required with -KeyVaultName) |
| Default | — |
Name of the Key Vault secret containing the cluster password. The username is read from the secret's ContentType tag by convention (domain\user). Use -Username if the tag is not populated.
-Username¶
| Type | string |
| Required | No |
| Default | — |
Explicit username to pair with the Key Vault secret password. Use when the secret does not have a ContentType tag set. Example: MGMT\svc.azl.local.
-OutputDirectory¶
| Type | string |
| Required | No |
| Default | C:\S2DCartographer |
Root folder for all output files. A per-run subfolder <ClusterName>\<yyyyMMdd-HHmm>\ is created automatically. The root folder is created if it does not exist.
-Format¶
| Type | string[] |
| Required | No |
| Default | All |
| Valid values | Html, Word, Pdf, Excel, Json, Csv, All |
Report formats to generate. All produces HTML + Word + PDF + Excel + JSON. Csv is always opt-in because it writes multiple files per run (one per collector table). Multiple values are accepted: -Format Html, Json.
-IncludeNonPoolDisks¶
| Type | switch |
| Required | No |
| Default | off |
Include non-pool disks (boot drives, SAN LUNs, OS drives) in the Physical Disk Inventory report tables. By default only storage-pool members are shown in reports. This switch does not affect JSON or CSV outputs, which always include every disk with an IsPoolMember flag.
-IncludeDiagrams¶
| Type | switch |
| Required | No |
| Default | off |
Also generate all six SVG diagram types alongside the reports. Equivalent to running New-S2DDiagram -DiagramType All on the collected data.
-PrimaryUnit¶
| Type | string |
| Required | No |
| Default | TiB |
| Valid values | TiB, TB |
Preferred capacity display unit in report output. Both units are always shown in parentheses; this controls which is presented first and used for axis labels.
-SkipHealthChecks¶
| Type | switch |
| Required | No |
| Default | off |
Skip the health check phase. Useful for fast capacity-only snapshots where the full 11-check evaluation is not needed.
-Author¶
| Type | string |
| Required | No |
| Default | empty |
Author name embedded in the report header of HTML, Word, and PDF outputs.
-Company¶
| Type | string |
| Required | No |
| Default | empty |
Company or organization name embedded in the report header.
-PassThru¶
| Type | switch |
| Required | No |
| Default | off |
Return the S2DClusterData object to the pipeline in addition to writing files. Use this to pipe the collected data into New-S2DReport, New-S2DDiagram, or Invoke-S2DCapacityWhatIf.
Outputs¶
string[] — paths to all generated report files (default).
S2DClusterData — full collected data object when -PassThru is set.
Examples¶
Simplest run — all formats, Key Vault credentials:
Invoke-S2DCartographer -ClusterName tplabs-clus01.azrl.mgmt `
-KeyVaultName kv-tplabs-platform -SecretName lcm-deployment-password
Explicit username (when Key Vault secret has no ContentType tag):
Invoke-S2DCartographer -ClusterName tplabs-clus01.azrl.mgmt `
-KeyVaultName kv-tplabs-platform -SecretName lcm-deployment-password `
-Username 'MGMT\svc.azl.local'
Domain credential, specific formats, include diagrams:
$cred = Get-Credential
Invoke-S2DCartographer -ClusterName c01-prd-bal `
-Credential $cred `
-Format Html, Json `
-IncludeDiagrams `
-Author "Kris Turner" -Company "Hybrid Cloud Solutions"
Run locally from a cluster node:
Capture data for further processing: