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 パーツなど) を持つグリッド ページの上に、ビュー設定 (ビュー、フィルター、グループ、テーブル、マップ、図面、レポート) をユーザーがカスタマイズしている場合、これらは削除されます。

  • Calendar 例外の詳細 - たとえば、ユーザーが病気や休暇中だったために 1 月に 1 週間不在だった場合、例外の名前を手動で削除する必要があります。 日付は変わりません。

  • ユーザーのアクセス許可 - たとえば、ユーザーがプロジェクト サーバー カテゴリに関連付けられている場合、グループ/ に個々のグローバル アクセス許可が付与されている場合は、すべての関連付けが削除されます。 ユーザーも非アクティブとして設定されます。

注:

プロジェクト作成者は、この記事の手順の一部として削除されることはありません。

プロジェクト サイト、問題、およびリスクに含まれるユーザーの個人情報は SharePoint に保存され、このプロセスによって削除されることはありません。 このデータは、SharePoint Server から直接削除する必要があります。

重要

Project Server から同じユーザーの情報を削除する前に、SharePoint Server ユーザー情報の削除プロセスを実行することをお勧めします。 これにより、Project Server の問題とリスク内のユーザーの個人情報が、対応する SharePoint Server データによって更新されなくなります (それらがまだ存在する場合)。

削除シナリオ

このプロセスでは、必要に応じて上記のユーザーの個人情報を削除することができます。また、タイムシート、プロジェクト、課題などの共有アイテムでのユーザーの表示名の削除に関してもある程度制御することもできます。 実行できる削除シナリオは 3 つあります。

シナリオ 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 を使用してプロジェクトを開いた各デバイスのキャッシュを削除する必要があります。 キャッシュをクリアすると、デバイスにキャッシュされているユーザー情報がプロジェクトに再追加されなくなります。

    重要

    Project Server から同じユーザーの情報を削除する前に、SharePoint Server ユーザー情報の削除プロセスを実行することをお勧めします。 これにより、Project Server の問題とリスク内のユーザーの個人情報が、対応する SharePoint Server データによって更新されなくなります (それらがまだ存在する場合)。

さまざまなバージョンの Project Server 用のスクリプトを使用する

この記事は、Project Server 2016、Project Server 2013、および Project Server 2010 に適用されます。 一般的なプロセスは 3 つのバージョンすべてに適用されますが、特に SQL スクリプトを実行する場合は、異なるバージョンに適用される可能性のある特殊な点があります。 これらは指示に記載されています。

手順 1 - SharePoint Server ファームで Project Web App インスタンスを見つける

Get-SPProjectWebInstance コマンドレットと次のフィルターを使用して、SharePoint Server ファームに存在する PWA サイトの URL、サイト ID、およびデータベース名を取得します。

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

後の手順でユーザーの個人データを削除するときは、各サイトの情報が必要になります。

たとえば、サンプルの Contoso Project Server ファームでコマンドレットを実行すると、次の 3 つの 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 コマンドレットを実行します。

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

これにより、Project Server サービス アプリケーションの名前も返されます。 その後、Get-SPProjectWebInstance コマンドレットを使用して、-ServiceApplication パラメーターでサービス アプリケーション名を指定することにより、4 つの Project Server データベースの名前を返すことができます。

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

各データベースのデータベース名を参照できる必要があります。

注:

Project Server 2010 レポート データベースは、他の 3 つのデータベースとは異なる SQL Server のインスタンスに配置できます。

手順 2 - 各 PWA サイトでユーザーのリソース ID または要求アカウントを見つける

Project Server ファームのすべての PWA サイトの情報を取得した後、次に、個人データを削除するユーザーのリソース ID (ResID) または要求アカウントを見つける必要があります。 手順 1 で検出した各 PWA サイトでこれを行います (ResID は PWA インスタンスごとに異なるため)。 後の手順でユーザーの個人データを削除する場合、ユーザーのリソース ID またはクレーム アカウントのいずれかが必要です。

FindUser201x.sql SQL スクリプトを実行して、ユーザーのリソース ID またはクレーム アカウントを見つけます。

注:

SQL Server Management Studio で FindUser201x.sql SQL スクリプトを実行する必要があり、適切なデータベースにアクセスするにはファーム管理者のアクセス許可が必要です。

Project Server 2010 の場合は発行済みデータベース、またはそれ以降のバージョンの場合は関連する PWA サイトのデータベースでスクリプトを実行します。 手順 1 で提供した結果の例では、3 つの Project Web App インスタンスすべてのデータベースが WSS_Content です。

スクリプトで次のパラメーターの値を指定します:

パラメーター 説明
@siteID (Project Server 2016 のみ)
ユーザーのリソース ID を検索するサイトの PWA サイト ID。 手順 1 で PWA サイトの PWA サイト ID の値を見つけました。
@searchName
Project Server ユーザーの表示名。

たとえば、手順 1 の例で見つかった Contoso PWA1 サイトで Adam Barr のユーザー ID を検索する場合は、スクリプト内のパラメーターの値を次のように編集します。

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

スクリプトは、ユーザーのリソース名、リソース ID、電子メール アドレス、およびクレーム アカウントの値を返します。

Project Server 2010 では、スクリプトによってタイムシート GUID も生成されます。この GUID は、Project Web App インスタンスからユーザーの情報を削除したいが、タイムシート レコードを除くすべての場所で表示名を変更する場合に必要になります。 レポートおよび削除スクリプトで使用するために、この GUID をメモしておきます。

手順 3 - ユーザーのすべてのプロジェクトを閉じる

次の手順で削除スクリプトを実行する前に、ユーザーのすべてのプロジェクトが Project Server 環境で閉じられていることを確認する必要があります。 これにより、削除スクリプトによって行われた変更が上書きされなくなります。

必要に応じて、PWA 管理者は PWA サーバー設定を使用してプロジェクトを強制的にチェックインできます。

  1. [ サーバー設定 ] ページの [キューとデータベースの管理 ] セクションで、[ エンタープライズ オブジェクトの強制チェックイン] をクリックします。

  2. [ エンタープライズ オブジェクトの強制チェックイン] ページのプロジェクト リストで、チェックする必要があるプロジェクトの横にあるチェック ボックスをオンにし、[ チェックイン] をクリックします。

  3. 強制的にチェックインするかどうかを確認するメッセージが表示されます。 [OK] をクリックします。

手順 4 - ユーザー データをエクスポートする

ユーザーの個人データを削除する前に、ユーザーが参加していたすべてのプロジェクトを知っておく必要があります。 これにより、ユーザーのデータが削除されたかどうか、および削除する適切なユーザーがいるかどうかを確認できます。 ユーザー データのエクスポートの詳細については、「 Project Server からのユーザー データのエクスポート」を参照してください。 以下の手順 6 のExportWorkspaceItemsByDisplayName201x.sqlスクリプトが必要になることに注意してください。

手順 5 - ワークスペース アイテムを削除する

ワークスペースのアイテムは、SharePoint Server の一部であるプロジェクト サイトに保存されます。 Project Server 情報を削除する前に、ユーザーの SharePoint 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. [OK] をクリックします。

  8. [ リソース情報 ] ダイアログ ボックスで、[ OK] をクリックします。

  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 インスタンスからユーザー情報を削除するが、すべての場所で表示名を更新するシナリオ 2 のスクリプト構成例

このシナリオでは、ユーザーの個人データを Project Web App インスタンスから削除し、タイムシートを含むすべての場所でユーザーの表示名を選択した名前に変更します (たとえば、「削除されたユーザー」)。 このメソッドは、ユーザーの ID を匿名にする表示名に変更するために使用します。

スクリプトが正常に実行された後、手順 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 が生成され、「削除されたファイル」に関連付けられているレコードからユーザーのリンクが解除されます。

アカウントは削除されたため、ユーザーのクレーム アカウントを使用してスクリプトを再実行することはできません。

ユーザーのリソース 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 が生成され、「削除されたファイル」に関連付けられているレコードからユーザーのリンクが解除されます。

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 インスタンスからユーザー情報を削除するが、すべての場所で表示名を更新するシナリオ 2 のスクリプト構成例

このシナリオでは、ユーザーの個人データを Project Web App インスタンスから削除し、タイムシートを含むすべての場所でユーザーの表示名を選択した名前に変更します (たとえば、「削除されたユーザー」)。 このメソッドは、ユーザーの ID を匿名にする表示名に変更するために使用します。

スクリプトが正常に実行された後、手順 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 が生成され、「削除されたファイル」に関連付けられているレコードからユーザーのリンクが解除されます。

ユーザーのリソース 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 が生成され、「削除されたファイル」に関連付けられているレコードからユーザーのリンクが解除されます。

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 インスタンスからユーザー情報を削除するが、すべての場所で表示名を更新するシナリオ 2 のスクリプト構成例

このシナリオでは、ユーザーの個人データを Project Web App インスタンスから削除し、タイムシートを含むすべての場所でユーザーの表示名を選択した名前に変更します (たとえば、「削除されたユーザー」)。 このメソッドは、ユーザーの ID を匿名にする表示名に変更するために使用します。

スクリプトが正常に実行された後、手順 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 がタイムシート レコードに追加され、「削除されたファイル」に関連付けられているレコードからリンクが解除されます。

手順 9 - アーカイブされたオブジェクトからリソース情報を編集する

アーカイブされたプロジェクト データ

リソースが編集されたプロジェクトの場合:

  1. Project Web App の設定で、[エンタープライズ オブジェクトの削除] を選択します。
  2. [ アーカイブされたプロジェクトの削除] を選択します。
  3. 必要なアーカイブ プロジェクトを削除します。

アーカイブされたプロジェクト以外のデータ

Project Server は、次のアーカイブ アイテムの 1 つのバージョンのみを保持します。

  • エンタープライズ リソース共有元とカレンダー
  • エンタープライズ ユーザー設定フィールド
  • エンタープライズ グローバル

新しい 管理用バックアップ を作成します (2010)。 これにより、リソースの個人データが編集されたバージョンで以前のバージョンが上書きされます。

手順 10 - Project Online インスタンスに接続する Project Professional ユーザーのキャッシュをクリアする

Project Professional または Microsoft Project デスクトップ クライアントが Project Web App に接続されているすべてのデバイスで、キャッシュをクリアする必要があります。 キャッシュをクリアすると、ユーザー情報が削除されたプロジェクトが、システムに残っているキャッシュ データから更新されなくなります。

Project Professional でキャッシュをクリアするには:

  1. [ ファイル ] メニューを選択し、[ オプション] をクリックします。

  2. [ プロジェクト オプション] ページで、[ 保存] を選択します。

  3. [ キャッシュ] セクションで、[ キャッシュのクリーンアップ] を選択します。

関連項目

Project Server からユーザー データをエクスポートする