IADsGroup::Add 方法 (iads.h)
IADsGroup::Add方法會將 ADSI 物件新增至現有的群組。
語法
HRESULT Add(
[in] BSTR bstrNewItem
);
參數
[in] bstrNewItem
包含 BSTR ,指定要加入群組之 物件的 ADsPath。 如需詳細資訊,請參閱<備註>。
傳回值
以下是最常見的傳回值。 如需傳回值的詳細資訊,請參閱 ADSI 錯誤碼。
備註
如果 LDAP 提供者用來系結至 IADsGroup 物件,則必須在 bstrNewItem 參數中指定相同形式的 ADsPath。 例如,如果用來系結至 IADsGroup 物件的 ADsPath 包含伺服器, bstrNewItem 參數中的 ADsPath 必須包含相同的伺服器前置詞。 同樣地,如果使用無伺服器路徑系結至 IADsGroup 物件, bstrNewItem 參數也必須包含無伺服器路徑。 使用伺服器前置詞時,如果群組和新成員來自不同網域,可能會發生延遲,因為要求可能會傳送到錯誤的網域控制站,並參考正確的網域的網域控制站,並在該處重試。 使用 GUID 或安全性識別碼 (SID) ADsPath 新增或移除成員時,就會發生例外狀況。 在此情況下,應該一律在 bstrNewItem中使用無伺服器路徑。
Active Directory 的 LDAP 提供者可讓成員使用成員 SID 的字串形式新增至群組。 bstrNewItem參數可以包含下列格式的 SID 字串。
LDAP://SID=<010500000000000515000000c6bb507afbda8b7f43170a325b040000>
如需 Active Directory 中 SID 字串的詳細資訊,請參閱 使用 SID 系結至物件。
Active Directory 的 WinNT 提供者也可使用成員 SID 的字串形式,將成員新增至群組。 bstrNewItem參數可以包含下列格式的 SID 字串。
WinNT://S-1-5-21-35135249072896"
範例
下列程式碼範例示範如何使用 WinNT 提供者,將使用者物件 (「jeff」) 新增至 「Fabrikam」 網域上的群組 (「Administrators」 ) 。
Dim grp As IADsGroup
Set grp = GetObject("WinNT://Fabrikam/Administrators")
grp.Add ("WinNT://Fabrikam/jeff")
下列程式碼範例示範如何使用 LDAP 提供者,將使用者物件新增至群組。
Dim grp As IADsGroup
On Error GoTo Cleanup
Set grp = GetObject("LDAP://CN=Administrators, CN=Users, DC=Fabrikam, DC=com")
grp.Add("LDAP://CN=Jeff Smith, OU=Sales,DC=Fabrikam,DC=com")
Cleanup:
If (Err.Number<>0) Then
MsgBox("An error has occurred. " & Err.Number)
End If
Set grp = Nothing
下列程式碼範例會將現有的使用者帳戶新增至 Administrators 群組。
IADsGroup *pGroup = NULL;
HRESULT hr = S_OK;
LPWSTR adsPath = L"WinNT://Fabrikam/Administrators";
hr = ADsGetObject(adsPath,IID_IADsGroup,(void**)&pGroup);
if(FAILED(hr)) {goto Cleanup;}
// This assumes that the "WinNT://Fabrikam/jeff" user account exists
// and does not already belong to the Administrators group.
hr = pGroup->Add(_bstr_t("WinNT://Fabrikam/jeff"));
if(FAILED(hr)){goto Cleanup;}
Cleanup:
if(pGroup)
pGroup->Release();
return hr;
需求
最低支援的用戶端 | Windows Vista |
最低支援的伺服器 | Windows Server 2008 |
目標平台 | Windows |
標頭 | iads.h |
Dll | Activeds.dll |