共用方式為


IDirectoryObject::SetObjectAttributes 方法 (iads.h)

IDirectoryObject::SetObjectAttributes方法會修改ADS_ATTR_INFO結構中定義的一或多個指定物件屬性中的資料。

語法

HRESULT SetObjectAttributes(
  [in]  PADS_ATTR_INFO pAttributeEntries,
  [in]  DWORD          dwNumAttributes,
  [out] DWORD          *pdwNumAttributesModified
);

參數

[in] pAttributeEntries

提供要修改的屬性陣列。 每個屬性都包含屬性的名稱、要執行的作業,以及適用時屬性值。 如需詳細資訊,請參閱 ADS_ATTR_INFO 結構。

[in] dwNumAttributes

提供要修改的屬性數目。 這個值應該對應至 pAttributeEntries 陣列的大小。

[out] pdwNumAttributesModified

提供 DWORD 變數的指標,其中包含 SetObjectAttributes 方法修改的屬性數目。

傳回值

這個方法會傳回標準傳回值,包括成功設定屬性時S_OK。

如需詳細資訊和其他傳回值,請參閱 ADSI 錯誤碼

備註

在 Active Directory (LDAP 提供者) 中, IDirectoryObject::SetObjectAttributes 方法是交易呼叫。 所有已認可或捨棄的屬性。 其他目錄提供者可能無法交易呼叫。

Active Directory 不允許多重值屬性上的重複值。 不過,如果您呼叫 SetObjectAttributes 將重複的值附加至 Active Directory 物件的多重值屬性, SetObjectAttributes 呼叫會成功,但會忽略重複的值。

同樣地,如果您使用 SetObjectAttributes 從 Active Directory 物件的多重值屬性中刪除一或多個值,即使屬性未設定任何或所有指定的值,作業仍會成功

範例

下列 C++ 程式碼範例會將使用者物件的 sn 屬性設定為 Price 的值做為不區分大小寫的字串。

HRESULT hr;
IDirectoryObject *pDirObject=NULL;
DWORD  dwReturn;
ADSVALUE  snValue;
ADS_ATTR_INFO attrInfo[] = { {L"sn",ADS_ATTR_UPDATE, ADSTYPE_CASE_IGNORE_STRING, &snValue, 1} };
DWORD dwAttrs = sizeof(attrInfo)/sizeof(ADS_ATTR_INFO); 
 
snValue.dwType=ADSTYPE_CASE_IGNORE_STRING;
snValue.CaseIgnoreString = L"Price";
 
hr = ADsGetObject(L"LDAP://CN=Jeff Smith,OU=Sales,DC=Fabrikam,DC=com",
        IID_IDirectoryObject, 
        (void**) &pDirObject );
 
if ( SUCCEEDED(hr) )
{
    hr = pDirObject->SetObjectAttributes(attrInfo, dwAttrs, &dwReturn);

    pDirObject->Release();
}

需求

   
最低支援的用戶端 Windows Vista
最低支援的伺服器 Windows Server 2008
目標平台 Windows
標頭 iads.h
Dll Activeds.dll

另請參閱

ADSI 錯誤碼

ADS_ATTR_INFO

IDirectoryObject