IADsContainer::Metode MoveHere (iads.h)
Metode IADsContainer::MoveHere memindahkan objek tertentu ke kontainer yang mengimplementasikan antarmuka ini. Metode ini dapat digunakan untuk mengganti nama objek.
Sintaks
HRESULT MoveHere(
[in] BSTR SourceName,
[in] BSTR NewName,
[out] IDispatch **ppObject
);
Parameter
[in] SourceName
String Unicode null-terminated yang menentukan ADsPath objek yang akan dipindahkan.
[in] NewName
String Unicode yang dihentikan null yang menentukan nama relatif objek baru dalam kontainer. Ini bisa NULL, dalam hal ini objek dipindahkan. Jika bukan NULL, objek diganti namanya sesuai dalam proses.
[out] ppObject
Penunjuk ke penunjuk ke antarmuka IDispatch pada objek yang dipindahkan.
Nilai kembali
Metode ini mendukung nilai pengembalian standar, termasuk S_OK, untuk operasi yang berhasil. Untuk informasi selengkapnya tentang kode kesalahan, lihat Kode Kesalahan ADSI.
Keterangan
Di Direktori Aktif, Anda dapat memindahkan objek dalam domain yang sama atau dari domain yang berbeda di forest direktori yang sama. Untuk pemindahan lintas domain, pembatasan berikut berlaku:
- Domain tujuan harus dalam mode asli.
- Objek yang akan dipindahkan harus berupa objek daun atau kontainer kosong.
- NT LAN Manager (NTLM) tidak dapat melakukan autentikasi; gunakan autentikasi atau delegasi Kerberos. Ketahuilah bahwa jika autentikasi Kerberos tidak digunakan, kata sandi dikirimkan dalam teks biasa melalui jaringan. Untuk menghindari hal ini, gunakan delegasi dengan autentikasi aman.
- Anda tidak dapat memindahkan prinsip keamanan (misalnya, pengguna, grup, komputer, dan sebagainya) milik grup global. Saat perwakilan keamanan dipindahkan, SID baru dibuat untuk objek di tujuan. Namun, SID lamanya dari sumber, disimpan dalam atribut sIDHistory , dipertahankan, serta kata sandi objek.
Set ou = GetObject("LDAP://server1/OU=Support,DC=North,DC=Fabrikam,DC=COM")
ou.MoveHere("LDAP://server2/CN=jeffsmith,OU=Sales,DC=South,DC=Fabrikam,DC=Com", vbNullString)
ADsPath tanpa server dapat digunakan untuk sumber atau tujuan atau keduanya.
Metode IADsContainer::MoveHere dapat digunakan untuk mengganti nama objek dalam kontainer yang sama atau untuk memindahkan objek di antara kontainer yang berbeda. Memindahkan objek mempertahankan objek RDN, sedangkan mengganti nama objek mengubah RDN.
Misalnya, contoh kode berikut melakukan tindakan ganti nama.
set cont = GetObject("LDAP://dc=dom,dc=com")
set newobj = cont.MoveHere("LDAP://cn=Jeff Smith,dc=dom,dc=com", "cn=Denise Smith")
Contoh kode berikut melakukan pemindahan.
set cont = GetObject("LDAP://dc=dom,dc=com")
set newobj = cont.MoveHere("LDAP://cn=jeffsmith,ou=sales,dc=dom,dc=com", "cn=jeffsmith")
Dalam aplikasi Visual Basic, Anda dapat meneruskan vbNullString sebagai parameter kedua saat memindahkan objek dari satu kontainer ke kontainer lainnya.
Set newobj = cont.MoveHere("LDAP://cn=jeffsmith,ou=sale,dc=dom,dc=com", vbNullString)
Namun, Anda tidak dapat melakukan hal yang sama dengan VBScript. Ini karena VBScript memetakan vbNullString ke string kosong alih-alih ke string null, seperti halnya Visual Basic. Anda harus menggunakan RDN secara eksplisit, seperti yang ditunjukkan pada contoh sebelumnya.
Contoh
Contoh kode berikut menunjukkan cara menggunakan metode ini untuk mengganti nama objek.
Dim cont As IADsContainer
Dim usr As IADsUser
On Error GoTo Cleanup
' Rename an object.
Set cont = GetObject("LDAP://OU=Sales, DC=Fabrikam,DC=com")
Set usr = cont.MoveHere("LDAP://CN=jeffsmith,OU=Sales, DC=Fabrikam,DC=com", "CN=jayhenningsen")
' Move an object.
cont.MoveHere("LDAP://CN=denisesmith,OU=Engineer,DC=Fabrikam,DC=com", vbNullString)
Cleanup:
If (Err.Number<>0) Then
MsgBox("An error has occurred. " & Err.Number)
End If
Set cont = Nothing
Set usr = Nothing
Contoh kode berikut memindahkan objek pengguna menggunakan metode IADsContainer::MoveHere .
/////////////////////////////////////////////
// First, bind to the destination container.
////////////////////////////////////////////
HRESULT hr;
IADsContainer *pCont=NULL;
CoInitialize(NULL);
hr = ADsGetObject(
L"LDAP://OU=MCS,DC=windows2000,DC=mytest,DC=fabrikam,DC=com",
IID_IADsContainer,
(void**) &pCont );
if ( !SUCCEEDED(hr) )
{
goto Cleanup;
}
//////////////////////////////////////////////////
// Second, move the object to the bound container.
//////////////////////////////////////////////////
IDispatch *pDisp=NULL;
hr = pCont->MoveHere(CComBSTR("LDAP://CN=Jeff Smith,OU=DSys,DC=windows2000,DC=mytest,DC=fabrikam,DC=com"), NULL, &pDisp );
pCont->Release();
if (SUCCEEDED(hr) )
{
// You can perform another operation here, such as updating attributes.
pDisp->Release();
}
Cleanup:
if(pCont)
pCont->Release();
if(pDisp)
pDisp->Release();
CoUninitialize();
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows Vista |
Server minimum yang didukung | Windows Server 2008 |
Target Platform | Windows |
Header | iads.h |
DLL | Activeds.dll |