SharePoint 強大的命令行管理功能
概覽: |
|
· 使用 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 時,您需要是 Web 服務器上的本地管理員組的成員,而且您需要在本地執行程序。這意味着您不能使用 STSADM 來遠程管理 SharePoint 服務器。
要查看使用 STSADM 您可以執行哪些操作,可在命令提示符中鍵入 stsadm.exe -help。在您對 SharePoint 應用了更新和修補程序之後一定要檢查此列表,因爲可能添加了新操作。在 go.microsoft.com/fwlink/?LinkId=77516 也提供了 stsadm.exe 操作的簡易指南。
讓我們首先來查看一些您可能用來調整現有 SharePoint 安裝的命令。您可以使用 STSADM 來向 SharePoint 添加功能和修改配置設置。
STSADM 使用 -o 參數,後跟您要執行的操作。僅鍵入 STSADM -operationname 不會有效果。例如,如果您要向安裝添加站點模板,您可以使用以下命令:
Stsadm -o addtemplate -filename <filename of the template>
-title <title of template> -description <description of template>
或者,如果您要添加 Web 部件包,可以使用這個命令:
Stsadm -o addwppack -filename <filename of the Web Part Package>
要查看任何操作的用法詳細信息,只是傳遞該操作而不帶參數,STSADM 就將告訴您它期望輸入的內容。STSADM -help operationname 也會給出用法信息。
管理模板時,您可以使用 enumtemplates 操作以查看哪些模板已經添加,使用 deletetemplate 以刪除任何已安裝的模板。與此類似,對 Web 部件包也有相應的命令。您可以使用 enumwppacks 操作以列出每個虛擬服務器或 Web 應用程序已安裝的 Web 部件包,使用 deletewppack 以刪除任何已添加的部件包。
STSADM 也有兩個處理 SharePoint 設置的命令:setproperty 和 getproperty。不帶參數執行任何一個,將給出您可以查看或操作的屬性列表。與 STSADM 本身類似,此列表也隨更新和修補程序而發生變化。不過,有幾個屬性比其他屬性常用得多。圖 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 有一些操作來簡化這些任務。
我將從站點和網站開始。爲保持一致性,我使用的“站點”指站點集合,使用的“網站”指子站點(也稱爲子網站)。有些術語很難理解,但如果您與 STSADM 使用的保持一致,要找到您需要的命令會更容易。
如果運行大型的 SharePoint 安裝,您可能會花費大量的時間來爲用戶創建新站點。我知道我自己就是重複地做着這些工作。可以在 SharePoint 管理中心輕鬆地完成創建新站點。但因爲我如此頻繁地執行這項任務,我發現使用 STSADM 來完成任務更快。
我使用 createsite 操作。它非常簡單,有以下參數:
· url <url>
· ownerlogin <DOMAIN/name>
· owneremail <[email protected]>
· ownername <顯示名稱>
· lcid <語言>
· sitetemplate <站點模板>
· title <站點標題>
· description <站點描述>
· quota <配額模板>
可在命令提示符下鍵入 stsadm -help createsite 來顯示這些信息(參見圖 2)。在這九個參數中,必填字段只有 URL、ownerlogin 和 owneremail。
如果您經常創建站點,您可以在簡化過程方面更進一步,方法是編寫 STSADM 的包裝腳本來自動執行任務。舉例來說,要自動創建個人站點,可將下面的代碼保存到名爲 createpersonalsite.cmd 的文本文件:
stsadm -o createsite -url http://localhost/users/%1 -ownerlogin contoso/%1
-owneremail %[email protected] -sitetemplate usersite.stp
-title "Personal site for %1" -description "Personal site for %1" -quota "500 MB"
然後爲用戶 jsmith 創建一個站點,只需執行以下命令即可:
createpersonalsite.cmd jsmith
通過編寫站點創建腳本,爲您節約了大量打字工作,而且能保證所有新建站點是一致的。操作 createweb 在網站級別提供相同的功能。
在 Windows SharePoint Services 2.0 中,獲得特定虛擬服務器上站點集合的詳盡列表的唯一簡單方法就是使用 STSADM。Enumsites 以 XML 格式列出特定虛擬服務器或 Web 應用程序上的所有站點集合。這可與數據視圖 Web 部件聯合使用,以輕鬆查看站點集合的列表。(有關詳細信息,請參閱提要欄中的“使用數據視圖 Web 部件”。)
STSADM 提供 deletesite 操作用於移除站點(正如您猜測那樣)。您只需要提供 URL:另外,您也可將 -deleteadaccounts 傳遞給它,以刪除 Active Directory®裏的帳戶。在使用網站時,您應當使用 deleteweb 操作。
您也可添加、刪除和枚舉站點或網站的用戶。相關操作分別是 adduser、deleteuser 和 enumusers。如果需要向站點大量添加用戶,或如果您需要維持一份因審計目的而擁有站點訪問權的用戶列表,這些操作非常便捷。
當使用網站時,您可訪問另外的操作,即 renameweb,它可讓您更改網站的名稱和 URL。例如,要將網站從“oldname”重命名爲“coolnewname”,使用以下命令:
Stsadm -o renameweb -url http://localhost/oldname -newname coolnewname
在項目名稱改變或業務部門重新調整時,這可是應急救生命令啊。在 Windows SharePoint Services 2.0 中存在一個大問題,即遷移網站的唯一方法是使用 SMIGRATE.exe,而它不會維持任何用戶相關的設置,例如成員身份或警報。而在 Windows SharePoint Services 3.0 中,這已經不是大問題了,因爲 STSADM 可以備份和還原網站和站點。
STSADM 的最佳用法之一就是備份和還原站點和網站。對於小型到中型安裝,此功能是災難恢復計劃的基礎。備份操作是一看就明白的,並且非常容易使用。只需告訴 STSADM 要備份哪個站點和寫入備份文件的位置即可,像這樣:
Stsadm -o backup -url http://localhost -filename site.bak
此操作將整個站點集合轉儲至 site.bak 文件。它包括全部站點內容,例如網站、文檔版本、列表和用戶。它不會備份任何站點定義和您在服務器的文件系統級別所做的更改。
雖然備份操作是很重要的,但也有一些意外的困難需要您特別注意。如果站點足夠大,在備份過程期間可能會鎖定內容數據庫。這可能阻止用戶訪問該數據庫中的任何站點,直到備份操作完成爲止。Service Pack 已經對此問題進行了補救,但它仍然是隨着站點規模增長需要注意的事情。進行備份和還原時,STSADM 會使用服務器的臨時目錄,所以請監視您的驅動器空間。
您可將 enumsites 命令與數據視圖 Web 部件聯合使用,以輕鬆查看站點集合的列表。讓我們看看如何實現吧。
首先,創建一個運行以下命令的計劃任務:
stsadm –o enumsites –url http://localhost
>c:/inetpub/wwwroot/excludedsite/sites.xml
確保將 XML 文件寫入到用 IIS 發佈但不由 SharePoint 管理的目錄中。然後使用 Microsoft FrontPage®(或 FrontPage 後續版本、Microsoft Office SharePoint Designer 2007)將數據視圖 Web 部件添加到 Web 部件頁,並將它指向 XML 文件的 URL。
數據視圖 Web 部件提供諸如排序、篩選和分組之類的功能。您也可以使 URL 字段成爲直接連接到站點的鏈接。相反,如果您需要網站的列表,則操作 enumsubwebs 提供站點集合或網站中的子站點的 XML 輸出結果。
最後,注意 STSADM 備份對小型到中型站點效果不錯,但隨着規模顯著增加此功能就不好用了。對於非常大的站點(幾千吉字節或更大),備份和還原過程會相當慢。
還原站點也同樣簡單。STSADM -o restore 可將 STSADM -o backup 創建的文件寫回 SharePoint 的站點。使用這個命令您有很大的靈活性:您可以將站點還原到它的原始位置(例如,如果站點被錯誤刪除了),您也可以將它作爲相同虛擬服務器上的不同站點來還原(也許如果您要在某個站點上測試還原過程,而不想冒破壞數據的風險),或者您可以將站點還原到完全不同的服務器或虛擬服務器上。
還原到不同的站點或服務器使得進行單個文檔恢復要更加簡單一些。如果您備份了站點而用戶需要還原一個文檔,您不需要還原整個站點。那樣會丟失從備份存儲日以來對站點所做的全部更改。作爲替代,您只需要將站點還原到不同的 URL,然後抓取需要的文檔,並將其保存回原始站點。
在 Windows SharePoint Services 2.0 中,STSADM 有一個相當嚴重的限制。備份時,它只能處理站點,而不能處理網站。管理員們表達了他們的不滿,而 Microsoft 也迴應了。在 Windows SharePoint Services 3.0 中,備份和還原操作現在可處理網站了。它還添加了兩個新命令:import 和 export。
要導出網站,請使用下面的簡單命令:
Stsadm -o export -url http://localhost/web -filename backup.dat
Export 有方便的選項,包括 -versions 開關。這允許您通過限制備份哪些文件版本來決定備份文件大小。
要將網站導入回服務器,請使用下面的簡單命令:
Stsadm -o import -url http://localhost/web2 -filename backup.dat
如果您的站點足夠大,備份文件可能分成多個部分。在這種情況下,將 STSADM -o import 指向第一個文件,它會自動抓取後續文件。
現在您已經習慣了 STSADM,我想向您展示幾個用來擺脫束縛的操作。第一個是新添加的操作,稱爲 migrateuser。版本 2.0 不會將自身與 Active Directory 同步。如果帳戶被重命名,它不再能登錄到 SharePoint。過去,也沒有辦法將用戶訪問權從一個域用戶遷移到另一個域用戶。在 Windows SharePoint Services 2.0 Service Pack 2 (SP2) 之前,您必須從每個網站刪除用戶並手動添加新帳戶。
SP2 引入了新的 API,而 STSADM 利用了它。如果帳戶 jsmith 重命名爲 jjones,您可以使用以下命令:
Stsadm -o migrateuser -oldlogin domain/jsmith -newlogin domain/jjones -ignoresidhistory
因爲不是真正遷移帳戶,所以您可以忽略 Windows 的安全 ID (SID) 歷史記錄。注意此命令不需要 URL。它在整個內容數據庫中做出更改,而與站點或網站無關。
另一個可使您擺脫束縛的操作是 unextendvs。如果不想 SharePoint 渲染虛擬服務器或 Web 應用程序,您可取消擴展它。通常,您會從 SharePoint 配置分析器中完成這項任務。但是,在 Web 場中,SharePoint 配置分析器需要服務器都處於相同的修補程序級別。有可能出現服務器與場中剩餘服務器脫離同步的情況,因此它不會在 SharePoint 配置分析器中獲得“取消擴展”選項。但使用 STSADM 的以下命令將取消擴展您的虛擬服務器:
Stsadm -o unextendvs -url http://localhost
一旦服務器不再位於 Web 場中,您可以執行需要的維護工作。
關於 Web 場,爲了易於管理,您可能想要全部的服務器都在相同端口上使用 SharePoint 配置分析器。端口是在安裝 SharePoint 時隨機生成的,但 STSADM 包含將端口更改爲指定端口的操作:
Stsadm -o setadminport -port 1026
這將進行所有必要的數據庫更改,更改 IIS,並調整管理工具中指向 SharePoint 配置分析器的快捷方式。
Windows SharePoint Services 是功能強大的解決方案,而它需要強大的管理。STSADM 則提供了完成 SharePoint 管理工作(包括自動配置和普通日常任務)的方法。實際上,有時它是完成任務的唯一方法。