Platform SDK: Active Directory, ADSI, and Directory Services

Example Code for Changing the Scope of a Group

[C++]

The following code fragment changes the scope of a group:

WCHAR pwszLDAPPath[MAX_PATH*2];
 
    HRESULT hr;
    IADsGroup * pGroup = NULL;
 
    // Initialize COM
    CoInitialize(0);
 
    // Bind to the container passed 
hr = ADsGetObject( pwszLDAPPath, IID_IADsGroup,(void **)&pGroup);
 
    if (SUCCEEDED(hr))
    {
        VARIANT vValue;
        BSTR    bsValue = SysAllocString(L"groupType");
        VariantInit(&vValue);
    // Set a new GroupType Value
        vValue.vt = VT_I4;
        vValue.lVal = ADS_GROUP_TYPE_GLOBAL_GROUP ;
 
        hr = pGroup->Put(bsValue,vValue);
        hr = pGroup->SetInfo();
        pGroup->Release();
        pGroup= NULL;
    }
 
    CoUninitialize();
[Visual Basic]

The following code fragment changes the scope of a group:

Dim x as IADs
Set x = GetObject("LDAP://CN=mygroup,OU=myou,DC=Microsoft,DC=com")
x.Put "groupType", ADS_GROUP_TYPE_UNIVERSAL_GROUP|ADS_GROUP_TYPE_SECURITY_ENABLED