我有一個需要從一個文檔庫移到〜10,000個文件到另一個相同的網站收藏。我相信powershell是做這件事的最好方式。移動文檔庫之間的文件在同一網站集
我發現了以下文章:http://blog.isaacblum.com/2011/10/04/spfilecollection-class-copy-files-to-another-document-library/#respond,它提出了一種方法,但我不確定如何修改此腳本(我正在使用此項目首次接觸Powershell)。
我嘗試以下無濟於事:
$PSSnapin = Add-PsSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue | Out-Null
clear
$org = "hhttp://farm/sitecollection/Document Library Source/Forms/AllItems.aspx"
$dest = "hhttp://farm/sitecollection/Document Library Destination/Forms/AllItems.aspx"
$orgLibrary = (Get-SPWeb $org).Folders["Documents"]
$destLibrary = (Get-SPWeb $dest).Folders["Documents"]
$destFiles = $destLibrary.Files
foreach ($file in $orgLibrary.Files)
{
$curFile = $file.OpenBinary()
$destURL = $destFiles.Folder.Url + "/" + $file.Name
$destFiles.Add($destURL, $curFile, $true)
}
是否有這樣做的另一種方式嗎?請注意,我用MOSS2007和PowerShell 2.0,而不是SharePoint 2010的
更新/半答:
按x0n的帖子下面這不是在SharePoint 2007(2010只)的支持。我recevied以下建議這個線程,這是有關外,並應幫助別人的未來:
不幸的是SharePoint 2010中的命令行管理程序(這是PowerShell的 管理單元和相關的cmdlet)不與MOSS 2007兼容 有沒有爲 版本的SharePoint的可直接從微軟的cmdlet。這也就意味着,你仍然可以使用 PowerShell和MOSS 2007,但你要麼將不得不編寫直接使用STSADM或SharePoint對象模型 自己的cmdlet,或者你將不得不使用MOSS 2007兼容的cmdlet 來自第三方。我建議查看Gary Lapointe的博客 許多優秀的PowerShell cmdlet,用於MOSS 2007 (http://blog.falchionconsulting.com/),或者人們上傳 cmdlet的地方,如CodePlex.com,TechNet腳本庫, POSHCode.org,或http://get-spscripts.com/。
這就是我們以前的做法,但不幸的是,這是一個反覆出現的過程,可能在本月底之前跨越30多個文檔庫 - 是否有一個用於MOSS的PowerShell庫,可用於完成上述操作? – Codingo 2012-07-17 01:44:31
無論如何,您不應該修改腳本_that_以使其在2007年運行。讓我看看它。 – x0n 2012-07-17 02:08:58
我試圖實現這一點,但我收到以下每個文件在庫(它不動),任何想法?錯誤是:您無法在空值表達式上調用方法。 At line:20 char:23 + $ destFiles.Add <<<<($ destURL,$ curFile,$ true) + CategoryInfo:InvalidOperation:(Add:String)[],RuntimeException + FullyQualifiedErrorId:InvokeMethodOnNull – Codingo 2012-07-17 03:38:20