gpt4 book ai didi

sharepoint - 在同一网站集中的文档库之间移动文件

转载 作者:行者123 更新时间:2023-12-04 00:31:10 24 4
gpt4 key购买 nike

我需要将大约 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)不支持此功能。我在这个线程之外收到了以下建议,这是相关的,并且应该在将来帮助其他人:

Unfortunately SharePoint 2010's Management Shell (it's PowerShell snap-in and associated cmdlets) is not compatible with MOSS 2007 and there aren't cmdlets available directly from Microsoft for that version of SharePoint. What that means is that you can still use PowerShell with MOSS 2007, but you're either going to have to write your own cmdlets that use STSADM or the SharePoint Object Model directly, or you're going to have to use MOSS 2007-compatible cmdlets from a third party. I'd suggest checking out Gary Lapointe's blog for a lot of great PowerShell cmdlets for MOSS 2007 (http://blog.falchionconsulting.com/), or places where people upload cmdlets such as CodePlex.com, the TechNet Script Repository, POSHCode.org, or http://get-spscripts.com/.

最佳答案

我对您无处可去并不感到惊讶:Microsoft.SharePoint.PowerShell 管理单元仅适用于 SharePoint 2010,不适用于 SharePoint 2007 服务器。

坦率地说,最简单的方法是打开 Internet Explorer,导航到源文档库并打开“资源管理器 View ”。选择所有文档,然后复制 (ctrl+c)。打开另一个 IE 窗口,对目标文档库执行相同的操作并粘贴 (ctrl+v)。

如果它不会在资源管理器 View 中打开,请确保您用来进行复制/粘贴的机器正在运行“WebClient”服务。如果您运行的是 Windows 2008 R2,则此服务不可用,除非您决定添加“桌面体验”功能。找到一台具有 WebClient 服务的 Windows 7 机器要容易得多(但要确保它正在运行。)

更新:

也就是说,您的脚本可能大约有 80% 在那里,并且并不真正需要 2010 管理单元。我现在不能测试这个(对不起),但它应该是 99% 正确的:

[reflection.assembly]::loadwithpartialname("microsoft.sharepoint") > $null

$org = "http://farm/sitecollection/sourcedoclib"
$dest = "http://farm/sitecollection/targetdoclib"

$site = new-object microsoft.sharepoint.spsite $org
$web = $site.openweb()

$srcLibrary = $web.Lists["sourcedoclib"]
$destLibrary = $web.Lists["targetdoclib"]

$destFiles = $destLibrary.Folders["Archived"]

foreach ($item in $srcLibrary.Items)
{
if ($item.File) {
$curFile = $item.file.OpenBinary()
$destURL = $destFiles.Folder.Url + "/" + $item.file.Name
$destFiles.Add($destURL, $curFile, $true)
}
}

祝你好运。

关于sharepoint - 在同一网站集中的文档库之间移动文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11514833/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com