Project Server からユーザー データをエクスポートする
重要!: この記事では、Project Server 2016、Project Server 2013、または Project Server 2010 からユーザー データをエクスポートする方法について説明します。 Project Server 2019 からユーザー データをエクスポートするプロセスは、以前のバージョンとは大きく異なり、この記事には含まれていません。 以前のバージョンの Project Server 2019 パブリック プレビューからユーザー データをエクスポートする方法については、「 Project Server 2019 パブリック プレビューでユーザー データをエクスポートする」を参照してください。
組織は、Project Server 環境から特定のユーザーのコンテンツをエクスポートできます。 このコンテンツをエクスポートするには、Project Server ファーム管理者が次の手順に従います。
手順 1 - エクスポート スクリプト ファイルをダウンロードする
手順 2- SharePoint Server ファーム内のProject Web App インスタンスを見つける
手順 4 - 各 PWA サイトでユーザーのリソース ID または要求アカウントを見つける
手順 5 - 探しているユーザーを含むプロジェクトを検索する
手順 8 - 添付ファイル、ビュー、VBA ファイルを検索して保存する
プロセスの概要
特定のユーザーの情報をProject Web Appからエクスポートするプロセスの概要を次に示します。
エクスポート スクリプトをダウンロードする: ユーザー データをエクスポートするための .sql スクリプトと Microsoft PowerShell スクリプトをダウンロードします。
環境内の PWA サイトを見つける: Project Server ファーム内のProject Web App インスタンスの一覧を見つけます。
ユーザーのリソース ID を見つける: 各Project Web App インスタンスで、ユーザーの一意のリソース ID を見つけます。 ユーザー要求を指定することもできます。
ユーザーのデータのエクスポートを実行する: scipts を使用して、確認する情報をエクスポートします。
異なるバージョンの Project Server にスクリプトを使用する
この記事は、Project Server 2016、Project Server 2013、および Project Server 2010 に適用されます。 一般的なプロセスは 3 つのバージョンすべてに適用されますが、特に SQL スクリプトを実行する場合は、異なるバージョンに適用される可能性のある詳細があります。 以下のセクションで説明します。 ファームとProject Professional クライアントに最新の更新プログラムがデプロイされていることを確認します。
注:
プロジェクト作成者は、この記事の手順の一部としてエクスポートされません。
手順 1 - エクスポート スクリプト ファイルをダウンロードする
Microsoft ダウンロード センターからエクスポート スクリプトをダウンロードします。
ダウンロードには、Project Server のバージョンごとに個別のフォルダーを含む ZIP ファイルが含まれています。 以下の手順 5 で説明されているように、バージョンまたは Project Server のスクリプトを使用します。
エクスポート スクリプトの実行に関する重要な注意事項:
スクリプト フォルダーには、いくつかの .wsdl ファイルが含まれています。 これらは、PowerShell スクリプトで必要です。 実行するときに、それらが PowerShell スクリプトと同じディレクトリにあることを確認します。
SetupReportingProcedures201x.sql スクリプトは、SQL セッション内で使用可能な一部のグローバル ストアド プロシージャをメモリに一時的に作成します。 これらのストアド プロシージャは、次のスクリプトで必要です。
ExportReportingProject201x.sql
ExportReportingResource201x.sql
ExportTimesheetReporting201x.sql
注:
これらのスクリプトのいずれかを実行する前に、SetupReportingProcedures201x.sql を実行します。
各スクリプトには、ユーザー ID やデータベース名など、それを実行する前に定義する必要がある 1 つ以上の変数があります。 スクリプト自体の説明セクションで、必要なパラメーターを確認します。
情報が存在するデータベースのコンテキストで、各 .sql スクリプトを実行します。 データベースに対するdb_datareaderアクセス許可が必要です。
既定では、インターネットからダウンロードしたスクリプトの実行が許可されていないため、zip ファイルのブロックを解除する必要がある場合があります。 ファイルのブロックを解除するには、次の操作を行います。
エクスプローラーで、zip ファイルを保存した場所に移動します。
zip ファイルを右クリックし、[ プロパティ] をクリックします。
[ 全般 ] タブで、[ ブロック解除] を選択します。
[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 | データベース | 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 |
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 Reporting データベースは、他の 3 つのデータベースとは異なるSQL Serverインスタンスに配置できます。
手順 3 - ユーザーのワークスペース項目をエクスポートする
ExportWorkspaceItemsByDisplayName201x.sql スクリプトを実行し、ユーザーの表示名 (部分名検索) を使用してデータを検索します。
Project Server 2010 の Reporting データベース、またはそれ以降のバージョンの関連 PWA サイトのデータベースでスクリプトを実行します。 手順 1 で提供される結果の例では、3 つのProject Web App インスタンスのデータベースはすべて WSS_Content です。
スクリプトで次のパラメーターの値を指定します。
パラメーター | 説明 |
---|---|
@siteID (Project Server 2016のみ) |
ユーザーのリソース ID を検索するサイトの PWA サイト ID。 手順 1 で PWA サイトの PWA サイト ID の値が見つかりました。 |
@resDisplayName |
Project Server ユーザーの表示名 (部分的な表示名)。 |
手順 4 - 各 PWA サイトでユーザーのリソース ID または要求アカウントを見つける
Project Server ファーム上のすべての PWA サイトの情報を取得したら、次に、個人データを削除するユーザーのリソース ID (ResID) またはクレーム アカウントを見つける必要があります。 手順 1 で検出した各 PWA サイトでこれを行います (各 PWA インスタンスで REsID が異なるため)。
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 の userID を検索する場合は、スクリプト内のパラメーターの値を次のように編集します。
DECLARE @siteId uniqueidentifier = '63ed0197-3647-4279-ed5e80855fc7'
DECLARE @searchName nvarchar(255) = 'Adam Barr'
スクリプトは、ユーザーのリソース名、リソース ID、電子メール アドレス、および要求アカウントの値を返します。
手順 5 - 探しているユーザーを含むプロジェクトを検索する
手順 4 で見つけたリソース ID を使用して、ユーザーが関与していたプロジェクトを見つけることができます。 これを行うには、SQL スクリプトを使用して、プロジェクトの一覧に格納されている Project データを照会します。
Project Server のデータ ストアごとに個別のスクリプトがあります。 スクリプトの結果は似ている可能性がありますが、公開されていない下書きプロジェクトがある場合は、いくつかの違いが表示される場合があります。
スクリプトを実行する前に、探しているリソース ID でスクリプトを更新します。
Project Server 2010 の場合は、次のスクリプトを実行します。
(各スクリプトの上部にある説明を必ずお読みください。一部のスクリプトでは、データベース名を追加するか、他のパラメーターを更新する必要があります)。
ExportDraftProjectList2010.sql
ExportPublishedProjectList2010.sql
ExportReportingProjectList2010.sql
Project Server 2013 の場合は、次のスクリプトを実行します。
ExportDraftProjectList2013.sql
ExportPublishedProjectList2013.sql
ExportReportingProjectList2013.sql
Project Server 2016の場合は、次のスクリプトを実行します。
ExportDraftProjectList2016.sql
ExportPublishedProjectList2016.sql
ExportReportingProjectList2016.sql
クエリの出力を調べ、特定のユーザー データを検索するプロジェクトを決定します。 便宜上、リストをSQL Serverから CSV ファイルにエクスポートすることもできます。
ユーザー情報を検索するプロジェクトを決定したら、上記のスクリプトから返された ProjectUID を使用して、プロジェクトごとに次のスクリプトを実行します。
Project Server 2010 の場合は、次のスクリプトを実行します。
(各スクリプトの上部にある説明を必ずお読みください。一部のスクリプトでは、データベース名を追加するか、他のパラメーターを更新する必要があります)。
ExportDraftProject2010.sql
ExportPublishedProject2010.sql
ExportReportingProjects2010.sql
ExportReportingProjectTimephasedData2010.sql
Project Server 2013 の場合は、次のスクリプトを実行します。
ExportDraftProject2013.sql
ExportPublishedProject2013.sql
ExportReportingProjects2013.sql
ExportReportingProjectTimephasedData2013.sql
Project Server 2016の場合は、次のスクリプトを実行します。
ExportDraftProject2016.sql
ExportPublishedProject2016.sql
ExportReportingProjects2016.sql
ExportReportingProjectsTimephased2016.sql
これらのクエリの出力値については、「 レポート データからのプロジェクト固有のユーザー データ」を参照してください。
追加のユーザー情報が必要な場合は、リソース、タイムシート、状態などに関する情報を取得するためのスクリプトの手順 6 を参照してください。
手順 6 - データをエクスポートするための追加のクエリ
これらの追加クエリを実行して、リソース、タイムシート、状態などに関する追加情報を見つけます。
PowerShell スクリプトを実行する方法については、以下の「PowerShell スクリプトの実行」を参照してください。
Project Server 2010 からデータをエクスポートする
Project Server 2010 からデータをエクスポートするには、次の表に示すように、.sql スクリプトと Microsoft PowerShell スクリプトを使用します。 出力内の各フィールドの詳細については、「出力定義」列のリンク を 参照してください。
(各スクリプトの上部にある説明を必ずお読みください。一部のスクリプトでは、データベース名を追加するか、他のパラメーターを更新する必要があります)。
エクスポート オプション | 次のスクリプトを実行します。 | 出力定義 |
---|---|---|
ポートフォリオ |
ExportPortfolioModels2010.sql |
ドライバー 優先順位付け 分析 |
リソース計画 |
Export-ResourcePlanTimephasedData2010.ps1 ExportResourcePlans2010.sql ExportReportingResourcePlans2010.sql |
ResourcePlan |
リソース |
ExportResource2010.sql ExportReportingResource2010.sql |
リソース ReportingResource |
セキュリティ |
ExportSecurity2010.sql |
セキュリティ |
サービス設定 |
ExportServerSettings2010.sql |
QueueJobs CustomFields LookupTables 予定表 UnsubscribedAlerts SubscribedReminders ReminderEmails 代表 団 |
進捗レポート |
ExportStatusReports2010.sql |
StatusReports |
TaskStatus |
ExportAssignmentsSavedData2010.sql ExportSubmittedTaskStatusUpdates2010.sql ExportAssignmentTransactionHistory2010.sql ExportAssignmentHistoryData2010.ps1 ExportSavedTaskStatusUpdates2010.sql Export-SavedTaskStatusUpdates2010.ps1 (注) |
StatusAssignSaved StatusAssignHistory |
タイムシート |
ExportTimesheets2010.sql ExportReportingTimesheets2010.sql |
タイムシート Timesheets_Reporting |
ユーザー ビューの設定 |
Export-UserViewSettings2010.ps1 |
UserViewSettings |
ワークフロー |
ExportWorkflow2010.sql |
ワークフロー |
ワークスペース項目 |
ExportWorkspaceItemsByDisplayName2010.sql |
WorkspaceItems |
Project Server 2013 からデータをエクスポートする
Project Server 2013 からデータをエクスポートするには、次の表に示すように、.sql スクリプトと Microsoft PowerShell スクリプトを使用します。 出力内の各フィールドの詳細については、「出力定義」列のリンク を 参照してください。
エクスポート オプション | 次のスクリプトを実行します。 | 出力定義 |
---|---|---|
ポートフォリオ |
ExportPortfolioModels2013.sql |
ドライバー 優先順位付け 分析 |
リソース計画 |
ExportResourcePlanTimephasedData2013.ps1 ExportResourcePlans2013.sql |
ResourcePlan |
リソース |
ExportResource2013.sql ExportReportingResource2013.sql |
Resource ReportingResource |
セキュリティ |
ExportSecurity2013.sql |
セキュリティ |
サービス設定 |
ExportServerSettings2013.sql |
QueueJobs CustomFields LookupTables 予定表 UnsubscribedAlerts SubscribedReminders ReminderEmails 代表 団 |
進捗レポート |
ExportStatusReports2013.sql |
StatusReports |
TaskStatus |
ExportAssignmentsSavedData2013.sql ExportSubmittedTaskStatusUpdates2013.sql ExportAssignmentTransactionHistory2013.sql ExportAssignmentHistoryData2013.ps1 ExportSavedTaskStatusUpdates2013.sql Export-SavedTaskStatusUpdates2013.ps1 (注) |
StatusAssignSaved StatusAssignHistory |
タイムシート |
ExportTimesheets2013.sql ExportReportingTimesheets2013.sql |
タイムシート Timesheets_Reporting |
ユーザー ビューの設定 |
Export-UserViewSettings2013.ps1 |
UserViewSettings |
ワークフロー |
ExportWorkflow2013.sql |
ワークフロー |
ワークスペース項目 |
ExportWorkspaceItemsByDisplayName2013.sql |
WorkspaceItems |
Project Server 2016からデータをエクスポートする
Project Server 2016からデータをエクスポートするには、次の表に示すように、.sql スクリプトと Microsoft PowerShell スクリプトを使用します。 出力内の各フィールドの詳細については、「出力定義」列のリンク を 参照してください。
エクスポート オプション | 次のスクリプトを実行します。 | 出力定義 |
---|---|---|
Engagements |
ExportEngagementScripts2016.sql |
Engagements |
ポートフォリオ |
ExportPortfolioModels2016.sql |
ドライバー 優先順位付け 分析 |
リソース計画 |
ExportResourcePlans2016.sql |
ResourcePlan |
リソース |
ExportResource2016.sql ExportReportingResource.sql |
Resource ReportingResource |
セキュリティ |
ExportSecurity2016.sql |
セキュリティ |
サービス設定 |
ExportServerSettings2016.sql |
QueueJobs CustomFields LookupTables 予定表 UnsubscribedAlerts SubscribedReminders ReminderEmails 代表 団 |
進捗レポート |
ExportStatusReports2016.sql |
StatusReports |
TaskStatus |
ExportAssignmentsSavedData2016.sql ExportSubmittedTaskStatusUpdates2016.sql ExportAssignmentTransactionHistory2016.sql ExportAssignmentHistoryData.ps1 ExportSavedTaskStatusUpdates2016.sql Export-SavedTaskStatusUpdates2016.ps1 |
StatusAssignSaved StatusAssignHistory |
タイムシート |
ExportTimesheets2016.sql ExportReportingTimesheets2016.sql |
タイムシート Timesheets_Reporting |
ユーザー ビューの設定 |
Export-UserViewSettings2016.ps1 |
UserViewSettings |
ワークフロー |
ExportWorkflow2016.sql |
ワークフロー |
ワークスペース項目 |
ExportWorkspaceItemsByDisplayName2016.sql |
WorkspaceItems |
手順 7 - アーカイブ済みアイテム
ExportArchievdData201x.sql は、リソースに関連するアーカイブされたデータベースに格納されている次のデータを返します。
エクスポート オプション | 出力定義 |
---|---|
アーカイブ済みアイテム - 予定表 | 予定表 |
アーカイブ済みアイテム - ユーザー設定フィールド | CustomFields |
アーカイブ済みアイテム - ルックアップ テーブル | 参照テーブル |
アーカイブ済みアイテム - プロジェクト |
プロジェクトリスト ProjectVersionId (アーカイブ バージョン ID) ProjectVersionDescription (バックアップの日付と時刻) ProjectVersionDate (バックアップの日付) |
アーカイブ済みアイテム - リソース | Resource |
アーカイブ済みアイテム - リソース のユーザー設定フィールド | リソース - カスタム フィールド |
アーカイブされたプロジェクト データ: アーカイブされたプロジェクトをエクスポートするには:
- 現在のプロジェクトをアーカイブします。 (2010)
- アーカイブされたバージョンを復元します。 (2010)
- ユーザー関連のデータをエクスポートします。
- プロジェクトをアーカイブから復元します。
アーカイブされたプロジェクト以外のデータ:
- SharePoint のバックアップと回復 (2010) を使用して、現在のファームの複製を作成します。
- 管理バックアップと復元からアーカイブ済みアイテムを復元します (前の手順を参照)。
- ユーザー関連のデータをエクスポートします。
手順 8 - 添付ファイル、ビュー、VBA ファイルを検索して保存する
添付ファイルとビューを検索するには、特定のプロジェクトを XML にエクスポートすることをお勧めします。 これを行うには、Project Professionalで開き、XML ファイルとして保存します。 確認するプロジェクトの XML ファイルが完成したら、「Project Onlineでカスタマイズされたユーザー項目を検索する」と「Project Server ユーザー エクスポート データ」を参照してください。
PowerShell スクリプトの実行
次の表は、特定のスクリプトに必要なパラメーターを示しています。 ファーム管理者として SharePoint 管理シェルで各スクリプトを実行します。
Script | パラメーター |
---|---|
ResourcePlanTimephasedData201x.ps1 Export-SavedTaskStatusUpdates201x.ps1 ExportTaskStatusUpdateHistory201x.ps1 |
ProjectServerURL ResId OutputPath PromptForCredential UseWebLogin |
Sync-ProjectWorkspace201x.ps1 | ProjectServerURL ProjectId PromptForCredential UseWebLogin |
Export-UserViewSettings201x.ps1 | ProjectServerURL ResId OutputPath |
次の表に、これらのパラメーターの説明を示します。
パラメーター | 説明 |
---|---|
ProjectServerURL | PWA サイトの URL |
ResId | ユーザーのリソース ID |
OutputPath | エクスポート ファイルを格納する場所。 |
ProjectId | 同期するプロジェクト ワークスペース |
また、スクリプトを実行するたびに、次のいずれかの承認パラメーターを含めます。
Auth パラメーター | 説明 |
---|---|
[何も渡されない] | NTLM と Kerberos プロトコルを現在のユーザーとして使用して認証します。 |
PromptForCredential | Basic またはダイジェスト プロトコルを使用するか、別のユーザーで NTLM や Kerberos を使用して認証します。 |
UseWebLogin | フォームと ADFS/SAML プロトコルを使用して認証します。 |
以下に例を示します。
.\Export-UserViewSettings2016.ps1 -ProjectServerURL "https://pwa" -resId "55efd6ff-853c-4fec-8abd-6df2c90b94e5" -OutputPath "C:\"
パラメーターの詳細な例と情報については、各 PowerShell スクリプト ファイルを参照してください。
Export-SavedTaskStatusUpdates201x.ps1の実行 (2010 年と 2013 年のみ)
Export-SavedTaskStatusUpdates201x.ps1 スクリプトを実行するには、保存された割り当てを表示するために、エクスポートされるユーザーの代理人としてを実行する必要があります。 次の手順を使用します。
- Project Server で委任を有効にする
- エクスポートするユーザーに対する委任アクセス許可を有効にする
- 自分で委任アクセス許可を有効にして、そのユーザーとして委任します。 (管理者として、既にアクセス許可を持っている可能性があります)。
- エクスポートするユーザーの代理人として自分を構成する
- Project Web Appにログインします。
- 歯車アイコンをクリックし、[ 代理人として機能する] をクリックします。
- デリゲート セッションを開始します。
- Export-SavedTaskStatusUpdates201x.ps1 PowerShell スクリプトを実行します。
- デリゲート セッションを停止します。