Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Below script generates an excel file indicating the forms library, list based forms and custom workflows, including SPD and visual studio ones inside a webapp. Script is valid for Moss 2007/SharePoint 2010 and SharePoint 2013 versions.
[Void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")
[Void][System.Reflection.Assembly]::LoadWithPartialName("System.Web")
$table = New-Object System.Data.DataTable
$col1 = New-Object system.Data.DataColumn "weburl",([string])
$col2 = New-Object system.Data.DataColumn "Listurl",([string])
$col3 = New-Object system.Data.DataColumn "IsFromsLib",([string])
$col4 = New-Object system.Data.DataColumn "IsListBasedIP",([string])
$col5 = New-Object system.Data.DataColumn "CustomWFName",([string])
$table.Columns.Add($col1)
$table.Columns.Add($col2)
$table.Columns.Add($col3)
$table.Columns.Add($col4)
$table.Columns.Add($col5)
$row = $table.NewRow()
$webApplication = [Microsoft.SharePoint.Administration.SPWebApplication]::Lookup("<webappurl>")
foreach($site in $webApplication.Sites)
{
foreach($web in $site.allwebs)
{
foreach($list in $web.lists)
{
$flag = $false
if($list.BaseTemplate -eq "XMLForm")
{
write-host "Forms Lib :" $web.url, $list.title
$row.weburl = $web.url
$row.Listurl = $list.title
$row.IsFromsLib = $true
$formslibcount++
$flag = $true
}
if($list.ContentTypes[0].ResourceFolder.Properties[“_ipfs_infopathenabled”] -eq $true)
{
write-host "List based Form :" $web.url, $list.title
$row.weburl = $web.url
$row.Listurl = $list.title
$row.IsListBasedIP = $true
$iplibs++
$flag = $true
}
if($list.workflowassociations.count -ne 0)
{
foreach($wfass in $list.workflowassociations)
{
if(($wfass.ModificationUrl -eq $null) -and ($wfass.enabled -eq $true))
{
write-host $web.url, $list.title, $wfass.internalname, $wfass.enabled
$row.weburl = $web.url
$row.Listurl = $list.title
$row.CustomWFName = $wfass.internalname
$count++
$table.Rows.Add($row)
$row = $table.NewRow()
$flag = $true
}
}
}
if($flag)
{
$table.Rows.add($row)
$row = $table.NewRow()
}
}
}
}
$grid = new-object System.Web.UI.WebControls.DataGrid
$grid.DataSource = $table
$grid.DataBind()
$fileinfo = "<path to xls file>"
$streamwriter = new-object System.IO.StreamWriter $fileinfo
$htmltextwriter = new-object System.Web.UI.HtmlTextWriter $streamwriter
$grid.RenderControl($htmltextwriter)
$htmltextwriter.close()
$streamwriter.Close()