Skip to content

Parameters Reference

Invoke-AzureScout Parameters

Core

ParameterDescription
-TenantIDTarget Azure AD / Entra ID tenant ID
-SubscriptionIDLimit to one or more specific subscription IDs (comma-separated or array)
-ResourceGroupLimit to one or more specific resource groups
-ManagementGroupInventory all subscriptions under a management group
-ScopeArmOnly (default), All, or EntraOnly — controls which data domains are inventoried
-OutputFormatGlobal output contract for every run mode: React, Json, JsonEvidence, or All (default, selects all three). Accepts an array. Legacy names still bind for compatibility but are on hold and are not emitted. See Report tiers.
-AssessmentSwitches the run to assessment mode — see Assessment-mode Parameters. Omit for an inventory run
-NoWizardSkip the guided wizard that a bare, interactive Invoke-AzureScout opens, and run the default inventory instead. Alias: -NonInteractive. Never needed in CI — the wizard already suppresses itself in non-interactive hosts
-CategoryFilter by resource category: AI, Analytics, Compute, Containers, Databases, Hybrid, Identity, Integration, IoT, Management, Monitor, Networking, Security, Storage, Web — see Category Filtering

Authentication

ParameterDescription
-AppIdService principal application (client) ID
-SecretService principal client secret or certificate password
-CertificatePathPath to .pfx certificate file for SPN authentication
-DeviceLoginUse device code authentication flow (for headless/remote sessions)

See Authentication for detailed examples of each method.

Content Options

ParameterDescription
-SecurityCenterInclude Microsoft Defender for Cloud data (assessments, alerts, secure score)
-IncludeTagsInclude resource tags in Excel worksheets
-SkipPolicySkip Azure Policy compliance collection
-SkipAdvisorySkip Azure Advisor recommendation collection
-SkipVMDetailsSkip extra VM detail collection (extensions, boot diagnostics status)
-SkipDiagramSkip network diagram generation
-SkipPermissionCheckSkip the pre-flight permission validation
-PermissionAuditStandalone permission audit — connects, checks ARM/RBAC (and Graph, with -IncludeEntraPermissions) then exits without collecting. Aliases: -AuditPermissions, -CheckPermissions. Prints an overall readiness verdict plus a per-collector impact table naming every collector a missing permission will leave empty and which permission fixes it — the verdict word alone used to be the only answer, which could read READY over worksheets that were about to come back empty
-IncludeEntraPermissionsWith -PermissionAudit, also audit Microsoft Graph / Entra ID access. Alias: -EntraAudit

Output

ParameterDescription
-ReportNameCustom report filename (default: AzureScout_Report_<timestamp>)
-ReportDirBase output directory (default: C:\AzureScout\ on Windows, $HOME/AzureScout/ on Linux/Mac)
-RunNameFriendly name for this run's output folder instead of the generated timestamp, e.g. -RunName 'Production-TenantA'. Invalid path characters become -
-ForceWrite directly into -ReportDir, overwriting any previous run in place. Without it, each run gets its own timestamped folder so a rerun cannot destroy the previous run's cache or report
-LiteLegacy compatibility switch for the held Excel renderer; it does not change a live React/JSON output

Azure DevOps

ParameterDescription
-IncludeDevOpsAlso inventory Azure DevOps: projects, pipelines, service connections, repositories, agent pools. Adds five worksheets. Aliases: -IncludeADO, -DevOps. See Azure DevOps
-DevOpsOrganizationOrganization name(s) to inventory. Omit to discover them from the signed-in profile — service principals must name them explicitly. Alias: -ADOOrganization
-DevOpsPatPersonal access token, used instead of the current Azure sign-in. Needs read scope on Project and Team, Build, Release, Code, Service Connections, Agent Pools. Alias: -ADOPat

Unattended execution

ParameterDescription
-AutomationRun non-interactively for an Azure Automation Account runbook: no interactive login, ThreadJob instead of background Job, progress to the job output stream. See Azure Automation Account
-StorageAccountStorage account to upload the generated reports to. Authenticates to the data plane with the connected identity, so the identity needs Storage Blob Data Contributor
-StorageContainerBlob container within -StorageAccount that reports are written to

Diagram

ParameterDescription
-DiagramFullEnvironmentInclude all network components in the draw.io topology diagram

Other

ParameterDescription
-AzureEnvironmentTarget Azure cloud: AzureCloud (default), AzureUSGovernment, AzureChinaCloud, AzureGermanCloud
-DebugVerbose debug output during extraction and processing

Test-AZSCPermissions Parameters

ParameterDescription
-TenantIDTarget tenant ID to validate permissions against
-ScopeAll (default), ArmOnly, or EntraOnly — controls which permission checks run

Returns a structured object:

powershell
$result = Test-AZSCPermissions -TenantID '00000000-...' -Scope All
$result.ArmAccess    # $true / $false
$result.GraphAccess  # $true / $false
$result.Details      # Array of check results with remediation guidance

See Permissions for the full list of required roles and API permissions.

Assessment-mode Parameters

Adding -Assessment switches Invoke-AzureScout from inventory to the CAF/WAF assessment. All the sign-in and scoping parameters above still apply. Full run-mode examples: Assessment guide.

ParameterDescription
-AssessmentOne, several, or All assessment names from manifests/assessments.psd1. Supplying it is what selects assessment mode; omit it for an inventory run. Alias -Assess. Fifteen of the twenty-four entries score a single inventory category and are named 'Assess: <Category>' — e.g. 'Assess: Compute', not Compute — because that name previously collided with the inventory -Category value of the same name. The colon and space mean the value must be quoted. Legacy unprefixed names (Compute, Storage, ...) still resolve, with a warning naming the new value. Those fifteen are a stopgap — they are category-scoped filters over the same CAF/WAF rule set CAF: Azure Landing Zone runs in full, and they are due to be retired once per-pillar assessments exist. See the Assessment Registry.
-InventoryAndAssessmentSwitch, alias -Both. Runs the inventory pass and the -Assessment pass from one collection instead of two — the assessment is handed the inventory's already-collected rows rather than re-querying Azure. Without it, -Assessment alone returns the assessment only; getting both previously meant invoking the command twice (and collecting from Azure twice) or answering the wizard's "run both?" prompt, which no script or CI pipeline could reach. See Overview: running both.
-ScopeArmOnly or All — both run the ARM/Resource Graph collect. EntraOnly throws, because the assessment Collect layer has no Entra/Graph path; use an inventory run with -Scope EntraOnly for Entra ID.
-CategoryFilters which Resource Graph queries the Collect layer runs, narrowing the collect below the assessment's manifest default.
-OutputFormatSame global contract as inventory and combined runs: React, Json, JsonEvidence, or All (selects all three). React renders a self-contained multi-page report-react.html — inventory blades, a full conformance register per assessment, diagrams, drift, and a remediation plan — with an Executive/Consultant/Data view-depth toggle, a light/dark theme, and Markdown/JSON/CSV/Print/standalone-HTML exports. JsonEvidence is a resources-only JSON export with no assessment metadata. Every legacy renderer name is on hold. See Report tiers and the section contract.
-ReportDirBase output directory; each run writes to a dated subfolder.
-PermissionAuditSwitch — runs Test-ScoutPermission for the requested -Assessment set and returns before any collection happens.
-CollectOnlySwitch — stop after Collect; returns the path to collect.json.
-FromCollectPath to an existing collect.json — skips Collect/Ingest and assesses/reports from it directly. Runs fully offline, so it does not trigger a sign-in.
-ManagementGroupScopes the Resource Graph Collect layer (and the opt-in AzGovViz ingest, if selected instead of the native Governance default) for assessments that need it (CAF: Azure Landing Zone, Management, Identity, Scout: Governance Baseline, Policy).

Former assessment command removed

The standalone assessment command was removed in v3.0.0. Use Invoke-AzureScout -Assessment with -ReportDir and -ManagementGroup instead.

Invoke-ScoutPipeline Parameters

Unattended, one-command wrapper (src/Invoke-ScoutPipeline.ps1, exported) that runs collect → assess → report headless into a single dated run folder. See Assessment guide — unattended, one-command run.

ParameterDescription
-AssessmentSame as Invoke-AzureScout -Assessment — one, several, or All.
-OutputFormatSame global contract as Invoke-AzureScout: React, Json, JsonEvidence, or All (default, selects all three). Every legacy renderer is on hold.
-OutputPathBase output directory; each run writes to a dated subfolder.
-ManagementGroupIdSame scoping behaviour as assessment mode’s -ManagementGroup.
-CategorySame as assessment mode’s -Category.
-SkipPermissionAuditSwitch — skips the read-only permission pre-flight that otherwise runs first.

Returns the run-folder path. Throws and sets $LASTEXITCODE = 1 only when pipeline-summary.json's outcome is Failed; an exporter failure degrades the run to PartialSuccess instead of losing the output that did succeed.

Test-ScoutPermission Parameters

Read-only permission pre-flight for the assessment platform — distinct from Test-AZSCPermissions above. Normally invoked via Invoke-AzureScout -Assessment ... -PermissionAudit rather than called directly.

ParameterDescription
-AssessmentThe assessment name(s) to check permissions for.
-ManifestThe imported manifests/assessments.psd1 hashtable (passed automatically by assessment mode).

Returns an array of [pscustomobject] results (Check, Ok, Fix) — the ARM check's Ok is a live-validated $true/$false; the Graph checks' Ok is always $null (informational, not live-verified). Full explanation: what -PermissionAudit actually verifies.

Released under the MIT License.