从 Project Server 中删除用户数据

了解场管理员如何从 Project Server 环境中删除特定用户的数据。 此信息适用于 Project Server 2016、Project Server 2013 和 Project Server 2010。 若要了解如何从 Project Server 2019 公共预览版中删除用户数据,请参阅 在 Project Server 2019 公共预览版中删除用户数据

注意

问题和风险存储在项目网站中,这些项目网站是 SharePoint Server 的一部分。 删除用户信息时,最佳做法是 先删除用户的 SharePoint Server 信息,然后删除其 Project Server 信息。

在运行本文中的脚本之前,请确保已将最新更新部署到服务器场和Project Professional客户端。

删除哪些用户信息?

在 Project Server 中,管理员可以使用本文中详述的步骤删除用户的个人数据和个人标识数据, (可用于标识用户) 的数据,例如:

  • 显示名称、拼音名称、GUID - 可以选择删除或重命名用户“显示名称”, (如何运行脚本) 的详细信息。

  • 用户特定的视图设置 - 例如,如果用户在其视图设置 (视图、筛选器、组、表、地图、绘图、报表) 具有视图 ((例如资源汇、项目中心、计划 Web 部件等)) 等视图设置的自定义项,则会删除这些设置。

  • 日历例外详细信息 - 例如,如果用户在 1 月份因生病或休假而外出一周,则需要手动删除例外的名称。 日期将保持不变。

  • 用户权限 - 例如,如果用户与项目服务器类别相关联,组/已被授予单个全局权限,我们将继续删除所有关联。 用户也将设置为非活动状态。

注意

项目作者不会作为本文中的过程的一部分删除。

Project 网站、问题和风险中包含的用户个人信息存储在 SharePoint 中,不会通过此过程删除。 需要 直接从 SharePoint Server 中删除此数据

重要

建议先运行 SharePoint Server 用户信息删除过程,然后再从 Project Server 中删除同一用户的信息。 这将防止 Project Server 中的用户个人信息问题和风险被相应的 SharePoint Server 数据更新(如果它们仍然存在)。

删除方案

根据你的需求,此过程允许你删除上面列出的用户的个人信息,但也允许对删除共享项(如时间表、项目和分配)中的用户显示名称进行一些控制。 有三种删除方案可以执行:

方案 1:从Project Web App实例中删除用户信息,显示名称除外

在这种情况下,将删除用户的所有个人信息,但用户的显示名称将保持不变。

如果需要进一步查看共享项 (,例如时间表和用户处于活动状态) 项目,则可以选择此方案。

方案 2:从Project Web App实例中删除用户的信息,但更新所有位置的显示名称

在这种情况下,将删除用户的所有个人信息。 在显示用户显示名称的所有位置中,都会将其替换为你选择的字符串,例如“已删除的用户”。用户的资源 ID 将保留。

如果没有业务需要保留用户显示名称,则可以选择此方案,即使在共享记录(如时间表和项目)中也是如此。

方案 3:从Project Web App实例中删除用户信息,但更改时间表记录以外的所有位置的显示名称

在此方案中,除时间表记录外,将删除所有用户的个人信息。 可以选择将用户的显示名称替换为另一个字符串,例如“已删除的用户”。但是,这不会影响时间表记录,其中用户名仍保留。 更新后的显示名称与其时间表记录取消链接,并生成新的资源 ID,以便无法通过时间表记录中的数据来识别更新的用户名。

如果需要进一步查看用户显示为提交者或审批者的时间表记录,则可以选择此方案。

进程概述

下面概述了在 Project Web App 中删除特定用户信息的过程:

  1. Microsoft 下载中心下载删除和导出脚本。

  2. 查找环境中的 PWA 站点:查找 Project Server 场中Project Web App实例的列表。

  3. 查找用户的资源 ID:在每个 Project Web App 实例上,通过指定用户声明帐户查找用户的唯一资源 ID。

  4. 执行用户数据的导出:从 Project Server 导出用户数据中介绍了此过程。

  5. 在Project Professional中,关闭用户参与的所有项目:这可确保对用户具有信息的所有项目进行更改。

  6. 运行 RedactProjectUser PowerShell 脚本:运行脚本以从每个 PWA 站点中删除用户信息。

    通过脚本,可以选择将用户的显示名称更改为不同的 (例如“已删除用户”) 。 当共享用户的数据并且你不想删除数据(例如项目中的工作分配的所有者或项目计划的一部分)时,这很有用。

  7. 删除Project Professional用户的缓存:脚本成功完成后,必须在连接到 Project Web App 实例时使用Project Professional打开项目的每台设备上删除缓存。 清除缓存可防止用户信息在设备上缓存时重新添加到项目。

    重要

    建议先运行 SharePoint Server 用户信息删除过程,然后再从 Project Server 中删除同一用户的信息。 这将防止 Project Server 中的用户个人信息问题和风险被相应的 SharePoint Server 数据更新(如果它们仍然存在)。

将脚本用于不同版本的 Project Server

本文适用于 Project Server 2016、Project Server 2013 和 Project Server 2010。 虽然常规过程适用于所有三个版本,但有一些细节可能适用于不同的版本,尤其是在运行 SQL 脚本时。 这些在说明中进行了说明。

步骤 1 - 在 SharePoint Server 场中查找Project Web App实例

使用以下筛选器的 Get-SPProjectWebInstance cmdlet 获取 SharePoint 服务器场中存在的 PWA 网站的 URL、站点 ID 和数据库名称:

 Get-SPProjectWebInstance | ft -a Url,SiteId,DatabaseName,DatabaseServer

在后面的步骤中删除用户的个人数据时,需要每个网站的信息。

例如,在示例 Contoso Project Server 场上运行 cmdlet 可能会返回以下三个 PWA 站点:

URL SiteID 数据库
https://contoso/pwa1
63ed0197-3647-4279-ed5e80855fc7
WSS_Content
https://contoso/pwa2
67fd0727-5279-3321-ef4e90956fc8
WSS_Content
https://contoso/pwa3
63ed0197-3647-4279-eg7e20233fg9
WSS_Content

在 SharePoint Server 2010 场中查找Project Web App实例

对于 Project Server 2010,还需要查找 Project Server PSI 服务应用程序的服务应用程序 ID。 使用以下参数运行 Get-ServiceApplication PowerShell cmdlet 以执行此操作:

Get-SPServiceApplication | ? { $_.TypeName -eq "Project Server PSI Service Application" } | ft -a

这还将返回 Project Server 服务应用程序的名称。 然后,可以使用 Get-SPProjectWebInstance cmdlet 返回四个 Project Server 数据库的名称,方法是使用 -ServiceApplication 参数指定服务应用程序名称:

Get-SPProjectWebInstance -ServiceApplication "Project Server"  | ft -a Url,PrimaryServer,PublishedDatabase,DraftDatabase,ArchiveDatabase,ReportingServer,ReportingDatabase

需要能够引用每个数据库的数据库名称。

注意

Project Server 2010 Reporting 数据库可以位于与其他三个数据库不同的SQL Server实例上。

步骤 2 - 在每个 PWA 网站上查找用户的资源 ID 或声明帐户

获取 Project Server 场上所有 PWA 站点的信息后,接下来需要查找要删除其个人数据的用户的资源 ID (ResID) 或 Claims 帐户。 在步骤 1 (中发现的每个 PWA 站点上执行此操作,因为每个 PWA 实例) 的 ResID 不同。 在后面的步骤中删除用户的个人数据时,需要用户的资源 ID 或声明帐户。

运行 FindUser201x.sql SQL 脚本以查找用户的资源 ID 或声明帐户。

注意

需要在 SQL Server Management Studio 中运行 FindUser201x.sql SQL 脚本,并且必须具有服务器场管理员权限才能访问相应的数据库。

在 Project Server 2010 的已发布数据库上运行脚本,或针对更高版本的相关 PWA 站点运行该数据库。 在步骤 1 中提供的示例结果中,所有三个Project Web App实例的数据库WSS_Content

在脚本中为以下参数提供值:

参数 说明
仅@siteID (Project Server 2016)
要在其中查找用户资源 ID 的站点的 PWA 站点 ID。 在步骤 1 中找到了 PWA 网站的 PWA 站点 ID 值。
@searchName
Project Server 用户的显示名称。

例如,如果要在步骤 1 中的示例中找到的 Contoso PWA1 站点上的 Adam Barr 的 userID,可以编辑脚本中参数的值,如下所示:

DECLARE @siteId uniqueidentifier = '63ed0197-3647-4279-ed5e80855fc7'
DECLARE @searchName nvarchar(255) = 'Adam Barr'

该脚本返回用户的“资源名称”、“资源 ID”、“电子邮件地址”和“声明帐户”值。

在 Project Server 2010 中,该脚本还会生成一个时间表 GUID,如果要从 Project Web App 实例中删除用户信息,但更改除时间表记录以外的所有位置的显示名称时,将需要该 GUID。 记下此 GUID,以便在报告和删除脚本中使用。

步骤 3 - 关闭所有用户的项目

在下一步中运行删除脚本之前,需要确保在 Project Server 环境中关闭所有用户的项目。 这将确保不会覆盖删除脚本所做的更改。

如果需要,PWA 管理员可以通过 PWA 服务器设置强制检查项目。

  1. “服务器设置” 页上的“ 队列和数据库管理 ”部分中,单击“ 强制签入企业对象”。

  2. 在“ 强制签入企业对象” 页上,从项目列表中,选中需要检查的项目旁边的复选框,然后单击“ 签入”。

  3. 将显示一条消息,询问是否确定要强制签到。 单击“确定”

步骤 4 - 导出用户数据

删除用户的个人数据之前,应知道该用户所属的所有项目。 这将允许你稍后验证是否删除了用户的数据,以及你是否拥有要删除的正确用户。 从 Project Server 导出用户数据中详细介绍 了导出用户数据。 请注意,下面步骤 6 需要 ExportWorkspaceItemsByDisplayName201x.sql 脚本。

步骤 5 - 删除工作区项

工作区项存储在项目网站中,该项目网站是 SharePoint Server 的一部分。 必须先删除用户的 SharePoint Server 信息,然后才能删除其 Project Server 信息。 这将防止工作区项中的用户个人信息被相应的 SharePoint Server 数据更新(如果它们仍然存在)。

工作区项包括:

  • 问题
  • 风险
  • 交付
  • 链接的文档

步骤 6 - 将工作区项同步到 Project Server

Sync-ProjectWorkspace201x.ps1脚本在 Project Server 中创建队列作业以执行项目工作区完全同步。为包含要查找的用户的每个项目运行此脚本。 (需要每个项目的项目 ID。可以使用 ExportWorkspaceItemsByDisplayName201x.sql 脚本检索此内容。) 确认队列作业已完成 ,然后再继续执行其他步骤。

步骤 7 - 打开资源日历并清除用户的异常原因

若要从 Project Server 的资源日历中删除用户的个人数据,项目管理员需要手动打开它并清除包含的任何日历异常原因。

  1. 在 Project Web App 中,导航到资源汇。

  2. 在资源汇中,选择要更新的用户。

  3. 在“ 资源 ”选项卡上的“ 资源 ”部分中,单击“ 打开”。 如果出现提示,请确认要打开Project Professional。

  4. 在Project Professional中,双击要更新的用户。

  5. 在“资源信息”对话框中,单击“ 更改工作时间”。

  6. 在“ 更改工作时间 ”对话框的“ 例外 ”选项卡上,选择要删除的任何异常,然后单击“ 删除”。

  7. 单击“确定”。

  8. 在“ 资源信息 ”对话框中,单击“ 确定”。

  9. 在“ 文件 ”选项卡上,单击“ 保存”。

步骤 8 - 从资源和项目资源表中删除用户的个人信息

由于 Project Server 2010 的数据库结构与更高版本不同,因此过程和脚本有所不同。 有关你的版本,请参阅下面的相应部分。

重要

在运行此脚本之前,请确保备份 Project Server 数据库。 确定成功完成删除用户数据后,可以删除备份文件。

Project Server 2016

运行 RedactUser2016.sql SQL 脚本会从 Project Web App 实例中删除用户的个人数据,并且可以选择性地更新用户的显示名称。

使用以下参数运行 RedactUser2016.sql:

参数 说明 注意
@siteID
PWA 实例的站点 ID
必需
@resUID
要删除其个人数据的用户的资源 ID
需要 resUID 或 res_claims_account。
@res_claims_account
要删除其个人数据的用户的声明帐户
需要 resUID 或 res_claims_account。
@res_new_name
提供后,资源的用户名将使用此字符串进行更新。
重要说明:除非执行上述方案 2 或 3,否则此值应为 NULL。
可选
@update_timesheet_names
启用 (值“1”) 时,时间表记录中的用户名将替换为 @res_new_name 提供的字符串
如果未启用 (值“0”) ,则用户名将保留在时间表记录中,但将在时间表中为用户名分配新的资源 ID,以使用户名不可跟踪。
默认为启用。

方案 1 的示例脚本配置:从Project Web App实例中删除用户的信息,但保留显示名称

此方案从 Project Web App 实例中删除用户的个人数据,但该用户的显示名称保持不变。 你可能希望保留用户的显示名称以供审阅,以防它在共享项中,例如作为项目中的任务所有者或时间表中的条目。

使用用户的声明帐户

在此示例中,我们使用在步骤 2 中检索到的 Adam Barr 声明帐户,以及在步骤 1 中检索到的 PWA 网站 ID,并在脚本中配置参数,如下所示:

DECLARE @siteId uniqueidentifier = '63ed0197-3647-4279-ed5e80855fc7'
DECLARE @res_uid uniqueidentifier = NULL
DECLARE @res_claims_account nvarchar(255) = 'i:0#.w|contoso\adamb'
DECLARE @res_new_name nvarchar(255) = NULL
DECLARE @update_timesheet_names bit = 1

该脚本从网站中删除 Adam Barr 的所有个人数据,但显示名称 https://contoso.sharepoint.com/sites/pwa 除外。

使用用户的资源 ID

在此示例中,我们使用在步骤 2 中检索到的 Adam Barr 的资源 ID,以及在步骤 1 中检索到的 PWA 站点 ID,并在脚本中配置参数,如下所示:

DECLARE @siteId uniqueidentifier = '63ed0197-3647-4279-ed5e80855fc7'
DECLARE @res_uid uniqueidentifier = '19004637-C518-E811-80E0-001DD8C187B9'
DECLARE @res_claims_account nvarchar(255) = NULL
DECLARE @res_new_name nvarchar(255) = NULL
DECLARE @update_timesheet_names bit = 1

该脚本从网站中删除 Adam Barr 的所有个人数据,但显示名称 https://contoso.sharepoint.com/sites/pwa 除外。

方案 2 的示例脚本配置:从Project Web App实例中删除用户的信息,但更新所有位置的显示名称

此方案从 Project Web App 实例中删除用户的个人数据,并将用户的显示名称(包括时间表)更改为所选 (例如“已删除用户”) 。 使用此方法将用户的显示名称更改为使用户标识匿名的内容。

成功运行脚本后,可以重新运行步骤 2 中使用的 FindUser201x.sql 脚本,以验证用户的显示名称是否已更改。

可以通过声明帐户或资源 ID 指定用户。

使用用户的声明帐户

在此示例中,我们使用在步骤 2 中检索到的 Adam Barr 声明帐户,以及在步骤 1 中检索到的 PWA 网站 ID,并在脚本中配置参数,如下所示:

DECLARE @siteId uniqueidentifier = '63ed0197-3647-4279-ed5e80855fc7'
DECLARE @res_uid uniqueidentifier = NULL
DECLARE @res_claims_account nvarchar(255) = 'i:0#.w|contoso\adamb'
DECLARE @res_new_name nvarchar(255) = 'Deleted User'
DECLARE @update_timesheet_names bit = 1

该脚本会删除 Adam Barr 的所有个人数据,并将他的显示名称更改为“已删除的用户”整个 https://contoso.sharepoint.com/sites/pwa 网站。

使用用户的资源 ID

在此示例中,我们使用在步骤 2 中检索到的 Adam Barr 的资源 ID,以及在步骤 1 中检索到的 PWA 站点 ID,并在脚本中配置参数,如下所示:

DECLARE @siteId uniqueidentifier = '63ed0197-3647-4279-ed5e80855fc7'
DECLARE @res_uid uniqueidentifier = '19004637-C518-E811-80E0-001DD8C187B9'
DECLARE @res_claims_account nvarchar(255) = NULL
DECLARE @res_new_name nvarchar(255) =  'Deleted User'
DECLARE @update_timesheet_names bit = 1

该脚本会删除 Adam Barr 的所有个人数据,并将他的显示名称更改为“已删除的用户”整个 https://contoso.sharepoint.com/sites/pwa 网站。

方案 3 的示例脚本配置:从Project Online实例中删除用户的信息,但更改时间表记录以外的所有位置的显示名称

此方案从 Project Web App 实例中删除用户的个人数据,并将用户的显示名称更改为你选择 (例如“已删除的用户”) ,除非显示在时间表记录中。

运行脚本后,可以重新运行在步骤 2 中使用的 FindUser201x.sql 脚本,以查看验证用户的显示名称是否已更改。

请注意,可以通过声明帐户或资源 ID 指定用户。

使用用户的声明帐户

在此示例中,我们使用在步骤 2 中检索到的 Adam Barr 声明帐户,以及在步骤 1 中检索到的 PWA 网站 ID,并在脚本中配置参数,如下所示:

DECLARE @siteId uniqueidentifier = '63ed0197-3647-4279-ed5e80855fc7'
DECLARE @res_uid uniqueidentifier = NULL
DECLARE @res_claims_account nvarchar(255) = 'i:0#.w|contoso\adamb'
DECLARE @res_new_name nvarchar(255) = 'Deleted User'
DECLARE @update_timesheet_names bit = 0

该脚本从 https://contoso.sharepoint.com/sites/pwa 网站中删除 Adam Barr 的所有个人数据,并将他的显示名称更改为“已删除的用户”,时间表记录中除外。 为时间表记录中的用户生成新的资源 ID,以取消他们与与“已删除的 Uer”关联的记录的链接。

由于帐户已删除,因此无法使用用户的声明帐户重新运行脚本。

使用用户的资源 ID

在此示例中,我们使用在步骤 2 中检索到的 Adam Barr 的资源 ID,以及在步骤 1 中检索到的 PWA 站点 ID,并在脚本中配置参数,如下所示:

DECLARE @siteId uniqueidentifier = '63ed0197-3647-4279-ed5e80855fc7'
DECLARE @res_uid uniqueidentifier = '19004637-C518-E811-80E0-001DD8C187B9'
DECLARE @res_claims_account nvarchar(255) = NULL
DECLARE @res_new_name nvarchar(255) =  'Deleted User'
DECLARE @update_timesheet_names bit = 0

该脚本从 https://contoso.sharepoint.com/sites/pwa 网站中删除 Adam Barr 的所有个人数据,并将他的显示名称更改为“已删除的用户”,时间表记录中除外。 为时间表记录中的用户生成新的资源 ID,以取消他们与与“已删除的 Uer”关联的记录的链接。

Project Server 2013

运行 RedactUser2013.sql SQL 脚本会从 Project Web App 实例中删除用户的个人数据,并且可以选择性地更新用户的显示名称。

使用以下参数运行 RedactUser2013.sql:

参数 说明 注意
@resUID 要删除其个人数据的用户的资源 ID 需要 resUID 或 res_claims_account。
@res_claims_account 要删除其个人数据的用户的声明帐户 需要 resUID 或 res_claims_account。
@res_new_name 提供后,资源的用户名将使用此字符串进行更新。> [!重要说明]> 除非执行上述方案 2 或 3,否则此值应为 NULL。 可选
@update_timesheet_names 当启用 (值为“1”) 时,时间表记录中的用户名将替换为 @res_new_name 提供的字符串。如果未启用 (值为“0”) ,则用户名将保留在时间表记录中,但将在时间表中为用户名分配新的资源 ID,以使用户名不可跟踪。 默认为启用。

方案 1 的示例脚本配置:从Project Web App实例中删除用户的信息,但保留显示名称

此方案从 Project Web App 实例中删除用户的个人数据,但该用户的显示名称保持不变。 你可能希望保留用户的显示名称以供审阅,以防它在共享项中,例如作为项目中的任务所有者或时间表中的条目。

使用用户的声明帐户

在此示例中,我们使用在步骤 2 中检索到的 Adam Barr 声明帐户,并在脚本中配置参数,如下所示:

DECLARE @res_uid uniqueidentifier = NULL
DECLARE @res_claims_account nvarchar(255) = 'i:0#.w|contoso\adamb'
DECLARE @res_new_name nvarchar(255) = NULL
DECLARE @update_timesheet_names bit = 1

该脚本从网站中删除 Adam Barr 的所有个人数据,但显示名称 https://contoso.sharepoint.com/sites/pwa 除外。

由于帐户已删除,因此无法使用用户的声明帐户重新运行脚本。

使用用户的资源 ID

在此示例中,我们使用在步骤 2 中检索到的 Adam Barr 的资源 ID,并在脚本中配置参数,如下所示:

DECLARE @res_uid uniqueidentifier = '19004637-C518-E811-80E0-001DD8C187B9'
DECLARE @res_claims_account nvarchar(255) = NULL
DECLARE @res_new_name nvarchar(255) = NULL
DECLARE @update_timesheet_names bit = 1

该脚本从网站中删除 Adam Barr 的所有个人数据,但显示名称 https://contoso.sharepoint.com/sites/pwa 除外。

方案 2 的示例脚本配置:从Project Web App实例中删除用户的信息,但更新所有位置的显示名称

此方案从 Project Web App 实例中删除用户的个人数据,并将用户的显示名称(包括时间表)更改为所选 (例如“已删除用户”) 。 使用此方法将用户的显示名称更改为使用户标识匿名的内容。

成功运行脚本后,可以重新运行步骤 2 中使用的 FindUser201x.sql 脚本,以验证用户的显示名称是否已更改。

可以通过声明帐户或资源 ID 指定用户。

使用用户的声明帐户

在此示例中,我们使用在步骤 2 中检索到的 Adam Barr 声明帐户,并在脚本中配置参数,如下所示:

DECLARE @res_uid uniqueidentifier = NULL
DECLARE @res_claims_account nvarchar(255) = 'i:0#.w|contoso\adamb'
DECLARE @res_new_name nvarchar(255) = 'Deleted User'
DECLARE @update_timesheet_names bit = 1

该脚本会删除 Adam Barr 的所有个人数据,并将他的显示名称更改为“已删除的用户”整个 https://contoso.sharepoint.com/sites/pwa 网站。

使用用户的资源 ID

在此示例中,我们使用在步骤 2 中检索到的 Adam Barr 的资源 ID,并在脚本中配置参数,如下所示:

DECLARE @res_uid uniqueidentifier = '19004637-C518-E811-80E0-001DD8C187B9'
DECLARE @res_claims_account nvarchar(255) = NULL
DECLARE @res_new_name nvarchar(255) =  'Deleted User'
DECLARE @update_timesheet_names bit = 1

该脚本会删除 Adam Barr 的所有个人数据,并将他的显示名称更改为“已删除的用户”整个 https://contoso.sharepoint.com/sites/pwa 网站。

方案 3 的示例脚本配置:从Project Online实例中删除用户的信息,但更改时间表记录以外的所有位置的显示名称

此方案从 Project Web App 实例中删除用户的个人数据,并将用户的显示名称更改为你选择 (例如“已删除的用户”) ,除非显示在时间表记录中。

运行脚本后,可以重新运行在步骤 2 中使用的 FindUser201x.sql 脚本,以查看验证用户的显示名称是否已更改。

请注意,可以通过声明帐户或资源 ID 指定用户。

使用用户的声明帐户

在此示例中,我们使用在步骤 2 中检索到的 Adam Barr 声明帐户,并在脚本中配置参数,如下所示:

DECLARE @res_uid uniqueidentifier = NULL
DECLARE @res_claims_account nvarchar(255) = 'i:0#.w|contoso\adamb'
DECLARE @res_new_name nvarchar(255) = 'Deleted User'
DECLARE @update_timesheet_names bit = 0

该脚本从 https://contoso.sharepoint.com/sites/pwa 网站中删除 Adam Barr 的所有个人数据,并将他的显示名称更改为“已删除的用户”,时间表记录中除外。 为时间表记录中的用户生成新的资源 ID,以取消他们与与“已删除的 Uer”关联的记录的链接。

使用用户的资源 ID

在此示例中,我们使用在步骤 2 中检索到的 Adam Barr 的资源 ID,并在脚本中配置参数,如下所示:

DECLARE @res_uid uniqueidentifier = '19004637-C518-E811-80E0-001DD8C187B9'
DECLARE @res_claims_account nvarchar(255) = NULL
DECLARE @res_new_name nvarchar(255) =  'Deleted User'
DECLARE @update_timesheet_names bit = 0

该脚本从 https://contoso.sharepoint.com/sites/pwa 网站中删除 Adam Barr 的所有个人数据,并将他的显示名称更改为“已删除的用户”,时间表记录中除外。 为时间表记录中的用户生成新的资源 ID,以取消他们与与“已删除的 Uer”关联的记录的链接。

Project Server 2010

运行 RedactUser-PrimaryDB2010.sql 和 RedactUser-ReportingDB2010.sql SQL 脚本从 Project Web App 实例中删除用户的个人数据,并且可以选择性地更新用户的显示名称。

使用以下参数为每个用户运行这两个脚本:

参数 说明 注意
@resUID 要删除其个人数据的用户的资源 ID 需要 resUID 或 res_claims_account。
@res_new_name 提供后,资源的用户名将使用此字符串进行更新。> [!重要说明]> 除非执行上述方案 2 或 3,否则此值应为 NULL。 可选
@update_timesheet_names 当启用 (值为“1”) 时,时间表记录中的用户名将替换为 @res_new_name 提供的字符串。如果未启用 (值为“0”) ,则用户名将保留在时间表记录中,但将在时间表中为用户名分配新的资源 ID,以使用户名不可跟踪。 默认为启用。
@timesheet_new_res_uid 在 时 @update_timesheet_names=0使用 。 使用 FindUser201x.sql 中的值。 请确保对主脚本和报告脚本使用相同的值。

方案 1 的示例脚本配置:从Project Web App实例中删除用户的信息,但保留显示名称

此方案从 Project Web App 实例中删除用户的个人数据,但该用户的显示名称保持不变。 你可能希望保留用户的显示名称以供审阅,以防它在共享项中,例如作为项目中的任务所有者或时间表中的条目。

在此示例中,我们使用在步骤 2 中检索到的 Adam Barr 的资源 ID,并在脚本中配置参数,如下所示:

DECLARE @res_uid uniqueidentifier = '19004637-C518-E811-80E0-001DD8C187B9'
DECLARE @res_new_name nvarchar(255) = NULL
DECLARE @update_timesheet_names bit = 1
DECLARE @timesheet_new_res_uid uniqueidentifier = NULL

该脚本从网站中删除 Adam Barr 的所有个人数据,但显示名称 https://contoso.sharepoint.com/sites/pwa 除外。

方案 2 的示例脚本配置:从Project Web App实例中删除用户的信息,但更新所有位置的显示名称

此方案从 Project Web App 实例中删除用户的个人数据,并将用户的显示名称(包括时间表)更改为所选 (例如“已删除用户”) 。 使用此方法将用户的显示名称更改为使用户标识匿名的内容。

成功运行脚本后,可以重新运行步骤 2 中使用的 FindUser201x.sql 脚本,以验证用户的显示名称是否已更改。

在此示例中,我们使用在步骤 2 中检索到的 Adam Barr 的资源 ID,并在脚本中配置参数,如下所示:

DECLARE @res_uid uniqueidentifier = '19004637-C518-E811-80E0-001DD8C187B9'
DECLARE @res_new_name nvarchar(255) =  'Deleted User'
DECLARE @update_timesheet_names bit = 1
DECLARE @timesheet_new_res_uid uniqueidentifier = NULL

该脚本会删除 Adam Barr 的所有个人数据,并将他的显示名称更改为“已删除的用户”整个 https://contoso.sharepoint.com/sites/pwa 网站。

方案 3 的示例脚本配置:从Project Online实例中删除用户的信息,但更改时间表记录以外的所有位置的显示名称

此方案从 Project Web App 实例中删除用户的个人数据,并将用户的显示名称更改为你选择 (例如“已删除的用户”) ,除非显示在时间表记录中。

运行脚本后,可以重新运行在步骤 2 中使用的 FindUser 脚本,以查看验证用户的显示名称是否已更改。

在此示例中,我们使用在步骤 2 中检索到的 Adam Barr 的资源 ID,并在脚本中配置参数,如下所示:

DECLARE @res_uid uniqueidentifier = '19004637-C518-E811-80E0-001DD8C187B9'
DECLARE @res_new_name nvarchar(255) =  'Deleted User'
DECLARE @update_timesheet_names bit = 0
DECLARE @timesheet_new_res_uid uniqueidentifier = 'delete-user-data-from-project-server'

该脚本从 https://contoso.sharepoint.com/sites/pwa 网站中删除 Adam Barr 的所有个人数据,并将他的显示名称更改为“已删除的用户”,时间表记录中除外。 新的资源 ID 将添加到时间表记录,以取消它们与与“已删除的 Uer”关联的记录的链接。

步骤 9 - 修订存档对象中的资源信息

已存档的项目数据

对于已编辑资源的项目:

  1. 在Project Web App设置中,选择“删除企业对象”。
  2. 选择 “删除已存档的项目”。
  3. 删除所需的存档项目。

已存档的非项目数据

Project Server 仅保留以下存档项的单个版本:

  • 企业资源库和日历
  • 企业自定义域
  • 企业全局设置

采取新的 管理备份 (2010) 。 这将使用资源个人数据已修订的版本覆盖以前的版本。

步骤 10 - 清除连接到 Project Online 实例的Project Professional用户的缓存

在Project Professional或Project Online桌面客户端连接到Project Web App的所有设备上,都需要清除缓存。 清除缓存将阻止删除用户信息的项目从系统上保留的缓存数据进行更新。

若要清除Project Professional中的缓存,请执行以下命令:

  1. 选择“ 文件 ”菜单,然后单击“ 选项”。

  2. 在“ 项目选项” 页上,选择“ 保存”。

  3. “缓存 ”部分中,选择“ 清理缓存”。

另请参阅

从 Project Server 中导出用户数据