列表和 AllowDelete 属性





0/5 (0投票)
如何使用 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 禁用“删除列表”选项来保护列表。源代码包含在附件中。