サービス接続ポイントの作成と保守

SCPで発行する場合は、サービスインスタンスに関する最新のデータが含まれている必要があることに注意してください。 それ以外の場合、SCPにバインドするクライアントは古いデータを取得します。 SCPを作成するサービスインストーラーは、SCP属性の初期値を指定します。 その後、サービスインスタンスの起動時に、SCPを検索し、必要に応じて属性値を更新する必要があります。 これにより、クライアントは最新のデータを保証されます。

SCPを作成した後、サービスインストーラーは、サービスがSCPを更新できるようにする2つの追加手順を実行します。

  • SCPオブジェクトのセキュリティ記述子にAceを設定して、サービスが実行時にSCP属性を変更できるようにします。 詳細とコード例については、 「サービスアカウントによるSCPプロパティへのアクセスの有効化」 を参照してください。
  • サービスホストコンピューターのレジストリにSCPのobjectGUIDをキャッシュします。 サービスは、キャッシュされたGUIDを取得してSCPにバインドし、その属性を確認および更新します。

サービスインストーラーは、DNではなくSCPのobjectGUIDをキャッシュします。 SCPが移動または名前変更されたかどうかに関係なく、objectGUIDは変更されません。 管理者がSCPを移動または名前変更すると、DNが変更される可能性があります。 たとえば、コンピューターオブジェクトの子としてSCPを作成した場合、コンピューターの名前が変更されたり、別のドメインまたは組織単位に移動されたりすると、SCPの識別名が変更されます。

サービスインストーラーは、SCPを作成するときに、新しく作成されたオブジェクトのobjectGUIDを読み取り、サービスホストコンピューターのレジストリにキャッシュする必要があります。 IADs :: get_GUIDメソッドを使用して、バインドに適した文字列形式でobjectGUID値を取得します。 GUID文字列を値として次のレジストリキーの下にキャッシュします。

HKEY_LOCAL_MACHINE
   vendor name
      product name

"ベンダー名"と"製品名"は、ベンダーと製品を識別します。

サービスが開始されると、キャッシュされたGUID文字列がレジストリから取得され、それを使用してSCPにバインドされます。 サービスは、重要なSCP属性を読み取り、それらを現在の値と比較します。 SCP値が古い場合は、サービスによって更新されます。 サービスで更新が必要な値には、keywordsserviceBindingInformationserviceDNSNameserviceDNSNameTypeなどがあります。