Project Server 2019 パブリック プレビューからユーザー データを削除する

重要!: Project Server 2019 パブリック プレビューからユーザー データを削除するプロセスは、Project Server 2016、Project Server 2013、および Project Server 2010 に使用されるプロセスとは大きく異なります。 以前のバージョンの Project Server からユーザー データを削除する方法については、「 Project Server からユーザー データを削除する」を参照してください。

ファーム管理者が Project Server 環境から特定のユーザーのデータを削除する方法について説明します。 

この記事の内容

  • 削除されるユーザー情報

  • シナリオを削除する

  • プロセスの概要

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

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

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

  • 手順 4 - ワークスペース項目を Project Server に同期する

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

  • 手順 6 - 問題とリスクのユーザー個人データを削除する

  • 手順 7 - リソース カレンダーを開き、ユーザーの例外の理由をクリアする

  • 手順 8 - リソース テーブルとプロジェクト リソース テーブルからユーザーの個人情報を削除する

  • 手順 9 - Project Server インスタンスに接続Project Professionalユーザーのキャッシュをクリアします。

削除されるユーザー情報

Project Server では、管理者は、この記事で詳しく説明されている手順を使用して、ユーザーの個人データと個人識別データ (ユーザーを識別するために使用できるデータ) を削除できます。

  • 表示名、ふりがな名、GUID - ユーザーの表示名 (スクリプトの実行方法の詳細) を削除または名前変更することができます。

  • ユーザー固有のビュー設定 - たとえば、ユーザーがビュー (リソース センター、プロジェクト センター、Web パーツのスケジュールなど) を含むグリッド ページの上にビュー設定 (ビュー、フィルター、グループ、テーブル、マップ、図面、レポート) をカスタマイズしている場合、これらは削除されます。

  • 予定表の例外の詳細 - たとえば、ユーザーが病気や休暇中のため 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. すべてのユーザーのプロジェクトを閉じる: これにより、ユーザーが情報を持つすべてのプロジェクトに変更が加えられます。

  5. ワークスペース項目を Project Server に同期する:

  6. ユーザーのデータのエクスポートを実行する: この手順については、「 Project Server 2019 パブリック プレビューでのユーザー データのエクスポート」を参照してください。

  7. 問題とリスクからユーザー個人データを削除します

  8. PWA サイトからユーザーのデータを削除します。 スクリプトを実行して、各 PWA サイトからユーザーの情報を削除します。

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

  10. PWA サイトに接続している Project クライアント ユーザーのキャッシュをクリアします。

手順 1 - エクスポート スクリプト ファイルをダウンロードする

エクスポート スクリプトをダウンロードするには、 ここをクリックします

エクスポート スクリプトの実行に関する重要な注意事項:

  • 情報が存在するデータベースのコンテキストで .sql スクリプトを実行します。 データベースに対するdb_datareaderアクセス許可が必要です。

  • 既定では、インターネットからダウンロードしたスクリプトの実行が許可されていないため、zip ファイルのブロックを解除する必要がある場合があります。 ファイルのブロックを解除するには、次の操作を行います。

  1. エクスプローラーで、zip ファイルを保存した場所に移動します。

  2. zip ファイルを右クリックし、[ プロパティ] をクリックします。

  3. [ 全般 ] タブで、[ ブロック解除] を選択します。 

  4. [OK] をクリックします。

zip ファイルに含まれるすべてのファイルのブロックを解除する必要があります。 ファイルの [プロパティ] ページの [全般] タブに [ブロック解除] チェック ボックスが表示されなくなったかどうかを確認することで、個々のファイルでこれを確認できます。

: 解凍されたファイルにのみアクセスできる場合は、各ファイルのブロックを個別に解除することもできます。

手順 2 - 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 Database DatabaseServer
`https://contoso/pwa1` 63ed0197-3647-4279-ed5e80855fc7 WSS_Content SQL01
`https://contoso/pwa2` 67fd0727-5279-3321-ef4e90956fc8 WSS_Content SQL01
`https://contoso/pwa3` 63ed0197-3647-4279-eg7e20233fg9 WSS_Content SQL02

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

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

FindUser2019.sql SQL スクリプトを実行して、ユーザーのリソース ID または要求アカウントを検索します。

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

関連する PWA サイトのデータベースでスクリプトを実行します。 手順 1 で提供される結果の例では、3 つのProject Web App インスタンスのデータベースはすべて WSS_Content です。

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

パラメーター 説明
@siteID ユーザーのリソース 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、電子メール アドレス、および要求アカウントの値を返します。

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

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

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

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

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

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

手順 5 - ワークスペース項目を Project Server に同期する

Sync-ProjectWorkspace2019.ps1 スクリプトは、Project Server でキュー ジョブを作成して、プロジェクト ワークスペースの完全同期を実行します。探しているユーザーを含むプロジェクトごとに、このスクリプトを実行します。 (プロジェクトごとにプロジェクト ID が必要です。 WorkspaceItems [Project Server 2019 パブリック プレビューからユーザー データをエクスポートする](export-user-data-from-project-server-2019 Public Preview.md) をエクスポートすることで、ユーザーに関連するプロジェクトを確認できます。 追加の手順を続行する前に、キュー ジョブが完了したことを確認します。

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

ユーザーの個人データを削除する前に、ユーザーが参加していたすべてのプロジェクトを把握しておく必要があります。 これにより、後でユーザーのデータが削除されたかどうか、および削除する正しいユーザーがいることを確認できます。 ユーザー データのエクスポートについては、「Project Server 2019 パブリック プレビューからユーザー データをエクスポートする」を参照してください。

手順 7- 問題とリスクのユーザー個人データを削除する

問題とリスクは、SharePoint Server の一部であるプロジェクト サイトに格納されます。 Project Server 情報を削除する前に、ユーザーの SharePoint Server 情報を削除することをお勧めします。 これにより、Project Server の問題やリスクに関するユーザーの個人情報が、対応する SharePoint Server データによって更新されるのを防ぐことができます。これらのデータがまだ存在する場合。

ユーザー情報を Project Server から既に削除した後 (または Project Server アカウントを持っていないユーザーの場合) プロジェクト サイトからユーザー情報を削除する場合は、Project Server から削除した後はリソース ID を使用できないため、要求アカウントを使用する必要があります。

FindUserClaims2019.sql スクリプトを使用して、レポート データベース内のすべての問題リスクのクレーム アカウントを検索できます。

手順 8 - PWA サイトからユーザーのデータを削除する

Project Server で SharePoint ファーム管理者として、Invoke-SPProjectRedactUser コマンドレットを実行して PWA サイトからユーザー データを削除し、必要に応じてユーザーの表示名を更新します。

Invoke コマンドレットでは、次のパラメーターを使用します。

パラメーター 説明 注:
-Url Project Online インスタンスの URL。 必須
-ClaimsAccount ユーザーの ClaimsAccount。 要求アカウントまたは ResourceID が必要です。
-ResourceId ユーザーのリソース GUID。 要求アカウントまたは ResourceID が必要です。
-UpdateDisplayName ユーザーの新しい表示名 使用する場合は、RedactTimesheet も必要です。
-RedactTimesheet タイムシートに変更を適用しますか? ($true または $false)

Invoke コマンドレットとパラメーターは、次の方法で使用できます。

シナリオ 1: 表示名を除くProject Online インスタンスからユーザーの情報を削除する

このコマンドを使用すると、表示名を除き、PWA サイトからユーザーのデータが削除されます。 プロジェクトのタスク所有者やタイムシートのエントリなど、共有アイテム内にある場合は、後でレビューするユーザーの表示名を残したい場合があります。

要求アカウントまたはリソース ID でユーザーを指定できることに注意してください。

要求アカウントを使用する

要求アカウントでユーザーを指定する場合は、次の方法でコマンドレットを使用します

Invoke-SPProjectRedactUser -Url <PWASiteURL> -ClaimsAccount <ClaimsAccount>

たとえば、次の例では、要求 :0#.w を持つユーザーのすべてのデータを削除します|ユーザーの表示名をhttps://contoso.sharepoint.com/sites/pwa除き、サイト全体で contoso/bob

*Invoke-SPProjectRedactUser -Url https://contoso.sharepoint.com/sites/pwa -ClaimsAccount "i:0#.w|contoso\evac"
*

このコマンドを実行すると、続行するかどうかを確認するメッセージが表示されます。

確認してスクリプトが正常に完了すると、リソースの名前を除き、リソース <ユーザーの表示名> のすべてのデータが削除されたことを示すメッセージが表示されます。

リソース ID を使用する

リソース ID でユーザーを指定する場合は、次の方法でコマンドレットを使用します。

Invoke-SPProjectRedactUser -Url <PWASiteURL> -ResourceID <ResourceID>

たとえば、次の例では、ユーザーの表示名を除き、サイト全体https://contoso.sharepoint.com/sites/pwa0c7cd3fb-a0be-e111-9fte-00155d022d022681 のリソース ID を持つユーザーのすべてのユーザー データが削除されます

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

このコマンドを実行すると、続行するかどうかを確認するメッセージが表示されます。

確認し、スクリプトが正常に完了すると、リソースの名前を除き、リソース ユーザーのリソース <ID> のすべてのデータが削除されたことを示すメッセージが表示されます。

シナリオ 2: Project Server インスタンスからユーザーの情報を削除するが、表示名はどこでも更新する

このコマンドを使用すると、Project Online インスタンスからユーザーのユーザー データが削除され、ユーザーの表示名が選択した名前に変更され、タイムシート レコードにも表示されます。 組織では、ユーザーの表示名を、ユーザーの ID を匿名にする名前 ("削除されたユーザー" など) に変更できます。

要求アカウントまたはリソース ID でユーザーを指定できることに注意してください。

要求アカウントを使用する

ログオン名でユーザーを指定する場合は、次の方法でコマンドレットを使用します。

Invoke-SPProjectRedactUser -Url <PWASiteURL> -ClaimsAccount <ClaimsAccount> -UpdateDisplayName "<newDisplayName>" -RedactTimesheet $true

たとえば、次の例では、 のすべてのユーザー データevac@contoso.onmicrosoft.comが削除され、表示名が *https://contoso.sharepoint.com/sites/pwa* サイト全体で "削除されたユーザー" に変更されます。

Invoke-SPProjectRedactUser -Url https://contoso.sharepoint.com/sites/pwa -ClaimsAccount "i:0#.w|contoso\evac" -UpdateDisplayName "Deleted User" -RedactTimesheet $true

このコマンドを実行すると、続行するかどうかを確認するメッセージが表示されます。

確認が完了し、スクリプトが正常に完了すると、リソース ユーザーのログイン名>のすべてのデータが削除され、タイム<シート レコードを含むすべての場所でリソースの名前が更新された表示名>に<変更されたことを示すメッセージが表示されます。

リソース ID を使用する

リソース ID でユーザーを指定する場合は、次の方法でコマンドレットを使用します。

Invoke-SPProjectRedactUser -Url <PWASiteURL> -ResourceID <ResourceID> -UpdateDisplayName "<newDisplayName>" -RedactTimesheet $true

たとえば、次の例では、リソース ID が 0c7cd3fb-a0be-e111-9fte-00155d022d022d022681 のユーザーのすべてのユーザー データが削除され、*https://contoso.sharepoint.com/sites/pwa* サイト全体で表示名が "削除されたユーザー" に変更されます。

Invoke-SPProjectRedactUser -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 でユーザーを指定できることに注意してください。

要求アカウントを使用する

要求アカウントでユーザーを指定する場合は、次の方法でコマンドレットを使用します。

Invoke-SPProjectRedactUser -Url <PWASiteURL> -ClaimsAccount <ClaimsAccount> -UpdateDisplayName "<newDisplayName>" -RedactTimesheet $false

たとえば、次の例では、 のすべてのデータevac@contoso.onmicrosoft.comが削除され、タイムシート レコードを除き、*https://contoso.sharepoint.com/sites/pwa* サイト全体で表示名が "削除されたユーザー" に変更されます。

Invoke-SPProjectRedactUser -Url https://contoso.sharepoint.com/sites/pwa -ClaimsAccount "i:0#.w|contoso\evac" -UpdateDisplayName "Deleted User" -RedactTimesheet $false

このコマンドを実行すると、続行するかどうかを確認するメッセージが表示されます。

確認し、スクリプトが正常に完了すると、次のメッセージが表示されます。確認後、スクリプトが正常に完了すると、リソース ユーザーのログイン名>のすべてのデータが削除され、タイム<シート レコードを除くすべての場所でリソースの名前が更新された表示名>に<変更されたことを示すメッセージが表示されます。

リソース ID を使用する

リソース ID でユーザーを指定する場合は、次の方法でコマンドレットを使用します。

Invoke-SPProjectRedactUser -Url <PWASiteURL> -ResourceID <ResourceID> -UpdateDisplayName "<newDisplayName>" -RedactTimesheet $false

たとえば、次の例では、リソース ID が 0c7cd3fb-a0be-e111-9fte-00155d022d022681 のユーザーのすべての個人データが削除され、タイムシート レコードを除き、サイト全体 https://contoso.sharepoint.com/sites/pwa で表示名が "削除されたユーザー" に変更されます。

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

このコマンドを実行すると、続行するかどうかを確認するメッセージが表示されます。

確認が完了し、スクリプトが正常に完了すると、リソース ユーザーのログイン名>のすべてのデータが削除され、タイム<シート レコードを除くすべての場所でリソースの名前が更新された表示名>に<変更されたことを示すメッセージが表示されます。

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

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

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

  1. [Project Web App設定] で、[エンタープライズ オブジェクトの削除] を選択します。

  2. [ アーカイブ済みプロジェクトの削除] を選択します

  3. 必要なアーカイブ済みプロジェクトを削除します。

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

Project Server では、次のアーカイブ済みアイテムの 1 つのバージョンのみが保持されます。

  • エンタープライズ リソース共有元とカレンダー

  • エンタープライズ ユーザー設定フィールド

  • エンタープライズ グローバル

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

手順 10 - PWA サイトに接続している Project クライアント ユーザーのキャッシュをクリアする

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

Project Professional 2016とProject Online デスクトップ クライアントでキャッシュをクリアするには:

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

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

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