本文為機器翻譯文章。如需檢視英文版,請選取 [原文] 核取方塊。您也可以將滑鼠指標移到文字上,即可在快顯視窗顯示英文原文。
譯文
原文

SharePoint 2013 的 Windows PowerShell 學習藍圖

SharePoint 2013
 

適用版本:SharePoint Foundation 2013, SharePoint Server 2013

上次修改主題的時間:2016-12-16

摘要︰使用此學習藍圖來了解 SharePoint 2013 中的 Windows PowerShell。

SharePoint 2013 使得人們能夠輕鬆合作。SharePoint 2013 讓您和您的員工可設定網站來互相分享資訊、全程管理文件,以及發佈報表來協助所有人做出明智的決定。SharePoint 2013 中的 Windows PowerShell 讓系統管理員可自動化對 SharePoint Web 應用程式、網站集合、網站、清單等等的工作,並提供透過管理中心之外的命令列替代方法來設定 SharePoint 2013。

如果您不熟悉 SharePoint 2013 中的 Windows PowerShell,本文可協助您識別需要學習的資訊,以了解如何建立對 SharePoint 2013 中 Windows PowerShell 的專業知識。這包括說明 Windows PowerShell 基本知識的文章。您必須先了解先決技術,因為 SharePoint 2013 中的 Windows PowerShell 假設您已了解基本的概念。之後,您就可開始使用層級 100 (入門)、層級 200 (中級) 及層級 300 (高級) 章節中的資源,以了解 SharePoint 2013 中的 Windows PowerShell。

了解藍圖橫幅

建議您按照列出的順序閱讀這些文章。

本節包含可協助您了解 SharePoint 2013 中的 Windows PowerShell 如何運作之背景資訊的文章與書籍連結。

  • 步驟 1︰了解 Windows PowerShell 的基本知識

    在您開始使用Windows PowerShellSharePoint 2013中自動化工作之前,您必須了解字詞、 概念,以及如何使用一個物件來完成工作。若要了解為何一個可使用Windows PowerShell和詞彙的定義,請參閱Windows PowerShell 入門

    您的目標是了解 Windows PowerShell 的用途、概念、詞彙及角色。

  • 步驟 2︰了解 SharePoint 2013 中 Windows PowerShell 的權限需求。

    請參閱Use Windows PowerShell to administer SharePoint 2013

    在您針對 SharePoint Cmdlet 執行 Windows PowerShell 之前,必須先了解所需的最低權限。具備伺服器陣列管理員群組的成員資格或對 SharePoint 伺服器陣列具備伺服器陣列管理員身分,都不具備足夠的權限來執行 SharePoint Cmdlet。如果您不具備所需權限,可能會收到下列錯誤訊息︰「無法存取本機伺服器陣列」。

    您的目標是了解針對 SharePoint Cmdlet 執行 Windows PowerShell 所需的權限。

下列資源包含有關 SharePoint 2013 中 Windows PowerShell 的入門資訊。

  • 了解 Get-Command Cmdlet。

    請參閱Get-command

    建議您第一個了解使用的 Cmdlet (發音為 command-let) 為 Get-Command Cmdlet。將此 Cmdlet 想像為命令詳細目錄,它會顯示目前 Windows PowerShell 工作階段所有可用的 Cmdlet。Cmdlet 的建構方式是「動詞-名詞物件」。動詞是動作導向的字詞,例如 Add、Get、Set、Update。名詞是說明命令作用的目標,例如 SPSite 或 SPUser。請注意 SharePoint 2013 的所有名詞都以 "SP" 開頭。

    下表顯示範例來說明如何結合動詞與名詞來建立 Cmdlet 名稱︰

     

    動詞

    名詞

    Cmdlet

    Get

    SPSite

    Get-SPSite

    Add

    SPUser

    Add-SPUser

    若要顯示所有可用Windows PowerShell cmdlet 清單,您可以使用Get-Command指令程式。結果會顯示Windows PowerShell核心 cmdlet 和SharePoint 2013指令程式。僅顯示清單中的所有SharePoint 2013 cmdlet,從 [ Windows PowerShell命令提示字元] 視窗中,使用-Noun參數搭配"SP"和萬用字元 (*)。 會以下列方式顯示所產生的語法:

    Get-Command -noun SP*
    

    同樣地,您可使用 -Verb 參數來顯示以特定動詞開頭的 Cmdlet,例如 "Get",語法會如下所示︰

    Get-Command -Verb get
    

    您的目標是依名詞或依動詞來顯示適用於 SharePoint 2013 之所有可用 Windows PowerShell Cmdlet 的清單。

  • 步驟 2︰了解 Get-Help Cmdlet

    請參閱Get-help

    此 Cmdlet 會顯示任何 Windows PowerShell Cmdlet 的說明資訊。它有三層的顯示︰一般、詳細及完整。

    例如,若想要顯示 Get-SPSite Cmdlet 的完整說明,請從 Windows PowerShell 命令提示字元輸入下列語法︰

    Get-Help Get-SPSite -Full
    

    若只要顯示 Get-SPSite Cmdlet 的範例,請輸入下列語法︰

    Get-Help Get-SPSite -Examples
    

    互動式工具與指南 》 可協助您瞭解Windows PowerShell語法,請參閱Windows PowerShell 命令產生器工具

    您的目標是了解如何取得並使用 Windows PowerShell Cmdlet 命令語法或範例的說明。

下列資源包含有關 SharePoint 2013 中 Windows PowerShell 的中級資訊。

  • 步驟 1︰了解管線

    請參閱參閱 about_Pipelines

    簡單來說,管線的概念會傳遞至另一個物件的命令。第一個的結果是命令的 [下一步] 命令輸入。如需詳細資訊,查看(Piping) 與管線

    例如,您可能想要顯示電腦上所執行的 SharePoint Service。使用 Get-Service Cmdlet 可顯示所有可用的服務。此結果將作為第二個命命 (Where-Object Cmdlet) 的輸入,並進行篩選以顯示 SharePoint Service。結果是 SharePoint Service 的排序清單。從 Windows PowerShell 命令提示字元,輸入下列語法︰

    Get-Service | Where-Object {$_.DisplayName -like "Sharep*"}
    

    結果將類似如下所示︰

     

    Status

    Name

    DisplayName

    Running

    OSearch15

    SharePoint Server Search 15

    Stopped

    SPAdminV4

    SharePoint Administration

    Running

    SPSearchHostController

    SharePoint Search Host Controller

    Running

    SPTimerV4

    SharePoint Timer Service

    Running

    SPTraceV4

    SharePoint Tracing Service

    Running

    SPUserCodeV4

    SharePoint User Code Host

    Stopped

    SPWriterV4

    SharePoint VSS Writer

    您的目標是了解管線的概念、使用原因及使用時機。

  • 步驟 2︰了解參數集

    查看參數集資訊

    參數集提供多個方法來使用同一個命令。因為參數集互斥,所以您無法從不同參數集組合參數。

    例如,Get-SPSite Cmdlet 有四種不同的使用方法。參數集由多行語法組成。每種方法接受不同的參數集。

    Get-SPSite Cmdlet 的語法如下所示︰

    Get-SPSite [-AssignmentCollection <SPAssignmentCollection>] [-CompatibilityLevel <Int32>] [-Confirm [<SwitchParameter>]] [-Filter <ScriptBlock>] [-Limit <String>] [-WebApplication <SPWebApplicationPipeBind>] [-WhatIf [<SwitchParameter>]]

    Get-SPSite [-Identity] <SPSitePipeBind> [-AssignmentCollection <SPAssignmentCollection>] [-CompatibilityLevel <Int32>] [-Confirm [<SwitchParameter>]] [-Filter <ScriptBlock>] [-Limit <String>] [-Regex <SwitchParameter>] [-WhatIf [<SwitchParameter>]]

    Get-SPSite -ContentDatabase <SPContentDatabasePipeBind> [-AssignmentCollection <SPAssignmentCollection>] [-CompatibilityLevel <Int32>] [-Confirm [<SwitchParameter>]] [-Filter <ScriptBlock>] [-Limit <String>] [-WhatIf [<SwitchParameter>]]

    Get-SPSite -SiteSubscription <SPSiteSubscriptionPipeBind> [-AssignmentCollection <SPAssignmentCollection>] [-CompatibilityLevel <Int32>] [-Confirm [<SwitchParameter>]] [-Filter <ScriptBlock>] [-Limit <String>] [-WhatIf [<SwitchParameter>]]

    在此語法中,使得每個參數集唯一的參數是以粗體顯示。如果您決定使用 WebApplication 參數,則只可使用第一個參數集中的參數。您不得使用第二個參數集中的 Regex 參數。如果您使用不同參數集中的參數,將會收到下列錯誤訊息︰「無法解析參數集」。

    您的目標是了解及正確使用參數集。

  • 步驟 3︰了解 Get-Member Cmdlet

    查看Get-member

    若要顯示與任何 Cmdlet 相關的所有方法和屬性的清單,請使用 Get-Member Cmdlet。

    例如,您可能想要知道伺服器陣列中每個網站集合的 Web 應用程式、區域及擁有者資訊。Get-SPSite Cmdlet 的預設輸出都不會顯示這些屬性。為了完成此工作,您可移往 SharePoint 管理中心網站,然後檢視針對每個網站集合所定義的 Web 應用程式、區域及擁有者資訊。如果您擁有上百或上千個網站集合,這將會花費不少時間。Get-Member Cmdlet 可顯示 Cmdlet 的所有屬性與方法。所以,使用管線與下列簡單數行語法會比使用 SharePoint 管理中心網站更有效率。

    首先,輸入下列語法來確定 Web 應用程式、區域及擁有者屬性是否可用︰

    Get-SPSite | Get-Member
    

    您會看到 owner、webapplication 及 zone 屬性是可用的。

    接下來使用 Format-List Cmdlet,並輸入下列語法來輸送要顯示的屬性︰

    Get-SPSite | Format-List owner, webapplication, zone
    

    若要使用Get-Member指令程式的另一種方式是使用儲存值的變數。此變數將用於顯示 SharePoint 伺服器陣列中的每個網站集合的配額層級資訊。如需變數的詳細資訊,請參閱 < about_Variables

    我們將使用變數 $a 來儲存伺服器陣列中每個網站集合的結果,然後使用 Get-Member Cmdlet 傳回的屬性。此範例會顯示每個網站集合的配額層級資訊。

    首先,設定將包含每個網站集合結果的變數。

    $a=Get-SPSite
    

    接下來,使用該變數與 Get-Member Cmdlet 傳回的任一屬性來執行動作。此範例使用 Quota 屬性來顯示配額層級。

    $a.quota
    

    我們大可使用 Secondary Contact 屬性來顯示伺服器陣列中每個網站集合的次要連絡人,或使用 Owner 屬性來傳回每個網站集合的擁有者。希望您看出 Get-Member Cmdlet 的威力。

    您的目標是了解如何透過使用 Get-MemberFormat-List Cmdlet 及變數,顯示並使用 Cmdlet 的屬性和方法。

  • 步驟 4︰了解別名

    請參閱about_Aliases

    有時您使用的是長或重複使用同一個指令程式指令程式名稱。在下列情況下,您可能會想要使用別名。只要放入別名為其他指派給指令程式、 函數或指令碼的名稱。如果指令程式並沒有別名,您可以使用Set-alias指令程式來建立或變更現有 cmdlet、 指令碼或函數的別名。若要顯示的預設別名Windows PowerShell內的清單,請使用Get-alias指令程式。

    Get-Alias Cmdlet 是一個不錯的起點,但如果您是要尋找屬於特定 Cmdlet 的別名,就可使用 Get-Alias Cmdlet 與 Where-Object Cmdlet 來篩選結果集以達到目的。

    此範例會傳回內含 Add 名詞的別名清單。從 Windows PowerShell 命令提示字元,輸入下列語法︰

    Get-Alias | Where-object {$_.Definition -like "add*"}
    

     

    CommandType Name Definition

    Alias

    ac

    Add-Content

    Alias

    asnp

    Add-PSSnapin

    如果某個 SharePoint Cmdlet 沒有別名,您可使用 Set-Alias Cmdlet 來建立別名。以下範例為 Get-SPSite Cmdlet 建立 "gsp" 別名。

    Set-Alias gsp Get-SPSite
    

    現在當您從 Windows PowerShell 命令提示字元輸入下列語法時,就會顯示伺服器陣列中的所有網站集合︰

    gsp
    
    重要事項 重要事項:
    預設沒有為任何 SharePoint 2013 Cmdlet 定義別名。您必須為每個想要使用的 SharePoint Cmdlet 建立別名。在建立自訂別名的清單之後,必須確保有儲存下來。依據預設,自訂別名會儲存在目前使用中的 Windows PowerShell 工作階段。關閉工作階段之後,所有自訂別名都會遺失

    若要儲存自訂別名,請使用下列選項︰

    1. 使用Export-alias指令程式將別名匯出至檔案,然後使用Import-alias指令程式將檔案匯入至Windows PowerShell工作階段。

    2. Set-Alias Cmdlet 新增至您的 Windows PowerShell 設定檔。

    如需如何使用Export-AliasImport-AliasSet-Alias指令程式來儲存自訂別名Windows PowerShell工作階段的詳細資訊,請參閱 「 保留別名 」 一節的Windows PowerShell Aliases

    您的目標是了解使用別名的時機、建立別名的方法,以及跨 Windows PowerShell 工作階段儲存別名的方法。

下列資源包含有關 SharePoint 2013 中 Windows PowerShell 的高級資訊。

  • 步驟 1︰了解指令碼

    請參閱<使用 Windows Powershell 管理 SharePoint 2013>中<指令碼和執行原則>一節。

    層級 100 與 200 示範如何執行單一命令、一連串的命令,以及透過管線傳遞的一連串命令,以完成工作。但要是您要更新 SharePoint 伺服器陣列中數千個網站集合的某個屬性,或要建立 10,000 位使用者呢?雖然您可使用 SharePoint 管理中心網站來完成此工作,但可能會花費您數天、甚至數星期的時間。Windows PowerShell 指令碼可讓您在數分鐘、甚至數秒鐘內完成這些工作。

    編寫指令碼是自動完成一系列的命令。 指令碼會包含一或多個Windows PowerShell命令的文字檔案。Windows PowerShell指令碼已副檔名為.ps1。您可以執行指令碼之前,您必須先執行原則的概念。如需詳細資訊,請參閱about_Execution_Policies

    在執行原則層級從「受限制」變更為其他層級之前,沒有人能執行指令碼,甚至指令碼的原始擁有者也不能。「受限制」原則是 Windows PowerShell 的預設原則。不過,SharePoint 2013 所需的最低執行原則是 RemoteSigned

    若要了解指令碼概念,請參閱執行 Windows PowerShell 指令碼

    若要檢視並下載 SharePoint 2010 與 2013 的範例指令碼,請參閱指令碼庫

    您的目標是了解執行指令檔所需的權限以及執行指令檔的方法。

我們歡迎且珍惜您的意見反應!請使用文章最底下的 [本文對您有任何幫助嗎?] 區段來評價本內容,或將您的意見與建議傳送至 SharePoint IT 文件意見反應 (itspdocs@microsoft.com)。作者將會檢閱您的意見,並用於改善本文件。我們不會儲存您的電子郵件地址,或將其使用於其他用途。

https://technet.microsoft.com/zh-tw/library/ee890108.aspx
顯示: