2
我想写一个PowerShell脚本,将运行在我的SharePoint 2010/2007页面,并将列出他们的页面布局,并将结果保存到文本文件。PowerShell脚本列出所有SharePoint 2010/2007页面及其布局
EnumeratePages:
运行下面的脚本,我又写道同时,我小步舞曲错误的acouple后得到异常已被调用的目标引发异常。 在T:\ listpages.ps1:75字符:15 + EnumeratePages < < < <( 'http://preportal.idc.ac.il') + CategoryInfo:NotSpecified:(:) [EnumeratePages],TargetInvocationException + FullyQualifiedErrorId:System.Reflection.TargetInvocationException,EnumeratePages
# Add SharePoint cmdlets reference
Add-PSSnapin microsoft.sharepoint.powershell -ErrorAction SilentlyContinue
function EnumeratePages($Url) {
$site = new-object Microsoft.SharePoint.SPSite $Url
foreach($web in $site.AllWebs) {
if ([Microsoft.SharePoint.Publishing.PublishingWeb]::IsPublishingWeb($web)) {
$pWeb = [Microsoft.SharePoint.Publishing.PublishingWeb]::GetPublishingWeb($web)
$pages = $pWeb.PagesList
Write-Host "Processing Web:" $pWeb.Url "..." -ForegroundColor Magenta
foreach ($item in $pages.Items) {
$fileUrl = $pWeb.Url + $webUrl + "/" + $item.File.Url
Write-Host " " $fileUrl -ForegroundColor Green
foreach ($fld in $item.Fields)
{
if($fld.Title -and $fld.InternalName -and $item[$fld.InternalName])
{
if($fld.InternalName -eq "PublishingPagelayout")
{
Write-Host "PublishingPagelayout: " + $item[$fld.InternalName].ToString()
Select "Page Url: ", $fileUrl, "PublishingPagelayout: ", $item[$fld.InternalName].ToString() | Format-List
}
}
#$spFile = $web.GetFile($fileUrl.ToString())
#if($spFile.Properties.Count -gt 0)
#{
#}
}
}
}
else {
Write-Host " Not a publishing web:" $web.Url". Looking for Site Pages library." -ForegroundColor Magenta
$pages = $null
$pages = $web.Lists["Site Pages"]
if ($pages) {
Write-Host " " $pages.Title "found." -ForegroundColor Green
foreach ($item in $pages.Items) {
$fileUrl = $pWeb.Url + $webUrl + "/" + $item.File.Url
Write-Host " " $fileUrl -ForegroundColor Green
foreach ($fld in $item.Fields)
{
if($fld.Title -and $fld.InternalName -and $item[$fld.InternalName])
{
if($fld.InternalName -eq "PublishingPagelayout")
{
Write-Host "PublishingPagelayout: " + $item[$fld.InternalName].ToString()
Select "Page Url: ", $fileUrl, "PublishingPagelayout: ", $item[$fld.InternalName].ToString() | Format-List
}
}
}
#$spFile = $web.GetFile($fileUrl)
#if($spFile.Properties.Count -gt 0)
#{
#}
}
else {
Write-Host " Site Pages library not found." -ForegroundColor Red
}
}
Write-Host "... completed processing" $web "..." -ForegroundColor Magenta
}
}
}
$row = EnumeratePages('http://server-name')
$row > t:\SitePagesPropertiesReport2.txt
请指教。
您是否尝试过与ISE或调试的PowerGUI? – 2012-02-26 09:10:44
尝试调试它。但是你说“几分钟后” - 运行脚本的几分钟?超时? – 2012-02-26 15:45:16
运行脚本后几分钟。不是超时 – Hagai 2012-02-27 06:24:05