SharePoint Server でユーザー プロファイルの同期設定を維持する

適用対象:yes-img-13 2013yes-img-162016 yes-img-192019 yes-img-seSubscription Edition no-img-sopSharePoint in Microsoft 365

SharePoint Server でのプロファイル同期を使用すると、ユーザー プロファイル サービスのインスタンスの管理者は、SharePoint Server プロファイル ストアに格納されているユーザーとグループのプロファイル情報を、企業全体のディレクトリ サービスに格納されているプロファイル情報と同期できます。 User Profile の同期を構成し終えたら、これらの設定を維持するためのタスクを実行する必要があります。 これらのタスクには、たとえば、アカウントが無効化または削除されたユーザーの除去、サーバーの移動または名前変更、User Profile Synchronization Service の開始または停止などがあります。 詳細については、「プロファイルの同期を計画する (SharePoint Server 2013)」を参照してください。

この記事の PowerShell コマンドレットを実行するには、次のメンバーシップがあることを確認します。

  • SQL Server インスタンスにおける securityadmin 固定サーバー ロール。

  • 更新するすべてのデータベースに対する db_owner 固定データベース ロール。

  • PowerShell コマンドレットを実行するサーバーでの Administrators グループ。

重要

各セクションは、適用される SharePoint Server のバージョンに関して示されます。

ユーザー名またはユーザー ドメインを変更する

注:

このセクションは、SharePoint Server 2013、2016、および 2019 に適用されます。

SharePoint Server を使用すると、いくつかの異なるユーザー移行シナリオを処理できます。 次に、Active Directory ドメイン サービス (AD DS) のシナリオを処理する例について説明します。

  • ユーザーが存在する AD DS でのアカウント名 ( sAMAccountName) の変更。

  • セキュリティ ID (SID) の変更。

  • ユーザー アカウントが存在する AD DS の組織単位 (OU) コンテナーの変更を含む、識別名 (DN) の変更。 たとえば、ユーザーの識別名が AD DS で "User= EUROPE\John Smith, Manager=CN=John Rodman, OU=Users, DC=EMEA1, DC=corp, DC=contoso, DC=com" から "User= EUROPE\John Smith, Manager=CN=John Rodman, OU=Managers, DC=EMEA1, DC=corp, DC=contoso,DC=com" に移動すると、 MigrateUser コマンドは、このユーザーのユーザー プロファイル ストアを更新します。 John Smith のユーザー プロファイルは、EMEA1.corp.contoso.com AD DS から SharePoint Server ユーザー プロファイル ストアにユーザー プロファイルを同期するときに更新されます。

ユーザー名またはユーザー ドメインを変更するには

  1. この手順を実行するユーザー アカウントに以下の資格情報があることを確認します。
  • この手順を実行するユーザー アカウントが、SharePoint サーバーの全体管理 Web サイトを実行しているコンピューターの ファームの管理者 グループのメンバーであること。

  • この手順を実行するユーザー アカウントが、User Profile Synchronization Service をインストールしたコンピューターの Administrators グループのメンバーであること。

  1. 同期が進行中の場合は、サーバーの全体管理を開き、[ アプリケーション構成の管理] セクションで [ サービス アプリケーションの管理] をクリックします。 サービス アプリケーションの一覧で、適切な User Profile Service アプリケーションを選択します。 [ サービス アプリケーションの管理] ページで、[ プロファイルの同期の停止] をクリックします。

  2. User Profile の増分同期のタイマー ジョブを無効にします。

  3. stsadm -o migrateuserを使用したユーザーの移行が成功したことを確認します。

注:

Move-SPUser を使用してユーザーを移行することもできます。

  1. http://mysite/person.aspx?accountname=<new account name> など、移行したユーザーの個人用サイトを参照して、そのユーザーのプロファイルにアクセスできることを確認します。

  2. User Profile の同期を実行します。 詳細については、「SharePoint Server でプロファイルの同期を手動で開始する」を参照してください。

  3. 移行したユーザーの個人用サイトを参照して、そのユーザーのプロファイルにアクセスできることを再確認します。

  4. User Profile の増分同期のタイマー ジョブを有効にします。

アカウントが無効になったユーザーを除外する

注:

このセクションは、SharePoint Server 2013 に適用されます。

SharePoint Server 2013 で除外フィルターを使用することで、AD DS でアカウントが無効になったユーザーを除外できます。 アカウントが無効になったユーザーを除外するために必要な手順については、「SharePoint Server 2013 でユーザーとグループのプロファイルを同期する」を参照してください。

使用されなくなったユーザーとグループを削除する

注:

このセクションは、SharePoint Server 2013、2016、および 2019 に適用されます。

SharePoint Server ユーザー プロファイル ストアに古いユーザーまたはグループが存在する理由は 2 つあります。

  • 使用されなくなったユーザーの場合: 個人用サイト クリーンアップのタイマー ジョブがアクティブではありません。 User Profile の同期のタイマー ジョブは、ディレクトリ ソースから削除されたユーザーに削除のマークを設定します。 個人用サイト クリーンアップのジョブが実行されると、削除のマークが設定されたユーザーがすべて検索され、それらのユーザーのプロファイルが削除されます。 対応する個人用サイトは、削除されたユーザーのマネージャーに割り当てられ、電子メール メッセージによってこの削除がマネージャーに通知されます。

  • 使用されなくなったユーザーとグループの場合: プロファイルの同期によってインポートされなかったユーザーとグループは、ユーザー プロファイル ストアに残ります。 これは、たとえば、以前のバージョンの SharePoint Server からアップグレードし、ドメインのサブセットのみを SharePoint Server と同期することを選択した場合に発生する可能性があります。

PowerShell を使用して、使用されなくなったユーザーとグループを検出して削除するには

  1. 次のメンバーシップがあることを確認します。
  • プロファイル データベース内の ImportExport_GetNonimportedObjects および ImportExport_PurgeNonimportedObjects ストアド プロシージャに対する実行権限。
  1. SharePoint 管理シェルを起動します。

  2. PowerShell コマンド プロンプトで次の操作を行います。

  3. User Profile Service アプリケーション オブジェクトを取得するには、次のコマンドを入力します。

$upa = Get-spserviceapplication <identity>

ここで、<identity> はユーザー プロファイル同期サービス アプリケーションの GUID です。

  1. 削除するユーザーとグループを表示するには、次のコマンドを入力します。
Set-SPProfileServiceApplication $upa -GetNonImportedObjects $true
  1. 使用されなくなったユーザーとグループを削除するには、次のコマンドを入力します。

    注意

    この操作は元に戻せません。

Set-SPProfileServiceApplication $upa -PurgeNonImportedObjects $true

詳細については、「Get-SPServiceApplication」および「Set-SPProfileServiceApplication」を参照してください。

プロファイル スキーマの変更を維持する

注:

このセクションは、SharePoint Server 2013 に適用されます。

プロファイル スキーマの変更には、新しいユーザー プロファイル プロパティの追加、ユーザー プロファイル プロパティのマッピングの変更、プロファイルの同期の接続フィルターの変更などが含まれます。 プロファイル スキーマを変更したときは、定期的なプロファイルの同期のスケジュールを設定する前に、臨時の完全同期を実行する必要があります。 臨時の完全なプロファイルの同期を実行するために必要な手順については、「SharePoint Server でプロファイルの同期を手動で開始する」を参照してください。

User Profile Synchronization Service を実行するサーバー名を変更する

注:

このセクションは、SharePoint Server 2013 に適用されます。

プロファイル同期サーバーの名前を変更するには、以下の手順を使用します。

PowerShell を使用して、User Profile Synchronization Service を実行するサーバー名を変更するには

  1. SharePoint 管理シェルを起動します。

  2. PowerShell コマンド プロンプトで、次のコマンドを入力します。

Rename-SPServer <Identity> -Name <newName>

詳細は次のとおりです。

  • "Identity" は、サーバーの古い名前です。

  • newName はサーバーの新しい名前です。

Microsoft PowerShell を使用してサーバーの名前を変更する方法の詳細については、「Rename-SPServer」を参照してください。

User Profile Synchronization Service を新しいサーバーに移動する

注:

このセクションは、SharePoint Server 2013 に適用されます。

User Profile Synchronization Service を新しいサーバーに移動するには、以下の手順を使用します。

サーバーの全体管理 を使用して、User Profile Synchronization Service を新しいサーバーに移動するには

  1. この手順を実行するユーザー アカウントに以下の資格情報があることを確認します。
  • この手順を実行するユーザー アカウントが、SharePoint サーバーの全体管理 Web サイトを実行しているコンピューターの ファームの管理者 グループのメンバーであること。

  • この手順を実行するユーザー アカウントが、User Profile Synchronization Service をインストールしたコンピューターの Administrators グループのメンバーであること。 これは、User Profile Synchronization Service を開始するために必要です。 User Profile Synchronization Service が開始した後で、ファーム アカウントは Administrators グループから削除できます。

  1. User Profile Synchronization Service が実行中のサーバーの SharePoint サーバーの全体管理 Web サイトで、[ システム設定] セクションの [ サーバーのサービス管理] をクリックします。

  2. [ User Profile Synchronization Service] の横にある [ 停止] をクリックして、User Profile Synchronization Service を停止します。

  3. 新しい User Profile 同期サーバーの SharePoint サーバーの全体管理 Web サイトで、[ システム設定] セクションの [ サーバーのサービス管理] をクリックします。

  4. [ User Profile Synchronization Service] の横にある [ 開始] をクリックして、User Profile Synchronization Service を開始します。

  5. 新しい User Profile 同期サーバーの SharePoint サーバーの全体管理 Web サイトで、[ アプリケーション構成の管理] セクションの [ サービス アプリケーションの管理] をクリックします。

  6. [ サービス アプリケーション] ページで、該当する User Profile Service アプリケーション名のリンクをクリックします。

  7. [ User Profile Service アプリケーション] ページの [ 同期] セクションで、[ プロファイルの同期の開始] をクリックします。

  8. [ プロファイルの同期の開始] ページで、[ 完全同期の開始] をクリックし、[ OK] をクリックします。

User Profile 同期の通信を特定のドメイン コントローラーに制限する

プロファイル同期の通信を特定のドメイン コントローラーに制限するには、以下の手順を使用します。

Windows PowerShell を使用して、User Profile 同期の通信を特定のドメイン コントローラーに制限するには

  1. SharePoint 管理シェルを起動します。

  2. User Profile Service アプリケーション オブジェクトを取得するには、次のコマンドを入力します。

$upa=Get-SPServiceApplication <GUID>

ここで、<GUID> はユーザー プロファイル同期サービス アプリケーションの GUID です。

  1. プロファイル同期の通信を特定のドメイン コントローラーに制限するには、次のコマンドを入力します。
Set-SPProfileServiceApplication $upa -UseOnlyPreferredDomainControllers $true

注:

変更したプロパティの値が SharePoint サーバーの全体管理 Web サイトに伝達されるまでに 5 分かかる場合があります。 サーバーの全体管理サーバーで IIS をリセットすると、強制的に新しい値がすぐに読み込まれます。 IIS のリセットに関する詳細については、「IIS リセット アクティビティ」を参照してください。

詳細については、「Get-SPServiceApplication」および「Set-SPProfileServiceApplication」を参照してください。

User Profile 同期のタイムアウトを調整する

注:

このセクションは、SharePoint Server 2013 に適用されます。

以下の場合は、タイムアウトが発生する可能性があります。

  • サーバーの全体管理の [ 同期の接続の追加/編集] ページでディレクトリ サービス サーバーに接続しようとした場合。

  • サーバーの全体管理の [ 同期の接続の追加/編集] ページでコンテナー リストを作成しようとした場合。 この場合は、ステータス バーに JavaScript タイムアウト エラーと表示されます。

  • サーバーの全体管理の [同期接続の追加/編集] ページで [OK] をクリックするとします。 これにより、次のエラー メッセージが発生し、ユーザー プロファイル同期接続を作成または更新するときに Forefront Identity Manager Web サービスによってタイムアウトが発生したために発生します。

"要求チャネルは、00:01:29.9062626 の後に応答を待っている間にタイムアウトしました。 Request の呼び出しに渡されるタイムアウト値を増やすか、バインドの SendTimeout 値を増やします。 この操作に割り当てられた時間は、より長いタイムアウトの一部であった可能性があります。

Windows PowerShell を使用して、User Profile の同期のタイムアウトを調整するには

  1. ディレクトリ サーバーへの接続のタイムアウト値を変更するには、次の操作を行います。

  2. メモ帳などのテキスト エディターに次のコードを貼り付けます。

$upsAppProxy = Get-SPServiceApplicationProxy <UPSAppProxyGUID>
$upsAppProxy.LDAPConnectionTimeout = <NewTimeout>
$upsAppProxy.Update()
  1. <UPSAppProxyGUID> をユーザー プロファイル サービス アプリケーション プロキシの GUID に置き換え、<NewTimeout> を秒単位で新しいタイムアウト値に置き換えます。 既定のタイムアウトは 120 秒です。

  2. ファイルを拡張子 .ps1 を持つ ANSI テキスト ファイルとして保存します。

  3. [コンテナーの作成] コントロールのタイムアウト値を変更するには、次の操作を行います。

  4. 以下のコードをメモ帳などのテキスト エディターに貼り付けます。

$upsAppProxy = Get-SPServiceApplicationProxy <UPSAppProxyGUID>
$upsAppProxy.ImportConnAsyncTimeout = <NewTimeout>
$upsAppProxy.Update()
  1. Forefront Identity Manager Web サービスへの呼び出しのタイムアウト値を変更するには、次の操作を行います。

    <UPSAppProxyGUID> をユーザー プロファイル サービス アプリケーション プロキシの GUID に置き換え、<NewTimeout> を秒単位で新しいタイムアウト値に置き換えます。 既定のタイムアウトは 1,000 秒 (約 17 分) です。

  2. メモ帳などのテキスト エディターに次のコードを貼り付けます。

$upsApp = Get-SPServiceApplication 
<UPSAppGUID>
$upsApp.FIMWebClientTimeOut = 
<NewTimeout>
$upsApp.Update()
  1. <UPSAppGUID> をユーザー プロファイル サービス アプリケーションの GUID に置き換え、<NewTimeout> をミリ秒単位の新しいタイムアウト値に置き換えます。 既定のタイムアウトは 300,000 ミリ秒 (5 分) です。

  2. ファイルを拡張子 .ps1 を持つ ANSI テキスト ファイルとして保存します (AdjustProfileSyncTimeouts.ps1 など)。

  3. [ スタート] メニューの [ すべてのプログラム] をクリックします。

  4. [ Microsoft SharePoint 2013 製品] をクリックします。

  5. [ SharePoint 2013 管理シェル] をクリックします。

  6. ファイルの保存先のディレクトリに移動します。

  7. Microsoft PowerShell コマンド プロンプトで、次のコマンドを入力してスクリプト ファイルを実行します。

./<file name>.ps1

ここで <ファイル名> は実行するファイルの名前です。

詳細については、「Get-SPServiceApplicationProxy」および「Get-SPServiceApplication」を参照してください。