IADs::P ut メソッドは、Active Directory オブジェクトのプロパティの値を名前でプロパティ キャッシュに保存します。 IADs::P utEx を使用して、複数値のプロパティをプロパティ キャッシュに保存したり、オブジェクトからプロパティを削除したりできます。 これらの値は、IADs::SetInfo が呼び出されるまで、基になるディレクトリ サービスに永続化されません。
Dim Namespace As IADsOpenDSObject
Dim User As IADsUser
Dim NewName As Variant
Dim sUserName As String
Dim sPassword As String
On Error GoTo CleanUp
Set Namespace = GetObject("LDAP:")
' Insert code to safely get the user name and password
Set User = Namespace.OpenDSObject("LDAP://MyMachine/CN=Administrator,CN=Users,DC=MyDomain,DC=Fabrikam,DC=COM", sUserName, sPassword, ADS_SECURE_AUTHENTICATION)
NewName = InputBox("Enter a new name:")
' Set using IADs::PutMethod
User.Put "FullName", NewName
User.SetInfo
Exit Sub
CleanUp:
Set IADsOpenDSObject = Nothing
Set IADsUser = Nothing
End Sub
次のコード例は、IADs::P ut を 1 つの値で使用する方法を示しています。
Dim x As IADs
Dim sUserName As String
Dim sFull As String
On Error GoTo CleanUp
sUserName = InputBox("Enter your user name:")
Set x = GetObject("LDAP://CN="& sUserName &",CN=Users,DC=Fabrikam, DC=Com")
sFull = InputBox ("Enter your full name:")
x.Put "name", sFull
' Commit to the directory.
x.SetInfo
Exit Sub
CleanUp:
MsgBox ("An error has occurred. " & Err.Description)
Set x = Nothing
次のコード例は、IADs::P ut を複数の値で使用する方法を示しています。
Dim x As IADs
Dim sFirst As String
Dim sLast As String
Dim sUsername As String
On Error GoTo CleanUp
sUsername = InputBox("User name:")
Set x = GetObject("LDAP://CN=" & sUsername & ", CN=Users,DC=Fabrikam, DC=Com")
sFirst = InputBox("Enter your first name:")
sLast = InputBox("Enter your last name:")
x.Put "givenName", sFirst
x.Put "sn", sLast
'Commit to the directory
x.SetInfo
Exit Sub
CleanUp:
MsgBox ("An error has occurred. " & Err.Description)
Set x = Nothing
次のコード例は、複数の値と単一の値の両方 IADs::P ut を使用する方法を示しています。
int main(int argc, char* argv[], LPWSTR pszADsPath)
{
HRESULT hr;
IADs *pADs=NULL;
CoInitialize(NULL);
hr = ADsGetObject(pszADsPath,
IID_IADs,
(void**) &pADs );
if (!SUCCEEDED(hr) )
{
return hr;
}
VARIANT var;
// Using Put with a single value for the first name
VariantInit(&var);
V_BSTR(&var) = SysAllocString(L"Janet");
V_VT(&var) = VT_BSTR;
hr = pADs->Put( L"givenName", var );
// Using Put with a single value for the last name
VariantClear(&var);
V_BSTR(&var) = SysAllocString(L"Johns");
V_VT(&var) = VT_BSTR;
hr = pADs->Put( L"sn", var );
VariantClear(&var);
// Using Put with multiple values for other telephones
LPWSTR pszPhones[] = { L"425 844 1234", L"425 924 4321" };
DWORD dwNumber = sizeof( pszPhones ) /sizeof(LPWSTR);
hr = ADsBuildVarArrayStr( pszPhones, dwNumber, &var );
hr = pADs->Put( L"otherTelephone", var );
VariantClear(&var);
hr = pADs->SetInfo();
pADs->Release();
if (!SUCCEEDED(hr) )
{
return hr;
}
CoUninitialize();
return 0;
}