Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die ADS_SYSTEMFLAG_ENUM-Enumeration definiert einige der Werte, die dem systemFlags-Attribut zugewiesen werden können. Einige der Werte in der Enumeration sind spezifisch für attributeSchema-Objekte ; Andere Werte können für Objekte einer beliebigen Klasse festgelegt werden.
Syntax
typedef enum __MIDL___MIDL_itf_ads_0001_0017_0001 {
ADS_SYSTEMFLAG_DISALLOW_DELETE = 0x80000000,
ADS_SYSTEMFLAG_CONFIG_ALLOW_RENAME = 0x40000000,
ADS_SYSTEMFLAG_CONFIG_ALLOW_MOVE = 0x20000000,
ADS_SYSTEMFLAG_CONFIG_ALLOW_LIMITED_MOVE = 0x10000000,
ADS_SYSTEMFLAG_DOMAIN_DISALLOW_RENAME = 0x8000000,
ADS_SYSTEMFLAG_DOMAIN_DISALLOW_MOVE = 0x4000000,
ADS_SYSTEMFLAG_CR_NTDS_NC = 0x1,
ADS_SYSTEMFLAG_CR_NTDS_DOMAIN = 0x2,
ADS_SYSTEMFLAG_ATTR_NOT_REPLICATED = 0x1,
ADS_SYSTEMFLAG_ATTR_IS_CONSTRUCTED = 0x4
} ADS_SYSTEMFLAG_ENUM;
Konstanten
ADS_SYSTEMFLAG_DISALLOW_DELETEWert: 0x80000000 Gibt ein Objekt an, das nicht gelöscht werden kann. |
ADS_SYSTEMFLAG_CONFIG_ALLOW_RENAMEWert: 0x40000000 Wenn dieses Flag für Objekte in der Konfigurationspartition festgelegt ist, kann das Objekt umbenannt werden. Andernfalls kann das Objekt nicht umbenannt werden. Dieses Flag wird standardmäßig nicht für neue Objekte festgelegt, die unter der Konfigurationspartition erstellt wurden, und Sie können dieses Flag nur während der Objekterstellung festlegen. |
ADS_SYSTEMFLAG_CONFIG_ALLOW_MOVEWert: 0x20000000 Wenn dieses Flag für Objekte in der Konfigurationspartition festgelegt ist, kann das Objekt verschoben werden. Andernfalls kann das Objekt nicht verschoben werden. Dieses Flag wird standardmäßig nicht für neue Objekte festgelegt, die unter der Konfigurationspartition erstellt wurden, und Sie können dieses Flag nur während der Objekterstellung festlegen. |
ADS_SYSTEMFLAG_CONFIG_ALLOW_LIMITED_MOVEWert: 0x10000000 Wenn dieses Flag für Objekte in der Konfigurationspartition festgelegt ist, kann das Objekt mit Einschränkungen verschoben werden. Andernfalls kann das Objekt nicht verschoben werden. Dieses Flag wird standardmäßig nicht für neue Objekte festgelegt, die unter der Konfigurationspartition erstellt wurden, und Sie können dieses Flag nur während der Objekterstellung festlegen. |
ADS_SYSTEMFLAG_DOMAIN_DISALLOW_RENAMEWert: 0x8000000 Gibt ein Domänenobjekt an, das nicht umbenannt werden kann. |
ADS_SYSTEMFLAG_DOMAIN_DISALLOW_MOVEWert: 0x4000000 Identifiziert ein Domänenobjekt, das nicht verschoben werden kann. |
ADS_SYSTEMFLAG_CR_NTDS_NCWert: 0x1 Der Benennungskontext befindet sich in NTDS. |
ADS_SYSTEMFLAG_CR_NTDS_DOMAINWert: 0x2 Der Benennungskontext ist eine Domäne. |
ADS_SYSTEMFLAG_ATTR_NOT_REPLICATEDWert: 0x1 Wenn dieses Flag im systemFlags-Attribut eines attributSchema-Objekts festgelegt ist, soll das Attribut nicht repliziert werden. |
ADS_SYSTEMFLAG_ATTR_IS_CONSTRUCTEDWert: 0x4 Wenn dieses Flag im systemFlags-Attribut eines attributSchema-Objekts festgelegt ist, ist das Attribut eine konstruierte Eigenschaft. |
Hinweise
Für classSchema - und attributSchema-Objekte gibt das 0x10 Bit des systemFlags-Attributs ein Objekt an, das Teil des Basisschemas ist, das in Active Directory enthalten ist. Dieses Bit kann nicht für neue classSchema - und attributeSchema-Objekte festgelegt werden. Die ADS_SYSTEMFLAG_ENUM-Enumeration enthält keine Konstante für dieses Bit.
Beispiele
Das folgende Codebeispiel zeigt, wie Elemente der ADS_SYSTEMFLAG_ENUM-Enumeration zusammen mit der IDirectorySearch-Schnittstelle verwendet werden, um nicht replizierte Eigenschaften zu durchsuchen.
#include <wchar.h>
#include <activeds.h>
#include <atlbase.h>
HRESULT hr = E_FAIL;
LPWSTR szPrefix = L"LDAP://%s";
LPWSTR szPath = NULL;
IDirectorySearch *pSchemaNC = NULL;
IADs *pObject = NULL;
size_t nLength = 0;
LPWSTR pszSearchFilterTemplate = L"(&(objectCategory=attributeSchema)(systemFlags:1.2.840.113556.1.4.804:=%d))";
LPWSTR pszSearchFilter = NULL;
CoInitialize(NULL); // Initialize COM
// Get rootDSE and the schema container distinguished name.
// Bind to current user's domain using current user's security context.
hr = ADsOpenObject(L"LDAP://rootDSE",
NULL,
NULL,
ADS_SECURE_AUTHENTICATION, // Use Secure Authentication.
IID_IADs,
(void**)&pObject);
if (SUCCEEDED(hr))
{
CComVarinat svar;
hr = pObject->Get(CComBSTR("schemaNamingContext"), &svar);
if (SUCCEEDED(hr))
{
nLength = wcslen(szPrefix) + wcslen(svar.bstrVal) + 1;
szPath = new WCHAR[nLength];
swprintf_s(szPath, szPrefix, svar.bstrVal);
hr = ADsOpenObject(szPath,
NULL,
NULL,
ADS_SECURE_AUTHENTICATION,
IID_IDirectorySearch,
(void**)&pSchemaNC);
delete [] szPath;
if (SUCCEEDED(hr))
{
wprintf(L"Find non-replicated attributes\n");
// Create search filter to find attributes with systemFlags that
// match ADS_SYSTEMFLAG_ATTR_NOT_REPLICATED
nLength = wcslen(pszSearchFilterTemplate) + 25 + 1;
pszSearchFilter = new WCHAR[nLength];
swprintf_s(pszSearchFilter, pszSearchFilterTemplate, ADS_SYSTEMFLAG_ATTR_NOT_REPLICATED);
// Attributes are one-level deep in the schema container
// so only need to search one level.
ADS_SEARCHPREF_INFO SearchPrefs;
SearchPrefs.dwSearchPref = ADS_SEARCHPREF_SEARCH_SCOPE;
SearchPrefs.vValue.dwType = ADSTYPE_INTEGER;
SearchPrefs.vValue.Integer = ADS_SCOPE_ONELEVEL;
DWORD dwNumPrefs = 1;
// COL for iterations.
ADS_SEARCH_COLUMN col;
// Handle used for searching.
ADS_SEARCH_HANDLE hSearch;
IADs *pObj = NULL;
IADs * pIADs = NULL;
// Set the search preference.
hr = pSchemaNC->SetSearchPreference( &SearchPrefs, dwNumPrefs);
if (FAILED(hr))
{
return hr;
}
CONST DWORD dwAttrNameSize = 1;
LPOLESTR pszAttribute[dwAttrNameSize];
pszAttribute[0] = L"cn";
// Execute the search.
hr = pSchemaNC->ExecuteSearch(pszSearchFilter,
pszAttribute,
dwAttrNameSize,
&hSearch );
delete [] pszSearchFilter;
if ( SUCCEEDED(hr) )
{
// Call IDirectorySearch::GetNextRow() to retrieve
// the next row of data.
while( pSchemaNC->GetNextRow( hSearch) != S_ADS_NOMORE_ROWS)
{
// Loop through the array of passed column names,
// print the data for each column.
for (DWORD x = 0; x < dwAttrNameSize; x++)
{
// Get the data for this column.
hr = pSchemaNC->GetColumn( hSearch,
pszAttribute[x],
&col );
if ( SUCCEEDED(hr) )
{
// Print the data for the column and
// free the column.
if (col.dwADsType == ADSTYPE_CASE_IGNORE_STRING)
{
wprintf(L"%s: %s\r\n",
pszAttribute[x],
col.pADsValues->CaseIgnoreString);
}
else
{
wprintf(L"<%s property is not a string>", pszAttribute[x]);
}
pSchemaNC->FreeColumn( &col );
}
}
}
// Close the search handle to clean up.
pSchemaNC->CloseSearchHandle(hSearch);
}
}
}
pObject->Release();
}
CoUninitialize(); // uninitialize COM.
Anforderungen
| Unterstützte Mindestversion (Client) | Windows Vista |
| Unterstützte Mindestversion (Server) | Windows Server 2008 |
| Kopfzeile | iads.h |