65.9K
CodeProject 正在变化。 阅读更多。
Home

列表和 AllowDelete 属性

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2012年8月20日

CPOL

2分钟阅读

viewsIcon

21253

downloadIcon

98

如何使用 Visual Studio 和 PowerShell 禁用“删除列表”选项,从而保护列表。

引言

在本文中,我们将探讨如何防止用户删除列表。在实际场景中,用户可能会使用“列表设置 > 删除列表”选项。

我们需要确保通过 SharePoint 用户界面隐藏上述选项。

有多种方法可以实现这一点

  • 使用 Visual Studio 将列表属性 AllowDeletion 设置为 false。
  • 使用 PowerShell 将列表属性 AllowDeletion 设置为 false。
  • 创建具有列表删除限制的新权限,并将其分配给用户。

在这里,我们使用 Visual Studio 和 PowerShell 方法来禁用“删除”选项。

Visual Studio 方法

在您的 SharePoint 站点中创建一个新列表,并将其命名为 New List(新列表)。确保通过“列表设置”页面可以看到“删除此列表”链接。

现在在 Visual Studio 中创建一个新的控制台应用程序,并将其命名为 AllowDeletionFalse

在代码中,修改 Main 方法如下

static void Main(string[] args)
{
    SPSite site = new SPSite("https://");
    SPWeb web = site.OpenWeb();

    SPList list = web.Lists["New List"];
    list.AllowDeletion = false;

    list.Update();
}

上面的代码连接到指定的 URL,获取名为 New List 的列表实例,并将 AllowDeletion 属性修改为 false。

构建并执行应用程序。如果执行过程中没有错误,则列表现在隐藏了“删除”链接。可以通过返回 SharePoint 中的“列表设置”页面来验证这一点。

在“权限和管理”组中,您会发现“删除此列表”链接已消失。这使得我们的列表免受用户不必要的删除活动的影响。

PowerShell 方法

现在我们可以尝试使用 PowerShell 脚本反转 AllowDeletion 属性。请注意,对于客户端位置的此类场景,PowerShell 会更加方便。(客户场所可能未安装 Visual Studio。)

您可以从“开始 > 程序 > 附件 > Windows PowerShell”菜单组启动 PowerShell 编辑器(也称为 ISE,集成脚本编辑器)。

编辑器如下所示。将默认文件保存为 AllowDeletionFalse.ps1。(ps1 是 PowerShell 脚本的扩展名)。

以下内容显示在 .ps1 文件中。

If ((Get-PSSnapIn -Name Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue) -eq $null ) 
{ 
   Add-PSSnapIn -Name Microsoft.SharePoint.PowerShell 
}

$web = Get-SPWeb -Identity "https://" -AssignmentCollection $assignment
$list = $web.lists["New List"]
$list.AllowDeletion = $true
$list.Update()

代码解释

第一个 If 块确保将 Microsoft.SharePoint.PowerShell snap-in 加载到内存中。(类似于 Visual Studio 中的“添加引用”)。

Get-SPWeb cmdlet 检索指定 Web 应用程序的引用。web.lists 返回对 New List 的引用。在将 AllowDeletion 设置为 true 后,将更新列表。您可以使用 PowerShell 编辑器的“运行”命令来执行代码。

代码执行成功后,我们的 New List 应该在“列表设置”中显示“删除此列表”链接。您可以刷新“列表设置”页面以确保已恢复。

参考文献

摘要

在本文中,我们了解了如何使用 Visual Studio 和 PowerShell 禁用“删除列表”选项来保护列表。源代码包含在附件中。

© . All rights reserved.