次の方法で共有


GetInfoメソッド

IADs::GetInfo メソッドは、ADSI オブジェクトのすべての属性値を、基になるディレクトリ サービスからローカル キャッシュに読み込みます。 IADs::GetInfoEx メソッドは、特定の属性値をローカル キャッシュに読み込むのに使用されます。 IADs::GetInfoEx メソッドの使用の詳細については、「GetInfoEx を使用した最適化」を参照してください。

ADSI は、特定の属性に対して IADs::Get メソッドまたは IADs::GetEx メソッドが呼び出され、ローカル キャッシュに値が見つからない場合に、暗黙的な IADs::GetInfo 呼び出しを行います。 IADs::GetInfo が呼び出された場合、暗黙的な呼び出しは繰り返されません。 ただし、プロパティ キャッシュに値が既に存在する場合は、最初に IADs::GetInfo を呼び出さずに IADs::Get または IADs::GetEx メソッドを呼び出すと、基になるディレクトリから最新の値ではなく、キャッシュされた値が取得されます。 これにより、ローカル キャッシュが変更されたが、値が IADs::SetInfo メソッドの呼び出しによって基になるディレクトリ サービスにコミットされていない場合、更新された属性値が上書きされる可能性があります。 キャッシュの問題を回避するには、IADs::GetInfo を呼び出す前に IADs::SetInfo を呼び出して属性値の変更をコミットします。

Dim usr As IADs

' Bind to a specific user object.
Set usr = GetObject("LDAP://CN=Jeff Smith,CN=Users,DC=fabrikam,DC=com")
 
' This code example assumes that the property description has a single value in the directory.
' Be aware that this will IMPLICITLY call GetInfo because at this point GetInfo
' has not yet been called (implicitly or explicitly) on the usr object.
Debug.Print "User's title is " + usr.Get("title")

' Change the attribute value in the local cache.
usr.Put "title", "Vice President"
Debug.Print "User's title is " + usr.Get("title")

' Call GetInfo, which will overwrite the updated value because SetInfo has not 
' been called.
usr.GetInfo
Debug.Print "User's title is " + usr.Get("title")

一部のディレクトリ サービスでは、IADs::GetInfo 呼び出しに応答してオブジェクトのすべての属性値が返されるわけではありません。 このような場合は、IADs::GetInfoEx メソッドを使用してローカル キャッシュにこれらの値を読み込みます。