$rootPath = "master:/sitecore/content" $formsRoot = "master:/sitecore/Forms" $formRendering = Get-Item "master:/sitecore/layout/Renderings/System/Forms/Mvc Form"
$defaultDevice = Get-LayoutDevice -Default $forms = Get-ChildItem -Path $formsRoot -Recurse | Where-Object { $_.TemplateName -eq "Form" }
$formLookup = @{} foreach ($form in $forms) { $formLookup[$form.ID.ToString()] = $form }
$pages = Get-ChildItem -Path $rootPath -Recurse
$result = New-Object System.Collections.Generic.List[object]
foreach ($page in $pages) { $renderings = Get-Rendering ` -Item $page ` -Device $defaultDevice ` -FinalLayout ` -Rendering $formRendering
if (-not $renderings) { continue }
foreach ($rendering in $renderings) {
if ($rendering.DataSource -and $formLookup.ContainsKey($rendering.DataSource)) { $form = $formLookup[$rendering.DataSource]
$result.Add([pscustomobject]@{ FormName = $form.Name FormPath = $form.Paths.FullPath PageName = $page.Name PagePath = $page.Paths.FullPath DataSource = $rendering.DataSource RenderingName = $formRendering.Name }) } } }
if ($result.Count -eq 0) { Show-Alert "No forms found as datasources under $rootPath" }
else { $result | Sort-Object FormName, PagePath | Show-ListView -Title "Forms report" -Property ` @{ Label = "Form Name"; Expression = { $_.FormName } }, @{ Label = "Form Path"; Expression = { $_.FormPath } }, @{ Label = "Page Name"; Expression = { $_.PageName } }, @{ Label = "Page Path"; Expression = { $_.PagePath } }, @{ Label = "Form ID"; Expression = { $_.DataSource } } }