1

我有两个相同的 SharePoint 2007 列表。

我可以使用 powershell 执行以下操作:

  1. 将第一个列表复制到第二个列表中,其中包含所有项目版本历史记录。
  2. 从第一个列表中删除所有版本历史记录
  3. 为第一个列表中的每个项目清除大约 15 列

此外,通过 SharePoint 2007 中网页上的按钮使该 powershell 脚本对用户可执行的最佳方法是什么?

非常感谢您对此脚本的任何帮助!

4

1 回答 1

0

由于您可以使用 PowerShell 中的任何 DLL,是的,您可以使用 PowerShell 中的 SharePoint API。

基本上你可以

  1. stsadm 扩展gl-copylist命令克隆列表(无论如何你都可以从 PowerShell 调用该命令)
  2. 已经有一个 PowerShell 脚本来禁用版本控制,但它涉及所有列表 - 您可能可以获得所需的块。
  3. 调用 SPList.Fields["fieldToDelete"].Delete(); 删除列表中的字段。

关于#2 - 不确定这个,但您可以尝试将SPList.EnableVersioning设置为false, .Update(),然后设置为 ,然后true查看它是否会自动删除版本。

要从 powershell 访问 SharePoint API,请执行(在此处阅读更多内容):

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")

请注意,您只能从安装了 SharePoint 的计算机上执行此操作。否则,您将不得不通过 Web 服务与 PowerShell 对话。

于 2012-08-03T12:29:11.300 回答