从 Project Online 中删除用户数据

了解Office 365全局管理员如何从Project Online环境中删除用户的信息。

删除哪些用户数据?

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

  • 显示名称、拼音名称、GUID - 可以选择删除或重命名用户的显示名称。

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

  • 日历异常详细信息 - 例如,如果用户在 1 月份因生病或休假而外出一周,则会删除例外的名称。 异常的日期将保留。

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

存储在 SharePoint Online 中的项目网站中包含的用户信息(如问题、风险、可交付结果和文档)可能无法通过Project Online用户数据删除过程删除,因为其中一些用户有权访问项目网站,但不是 PWA 用户。 您需要通过本文的步骤 6 - 删除通过 SharePoint Online 添加的用户帐户信息 部分中的过程删除此数据。

重要

建议先运行 SharePoint Online 用户数据删除过程,然后再从Project Online删除同一用户的信息。 这将防止与某些 SharePoint Online 项目同步 ((例如问题或风险) )覆盖已删除Project Online中的用户数据的问题。

这与通过企业对象删除删除用户有何不同?

本文中所述的用户数据删除过程与通过 PWA 服务器设置中的“企业对象删除”页删除 PWA 用户的方式有多种不同:

  • 企业对象删除会将用户删除为企业资源。 但是,如果用户/资源是以下任一项,则会阻止删除:

    • 项目所有者

    • 时间表管理器

    • 时间表管理器列表

    • 分配所有者

    • 在资源计划中

    • 工作流代理用户

  • 通过本文中的步骤删除用户数据不会删除企业资源。 它会将用户帐户更改为停用、删除用户数据,并可以选择性地将资源名称更改为你选择 (的内容,例如“已删除的用户”) 。

删除方案

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

方案 1:从Project Online删除用户的信息,显示名称除外

在此方案中,将删除用户的所有数据,但用户的显示名称除外。

如果想要了解用户已完成的工作(例如通过时间表和任务),则可以选择此方案。

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

在此方案中,将删除用户的所有信息。 在显示用户显示名称的所有位置,它将替换为你选择的内容,例如“已删除的用户”。 用户的资源 ID 将保留。

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

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

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

可以选择此方案,需要进一步查看显示用户的时间表记录。

进程概述

下面概述了管理员删除特定用户在其Project Online环境中的信息时需要执行的过程:

  1. 下载 PowerShell 脚本:需要下载并解压缩本文中所需的 PowerShell 脚本文件。

  2. 查找包含用户数据的 PWA 网站:查找环境中Project Web App站点的列表。

  3. 在每个 PWA 网站上查找用户的资源 ID (可选) :在每个Project Web App网站上,查找用户的唯一资源 ID。 还可以选择按登录帐户 (指定用户, adambarr@contoso.onmicrosoft..com 例如,) 。

  4. 关闭并签入所有用户的项目:需要在运行导出脚本之前执行此操作,以确保不会覆盖所做的更改。

  5. 执行用户数据的导出:从 Project Online 导出用户信息中介绍了此可选步骤。

  6. 删除通过 SharePoint Online 添加的用户帐户信息 (可选) :仅当需要删除非 PWA 用户帐户信息(例如可能已获得项目网站访问权限的用户)时才需要此步骤。

  7. 从 PWA 站点中删除用户数据:运行脚本以从每个 PWA 站点中删除用户信息。

    通过脚本,可以选择将用户的显示名称更改为不同的 (例如“已删除用户”) 。 这允许你使用户匿名,同时保持用户信息显示相对不变的项。

  8. 删除Project Professional用户的缓存:脚本成功完成后,PWA 管理员需要删除连接到Project Online站点时使用Project Professional打开项目的每个设备上的缓存。 清除缓存可防止用户信息在设备上缓存时读取到项目。

与项目管理员协作

根据你的公司,Office 365全局管理员可能知道如何管理Office 365管理任务,但对Project Online管理知之甚少。 如果是这种情况,我们建议Office 365全局管理员与其 PWA 站点管理员协作来完成这些任务。 例如,全局管理员可能最适合运行 PowerShell 脚本来查找所有 PWA 站点,但可能需要与 PWA 管理员协作才能完成剩余步骤,并获取有关每个 PWA 站点的业务规则和配置的帮助。

重要

最佳做法是,在从站点中删除用户数据之前,请确保备份 Project 数据库。 确定成功后,可以删除备份。

步骤 1 - 下载删除脚本文件

需要为本文中的过程使用多个准备 PowerShell 脚本文件。 本文中引用的脚本文件包含在Project Online用户内容导出和删除脚本包中。 将文件下载并向上压缩到可引用的位置。

步骤 2 - 在Office 365环境中查找Project Web App站点

全局管理员需要使用 SharePoint Online 命令行管理程序连接到其 SharePoint Online 管理员 中心并运行 Get-SPOSite PowerShell cmdlet,以获取其Office 365环境中每个 PWA 网站的 URL 列表。

注意

若要运行 Get-SPOSite PowerShell cmdlet,需要具有全局管理员或 SharePoint 管理员角色。

  1. 在 SharePoint Online 命令行管理程序模块中,使用 Connect-SPOService cmdlet 连接到 SharePoint Online 管理员中心:
Connect-SPOService -URL <AdminSiteURL> 

例如:

Connect-SPOService -URL https://contoso-admin.sharepoint.com 

连接到 SharePoint Online 管理员 中心后,使用 Get-SPOSites PowerShell cmdlet 查找Office 365环境中的所有 PWA 网站:

  1. 连接到 SharePoint Online 管理员中心后,使用 Get-SPOSite PowerShell cmdlet 查找Office 365环境中的所有 PWA 网站:
Get-SPOSite | ?{$_.PWAEnabled -eq "Enabled"} | ft -a Url,Owner

成功运行后,将显示Office 365环境中所有 PWA 网站和网站所有者的列表。

步骤 3 - 在每个 PWA 站点上查找用户的资源 ID (可选)

重要

如果你有用户的登录帐户,此步骤是可选的。 需要用户的 登录帐户 或每个 PWA 站点 的资源 ID 才能运行删除脚本。

如果要查找用户的资源 ID,PWA 管理员需要在上一步中找到的每个 PWA 站点上执行以下操作:

  1. 在“Project Online服务器设置”的“企业数据”部分中,单击“资源汇”。

  2. “资源汇”页上的“资源名称”列中,找到用户的名称,然后查找该行以查看是否可以在“唯一 ID”列中找到值。 此值是用户的资源 ID。 例如,在下图中,可以看到“唯一 ID”列中列出了 Aaron Painter 的资源 ID 值。

    “唯一 ID”列中的用户的资源 ID。

    在某些情况下,可能会自定义表,以便“唯一 ID”列不可用。 如果是这样,请选中用户名左侧的复选框,然后单击功能区“资源”选项卡中的“编辑”,然后转到下一步。

  3. 在特定用户的 “编辑资源 ”页上,转到 “系统标识数据 ”部分,找到为 GUID 列出的值。 GUID 是此 PWA 站点的用户资源 ID。

    查找用户资源 ID。

注意

如果有多个 PWA 站点,则每个 PWA 站点将为同一用户使用不同的资源 ID。 请确保将用户找到的资源 ID 与特定的 PWA 站点 URL 配对。

步骤 4 - 关闭并签入所有用户的项目

在运行导出脚本之前,需要确保 PWA 网站上的用户已关闭并签入所有用户项目。 这将确保不会覆盖删除脚本所做的更改。

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

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

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

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

注意

强制签入用户正在修改的项目可能会导致这些更改丢失。 强烈建议用户按典型方式签入项目,并建议您仅在完全有必要的情况下执行强制签入。

步骤 5 - 将用户数据导出 (可选)

删除用户数据之前,应知道用户所属的所有项目。 这将允许你稍后验证用户的数据是否已删除,因为某些问题可能阻止删除发生 (,例如,项目已签出。可以通过导出用户的数据来查看这些项目。 若要了解如何执行此操作,请参阅从 PROJECT ONLINE (GDPR) 导出用户信息

导出脚本还会告知你当前是否签出了任何用户的项目,因为在下一步中运行 RedactProjectUser 脚本之前,需要先签入这些项目。

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

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

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

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

重要

如果强制签入用户正在修改的项目,则修改可能会丢失。

步骤 6 - 删除通过 SharePoint Online 添加的用户帐户信息

注意

如果同时从 SharePoint Online 中删除用户数据,我们建议在删除Project Online用户数据之前删除 SharePoint Online 用户数据,以防止可能覆盖已删除内容的同步问题。

Office 365环境中没有 Project Web App (PWA) 帐户的用户也可以在 Project Online 中提供其名称和帐户信息,并且可能想要将其删除。 如果用户将某些 SharePoint 对象添加到项目网站,则可能会发生这种情况。 项目网站是可在创建项目时创建的 SharePoint 协作网站。 非 PWA 用户的 SharePoint 用户可被授予访问这些协作网站的权限。 发生这种情况时,他们的帐户信息可以保存到 PWA。 如果管理员正在删除 SharePoint Online 中的用户数据,他们还应查看是否需要在 Project Online中删除用户数据,以及他们是否在 SharePoint Online 导出数据中注意到以下任何一项:

  • 与项目网站相关的问题

  • 与项目网站关联的风险

  • 与项目网站关联的文档

  • 与项目网站关联的可交付结果

如果 SharePoint Online 用户数据显示上述任何内容,您还可以通过运行 RedactProjectUser PowerShell 脚本从Project Online网站中删除用户帐户信息,该脚本 (指定登录帐户信息,因为用户不会) 资源 ID:

.\Invoke-RedactProjectUser.ps1 -Url <PWASiteURL> -LoginName <logonName> -UpdateDisplayName "<newDisplayName>" -RedactTimesheet $true

例如,从 SharePoint Online 导出数据中,你发现 Eva Corets () 的 evac@contoso.com 帐户名称,向属于特定 PWA 网站 () 的项目网站 https://contoso.sharepoint.com/sites/pwa1 添加了问题和风险。 运行以下命令会将她帐户名的所有实例更新为特定 PWA 站点上的“已删除用户”。

.\Invoke-RedactProjectUser.ps1 -Url https://contoso.sharepoint.com/sites/pwa -LoginName evac@contoso.onmicrosoft.com -UpdateDisplayName "Deleted User" -RedactTimesheet $true

步骤 7 - 从 PWA 站点中删除用户的数据

SharePoint Online 命令行管理程序中运行 RedactProjectUser PowerShell 脚本,以从 PWA 网站中删除用户数据,并选择性地更新用户的显示名称。

RedactProjectUser PowerShell 脚本包含在Project Online用户内容导出和删除脚本包中。

注意

若要运行 RedactProjectUser 脚本,至少需要满足以下条件之一: > 运行脚本的 PWA 网站的网站集管理员。 >如果处于“项目”权限模式,则为 Project Online 实例分配“管理用户和组”权限。 如果处于 SharePoint 权限模式,请具有全局管理员或 SharePoint 管理员角色。

在 SharePoint Online 命令行管理程序中,你将使用 Invoke cmdlet 来运行 RedactProjectUser 脚本:

Invoke-RedactProjectUser  

Invoke cmdlet 使用以下参数:

参数 说明 注意
-Url
Project Online 实例的 URL。
必需
-LoginName
用户的登录名。
需要 LoginName 或 ResourceID。
-ResourceId
用户的资源 GUID。
需要 LoginName 或 ResourceID。
-UpdateDisplayName
用户的新显示名称
如果使用,还需要 RedactTimesheet。
-RedactTimesheet
将更改应用到时间表? ( $true$false )
-地区
此可选参数指定正在使用Office 365环境。 可用于此参数的值包括:
默认值 - Project 公有云。
中国 - 加拉廷。
德国 - 黑森林 。
ITAR - Office 365 美国政府。
如果未使用 参数,则使用默认值 ( Default ) 。

可以通过以下方式使用 Invoke cmdlet 和参数:

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

使用此命令将从 PWA 站点中删除用户的数据,但显示名称除外。 如果你的组织位于共享项(例如项目中的任务所有者或时间表中的条目),则组织可能需要保留用户的显示名称以供以后审阅。

请注意,可以通过登录名或资源 ID 指定用户。

使用登录名

如果要通过登录名指定用户,则按以下方式使用 cmdlet:

.\Invoke-RedactProjectUser.ps1 -Url <PWASiteURL> -LoginName <loginName>

例如,以下操作将删除整个 https://contoso.sharepoint.com/sites/pwa 网站中用户 * evac@@contoso.onmicrosoft.com * 的所有数据,但用户的显示名称除外

.\Invoke-RedactProjectUser.ps1 -Url https://contoso.sharepoint.com/sites/pwa -LoginName evac@@contoso.onmicrosoft.com

运行此命令时,将显示一条消息,要求你确认是否要继续。

确认并成功完成脚本后,将显示一条消息,指出已 删除资源 <用户的显示名称> 的所有数据,但资源名称除外。

使用资源 ID

如果要通过资源 ID 指定用户,则按以下方式使用 cmdlet:

.\Invoke-RedactProjectUser.ps1 -Url <PWASiteURL> -ResourceID <ResourceID>

例如,以下内容将删除资源 ID 为 0c7cd3fb-a0be-e111-9fte-00155d022d022681https://contoso.sharepoint.com/sites/pwa 的用户的所有用户数据,但用户的显示名称除外

.\Invoke-RedactProjectUser.ps1 -Url https://contoso.sharepoint.com/sites/pwa -ResourceId 0c7cd3fb-a0be-e111-9fte-00155d022d022681

运行此命令时,将显示一条消息,要求你确认是否要继续。

确认并成功完成脚本后,将显示一条消息,指出: 已删除资源 <用户资源 ID> 的所有数据,但资源名称除外。

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

使用此命令将从 Project Online 实例中删除用户的用户数据,并将用户的显示名称更改为他们选择的内容,这也会在时间表记录中发生。 你的组织可能希望将用户的显示名称更改为使用户标识匿名的内容,例如“已删除的用户”。

请注意,可以通过登录名或资源 ID 指定用户。

使用登录名

如果要通过登录名指定用户,则按以下方式使用 cmdlet:

.\Invoke-RedactProjectUser.ps1 -Url <PWASiteURL> -LoginName <logonName> -UpdateDisplayName "<newDisplayName>" -RedactTimesheet $true

例如,以下内容将删除 的 evac@contoso.onmicrosoft.com 所有用户数据,并将他的显示名称更改为“ 已删除的用户 ”整个 https://contoso.sharepoint.com/sites/pwa 网站。

.\Invoke-RedactProjectUser.ps1 -Url https://contoso.sharepoint.com/sites/pwa -LoginName evac@contoso.onmicrosoft.com -UpdateDisplayName "Deleted User" -RedactTimesheet $true

运行此命令时,将显示一条消息,要求你确认是否要继续。

确认并成功完成脚本后,将显示一条消息,指出:资源用户的登录名>的所有数据<已删除,资源名称已更改为<更新的显示名称>,包括时间表记录。

使用资源 ID

如果要通过资源 ID 指定用户,则按以下方式使用 cmdlet:

.\Invoke-RedactProjectUser.ps1 -Url <PWASiteURL> -ResourceID <ResourceID> -UpdateDisplayName "<newDisplayName>" -RedactTimesheet $true

例如,以下内容将删除资源 ID 为 0c7cd3fb-a0be-e111-9fte-00155d022d022681 的用户的所有用户数据,并将整个站点的https://contoso.sharepoint.com/sites/pwa显示名称更改为“已删除的用户”。

.\Invoke-RedactProjectUser.ps1 -Url https://contoso.sharepoint.com/sites/pwa -ResourceId 0c7cd3fb-a0be-e111-9fte-00155d022d022681 -UpdateDisplayName "Deleted User" -RedactTimesheet $true

运行此命令时,将显示一条消息,要求你确认是否要继续。

确认并成功完成脚本后,将显示一条消息,指出:资源用户的资源 ID> 的所有数据<已删除,资源名称已更改为<更新的显示名称>,包括时间表记录。

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

使用此命令将从Project Web App网站中删除用户的数据,并将用户的显示名称更改为指定的内容,但这不会在时间表记录中发生。 你的组织可能希望稍后分析他们是否有业务理由将用户显示名称保留在其时间表记录中。

请注意,可以通过登录名或资源 ID 指定用户。

使用登录名

如果要通过登录名指定用户,则按以下方式使用 cmdlet:

.\Invoke-RedactProjectUser.ps1 -Url <PWASiteURL> -LoginName <logonName> -UpdateDisplayName "<newDisplayName>" -RedactTimesheet $false

例如,以下内容将删除 的 evac@contoso.onmicrosoft.com 所有数据,并将他的显示名称更改为“ 已删除的用户 ”在整个站点中 https://contoso.sharepoint.com/sites/pwa ,时间表记录除外。

.\Invoke-RedactProjectUser.ps1 -Url https://contoso.sharepoint.com/sites/pwa -LoginName evac@contoso.onmicrosoft.com -UpdateDisplayName "Deleted User" -RedactTimesheet $false

运行此命令时,将显示一条消息,要求你确认是否要继续。

确认并成功完成脚本后,将显示一条消息,指出: 确认并成功完成脚本后,将显示一条消息,指出:资源 <用户资源 ID> 的所有数据已删除,资源名称已更改为 <更新的显示名称> ,时间表记录除外。

使用资源 ID

如果要通过资源 ID 指定用户,则按以下方式使用 cmdlet:

.\Invoke-RedactProjectUser.ps1 -Url <PWASiteURL> -ResourceID <ResourceID> -UpdateDisplayName "<newDisplayName>" -RedactTimesheet $false

例如,以下内容将删除资源 ID 为 0c7cd3fb-a0be-e111-9fte-00155d022d022681 的用户的所有个人数据,并将整个 https://contoso.sharepoint.com/sites/pwa 网站的显示名称更改为“已删除的用户”,时间表记录中除外。

.\Invoke-RedactProjectUser.ps1 -Url https://contoso.sharepoint.com/sites/pwa -ResourceId 0c7cd3fb-a0be-e111-9fte-00155d022d022681 -UpdateDisplayName "Deleted User" -RedactTimesheet $false

运行此命令时,将显示一条消息,要求你确认是否要继续。

确认并成功完成脚本后,将显示一条消息,指出:资源用户的登录名的所有数据<已删除,资源名称已更改为<除时间表记录以外的所有位置更新的显示名称>。>

步骤 8 - 清除连接到 PWA 站点的 Project 客户端用户的缓存

在连接到 Project Online 实例Project Professional或Project Online桌面客户端的所有设备上,IT 管理员需要清除缓存。 清除缓存将阻止删除用户信息的项目从系统上保留的缓存数据进行更新。 在清除缓存之前,还需要确保在客户端上未打开任何用户项目。

若要清除 Project Professional 2016 和Project Online桌面客户端中的缓存,请执行以下操作:

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

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

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

另请参阅

从 Project Online 中导出用户数据

Project Online导出 json 对象定义