AzureScout
2.7.0
Minimum PowerShell version
7.0
Installation Options
Owners
Copyright
(c) 2026 Hybrid Cloud Solutions. All rights reserved.
Package Details
Author(s)
- Kristopher Turner
Tags
Azure AzureScout Discovery Inventory Assessment CAF WAF WellArchitected CloudAdoptionFramework LandingZone Governance AZSC EntraID Resources ARM Graph Reporting Excel PowerBI
Functions
Start-AZSCAdvisoryJob Start-AZSCPolicyJob Start-AZSCSecCenterJob Start-AZSCSubscriptionJob Wait-AZSCJob Build-AZSCDiagramSubnet Set-AZSCDiagramFile Start-AZSCDiagramJob Start-AZSCDiagramNetwork Start-AZSCDiagramOrganization Start-AZSCDiagramSubscription Start-AZSCDrawIODiagram Invoke-AzureScout Test-AZSCPermissions Start-AZSCWizard Invoke-ScoutAssessment Test-ScoutPermission Invoke-ScoutPipeline Get-ScoutInventoryDrift Get-ScoutCostAnomaly Get-ScoutIacGap Import-ScoutConfig Export-ScoutConfig
PSEditions
Dependencies
This module has no dependencies.
Release Notes
v2.7.0 -- Second phase of the engine rebuild (Epic AB#5638): the reporting layer moves out of Modules/, Excel COM is gone entirely, the first collector category becomes declarative data, and a single-pass collection layer lands. REPORTING (AB#5662): all 26 inventory report renderers moved from Modules/Private/Reporting/ to src/report/renderers/inventory/ and src/report/renderers/inventory/style/, renamed so the file name matches the function it defines -- the legacy AZTI-file / AZSC-function mismatch is gone. Function names are unchanged, so no call site changed behaviour. Build-AZTIExcelComObject.ps1 is DELETED: chart styling now runs on EPPlus/ImportExcel only, through the new Build-AZSCExcelChartStyle. Excel COM was why -Lite defaulted to true and why the module surfaced a raw 0x80040154 REGDB_E_CLASSNOTREG on every machine and CI runner without Excel installed; no live COM call remains anywhere in src/, Modules/ or tests/. Verified against a live tenant: a 42-worksheet workbook built with no Excel present, SecurityCenter carrying 489 rows. NOTE: the EPPlus chart styling is an approximation of the former COM styling, documented in the function .NOTES. DECLARATIVE COLLECTORS (AB#5656): the 13 Databases collectors are now data -- manifests/collectors/Databases/*.psd1 -- interpreted at runtime by Invoke-ScoutDeclarativeCollector, with Get-ScoutCollector extended to report HasDeclarativeDefinition and DefinitionPath rather than adding a second discovery mechanism. Each definition is pinned by an equivalence test that runs the original imperative collector and the declarative definition over the same input and compares the processed rows key-by-key and the written .xlsx cell-by-cell, under both -IncludeTags states. Writing that test found two defects in the interpreter that would have silently changed shipped reports: tag columns were appended rather than inserted, so every tagged worksheet came out with its last three columns reordered (all 13 collectors add their trailing column after the tag block); and ResourceTypes was applied as a membership test rather than a grouping, so RedisCache lost the ordering its original produced by concatenating redis then redisenterprise. Both are fixed, and a definition naming a column that does not exist is now a load-time error rather than a silent fallback. An AST audit of all 176 collectors ships as docs/design/collector-audit.md: 115 of the remaining 163 are mechanically convertible, 48 stay hand-written (29 make live cmdlet calls, 20 do cross-resource joins, 10 never filter $Resources, 2 are unimplemented). COLLECTION (AB#5639): src/collect/ gains Get-ScoutRawInventory, Get-ScoutApiResources, Get-ScoutCostInventory, Get-ScoutVmQuotas and Get-ScoutVmSkuDetails, plus an AST-derived resource-type map covering 128 ARM types, 17 cognitive-services kinds and the VM quota/SKU pseudo-types. One raw pass satisfies 34 of the 35 collect queries; sqlDefenderPricing reads SecurityResources and genuinely cannot be served from inventory. THIS IS CAPABILITY ONLY -- nothing in the product calls these functions yet, so the run still reaches Resource Graph as many times as it did in v2.6.0. Inverting the pipeline onto this layer is AB#5648 and is not in this release. Do not read this entry as "collection is now single-pass"; it is not. FIXED: an unbound [string[]] parameter is $null and @($null).Count is 1, not 0, so the subscription-resolution branch in Invoke-Collect gated on .Count -eq 0 never fired on the default path -- the subscription list was never derived from resourcecontainers and every later table degraded to one un-batched tenant-wide call with none of the documented per-batch isolation. The existing test passed either way because it asserted only the container count; the regression test now asserts the actual -Subscription argument. This is the same @($null).Count class that emptied the Excel loop in v2.6.0. KNOWN, UNCHANGED: Management/ManagementGroups fails on every live run with "missing mandatory parameters: GroupName" -- environment and permissions, not a code defect. RedisCache exports a blank Resource Group column and SQLMI a blank ActiveDirectoryOnlyAuthentication column, both blank in every shipped release; the declarative definitions reproduce them faithfully rather than diverge from the imperative path. Identity/IdentityProviders and Identity/SecurityDefaults are still written against a registration API that exists only as a test mock and have never produced a row. v2.6.0 -- The inventory engine no longer uses background jobs. First phase of the engine rebuild. Processing used to create one Start-Job per category, each of which created one [PowerShell]::Create() runspace per collector, then Wait-AZSCJob waited and Build-AZSCCacheFiles harvested and destroyed them. Every defect of the v2.5.x wave lived in that coordination rather than in the collectors: Start-Job is asynchronous so a NotStarted job was excluded from the wait, harvested empty and deleted, taking its whole category out of the report with no trace; the inner wait read $Job.Runspace.IsCompleted, but PowerShellAsyncResult has no Runspace property so the loop never waited and EndInvoke raced its own work; each job re-imported the module, re-applying module-scope StrictMode inside the job and forcing the v2.5.3 opt-out to 17 entry points; category ordering came from Get-Job, so the same tenant produced different reports on consecutive runs; and the whole estate was serialised through ConvertTo-Json -Depth 40 once per category. Collectors are pure functions of the resource set, so none of that concurrency was ever required. All 176 now run in-process in a fixed order through Invoke-ScoutProcessing, writing the same ReportCache layout. Identical input produces an identical report cache, and each collector failure is contained individually so one bad collector no longer empties its category or aborts the batch. Verified against a live tenant: two consecutive full runs compared collector-section by collector-section produced 32 sections with 31 byte-identical; the single difference was checked against Resource Graph and was the estate genuinely changing between runs. The -Automation processing branch is gone -- it only substituted Start-ThreadJob where Start-Job was unavailable, so both modes now execute identical code. The draw.io lookup collapsed too: Start-AZSCDiagramJob was 290 lines that filtered resources by 27 types using 27 separate runspaces, and is now one bucket-sorting pass. Wait-AZSCJob has been deleted; the run orchestration starts no background jobs at all. FIXED, all pre-existing and all invisible until collectors ran in-process: the Security Center worksheet has been EMPTY in every release that had one, because Invoke-AZSCSecurityCenterJob was called with -SecurityCenter against a parameter block that declared no such parameter -- PowerShell does not reject an unknown named argument to a simple function, it collects it into $args and carries on, so $null crossed the job boundary as the -Security argument and the loop iterated nothing; it now carries real data (484 rows on the verification tenant). Five collectors -- Monitor/SubscriptionDiagnosticSettings and the four Security/Defender ones -- called Write-AZSCLog with -Color and -Level Verbose, neither of which the function accepted, so each threw on its first log line and produced nothing. Per-file .CATEGORY filtering had never matched a single file, because the expression required a line break between the keyword and its value while all 176 collectors write it on one line. The Excel report loop invoked every collector whether or not it had data, because it counted rows with @($SmaResources).count and @($null).Count is 1, not 0. All four report exporters read $CacheData.$ModName unguarded, which throws under StrictMode when the cache has no entry for that collector. KNOWN LIMITATION: Identity/IdentityProviders and Identity/SecurityDefaults are written against a registration API that exists only as a mock inside the test suite and was never implemented, so they have never produced a row; they are now reported as skipped rather than executed. v2.5.3 -- A normal Azure response aborted the entire inventory run (AB#5633). A run against a real tenant died right after the API inventory phase with "The property 'ReservationRecomen' cannot be found on this object." This was not a null-reference fault. Every src/*.ps1 sets Set-StrictMode -Version Latest at file scope and AzureScout.psm1 dot-sources them, so the whole module including the v1 inventory path runs strict, and under StrictMode member enumeration over a collection reports the property missing when the enumeration yields nothing at all -- which is exactly what an empty collection on every element produces, because the empties flatten away. A null value is safe; an empty one is not. All seven reads at that site now go through Get-AZSCCollectedValue, which reads element-wise. The same class was swept: $Resources is a mixed array whose Resource Graph rows carry subscriptionId and Type while the REST rows beside them do not, and two collectors filtered it with bare property reads -- Get-AZSCVMQuotas on $_.subscriptionId, which meant no quota was collected for any subscription rather than just the offending one, and Get-AZSCVMSkuDetails on $_.TYPE. An unavailable Cost Management API destroyed the whole run (AB#5636): Get-AZSCCostInventory ended its catch with throw and the $Costs = @() fallback on the next line was unreachable, so a machine without Az.CostManagement lost the entire report to -IncludeCosts. Cost data is optional enrichment and now warns and continues. Az.CostManagement is deliberately not auto-installed -- doing so drags in a newer Az.Accounts, and two side-by-side versions make every Import-Module die with a stack overflow inside Az.Accounts' own assembly-load-context resolver. NEW: every run writes a detailed log into its own run folder with no extra parameter (AB#5634, AB#5635). scout-run.log carries a metadata header, every phase boundary with elapsed time and counts, warnings, and on failure the full error record with failing script, line, statement and script stack trace. Full history for every earlier release is in CHANGELOG.md: https://github.com/thisismydemo/azure-scout/blob/main/CHANGELOG.md
FileList
- AzureScout.nuspec
- docs\design\assessment-registry.md
- Modules\Public\InventoryModules\Databases\SQLMIDB.ps1
- Modules\Public\InventoryModules\Monitor\Outages.ps1
- docs\design\collector-audit.md
- Modules\Public\InventoryModules\Databases\SQLPOOL.ps1
- Modules\Public\InventoryModules\Monitor\ResourceDiagnosticSettings.ps1
- docs\design\enhancement-spec.md
- Modules\Public\InventoryModules\Databases\SQLSERVER.ps1
- Modules\Public\InventoryModules\Monitor\ScheduledQueryRules.ps1
- docs\design\master-plan.md
- manifests\collectors\Databases\POSTGREFlexible.psd1
- src\report\templates\report.html.template
- Modules\Public\InventoryModules\Databases\SQLVM.ps1
- Modules\Public\InventoryModules\Monitor\SmartDetectorAlertRules.ps1
- .mcp.json
- tests\Collect.CostInventory.Tests.ps1
- docs\design\task-list.md
- manifests\collectors\Databases\RedisCache.psd1
- tests\test-output\pptx-debug2\assessment_deck.pptx
- Modules\Public\InventoryModules\Hybrid\ArcDataControllers.ps1
- Modules\Public\InventoryModules\Monitor\SubscriptionDiagnosticSettings.ps1
- action.yml
- tests\Collect.RawInventory.Tests.ps1
- docs\images\azurescout-banner.svg
- manifests\collectors\Databases\SQLDB.psd1
- tests\test-output\word-forcefail\assessment_report.docx
- Modules\Public\InventoryModules\Hybrid\ArcExtensions.ps1
- Modules\Public\InventoryModules\Monitor\Workspaces.ps1
- AGENTS.md
- tests\Collect.Resilience.Tests.ps1
- docs\images\azurescout-icon.svg
- manifests\collectors\Databases\SQLMI.psd1
- docs\.vitepress\dist\assets\app.CwWebgDC.js
- Modules\Public\InventoryModules\Hybrid\ArcGateways.ps1
- Modules\Public\InventoryModules\Networking\ApplicationGateways.ps1
- tests\Collect.VmQuotaSku.Tests.ps1
- src\analyze\Get-ScoutCostAnomaly.ps1
- manifests\collectors\Databases\SQLMIDB.psd1
- docs\.vitepress\dist\assets\ari-differences.md.Cb_Th-cn.js
- Modules\Public\InventoryModules\Hybrid\ArcKubernetes.ps1
- Modules\Public\InventoryModules\Networking\AzureFirewall.ps1
- AzureScout.psd1
- tests\CollectorCollapse.Tests.ps1
- src\analyze\Get-ScoutIacGap.ps1
- manifests\collectors\Databases\SQLPOOL.psd1
- docs\.vitepress\dist\assets\ari-differences.md.Cb_Th-cn.lean.js
- Modules\Public\InventoryModules\Hybrid\ArcResourceBridge.ps1
- Modules\Public\InventoryModules\Networking\BastionHosts.ps1
- AzureScout.psm1
- tests\Compute.Module.Tests.ps1
- src\assess\Compare-Benchmark.ps1
- manifests\collectors\Databases\SQLSERVER.psd1
- docs\.vitepress\dist\assets\arm-modules.md.C_qcXDJs.js
- Modules\Public\InventoryModules\Hybrid\ArcServerOperationalData.ps1
- Modules\Public\InventoryModules\Networking\Connections.ps1
- CHANGELOG.md
- tests\Connect-AZSCLoginSession.Tests.ps1
- src\assess\Export-ScoutConfig.ps1
- manifests\collectors\Databases\SQLVM.psd1
- docs\.vitepress\dist\assets\arm-modules.md.C_qcXDJs.lean.js
- Modules\Public\InventoryModules\Hybrid\ARCServers.ps1
- Modules\Public\InventoryModules\Networking\ExpressRoute.ps1
- CLAUDE.md
- tests\Containers.Module.Tests.ps1
- src\assess\Import-ScoutConfig.ps1
- Modules\Private\Extraction\Get-AZTIAPIResources.ps1
- docs\.vitepress\dist\assets\assessment-permissions.md.UbCl--yg.js
- Modules\Public\InventoryModules\Hybrid\ArcSites.ps1
- Modules\Public\InventoryModules\Networking\Frontdoor.ps1
- CODE_OF_CONDUCT.md
- tests\CostInventoryResilience.Tests.ps1
- src\assess\Invoke-Assessment.ps1
- Modules\Private\Extraction\Get-AZTICostInventory.ps1
- docs\.vitepress\dist\assets\assessment-permissions.md.UbCl--yg.lean.js
- Modules\Public\InventoryModules\Hybrid\ArcSQLManagedInstances.ps1
- Modules\Public\InventoryModules\Networking\LoadBalancer.ps1
- CONTRIBUTING.md
- tests\Databases.Module.Tests.ps1
- src\assess\Test-ScoutPermission.ps1
- Modules\Private\Extraction\Get-AZTIManagementGroups.ps1
- docs\.vitepress\dist\assets\assessment-prerequisites.md.BHwlMT3n.js
- Modules\Public\InventoryModules\Hybrid\ArcSQLServers.ps1
- Modules\Public\InventoryModules\Networking\NATGateway.ps1
- CREDITS.md
- tests\DeclarativeCollectorEquivalence.Tests.ps1
- src\collect\ConvertFrom-ScoutInventory.ps1
- Modules\Private\Extraction\Get-AZTISubscriptions.ps1
- docs\.vitepress\dist\assets\assessment-prerequisites.md.BHwlMT3n.lean.js
- Modules\Public\InventoryModules\Hybrid\Clusters.ps1
- Modules\Public\InventoryModules\Networking\NetworkInterface.ps1
- LICENSE
- tests\DeterministicPipeline.Tests.ps1
- src\collect\Get-ScoutApiResources.ps1
- Modules\Private\Extraction\Invoke-AZTIInventoryLoop.ps1
- docs\.vitepress\dist\assets\assessment.md.CT5KGI9O.js
- Modules\Public\InventoryModules\Hybrid\GalleryImages.ps1
- Modules\Public\InventoryModules\Networking\NetworkSecurityGroup.ps1
- package-lock.json
- tests\DevOps.Module.Tests.ps1
- src\collect\Get-ScoutCostInventory.ps1
- Modules\Private\Extraction\Start-AZTIDevOpsExtraction.ps1
- docs\.vitepress\dist\assets\assessment.md.CT5KGI9O.lean.js
- Modules\Public\InventoryModules\Hybrid\LogicalNetworks.ps1
- Modules\Public\InventoryModules\Networking\NetworkWatchers.ps1
- package.json
- tests\Diagram.Tests.ps1
- src\collect\Get-ScoutRawInventory.ps1
- Modules\Private\Extraction\Start-AZTIEntraExtraction.ps1
- docs\.vitepress\dist\assets\authentication.md.UmOF430R.js
- Modules\Public\InventoryModules\Hybrid\MarketplaceGalleryImages.ps1
- Modules\Public\InventoryModules\Networking\PrivateDNS.ps1
- README.md
- tests\DocsVersionSync.Tests.ps1
- src\collect\Get-ScoutVmQuotas.ps1
- Modules\Private\Extraction\Start-AZTIGraphExtraction.ps1
- docs\.vitepress\dist\assets\authentication.md.UmOF430R.lean.js
- Modules\Public\InventoryModules\Hybrid\StorageContainers.ps1
- Modules\Public\InventoryModules\Networking\PrivateEndpoint.ps1
- RELEASES.md
- tests\GraphExtraction.StrictMode.Tests.ps1
- src\collect\Get-ScoutVmSkuDetails.ps1
- Modules\Private\Main\Clear-AZTICacheFolder.ps1
- docs\.vitepress\dist\assets\automation.md.DsR73Kai.js
- Modules\Public\InventoryModules\Hybrid\VirtualMachines.ps1
- Modules\Public\InventoryModules\Networking\PublicDNS.ps1
- SECURITY.md
- tests\Hybrid.Module.Tests.ps1
- src\collect\Invoke-Collect.ps1
- Modules\Private\Main\Clear-AZTIMemory.ps1
- docs\.vitepress\dist\assets\automation.md.DsR73Kai.lean.js
- Modules\Public\InventoryModules\Identity\AdminUnits.ps1
- Modules\Public\InventoryModules\Networking\PublicIP.ps1
- SUPPORT.md
- tests\Identity.Module.Tests.ps1
- src\ingest\Import-AdvisorScores.ps1
- Modules\Private\Main\Connect-AZTILoginSession.ps1
- docs\.vitepress\dist\assets\azure-devops.md.CgZWt8Se.js
- Modules\Public\InventoryModules\Identity\AppRegistrations.ps1
- Modules\Public\InventoryModules\Networking\RouteTables.ps1
- testResults.xml
- tests\Integration.Module.Tests.ps1
- src\ingest\Import-AzGovViz.ps1
- Modules\Private\Main\Get-AZTICollectedValue.ps1
- docs\.vitepress\dist\assets\azure-devops.md.CgZWt8Se.lean.js
- Modules\Public\InventoryModules\Identity\ConditionalAccess.ps1
- Modules\Public\InventoryModules\Networking\TrafficManager.ps1
- .ado\azure-pipelines.yml
- tests\Invoke-AZSCGraphRequest.Tests.ps1
- src\ingest\Import-Governance.ps1
- Modules\Private\Main\Get-AZTIGraphToken.ps1
- docs\.vitepress\dist\assets\azurescout-banner.DJlfmmEw.svg
- Modules\Public\InventoryModules\Identity\CrossTenantAccess.ps1
- Modules\Public\InventoryModules\Networking\VirtualNetwork.ps1
- .codex\config.toml
- tests\Invoke-AzureScout.Tests.ps1
- src\ingest\Invoke-ArgQueryPack.ps1
- Modules\Private\Main\Get-AZTIUnsupportedData.ps1
- docs\.vitepress\dist\assets\category-filtering.md.Dq9FDl_w.js
- Modules\Public\InventoryModules\Identity\DirectoryRoles.ps1
- Modules\Public\InventoryModules\Networking\VirtualNetworkGateways.ps1
- .github\CODEOWNERS
- tests\IoT.Module.Tests.ps1
- src\pipeline\Get-ScoutCollector.ps1
- Modules\Private\Main\Invoke-AZTIGraphRequest.ps1
- docs\.vitepress\dist\assets\category-filtering.md.Dq9FDl_w.lean.js
- Modules\Public\InventoryModules\Identity\Domains.ps1
- Modules\Public\InventoryModules\Networking\VirtualWAN.ps1
- .github\copilot-instructions.md
- tests\Management.Module.Tests.ps1
- src\pipeline\Get-ScoutCollectorDefinition.ps1
- Modules\Private\Main\Invoke-AZTIPermissionAudit.ps1
- docs\.vitepress\dist\assets\category-reference.md.CZd97g45.js
- Modules\Public\InventoryModules\Identity\Groups.ps1
- Modules\Public\InventoryModules\Networking\vNETPeering.ps1
- config\scout.config.json
- tests\ModuleUpdate.Tests.ps1
- src\pipeline\Invoke-ScoutCollector.ps1
- Modules\Private\Main\Invoke-AZTISubscriptionContext.ps1
- docs\.vitepress\dist\assets\category-reference.md.CZd97g45.lean.js
- Modules\Public\InventoryModules\Identity\IdentityProviders.ps1
- Modules\Public\InventoryModules\Security\DefenderAlerts.ps1
- docs\ari-differences.md
- tests\Monitor.Module.Tests.ps1
- src\pipeline\Invoke-ScoutDeclarativeCollector.ps1
- Modules\Private\Main\Set-AZTIFolder.ps1
- docs\.vitepress\dist\assets\category-structure.md.6rzJgrck.js
- Modules\Public\InventoryModules\Identity\Licensing.ps1
- Modules\Public\InventoryModules\Security\DefenderAssessments.ps1
- docs\arm-modules.md
- tests\Networking.Module.Tests.ps1
- src\pipeline\Invoke-ScoutProcessing.ps1
- Modules\Private\Main\Set-AZTIReportPath.ps1
- docs\.vitepress\dist\assets\category-structure.md.6rzJgrck.lean.js
- Modules\Public\InventoryModules\Identity\ManagedIdentities.ps1
- Modules\Public\InventoryModules\Security\DefenderPricing.ps1
- docs\assessment-permissions.md
- tests\New-SyntheticSampleReport.ps1
- src\pipeline\Write-ScoutCacheFile.ps1
- Modules\Private\Main\Start-AZTIExtractionOrchestration.ps1
- docs\.vitepress\dist\assets\changelog.md.L2KaGTsV.js
- Modules\Public\InventoryModules\Identity\ManagedIds.ps1
- Modules\Public\InventoryModules\Security\DefenderSecureScore.ps1
- docs\assessment-prerequisites.md
- tests\OutputFormat.Tests.ps1
- src\report\Export-Report.ps1
- Modules\Private\Main\Start-AZTIProcessOrchestration.ps1
- docs\.vitepress\dist\assets\changelog.md.L2KaGTsV.lean.js
- Modules\Public\InventoryModules\Identity\NamedLocations.ps1
- Modules\Public\InventoryModules\Security\Vault.ps1
- docs\assessment.md
- tests\PermissionAudit.Tests.ps1
- src\report\Get-ScoutDrift.ps1
- Modules\Private\Main\Start-AZTIReporOrchestration.ps1
- docs\.vitepress\dist\assets\contributing.md.CK2QKaMZ.js
- Modules\Public\InventoryModules\Identity\PIMAssignments.ps1
- Modules\Public\InventoryModules\Storage\NetApp.ps1
- docs\authentication.md
- tests\Pipeline.NonTerminatingErrors.Tests.ps1
- src\report\Get-ScoutInventoryDrift.ps1
- Modules\Private\Main\Test-AZSCModuleUpdate.ps1
- docs\.vitepress\dist\assets\contributing.md.CK2QKaMZ.lean.js
- Modules\Public\InventoryModules\Identity\RiskyUsers.ps1
- Modules\Public\InventoryModules\Storage\StorageAccounts.ps1
- docs\automation.md
- tests\Pipeline.Tests.ps1
- tests\datadump\sample-collect.json
- Modules\Private\Main\Test-AZTIManagementGroupAccess.ps1
- docs\.vitepress\dist\assets\coverage-table.md.Ihe0LJwa.js
- Modules\Public\InventoryModules\Identity\SecurityDefaults.ps1
- Modules\Public\InventoryModules\Web\APPServicePlan.ps1
- docs\azure-devops.md
- tests\Private.Extraction.Tests.ps1
- tests\datadump\sample-report.json
- Modules\Private\Main\Test-AZTIPS.ps1
- docs\.vitepress\dist\assets\coverage-table.md.Ihe0LJwa.lean.js
- Modules\Public\InventoryModules\Identity\SecurityPolicies.ps1
- Modules\Public\InventoryModules\Web\APPServices.ps1
- docs\category-filtering.md
- tests\Private.Main.Tests.ps1
- tests\fixtures\collector-audit.json
- Modules\Private\Main\Write-AZTIRunLog.ps1
- docs\.vitepress\dist\assets\credits.md.2Bpf50FU.js
- Modules\Public\InventoryModules\Identity\ServicePrincipals.ps1
- Modules\Public\PublicFunctions\Diagram\Build-AZTIDiagramSubnet.ps1
- docs\category-reference.md
- tests\Private.Processing.Tests.ps1
- tests\fixtures\databases-collector-input.json
- Modules\Private\Processing\Invoke-AZTIDrawIOJob.ps1
- docs\.vitepress\dist\assets\credits.md.2Bpf50FU.lean.js
- Modules\Public\InventoryModules\Identity\Users.ps1
- Modules\Public\PublicFunctions\Diagram\Set-AZTIDiagramFile.ps1
- docs\category-structure.md
- tests\Private.Reporting.Tests.ps1
- docs\.vitepress\dist\404.html
- Modules\Private\Processing\Start-AZTIExtraJobs.ps1
- docs\.vitepress\dist\assets\design_assessment-registry.md.DdlEM88G.js
- Modules\Public\InventoryModules\Integration\APIM.ps1
- Modules\Public\PublicFunctions\Diagram\Start-AZTIDiagramJob.ps1
- docs\changelog.md
- tests\Public.Functions.Tests.ps1
- docs\.vitepress\dist\ari-differences.html
- Modules\Public\InventoryModules\Module-template.tpl
- docs\.vitepress\dist\assets\design_assessment-registry.md.DdlEM88G.lean.js
- Modules\Public\InventoryModules\Integration\ServiceBUS.ps1
- Modules\Public\PublicFunctions\Diagram\Start-AZTIDiagramNetwork.ps1
- docs\contributing.md
- tests\Report.Drift.Tests.ps1
- docs\.vitepress\dist\arm-modules.html
- Modules\Public\PublicFunctions\Invoke-AzureScout.ps1
- docs\.vitepress\dist\assets\design_decisions_pptx-renderer.md.DOVFrzr_.js
- Modules\Public\InventoryModules\IoT\IOTHubs.ps1
- Modules\Public\PublicFunctions\Diagram\Start-AZTIDiagramOrganization.ps1
- docs\coverage-table.md
- tests\Report.EChartsDashboard.Tests.ps1
- docs\.vitepress\dist\assessment-permissions.html
- Modules\Public\PublicFunctions\Start-AZSCWizard.ps1
- docs\.vitepress\dist\assets\design_decisions_pptx-renderer.md.DOVFrzr_.lean.js
- Modules\Public\InventoryModules\Management\AdvisorScore.ps1
- Modules\Public\PublicFunctions\Diagram\Start-AZTIDiagramSubscription.ps1
- docs\credits.md
- tests\Report.Excel.Tests.ps1
- docs\.vitepress\dist\assessment-prerequisites.html
- Modules\Public\PublicFunctions\Test-AZTIPermissions.ps1
- docs\.vitepress\dist\assets\design_enhancement-spec.md.CXd2dCco.js
- Modules\Public\InventoryModules\Management\AllSubscriptions.ps1
- Modules\Public\PublicFunctions\Diagram\Start-AZTIDrawIODiagram.ps1
- docs\entra-modules.md
- tests\Report.InventoryDrift.Tests.ps1
- docs\.vitepress\dist\assessment.html
- src\assess\benchmarks\alz-reference.json
- docs\.vitepress\dist\assets\design_enhancement-spec.md.CXd2dCco.lean.js
- Modules\Public\InventoryModules\Management\AutomationAccounts.ps1
- Modules\Public\PublicFunctions\Jobs\Start-AZTIAdvisoryJob.ps1
- docs\folder-structure.md
- tests\Report.JsonEvidence.Tests.ps1
- docs\.vitepress\dist\authentication.html
- src\assess\engine\Get-RuleSet.ps1
- docs\.vitepress\dist\assets\design_master-plan.md.jBXjAp0u.js
- Modules\Public\InventoryModules\Management\Backup.ps1
- Modules\Public\PublicFunctions\Jobs\Start-AZTIPolicyJob.ps1
- docs\github-actions.md
- tests\Report.Pdf.Tests.ps1
- docs\.vitepress\dist\automation.html
- src\assess\engine\Get-Score.ps1
- docs\.vitepress\dist\assets\design_master-plan.md.jBXjAp0u.lean.js
- Modules\Public\InventoryModules\Management\CustomRoleDefinitions.ps1
- Modules\Public\PublicFunctions\Jobs\Start-AZTISecCenterJob.ps1
- docs\index.md
- tests\Report.PowerBi.Tests.ps1
- docs\.vitepress\dist\azure-devops.html
- src\assess\engine\Invoke-Rule.ps1
- docs\.vitepress\dist\assets\design_task-list.md.BTyj6qed.js
- Modules\Public\InventoryModules\Management\DevOpsAgentPools.ps1
- Modules\Public\PublicFunctions\Jobs\Start-AZTISubscriptionJob.ps1
- docs\output.md
- tests\Report.Pptx.Tests.ps1
- docs\.vitepress\dist\category-filtering.html
- src\assess\engine\Resolve-JsonPath.ps1
- docs\.vitepress\dist\assets\design_task-list.md.BTyj6qed.lean.js
- Modules\Public\InventoryModules\Management\DevOpsPipelines.ps1
- src\report\renderers\inventory\Build-AZSCAdvisoryReport.ps1
- docs\overview.md
- tests\Report.React.Tests.ps1
- docs\.vitepress\dist\category-reference.html
- src\assess\rules\caf.ai.yaml
- docs\.vitepress\dist\assets\entra-modules.md.CwxRzRTJ.js
- Modules\Public\InventoryModules\Management\DevOpsProjects.ps1
- src\report\renderers\inventory\Build-AZSCCostManagementReport.ps1
- docs\parameters.md
- tests\Report.Word.Tests.ps1
- docs\.vitepress\dist\category-structure.html
- src\assess\rules\caf.analytics.yaml
- docs\.vitepress\dist\assets\entra-modules.md.CwxRzRTJ.lean.js
- Modules\Public\InventoryModules\Management\DevOpsRepositories.ps1
- src\report\renderers\inventory\Build-AZSCMonitorReport.ps1
- docs\permissions.md
- tests\RunIsolation.Tests.ps1
- docs\.vitepress\dist\changelog.html
- src\assess\rules\caf.billing.yaml
- docs\.vitepress\dist\assets\folder-structure.md.CcZOIHri.js
- Modules\Public\InventoryModules\Management\DevOpsServiceConnections.ps1
- src\report\renderers\inventory\Build-AZSCPolicyReport.ps1
- docs\prerequisites.md
- tests\RunLog.Tests.ps1
- docs\.vitepress\dist\contributing.html
- src\assess\rules\caf.containers.yaml
- docs\.vitepress\dist\assets\folder-structure.md.CcZOIHri.lean.js
- Modules\Public\InventoryModules\Management\LighthouseDelegations.ps1
- src\report\renderers\inventory\Build-AZSCQuotaReport.ps1
- docs\roadmap.md
- tests\Security.Module.Tests.ps1
- docs\.vitepress\dist\coverage-table.html
- src\assess\rules\caf.databases.yaml
- docs\.vitepress\dist\assets\github-actions.md.B8A-w4KF.js
- Modules\Public\InventoryModules\Management\MaintenanceConfigurations.ps1
- src\report\renderers\inventory\Build-AZSCSecCenterReport.ps1
- docs\testing.md
- tests\Start-AZSCEntraExtraction.Tests.ps1
- docs\.vitepress\dist\credits.html
- src\assess\rules\caf.governance.yaml
- docs\.vitepress\dist\assets\github-actions.md.B8A-w4KF.lean.js
- Modules\Public\InventoryModules\Management\ManagementGroups.ps1
- src\report\renderers\inventory\Build-AZSCSecurityOverviewReport.ps1
- docs\troubleshooting.md
- tests\Storage.Module.Tests.ps1
- docs\.vitepress\dist\entra-modules.html
- src\assess\rules\caf.hybrid.yaml
- docs\.vitepress\dist\assets\index.md.DHnGeftI.js
- Modules\Public\InventoryModules\Management\PolicyComplianceStates.ps1
- src\report\renderers\inventory\Build-AZSCSubsReport.ps1
- docs\usage.md
- tests\StrictModeMemberEnumeration.Tests.ps1
- docs\.vitepress\dist\folder-structure.html
- src\assess\rules\caf.identity.yaml
- docs\.vitepress\dist\assets\index.md.DHnGeftI.lean.js
- Modules\Public\InventoryModules\Management\PolicyDefinitions.ps1
- src\report\renderers\inventory\Build-AZSCUpdateManagerReport.ps1
- docs\validation-matrix.md
- tests\Test-AZSCPermissions.Tests.ps1
- docs\.vitepress\dist\github-actions.html
- src\assess\rules\caf.integration.yaml
- docs\.vitepress\dist\assets\inter-italic-cyrillic-ext.r48I6akx.woff2
- Modules\Public\InventoryModules\Management\PolicySetDefinitions.ps1
- src\report\renderers\inventory\Export-AZSCAsciiDocReport.ps1
- manifests\assessments.psd1
- tests\Test-ExcelFromDataDump.ps1
- docs\.vitepress\dist\hashmap.json
- src\assess\rules\caf.iot.yaml
- docs\.vitepress\dist\assets\inter-italic-cyrillic.By2_1cv3.woff2
- Modules\Public\InventoryModules\Management\RecoveryVault.ps1
- src\report\renderers\inventory\Export-AZSCJsonReport.ps1
- scripts\Build-TaskList.ps1
- tests\Test-PowerBIFromDataDump.ps1
- docs\.vitepress\dist\index.html
- src\assess\rules\caf.management.yaml
- docs\.vitepress\dist\assets\inter-italic-greek-ext.1u6EdAuj.woff2
- Modules\Public\InventoryModules\Management\ReservationRecom.ps1
- src\report\renderers\inventory\Export-AZSCMarkdownReport.ps1
- scripts\ConvertTo-ScoutCollectorDefinition.ps1
- tests\Test-PptxFromDataDump.ps1
- docs\.vitepress\dist\output.html
- src\assess\rules\caf.network.yaml
- docs\.vitepress\dist\assets\inter-italic-greek.DJ8dCoTZ.woff2
- Modules\Public\InventoryModules\Management\SupportTickets.ps1
- src\report\renderers\inventory\Export-AZSCPowerBIReport.ps1
- scripts\Get-CollectorResourceTypeMap.ps1
- tests\TESTING.md
- docs\.vitepress\dist\overview.html
- src\assess\rules\caf.platformauto.yaml
- docs\.vitepress\dist\assets\inter-italic-latin-ext.CN1xVJS-.woff2
- Modules\Public\InventoryModules\Monitor\ActionGroups.ps1
- src\report\renderers\inventory\New-AZSCPowerBITemplate.ps1
- scripts\Invoke-CollectorAudit.ps1
- tests\UnifiedEntryPoint.Tests.ps1
- docs\.vitepress\dist\parameters.html
- src\assess\rules\caf.resourceorg.yaml
- docs\.vitepress\dist\assets\inter-italic-latin.C2AdPX0b.woff2
- Modules\Public\InventoryModules\Monitor\ActivityLogAlertRules.ps1
- src\report\renderers\inventory\Start-AZSCExcelExtraData.ps1
- scripts\Test-BoardConformance.ps1
- tests\Web.Module.Tests.ps1
- docs\.vitepress\dist\permissions.html
- src\assess\rules\caf.security.yaml
- docs\.vitepress\dist\assets\inter-italic-vietnamese.BSbpV94h.woff2
- Modules\Public\InventoryModules\Monitor\AppInsights.ps1
- src\report\renderers\inventory\Start-AZSCExcelJob.ps1
- src\Invoke-ScoutAssessment.ps1
- tests\Write-ScoutProgress.Tests.ps1
- docs\.vitepress\dist\prerequisites.html
- src\assess\rules\caf.storage.yaml
- docs\.vitepress\dist\assets\inter-roman-cyrillic-ext.BBPuwvHQ.woff2
- Modules\Public\InventoryModules\Monitor\AppInsightsAvailabilityTests.ps1
- src\report\renderers\inventory\Start-AZSCExtraReports.ps1
- src\Invoke-ScoutPipeline.ps1
- .ai\mcp\mcp-servers.md
- docs\.vitepress\dist\roadmap.html
- src\assess\rules\caf.web.yaml
- docs\.vitepress\dist\assets\inter-roman-cyrillic.C5lxZ8CY.woff2
- Modules\Public\InventoryModules\Monitor\AppInsightsContinuousExport.ps1
- docs\.vitepress\dist\assets\chunks\@localSearchIndexroot.aGGM7vkd.js
- src\README.md
- .ai\memory\COMMANDS.md
- docs\.vitepress\dist\testing.html
- src\assess\rules\waf.cost.yaml
- docs\.vitepress\dist\assets\inter-roman-greek-ext.CqjqNYQ-.woff2
- Modules\Public\InventoryModules\Monitor\AppInsightsProactiveDetection.ps1
- docs\.vitepress\dist\assets\chunks\framework.il0noOp3.js
- src\Write-ScoutProgress.ps1
- .ai\memory\DECISIONS.md
- docs\.vitepress\dist\troubleshooting.html
- src\assess\rules\waf.operational.yaml
- docs\.vitepress\dist\assets\inter-roman-greek.BBVDIX6e.woff2
- Modules\Public\InventoryModules\Monitor\AppInsightsWebTests.ps1
- docs\.vitepress\dist\assets\chunks\theme.BsI9enTO.js
- tests\AI.Module.Tests.ps1
- .ai\memory\GOTCHAS.md
- docs\.vitepress\dist\usage.html
- src\assess\rules\waf.performance.yaml
- docs\.vitepress\dist\assets\inter-roman-latin-ext.4ZJIpNVo.woff2
- Modules\Public\InventoryModules\Monitor\AppInsightsWorkItems.ps1
- docs\.vitepress\dist\assets\chunks\VPLocalSearchBox.DK5qlxOH.js
- tests\Analytics.Module.Tests.ps1
- .ai\memory\PROJECT_CONTEXT.md
- docs\.vitepress\dist\validation-matrix.html
- src\assess\rules\waf.reliability.yaml
- docs\.vitepress\dist\assets\inter-roman-latin.Di8DUHzh.woff2
- Modules\Public\InventoryModules\Monitor\AutoscaleSettings.ps1
- docs\.vitepress\dist\design\decisions\pptx-renderer.html
- tests\Analyze.CostAnomaly.Tests.ps1
- .ai\state\CURRENT_TASK.md
- docs\.vitepress\dist\vp-icons.css
- src\assess\rules\waf.security.yaml
- docs\.vitepress\dist\assets\inter-roman-vietnamese.BjW4sHH5.woff2
- Modules\Public\InventoryModules\Monitor\DataCollectionEndpoints.ps1
- src\report\renderers\inventory\style\Build-AZSCDashboardTabs.ps1
- tests\Analyze.IacGap.Tests.ps1
- .ai\state\HANDOFF.md
- docs\design\decisions\declarative-collectors.md
- src\assess\rules\waf.storage.yaml
- docs\.vitepress\dist\assets\output.md.DBTTBDCu.js
- Modules\Public\InventoryModules\Monitor\DataCollectionRules.ps1
- src\report\renderers\inventory\style\Build-AZSCExcelChart.ps1
- tests\Assessment.Collect.Tests.ps1
- .ai\state\OPEN_QUESTIONS.md
- docs\design\decisions\deterministic-pipeline.md
- src\report\renderers\Export-EChartsDashboard.ps1
- docs\.vitepress\dist\assets\output.md.DBTTBDCu.lean.js
- Modules\Public\InventoryModules\Monitor\LAWorkspaceLinkedServices.ps1
- src\report\renderers\inventory\style\Build-AZSCExcelChartStyle.ps1
- tests\Assessment.Config.Tests.ps1
- .github\ISSUE_TEMPLATE\bug_report.md
- docs\design\decisions\pptx-renderer.md
- src\report\renderers\Export-Excel.ps1
- docs\.vitepress\dist\assets\overview.md.zZ63s-bh.js
- Modules\Public\InventoryModules\Monitor\LAWorkspaceSavedSearches.ps1
- src\report\renderers\inventory\style\Build-AZSCExcelInitialBlock.ps1
- tests\Assessment.Engine.Tests.ps1
- .github\ISSUE_TEMPLATE\feature_request.md
- manifests\collectors\Databases\CosmosDB.psd1
- src\report\renderers\Export-Html.ps1
- docs\.vitepress\dist\assets\overview.md.zZ63s-bh.lean.js
- Modules\Public\InventoryModules\Monitor\LAWorkspaceSolutions.ps1
- src\report\renderers\inventory\style\Out-AZSCReportResults.ps1
- tests\Assessment.Governance.Tests.ps1
- .github\ISSUE_TEMPLATE\question-.md
- manifests\collectors\Databases\MariaDB.psd1
- src\report\renderers\Export-JsonEvidence.ps1
- docs\.vitepress\dist\assets\parameters.md.YtXdSKPK.js
- Modules\Public\InventoryModules\Monitor\MetricAlertRules.ps1
- src\report\renderers\inventory\style\Retirement.kql
- tests\Assessment.IoT.Tests.ps1
- .github\policies\resourceManagement.yml
- manifests\collectors\Databases\MySQL.psd1
- src\report\renderers\Export-Pdf.ps1
- docs\.vitepress\dist\assets\parameters.md.YtXdSKPK.lean.js
- Modules\Public\InventoryModules\Monitor\MonitorMetricsIngestion.ps1
- src\report\renderers\inventory\style\Start-AZSCExcelCustomization.ps1
- tests\Assessment.PermissionAudit.Tests.ps1
- .github\PULL_REQUEST_TEMPLATE\documentation.md
- manifests\collectors\Databases\MySQLflexible.psd1
- src\report\renderers\Export-PowerBi.ps1
- docs\.vitepress\dist\assets\permissions.md.BlwcmYUh.js
- Modules\Public\InventoryModules\Monitor\MonitorPrivateLinkScopes.ps1
- src\report\renderers\inventory\style\Start-AZSCExcelOrdening.ps1
- tests\Assessment.ReportReturn.Tests.ps1
- .github\workflows\azure-inventory.yml
- manifests\collectors\Databases\POSTGRE.psd1
- src\report\renderers\Export-Pptx.ps1
- docs\.vitepress\dist\assets\permissions.md.BlwcmYUh.lean.js
- Modules\Public\InventoryModules\Monitor\MonitorWorkbooks.ps1
- src\report\renderers\inventory\style\Support.json
- tests\AzureScout.Tests.ps1
- .github\workflows\ci.yml
- src\report\renderers\Export-React.ps1
- docs\.vitepress\dist\assets\prerequisites.md.CPumnyyj.js
- tests\CategoryFiltering.Tests.ps1
- .github\workflows\documentation.yml
- src\report\renderers\Export-Word.ps1
- docs\.vitepress\dist\assets\prerequisites.md.CPumnyyj.lean.js
- tests\Collect.ApiResources.Tests.ps1
- .github\workflows\stale.yml
- src\report\templates\report-react.html.template
- docs\.vitepress\dist\assets\roadmap.md.Bo_E33gv.js
- docs\.vitepress\config.ts
- docs\.vitepress\dist\assets\roadmap.md.Bo_E33gv.lean.js
- docs\.vitepress\dist\assets\style.Dqn0XUs4.css
- docs\.vitepress\dist\assets\testing.md.C87polMA.js
- docs\.vitepress\dist\assets\testing.md.C87polMA.lean.js
- docs\.vitepress\dist\assets\troubleshooting.md.SFFm5ZO8.js
- docs\.vitepress\dist\assets\troubleshooting.md.SFFm5ZO8.lean.js
- docs\.vitepress\dist\assets\usage.md.DmIvj64a.js
- docs\.vitepress\dist\assets\usage.md.DmIvj64a.lean.js
- docs\.vitepress\dist\assets\validation-matrix.md.BQkM45QU.js
- docs\.vitepress\dist\assets\validation-matrix.md.BQkM45QU.lean.js
- docs\.vitepress\dist\design\assessment-registry.html
- docs\.vitepress\dist\design\enhancement-spec.html
- docs\.vitepress\dist\design\master-plan.html
- docs\.vitepress\dist\design\task-list.html
- Modules\Private\Extraction\ResourceDetails\Get-AZTIVMQuotas.ps1
- Modules\Private\Extraction\ResourceDetails\Get-AZTIVMSkuDetails.ps1
- Modules\Public\InventoryModules\AI\AIFoundryHubs.ps1
- Modules\Public\InventoryModules\AI\AIFoundryProjects.ps1
- Modules\Public\InventoryModules\AI\AppliedAIServices.ps1
- Modules\Public\InventoryModules\AI\AzureAI.ps1
- Modules\Public\InventoryModules\AI\BotServices.ps1
- Modules\Public\InventoryModules\AI\ComputerVision.ps1
- Modules\Public\InventoryModules\AI\ContentModerator.ps1
- Modules\Public\InventoryModules\AI\ContentSafety.ps1
- Modules\Public\InventoryModules\AI\CustomVision.ps1
- Modules\Public\InventoryModules\AI\FaceAPI.ps1
- Modules\Public\InventoryModules\AI\FormRecognizer.ps1
- Modules\Public\InventoryModules\AI\HealthInsights.ps1
- Modules\Public\InventoryModules\AI\ImmersiveReader.ps1
- Modules\Public\InventoryModules\AI\MachineLearning.ps1
- Modules\Public\InventoryModules\AI\MLComputes.ps1
- Modules\Public\InventoryModules\AI\MLDatasets.ps1
- Modules\Public\InventoryModules\AI\MLDatastores.ps1
- Modules\Public\InventoryModules\AI\MLEndpoints.ps1
- Modules\Public\InventoryModules\AI\MLModels.ps1
- Modules\Public\InventoryModules\AI\MLPipelines.ps1
- Modules\Public\InventoryModules\AI\OpenAIAccounts.ps1
- Modules\Public\InventoryModules\AI\OpenAIDeployments.ps1
- Modules\Public\InventoryModules\AI\SearchIndexes.ps1
- Modules\Public\InventoryModules\AI\SearchServices.ps1
- Modules\Public\InventoryModules\AI\SpeechService.ps1
- Modules\Public\InventoryModules\AI\TextAnalytics.ps1
- Modules\Public\InventoryModules\AI\Translator.ps1
- Modules\Public\InventoryModules\Analytics\Databricks.ps1
- Modules\Public\InventoryModules\Analytics\DataExplorerCluster.ps1
- Modules\Public\InventoryModules\Analytics\EvtHub.ps1
- Modules\Public\InventoryModules\Analytics\Purview.ps1
- Modules\Public\InventoryModules\Analytics\Streamanalytics.ps1
- Modules\Public\InventoryModules\Analytics\Synapse.ps1
- Modules\Public\InventoryModules\Compute\AvailabilitySets.ps1
- Modules\Public\InventoryModules\Compute\AVD.ps1
- Modules\Public\InventoryModules\Compute\AVDApplicationGroups.ps1
- Modules\Public\InventoryModules\Compute\AVDApplications.ps1
- Modules\Public\InventoryModules\Compute\AVDAzureLocal.ps1
- Modules\Public\InventoryModules\Compute\AVDScalingPlans.ps1
- Modules\Public\InventoryModules\Compute\AVDSessionHosts.ps1
- Modules\Public\InventoryModules\Compute\AVDWorkspaces.ps1
- Modules\Public\InventoryModules\Compute\CloudServices.ps1
- Modules\Public\InventoryModules\Compute\VirtualMachine.ps1
- Modules\Public\InventoryModules\Compute\VirtualMachineScaleSet.ps1
- Modules\Public\InventoryModules\Compute\VMDisk.ps1
- Modules\Public\InventoryModules\Compute\VMOperationalData.ps1
- Modules\Public\InventoryModules\Compute\VMWare.ps1
- Modules\Public\InventoryModules\Containers\AKS.ps1
- Modules\Public\InventoryModules\Containers\ARO.ps1
- Modules\Public\InventoryModules\Containers\ContainerApp.ps1
- Modules\Public\InventoryModules\Containers\ContainerAppEnv.ps1
- Modules\Public\InventoryModules\Containers\ContainerGroups.ps1
- Modules\Public\InventoryModules\Containers\ContainerRegistries.ps1
- Modules\Public\InventoryModules\Databases\CosmosDB.ps1
- Modules\Public\InventoryModules\Databases\MariaDB.ps1
- Modules\Public\InventoryModules\Databases\MySQL.ps1
- Modules\Public\InventoryModules\Databases\MySQLflexible.ps1
- Modules\Public\InventoryModules\Databases\POSTGRE.ps1
- Modules\Public\InventoryModules\Databases\POSTGREFlexible.ps1
- Modules\Public\InventoryModules\Databases\RedisCache.ps1
- Modules\Public\InventoryModules\Databases\SQLDB.ps1
- Modules\Public\InventoryModules\Databases\SQLMI.ps1
Version History
| Version | Downloads | Last updated |
|---|---|---|
| 2.11.0 | 8 | 7/26/2026 |
| 2.10.0 | 5 | 7/26/2026 |
| 2.9.0 | 6 | 7/26/2026 |
| 2.8.0 | 5 | 7/26/2026 |
| 2.7.0 (current version) | 5 | 7/26/2026 |
| 2.6.0 | 5 | 7/26/2026 |
| 2.5.3 | 4 | 7/25/2026 |
| 2.5.2 | 6 | 7/25/2026 |
| 2.5.1 | 4 | 7/25/2026 |
| 2.5.0 | 5 | 7/25/2026 |
| 2.4.0 | 4 | 7/25/2026 |
| 2.3.0 | 6 | 7/25/2026 |
| 2.2.0 | 4 | 7/24/2026 |
| 2.1.0 | 5 | 7/24/2026 |
| 2.0.1 | 5 | 7/23/2026 |
| 2.0.0 | 3 | 7/23/2026 |
| 1.0.0 | 48 | 2/25/2026 |