Share via


SharePoint

功能強大的 SharePoint 命令列管理

Todd Klindt

 

摘要:

  • 使用 STSADM 設定 SharePoint
  • 為日常管理工作撰寫指令碼
  • 進階的 STSADM 作業

請思考人們與 Windows 或 Microsoft Office 互動的方式。有些使用者愛用滑鼠,會使用指標瀏覽功能表與工具列執行一般工作。有些使用者則慣用

鍵盤,可快速執行常見按鍵與捷徑。每個指定的工作幾乎都有好幾個完成的方法。

事實上圖形介面容易使用,但對於需要重複執行相同動作的工作來說,圖形介面也可能相當累贅。有些事情透過鍵盤反而更容易完成。如果您進行 SharePoint® 管理,您大概已體驗過因為圖形介面而拖慢工作速度的情況。但是,SharePoint 確實會提供功能更強大的方式來協助您完成工作。

管理 Windows® SharePoint Services (WSS) 及 Microsoft® Office SharePoint Server 2007 (MOSS) 的主要介面是 GUI 式的「SharePoint 管理中心」。但 SharePoint 也包含管理能力更強大的命令列工具。這個工具是 STSADM.exe,它提供 SharePoint 管理中心的所有功能,而且具有許多系統管理員所需的命令列靈活性。在本文中,我會為您上一堂使用 STSADM 管理 WSS 及 MOSS 的速成課。我也會提供您如何設定環境的秘訣,並討論常見的 STSADM 命令。我甚至會告訴您一些進階的 STSADM 命令,需要使用這些命令時,您肯定會是同事心目中的英雄。

入門

如果您還沒接觸過 STSADM,可能是因為它的位置不太明顯。在 Windows SharePoint Services 2.0 中,它的預設位置是 c:\program files\common files\microsoft shared\web server extensions\60\bin。3.0 版的預設位置則是 c:\program files\common files\microsoft shared\web server extensions\12\bin。

為了簡化使用這個工具的方法,我採取兩種不同的方法。第一個方法是將該目錄加入 PATH 環境變數中。這樣我可以在檔案系統的任何位置中使用 STSADM。不過這個方法不一定隨時都可使用。第二個方法是建立 CMD.EXE 的捷徑,並將 STSADM 的位置設為初始目錄。為什麼不讓捷徑直接指向 STSADM?因為 STSADM 不是互動式命令,這麼做不會有作用。因此,若讓捷徑直接指向 STSADM,會短暫地顯示其用法,然後命令視窗就會消失。

執行 STSADM 時,您必須是網頁伺服器上本機 Administrators 群組的成員,且必須在本機執行該應用程式。這意味著您不能使用 STSADM,從遠端管理 SharePoint 伺服器。

若要查看可使用 STSADM 執行的作業,請在命令提示視窗中鍵入 stsadm.exe -help。對 SharePoint 套用更新及 Hotfix 後,可能會增加新作業,因此請務必檢查此清單。您也可以在 go.microsoft.com/fwlink/?LinkId=77516 中找到 stsadm.exe 作業的簡便指南。

STSADM 基礎

讓我們先來看可用來調整現有 SharePoint 安裝的一些命令。使用 STSADM 可將功能新增至 SharePoint,並可修改組態設定。

STSADM 使用 -o 參數,後面接著待執行的作業。光鍵入 STSADM -operationname 不會有作用。例如,若要在安裝中新增網站範本,可使用下列命令:

Stsadm -o addtemplate -filename <filename of the template> 
-title <title of template> -description <description of template>

或者,若要新增網頁組件套件,可使用此命令:

Stsadm -o addwppack -filename <filename of the Web Part Package>

如需任何作業之用法的詳細資料,只要不帶參數送出作業,STSADM 就會告訴您預期的輸入。STSADM -help operationname 也會提供您用法資訊。

管理範本時,可使用 enumtemplates 作業,查看已新增了哪些範本,而使用 deletetemplate 可移除已安裝的範本。同樣地,也有命令可處理網頁組件套件。您可使用 enumwppacks 作業,列出每個虛擬伺服器或 Web 應用程式上安裝的網頁組件套件,而使用 deletewppack 可移除任何已新增的網頁組件套件。

STSADM 也有兩個處理 SharePoint 設定的作業:setproperty 及 getproperty。不使用參數執行這兩個作業會顯示一份清單,其中會列出您可檢視或操作的屬性。就像 STSADM 本身一樣,這份清單會隨著更新及 Hotfix 而有所變更。然而,有些屬性比其他屬性更加有用。[圖 1] 列出安裝 SharePoint 之後您可能想設定的一些屬性,包括 SharePoint 系統管理員最常詢問的常用屬性。

讓我們快速地查看其中一個屬性的用法。下列命令會使 SharePoint 每隔 10 分鐘送出即時提醒:

Stsadm -o setproperty -pn job-immediate-alerts -pv "Every 10 minutes"

請注意,我使用 -pn 和 -pv,而不是 -propertyname 和 -propertyvalue。當您不想鍵入整個字時,可以使用這些縮寫形式。同時,本節討論的所有範例和命令都適用於 Windows SharePoint Services 2.0 和 3.0 版。

日常管理

SharePoint 的日常管理相當容易。對於大多數的 SharePoint 系統管理員來說,大多數日常工作是指處理使用者和網站。STSADM 有幾項作業可簡化這些工作。

我會先討論 site 和 web。為了一致起見,我用 "site" 來表示網站集合,而用 "web" 來表示子網站。有些術語不太容易分辨,但若與 STSADM 所用的術語保持一致,會比較容易找到需要的命令。

若執行大型的 SharePoint 安裝,可能會花許多時間為使用者建立新網站。我很明白,因為我自己一直重複做這件事。在 SharePoint 管理中心內,可相當容易地建立新網站。但因為經常執行這個工作,我發現使用 STSADM 可更快完成預期的工作。

所以我使用 createsite 作業。這個作業相當簡單,使用的參數如下:

  • url <url>
  • ownerlogin <網域\名稱>
  • owneremail <someone@example.com>
  • ownername <顯示名稱>
  • lcid <語言>
  • sitetemplate <網站範本>
  • title <網站標題>
  • description <網站描述>
  • quota <配額範本>

您可以在命令提示視窗中鍵入 stsadm -help createsite,以列出這些參數 (請參閱 [圖 2])。在這九個參數中,必要欄位只有 URL、ownerlogin 和 owneremail。

圖 2 Createsite 參數

圖 2** Createsite 參數 **(按影像可放大)

如果建立網站是您的例行公事,您可撰寫 STSADM 的 wrapper 指令碼以自動執行工作,進一步簡化程序。例如,若要自動建立個人網站,可以將下列命令儲存至名稱為 createpersonalsite.cmd 的文字檔:

stsadm -o createsite -url https://localhost/users/%1 -ownerlogin contoso\%1 
-owneremail %1@contoso.com -sitetemplate usersite.stp 
-title "Personal site for %1" -description "Personal site for %1" -quota "500 MB"

然後,若要為使用者 jsmith 建立網站,您只要執行下列命令:

createpersonalsite.cmd jsmith

透過撰寫建立網站的指令碼,可省下很多打字的動作且可確保所有新建立網站的一致性。createweb 作業提供 web 層級的相同功能。

在 Windows SharePoint Services 2.0 中,取得特定虛擬伺服器上網站集合的詳盡清單,唯一的簡單方法是使用 STSADM。Enumsites 會以 XML 格式列出特定虛擬伺服器或 Web 應用程式上的所有網站集合。此作業配合資料檢視網頁組件,就可輕鬆檢視網站集合的清單 (如需詳細資訊,請參閱資訊看板「使用資料檢視網頁組件」)。

STSADM 提供 deletesite 作業,想必您可以猜到,它是用來移除網站的作業。您只需要提供 URL 就好。您可選擇送出 -deleteadaccounts 來刪除 Active Directory® 中的帳戶。處理 web 時,您會使用 deleteweb 作業。

您也可以新增、刪除及列舉 site 或 web 的使用者。相關的作業是 adduser、deleteuser 及 enumusers。若需要在網站中加入大量使用者,或需要維護可存取網站之使用者的清單以供稽核使用,都可使用這些便利的作業。

處理 web 時,可使用另一個作業 renameweb,可讓您變更 web 的名稱與 URL。例如,若要將 web 從 "oldname" 重新命名為 "coolnewname",請使用下列命令:

Stsadm -o renameweb -url https://localhost/oldname -newname coolnewname

變更專案名稱或重新編制業務單位時,此作業可成為您的救星。在 Windows SharePoint Services 2.0 中,這會是個大問題,因為移轉 web 的唯一方法是使用 SMIGRATE.exe,而此工具並不會維護成員資格或提醒等使用者相關的設定。使用 Windows SharePoint Services 3.0 時,這個問題較小,這是因為 STSADM 可備份及還原 web 和 site。

備份與還原

STSADM 的其中一個最佳用途是備份及還原 site 和 web。針對小型到中型安裝,此功能可作為損毀修復計劃的基礎。備份作業不需要另外解釋,它十分容易上手。只要告訴 STSADM 要備份哪個網站以及要在哪裡寫入備份檔案,像這樣:

Stsadm -o backup -url https://localhost -filename site.bak

此作業會將整個網站集合傾印到 site.bak 檔案。這個檔案包含所有網站內容,例如 web、文件版本、清單及使用者。它不會備份任何網站定義或您在伺服器的檔案系統層級中所做的變更。

雖然備份作業很重要,但您必須留意一些意外障礙。如果網站夠大,備份過程中可能會鎖定內容資料庫。這可能會造成使用者在備份作業完成之前,無法存取該資料庫中的任何網站。Service Pack 解決了這個問題,但在網站擴大時,您仍需要留意這個問題。STSADM 進行備份和還原時,也會使用伺服器的 temp 目錄,因此請注意您的磁碟機空間。

使用資料檢視網頁組件

您可配合資料檢視網頁組件使用 enumsites 命令,以建立檢視網站集合清單的簡易方法。讓我們看看怎麼做。

首先,建立執行下列命令的排程工作:

stsadm –o enumsites –url https://localhost
>c:\inetpub\wwwroot\excludedsite\sites.xml 

確定 XML 檔的寫入位置是使用 IIS 發佈,但不受 SharePoint 管理的目錄。接著使用 Microsoft FrontPage® (或 FrontPage 的後繼應用程式 Microsoft Office SharePoint Designer 2007),將資料檢視網頁組件新增到網頁組件頁面中,並讓它指向 XML 檔的 URL。

資料檢視網頁組件會提供排序、篩選及分組等功能。您也可將 URL 欄位設成直接連到網站的連結。如果您想要的是 web 的清單,enumsubwebs 作業會提供網站集合或網站或 Web 中子網站的 XML 輸出。

最後,請記住雖然 STSADM 備份對小型到中型網站十分管用,但該作業在網站變大時,效果並不是特別突出。對於非常大型的網站 (幾個 GB 或更大),備份及還原程序可能變得相當緩慢。

還原網站也同樣相當簡單。STSADM -o restore 會取得 STSADM -o backup 所建立的檔案,並將該檔案寫入 SharePoint 中的網站。使用此命令有很大的彈性:您可以將網站還原到其原始位置 (例如,在誤刪網站的情況中)、您可以將網站還原為同一虛擬伺服器上的不同網站 (可能的情況是您想測試網站上的程序,但不想承擔資料毀損的風險),或者您可以將網站還原到完全不同的伺服器或虛擬伺服器。

還原到不同的網站或伺服器,可使個別文件復原比較容易。如果您具有已備份的網站,而使用者需要還原一份文件,您就不需要還原整個網站。還原整個網站會遺失自備份儲存以來對網站所做的所有變更。您可將網站還原到不同 URL、抓出文件,然後將文件存回原始網站。

在 Windows SharePoint Services 2.0 中,STSADM 有一個相當嚴重的限制。進行備份時,它只能處理 site 而不能處理 web。系統管理員對此可說是相當不滿,而 Microsoft 也已做出回應。在 Windows SharePoint Services 3.0 中,備份及還原作業現在可以處理 web。另外,3.0 版也增加了兩個新命令:import 和 export。

若要匯出 web,請使用下列簡單命令:

Stsadm -o export -url https://localhost/web -filename backup.dat

Export 含有方便的選項,包括 -versions 參數。此參數可限制要備份的檔案版本,讓您決定備份檔案有多大。

若要將 web 匯入回伺服器,請使用下列命令:

Stsadm -o import -url https://localhost/web2 -filename backup.dat

如果網站夠大,備份檔案可能會分成數個部分。在此情況中,請將 STSADM -o import 指向第一個檔案,該命令會自動抓取後續檔案。

專家作業

現在您已相當熟悉 STSADM,我想告訴您可用來擺脫困境的作業。第一個是稱為 migrateuser 的新作業。2.0 版本身不會與 Active Directory 保持同步。如果重新命名帳戶,就無法使用該帳戶登入 SharePoint。在以前,無法將使用者存取權從某個網域使用者,移轉到另一個網域使用者。在 Windows SharePoint Services 2.0 Service Pack 2 (SP2) 之前,您必須從每個 web 移除使用者,再手動加入新帳戶。

SP2 推出了一個新的 API,而 STSADM 也善加利用這個 API。如果 jsmith 帳戶重新命名為 jjones,您可使用下列命令:

Stsadm -o migrateuser -oldlogin domain\jsmith -newlogin domain\jjones -ignoresidhistory

因為您實際上不是在移轉帳戶,因此可以忽略 Windows 安全性識別碼 (SID) 歷程記錄。請注意,此命令不需要 URL。這個命令會變更整個內容資料庫,而不會只針對 site 或 web。

另一個可讓您擺脫困境的作業是 unextendvs。如果您不要 SharePoint 轉譯虛擬伺服器或 Web 應用程式,可進行取消擴充。通常是由 SharePoint Configuration Analyzer 執行此工作。不過在 Web 伺服陣列中,SharePoint Configuration Analyzer 會要求伺服器全部都在相同的修補層級。某個伺服器可能無法與其餘伺服陣列保持同步,因而無法取得 SharePoint Configuration Analyzer 中的取消擴充選項。不過使用 STSADM 時,下列命令可取消擴充虛擬伺服器:

Stsadm -o unextendvs -url https://localhost

一旦伺服器不再位於 Web 伺服陣列中,您就可以執行所需的維護。

談到 Web 伺服陣列,為了便於管理,您可能會希望所有伺服器的 SharePoint Configuration Analyzer 都在相同的埠上。安裝 SharePoint 時會隨機產生埠,但 STSADM 包含的作業,可將埠變更為您指定的埠:

Stsadm -o setadminport -port 1026

此命令會進行所有必要的資料庫變更、進行 IIS 變更,並調整系統管理工具中 SharePoint Configuration Analyzer 的捷徑。

總結

Windows SharePoint Services 是功能強大的解決方案,需要強大的管理功能。STSADM 提供實現 SharePoint 管理的方法,包括自動執行設定與一般日常工作。事實上,有時 STSADM 是完成工作的唯一方法。

Todd Klindt 是 UGS 的系統分析師,他整天都在玩 SharePoint,公司付他薪水,讓他做這件事。他也是 Windows SharePoint Services MVP,而且是水瓶座哦。

© 2008 Microsoft Corporation and CMP Media, LLC. 保留所有權利;未經允許,嚴禁部分或全部複製.