[SharePoint 2010] 清單,文件庫或是討論區的匯入/匯出技巧

  • 6948
  • 0

摘要:[SharePoint 2010] 清單,文件庫或是討論區的匯入/匯出技巧

在SharePoint 2007時代,如果要單單只匯出一個文件庫或是討論區,然後移到另一個FARM或是另一個Web Application或是另一個網站集合去匯入,是不太容易做到的事情.或許有人會說,SIte Settings內的Manage Content and Structure可以搬移文件庫或是清單資料,這功能很好用沒錯,但是它的限制是只能在網站集合內使用,討論區是無法搬移或是複製的.

為什麼要搬移資料呢? 這是管理上有其必要的工作,例如:我們要做某些功能的開發,需要一些既有的資料來協助開發,最好的方式就是在開發環境也還原一份資料. 另外, 如果環境內有多個FARM或是Web Application或是網站集合,因為組織調整的關係,資料也有可能需要進行搬移的.

在SharePoint 2007上面,如果用微軟提供的工具,我們會使用 stsadm去下指令,把整個網站匯出,再拿到目的端的網站匯入成為子網站,再來用Manage Content and Structure功能慢慢搬, 他的限制除了不能支援討論區外, 另外有一個很大的缺點,就是stsadm匯出時,會連底下所有的子網站也一併匯出,如此一來,浪費了很多時間與資源.

網路上有許多人努力在這一塊,提供了很多外掛的工具來解決這問題, 不過到了 SharePoint 2010之後,微軟已經提供針對單一文件庫,清單,討論區的匯入匯出功能了. 一共有三種方式可以進行:

  1. 管理中心站台
  2. stsadm指令
  3. PowerShell指令(Export-SPWeb & Import-SPWeb)

在這邊我要分享的是採用PowerShell的方式,主要的原因是因為PowerShell的效率以及彈性,開始使用前,我們必須用Run as Administrator的方式開啟SharePoint 2010 Management Shell,才能在上面執行PowerShell指令. 我們主要會用的的指令有Export-SPWeb與Import-SPWeb,各位可以透過Get-Help Export-SPWeb與 Get-Help Import-SPWeb來查看指令參數的說明. 要匯出匯入文件庫,清單或是討論區,我們要用到的參數有:

Export-SPWeb:

  1. -Identity: 這個是匯出的網站URL,可以緊接在Export-SPWeb後面直接輸入網址, -Identity部分可以省略
  2. -Path: 匯出存放的檔案路徑
  3. -ItemURL: 這是整個功能的重點,在這裡你需要輸入的是清單,文件庫或是討論區的位置URL,它是採用相對路徑的方式來提供,例如:"Shared Documents"或"Lists\Tasks". Title不一定就是URL路徑,所以一定要看清楚. 一開始我在測試的時候有點混淆,因為Item會讓我們誤以為是用在單一筆資料上而不是清單,文件庫或是討論區.
  4. -IncludeUserSecurity: 將所有User相關的資料都匯出,這樣可以讓你在新的環境有關權限上的設定都可以還原
  5. -IncludeVersions: 設定您對歷史資料各個版本的處理方式,可以選擇的部分有: 1) LastMajor 2) CurrentVersion 3) LastMajorAndMinor 4) All, 一般我都匯選4全部匯出

這些都輸入後按下執行,就可以看到檔案產生,資料也漸漸寫入到這些匯出的檔案中. 接下來把匯出的檔案搬移到目的端的機器上,我們需要執行Import-SPWeb,它的參數有:

  1. -Identity: 這個是匯入的網站URL,可以緊接在Import-SPWeb後面直接輸入網址, -Identity部分可以省略
  2. -Path: 匯入用的檔案存放路徑
  3. -IncludeUserSecurity: 將所有User相關的資料都還原
  4. -UpdateVersions: 設定您對歷史資料各個版本的處理方式,可以選擇的部分有: 1) Append 2) Overwrite 3) Ignore,一般我都匯選2: Overwrite.

如此一來,系統就會到您指定的網站去匯入資料,或許你會問,為何不需要指定ItemURLㄋ,那是因為您會出的檔案中只有某一個清單或是文件庫或是討論區,系統就會把這些資料全部都匯進去,包含一樣的名稱,這也是一個缺點,我們無法去指定匯入後的名稱. 而我們需要事後再去修改他了. 以上給大家參考.