使用 ADSI LDAP 提供者建立使用者
使用 ADSI LDAP 提供者,您只能建立全域用戶帳戶。 本機帳戶位於 SAM 資料庫中,而且必須使用 WinNT 提供者建立。 如需使用 WinNT 提供者建立使用者物件的詳細資訊,請參閱 WinNT 用戶物件。
建立用戶物件
系結至用戶物件所在的容器,並取得容器的 IADsContainer 或 IDirectoryObject 介面。
使用 IADsContainer.Create 或 IDirectoryObject::CreateDSObject 方法來建立用戶物件。
建立用戶物件所需的最小屬性將取決於所使用的目錄服務。 如需建立 Active Directory 使用者的詳細資訊,請參閱 建立使用者。
如果使用 IADsContainer 介面,則在呼叫 IADs.SetInfo 方法之前,不會實際建立新的物件。
如果使用 IDirectoryObject 介面,則會在呼叫 CreateDSObject 方法時建立新的物件。 在傳遞至 CreateDSObject 方法ADS_ATTR_INFO陣列中,必須指定包含 objectClass 的最小屬性。
範例 1
下列程式代碼範例會建立具有預設屬性的用戶帳戶。
Dim ou As IADs
Dim usr as IADsUser
On Error GoTo Cleanup
Set ou = GetObject("LDAP://OU=Finance,DC=Fabrikam,DC=COM")
Set usr = ou.Create("user", "cn=Jeff Smith")
usr.Put "samAccountName", "jeffsmith"
usr.SetInfo
Cleanup:
If (Err.Number <> 0) Then
MsgBox ("An error has occurred. " & Err.Number)
End If
Set ou = Nothing
Set usr = Nothing
範例 2
下列程式代碼範例會建立具有預設屬性的用戶帳戶。 為了簡潔起見,會省略錯誤檢查。
#include <activeds.h>
int main()
{
HRESULT hr = CoInitialize(NULL);
IADsContainer *pCont;
IADsUser *pUser;
LPWSTR adsPath = L"LDAP://serv1/CN=Users,dc=Fabrikam,dc=com";
LPWSTR usrPass = NULL;
LPWSTR usrName = NULL;
// Add code to securely get the user name and password or leave
// as NULL to use the current security context.
hr = ADsOpenObject(adsPath,
usrName,
usrPass,
ADS_SECURE_AUTHENTICATION,
IID_IADsContainer,
(void**)&pCont);
IDispatch *pDisp;
hr = pCont->Create(CComBSTR("user"), CComBSTR("cn=Jeff Smith"), &pDisp);
pCont->Release();
hr = pDisp->QueryInterface(IID_IADsUser,(void**)&pUser);
pDisp->Release();
VARIANT var;
VariantInit(&var);
V_BSTR(&var) = L"jeffsmith";
V_VT(&var)=VT_BSTR;
hr = pUser->Put(CComBSTR("samAccountName"), var);
hr = pUser->SetInfo();
VariantClear(&var);
pUser->Release();
CoUninitialize();
return 0;
}