在使用SharePoint的時候我們常常需要做這樣一個操作:把某個清單(或文檔庫)從一個網站轉移到另一個網站上去。
比較常見的做法是,把這個清單存為模闆檔案,然後再在新的網站位置建立一遍。但這種方法比較麻煩,步驟繁瑣,而且還受網站模闆類型的限制。
SharePoint的對象模型裡提供了導入導出内容的功能,其粒度可達清單條目級。
stsadm指令中内置的“import/export”操作就是使用的這套API,但隻能操作網站級别的内容。
為了能夠便捷的移動清單内容,或者對某個指定的清單進行歸檔,我開發了兩個stsadm指令的擴充操作。
舉例:我想把“http://site1”網站裡的清單“ABCList”導出并導入到“http://site2”網站裡,就可以用以下的指令完成:
文法說明:
清單導出操作(exportlist)
stsadm -o exportlist
-siteurl <SharePoint Site URL>
-listname <List Display Name>
-filename <Content Migration Package File Name>
[-overwrite]
[-nocontent]
注:-nocontent:隻導出清單結構,不包含清單内容。
清單導入操作(importlist)
stsadm -o importlist
[-retainobjectid]
[-originalinfo <all|none|systemaccount>]
注:-retainobjectid:導入回導出位置,可用在類似備份還原的場景下。
-originalinfo :"all"為保留一切原始資訊,即導入的資料保持原修改時間和建立者資訊。"none"為不保留上述資訊。"systemaccount"為修改建立者資訊為系統帳戶。此選項預設為"all"。
此擴充指令以wsp解決方案包的形式安裝部署,下載下傳位址:
<a href="http://www.live-share.com/files/302411/xc_stsadmextension.zip.html" target="_blank">http://www.live-share.com/files/302411/xc_stsadmextension.zip.html</a>
KNOWN ISSUE:我不知道怎麼通過這套API把條目權限設定也儲存下來,誰能給些建議麼?(我嘗試了IncludeSecurity屬性,可是貌似不起作用。)
本文轉自 yuxye 51CTO部落格,原文連結:http://blog.51cto.com/fishvsfrog/1228616