Powershell Catch返回值

时间:2013-02-06 14:22:38

标签: sharepoint powershell foreach

我有一个powershell脚本,我试图自动将webparts添加到sharepoint页面。下面的脚本包含在FOREach-Object中,它在第一次迭代时工作正常,但在第二次迭代时,它会将一些不需要的信息返回到PowerShell屏幕(以及我正在创建的日志)。

我正在寻找一种方法来防止返回除write-host语句之外的任何内容。我最初认为它可能是一个例外,但看起来Web部件仍然没有添加任何问题,我在返回信息中找不到任何对exeption的引用。

这是我到目前为止所做的:

$addCsv | ForEach-Object{

            $tempwebURL = $_.'SiteURL'
            $pageUrl = $_.'Page'
            $varWebPartZone = $_.'WebPartZone'
            $varChrome = $_.'Chrome'
            $varTitle = $_.'Title'          
            $varPosition = [int]$_.'Position'

            #get current site
            $tempweb= Get-SPWeb -Identity $tempwebURL
            Write-Host ("Adding Web Part to :"+ $tempweb.Title)

            #add webpart
            [System.Xml.XmlTextReader]$oxmlReader = new-object System.Xml.XmlTextReader("Path removed");
            $webpartmanager=$tempweb.GetLimitedWebPartManager( $pageUrl,  [System.Web.UI.WebControls.WebParts.PersonalizationScope]::Shared)    
            [System.Web.UI.WebControls.WebParts.WebPart] $oWebPart
            $err = ''
            $oWebPart = new-object $webpartmanager.ImportWebPart($oxmlReader,[ref]$_.Exception.Message)
            $oWebPart.Title = $varTitle
            $oWebPart.ChromeType=$varChrome
            $webpartmanager.AddWebPart($oWebPart, $varWebPartZone, $varPosition)| Out-Null 
            $oWebPart.Dispose() 
            $oxmlReader.Close()
            $webpartmanager.Dispose()
            $tempweb.Dispose()
            $num++

}

以下是我不想要的信息:

AllowClose                         : True
AllowConnect                       : True
AllowEdit                          : True
AllowHide                          : True
AllowMinimize                      : True
AllowZoneChange                    : True
AuthorizationFilter                :
CatalogIconImageUrl                :
ChromeState                        : Normal
ChromeType                         : None
ConnectErrorMessage                :
Description                        :
Direction                          : NotSet
DisplayTitle                       : Last Date Modified Explorer
ExportMode                         : None
HasUserData                        : False
HasSharedData                      : False
Height                             :
HelpMode                           : Navigate
HelpUrl                            :
Hidden                             : False
IsClosed                           : False
ImportErrorMessage                 : Cannot import this Web Part.
IsShared                           : True
IsStandalone                       : False
IsStatic                           : False
Subtitle                           :
Title                              : Last Date Modified Explorer
TitleIconImageUrl                  :
TitleUrl                           :
Verbs                              : {}
WebBrowsableObject                 : Removed
Width                              :
Zone                               :
ZoneIndex                          : 0
Controls                           :
BackImageUrl                       :
DefaultButton                      :
GroupingText                       :
HorizontalAlign                    : NotSet
ScrollBars                         : None
Wrap                               : True
AccessKey                          :
Attributes                         : System.Web.UI.AttributeCollection
BackColor                          : Color [Empty]
BorderColor                        : Color [Empty]
BorderWidth                        :
BorderStyle                        : NotSet
ControlStyle                       : System.Web.UI.WebControls.PanelStyle
ControlStyleCreated                : True
CssClass                           :
Style                              : System.Web.UI.CssStyleCollection
Enabled                            : True
EnableTheming                      : True
Font                               :
ForeColor                          : Color [Empty]
HasAttributes                      : False
SkinID                             :
TabIndex                           : 0
ToolTip                            :
ClientID                           : g_adea57ed_5d6d_40ee_b468_ce85e37f5e9a
ID                                 : g_adea57ed_5d6d_40ee_b468_ce85e37f5e9a
EnableViewState                    : True
NamingContainer                    :
BindingContainer                   :
Page                               :
TemplateControl                    :
Parent                             :
TemplateSourceDirectory            :
AppRelativeTemplateSourceDirectory :
Site                               :
Visible                            : True
UniqueID                           : g_adea57ed_5d6d_40ee_b468_ce85e37f5e9a

我也欢迎任何“你可以通过......做得更好”的评论。再次感谢。

1 个答案:

答案 0 :(得分:2)

我的猜测是以下行是罪魁祸首:

[System.Web.UI.WebControls.WebParts.WebPart] $oWebPart

在第一次迭代中,这不会做太多,它只是$null的演员。但是在后来的迭代中,它保留了前一次迭代的值并输出它。无论如何你都不需要那条线,因为它什么都不做。