WindowsXP-SP1/admin/dscmd/dsquery/querytable.cpp
2020-09-30 16:53:49 +02:00

1305 lines
22 KiB
C++

//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 2000
//
// File: querytable.cpp
//
// Contents: Defines Table For Parser.
//
// History: 24-Sep-2000 Hiteshr Created
//
//
//--------------------------------------------------------------------------
#include "pch.h"
#include "cstrings.h"
#include "querytable.h"
#include "usage.h"
#include "querybld.h"
//+-------------------------------------------------------------------------
// Parser table
//--------------------------------------------------------------------------
ARG_RECORD DSQUERY_COMMON_COMMANDS[] =
{
#ifdef DBG
//
// -debug, -debug
//
0,(LPWSTR)c_sz_arg1_com_debug,
0,NULL,
ARG_TYPE_DEBUG, ARG_FLAG_OPTIONAL|ARG_FLAG_HIDDEN,
NULL,
0, NULL,
#endif
//
// h, ?
//
0,(LPWSTR)c_sz_arg1_com_help,
0,(LPWSTR)c_sz_arg2_com_help,
ARG_TYPE_HELP, ARG_FLAG_OPTIONAL,
NULL,
0, NULL,
//
// s,server
//
0,(LPWSTR)c_sz_arg1_com_server,
0,(LPWSTR)c_sz_arg2_com_server,
ARG_TYPE_STR, ARG_FLAG_OPTIONAL,
NULL,
0, NULL,
//
// d,domain
//
0,(LPWSTR)c_sz_arg1_com_domain,
0,NULL,
ARG_TYPE_STR, ARG_FLAG_OPTIONAL,
NULL,
0, NULL,
//
// u, username
//
0,(LPWSTR)c_sz_arg1_com_username,
0,(LPWSTR)c_sz_arg2_com_username,
ARG_TYPE_STR, ARG_FLAG_OPTIONAL,
NULL,
0, NULL,
//
// w, password
//
0,(LPWSTR)c_sz_arg1_com_password,
0,(LPWSTR)c_sz_arg2_com_password,
ARG_TYPE_STR, ARG_FLAG_OPTIONAL,
NULL,
0, ValidateAdminPassword,
//
// q,q
//
0,(LPWSTR)c_sz_arg1_com_quiet,
0,NULL,
ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL,
NULL,
0, NULL,
//
// objecttype
//
0,(LPWSTR)c_sz_arg1_com_objecttype,
0,NULL,
ARG_TYPE_STR, ARG_FLAG_REQUIRED|ARG_FLAG_NOFLAG,
0,
0, NULL,
//
// r,r
//
0,(LPWSTR)c_sz_arg1_com_recurse,
0,NULL,
ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL,
NULL,
0, NULL,
//
// gc,gc
//
0,(LPWSTR)c_sz_arg1_com_gc,
0,NULL,
ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL,
NULL,
0, NULL,
//
// o,outputformat
//
0,(LPWSTR)c_sz_arg1_com_output,
0,NULL,
ARG_TYPE_STR, ARG_FLAG_OPTIONAL,
NULL,
0, NULL,
//
// startnode,startnode
//
// JonN 4/28/01 256583
// Note that startnode can also be "domainroot" or "forestroot",
// which just happen to be unaffected by the escaping functions.
0,(LPWSTR)c_sz_arg1_com_startnode,
0,NULL,
ARG_TYPE_STR, ARG_FLAG_OPTIONAL|ARG_FLAG_DN,
NULL,
0, NULL,
//
// limit
//
0,(LPWSTR)c_sz_arg1_com_limit,
0,NULL,
ARG_TYPE_INT, ARG_FLAG_OPTIONAL,
NULL,
0, NULL,
ARG_TERMINATOR
};
ARG_RECORD DSQUERY_STAR_COMMANDS[]=
{
//
// scope
//
0, (PWSTR)g_pszArg1StarScope,
0, NULL,
ARG_TYPE_STR, ARG_FLAG_OPTIONAL,
0,
0, NULL,
//
// filter
//
0, (PWSTR)g_pszArg1StarFilter,
0, NULL,
ARG_TYPE_STR, ARG_FLAG_OPTIONAL,
0,
0, NULL,
//
// attr
//
0, (PWSTR)g_pszArg1StarAttr,
0, NULL,
ARG_TYPE_MSZ, ARG_FLAG_OPTIONAL,
0,
0, NULL,
//
// attrsonly
//
0, (PWSTR)g_pszArg1StarAttrsOnly,
0, NULL,
ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL,
0,
0, NULL,
//
// l, listoutput
//
0, (PWSTR)g_pszArg1StarList,
0, NULL,
ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL,
0,
0, NULL,
ARG_TERMINATOR
};
ARG_RECORD DSQUERY_USER_COMMANDS[]=
{
//
// scope
//
0, (PWSTR)g_pszArg1UserScope,
0, NULL,
ARG_TYPE_STR, ARG_FLAG_OPTIONAL,
0,
0, NULL,
//
// Name
//
0, (PWSTR)g_pszArg1UserName,
0, NULL,
ARG_TYPE_STR, ARG_FLAG_OPTIONAL,
0,
0, NULL,
//
// Desc
//
0, (PWSTR)g_pszArg1UserDesc,
0, NULL,
ARG_TYPE_STR, ARG_FLAG_OPTIONAL,
0,
0, NULL,
//
// Upn
//
0, (PWSTR)g_pszArg1UserUpn,
0, NULL,
ARG_TYPE_STR, ARG_FLAG_OPTIONAL,
0,
0, NULL,
//
// Samid
//
0, (PWSTR)g_pszArg1UserSamid,
0, NULL,
ARG_TYPE_STR, ARG_FLAG_OPTIONAL,
0,
0, NULL,
//
// inactive
//
0, (PWSTR)g_pszArg1UserInactive,
0, NULL,
ARG_TYPE_INT, ARG_FLAG_OPTIONAL,
0,
0, NULL,
//
// stalepwd
//
0, (PWSTR)g_pszArg1UserStalepwd,
0, NULL,
ARG_TYPE_INT, ARG_FLAG_OPTIONAL,
0,
0, NULL,
//
// -disabled
//
0, (PWSTR)g_pszArg1UserDisabled,
0, NULL,
ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL,
0,
0, NULL,
ARG_TERMINATOR
};
ARG_RECORD DSQUERY_COMPUTER_COMMANDS[]=
{
//
// scope
//
0, (PWSTR)g_pszArg1ComputerScope,
0, NULL,
ARG_TYPE_STR, ARG_FLAG_OPTIONAL,
0,
0, ValidateYesNo,
//
//name
//
0, (PWSTR)g_pszArg1ComputerName,
0, NULL,
ARG_TYPE_STR, ARG_FLAG_OPTIONAL,
NULL,
0, NULL,
//
//desc
//
0, (PWSTR)g_pszArg1ComputerDesc,
0, NULL,
ARG_TYPE_STR, ARG_FLAG_OPTIONAL,
NULL,
0, NULL,
//
//samid
//
0, (PWSTR)g_pszArg1ComputerSamid,
0, NULL,
ARG_TYPE_STR, ARG_FLAG_OPTIONAL,
NULL,
0, NULL,
//
//inactive
//
0, (PWSTR)g_pszArg1ComputerInactive,
0, NULL,
ARG_TYPE_INT, ARG_FLAG_OPTIONAL,
NULL,
0, NULL,
//
// stalepwd
//
0, (PWSTR)g_pszArg1ComputerStalepwd,
0, NULL,
ARG_TYPE_INT, ARG_FLAG_OPTIONAL,
0,
0, NULL,
//
//disabled
//
0, (PWSTR)g_pszArg1ComputerDisabled,
0, NULL,
ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL,
NULL,
0, NULL,
ARG_TERMINATOR,
};
ARG_RECORD DSQUERY_GROUP_COMMANDS[]=
{
//
// scope
//
0, (PWSTR)g_pszArg1GroupScope,
0, NULL,
ARG_TYPE_STR, ARG_FLAG_OPTIONAL,
0,
0, ValidateYesNo,
//
//name
//
0, (PWSTR)g_pszArg1GroupName,
0, NULL,
ARG_TYPE_STR, ARG_FLAG_OPTIONAL,
NULL,
0, NULL,
//
//desc
//
0, (PWSTR)g_pszArg1GroupDesc,
0, NULL,
ARG_TYPE_STR, ARG_FLAG_OPTIONAL,
NULL,
0, NULL,
//
//samid
//
0, (PWSTR)g_pszArg1GroupSamid,
0, NULL,
ARG_TYPE_STR, ARG_FLAG_OPTIONAL,
NULL,
0, NULL,
ARG_TERMINATOR,
};
ARG_RECORD DSQUERY_OU_COMMANDS[]=
{
//
// scope
//
0, (PWSTR)g_pszArg1OUScope,
0, NULL,
ARG_TYPE_STR, ARG_FLAG_OPTIONAL,
0,
0, ValidateYesNo,
//
//name
//
0, (PWSTR)g_pszArg1OUName,
0, NULL,
ARG_TYPE_STR, ARG_FLAG_OPTIONAL,
NULL,
0, NULL,
//
//desc
//
0, (PWSTR)g_pszArg1OUDesc,
0, NULL,
ARG_TYPE_STR, ARG_FLAG_OPTIONAL,
NULL,
0, NULL,
ARG_TERMINATOR,
};
ARG_RECORD DSQUERY_CONTACT_COMMANDS[]=
{
//
// scope
//
0, (PWSTR)g_pszArg1UserScope,
0, NULL,
ARG_TYPE_STR, ARG_FLAG_OPTIONAL,
0,
0, NULL,
//
// Name
//
0, (PWSTR)g_pszArg1UserName,
0, NULL,
ARG_TYPE_STR, ARG_FLAG_OPTIONAL,
0,
0, NULL,
//
// Desc
//
0, (PWSTR)g_pszArg1UserDesc,
0, NULL,
ARG_TYPE_STR, ARG_FLAG_OPTIONAL,
0,
0, NULL,
ARG_TERMINATOR,
};
ARG_RECORD DSQUERY_SERVER_COMMANDS[]=
{
//
// forest - Forest
//
0, (PWSTR)g_pszArg1ServerForest,
0, NULL,
ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL,
0,
0, NULL,
//
// domain - Domain
//
0, (PWSTR)c_sz_arg2_com_domain,
0, NULL,
ARG_TYPE_STR, ARG_FLAG_OPTIONAL,
0,
0, NULL,
//
// site - Site
//
0, (PWSTR)g_pszArg1ServerSite,
0, NULL,
ARG_TYPE_STR, ARG_FLAG_OPTIONAL,
0,
0, NULL,
//
// name - Name
//
0, (PWSTR)g_pszArg1ServerName,
0, NULL,
ARG_TYPE_STR, ARG_FLAG_OPTIONAL,
NULL,
0, NULL,
//
//desc
//
0, (PWSTR)g_pszArg1ServerDesc,
0, NULL,
ARG_TYPE_STR, ARG_FLAG_OPTIONAL,
NULL,
0, NULL,
//
// hasfsmo
//
0, (PWSTR)g_pszArg1ServerHasFSMO,
0, NULL,
ARG_TYPE_STR, ARG_FLAG_OPTIONAL,
NULL,
0, NULL,
//
// isgc
//
0, (PWSTR)g_pszArg1ServerIsGC,
0, NULL,
ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL,
NULL,
0, NULL,
ARG_TERMINATOR,
};
ARG_RECORD DSQUERY_SITE_COMMANDS[]=
{
//
//name
//
0, (PWSTR)g_pszArg1SiteName,
0, NULL,
ARG_TYPE_STR, ARG_FLAG_OPTIONAL,
NULL,
0, NULL,
//
//desc
//
0, (PWSTR)g_pszArg1SiteDesc,
0, NULL,
ARG_TYPE_STR, ARG_FLAG_OPTIONAL,
NULL,
0, NULL,
ARG_TERMINATOR,
};
ARG_RECORD DSQUERY_SUBNET_COMMANDS[]=
{
//
//name
//
0, (PWSTR)g_pszArg1SubnetName,
0, NULL,
ARG_TYPE_STR, ARG_FLAG_OPTIONAL,
NULL,
0, NULL,
//
//desc
//
0, (PWSTR)g_pszArg1SubnetDesc,
0, NULL,
ARG_TYPE_STR, ARG_FLAG_OPTIONAL,
NULL,
0, NULL,
//
//Location
//
0, (PWSTR)g_pszArg1SubnetLoc,
0, NULL,
ARG_TYPE_STR, ARG_FLAG_OPTIONAL,
NULL,
0, NULL,
//
//site
//
0, (PWSTR)g_pszArg1SubnetSite,
0, NULL,
ARG_TYPE_STR, ARG_FLAG_OPTIONAL,
NULL,
0, NULL,
ARG_TERMINATOR,
};
//+-------------------------------------------------------------------------
// Attributes
//--------------------------------------------------------------------------
//
// filter, this is no ds attribute, but dummy attribute for commandline filter
// specified in case of dsquery *
//Star Filter
DSQUERY_ATTR_TABLE_ENTRY StarFilterEntry =
{
L"filter",
eStarFilter,
NULL,
StarFilterFunc,
};
//
// name
//
DSATTRIBUTEDESCRIPTION name=
{
{
L"cn",
ADS_ATTR_UPDATE,
ADSTYPE_CASE_IGNORE_STRING,
NULL,
0
},
0
};
//User Name
DSQUERY_ATTR_TABLE_ENTRY UserNameEntry =
{
L"cn",
eUserName,
&name,
CommonFilterFunc,
};
//Computer Name
DSQUERY_ATTR_TABLE_ENTRY ComputerNameEntry =
{
L"cn",
eComputerName,
&name,
CommonFilterFunc,
};
//Group Name
DSQUERY_ATTR_TABLE_ENTRY GroupNameEntry =
{
L"cn",
eGroupName,
&name,
CommonFilterFunc,
};
//OU Name
DSQUERY_ATTR_TABLE_ENTRY OUNameEntry =
{
L"ou",
eOUName,
&name,
CommonFilterFunc,
};
// Server Name
DSQUERY_ATTR_TABLE_ENTRY ServerNameEntry =
{
L"cn",
eServerName,
&name,
CommonFilterFunc,
};
// Site Name
DSQUERY_ATTR_TABLE_ENTRY SiteNameEntry =
{
L"cn",
eSiteName,
&name,
CommonFilterFunc,
};
// Contact Name
DSQUERY_ATTR_TABLE_ENTRY ContactNameEntry =
{
L"cn",
eContactName,
&name,
CommonFilterFunc,
};
// Subnet Name
DSQUERY_ATTR_TABLE_ENTRY SubnetNameEntry =
{
L"cn",
eSubnetName,
&name,
CommonFilterFunc,
};
//
// Description
//
DSATTRIBUTEDESCRIPTION description =
{
{
L"description",
ADS_ATTR_UPDATE,
ADSTYPE_CASE_IGNORE_STRING,
NULL,
0
},
0
};
//User Description
DSQUERY_ATTR_TABLE_ENTRY UserDescEntry =
{
L"description",
eUserDesc,
&description,
CommonFilterFunc,
};
//Computer Description
DSQUERY_ATTR_TABLE_ENTRY ComputerDescEntry =
{
L"description",
eComputerDesc,
&description,
CommonFilterFunc,
};
//Group Description
DSQUERY_ATTR_TABLE_ENTRY GroupDescEntry =
{
L"description",
eGroupDesc,
&description,
CommonFilterFunc,
};
//OU Description
DSQUERY_ATTR_TABLE_ENTRY OUDescEntry =
{
L"description",
eOUDesc,
&description,
CommonFilterFunc,
};
//Server Description
DSQUERY_ATTR_TABLE_ENTRY ServerDescEntry =
{
L"description",
eServerDesc,
&description,
CommonFilterFunc,
};
//Site Description
DSQUERY_ATTR_TABLE_ENTRY SiteDescEntry =
{
L"description",
eSiteDesc,
&description,
CommonFilterFunc,
};
//Cotnact Description
DSQUERY_ATTR_TABLE_ENTRY ContactDescEntry =
{
L"description",
eContactDesc,
&description,
CommonFilterFunc,
};
//Subnet Description
DSQUERY_ATTR_TABLE_ENTRY SubnetDescEntry =
{
L"description",
eSubnetDesc,
&description,
CommonFilterFunc,
};
//
// UPN
//
DSATTRIBUTEDESCRIPTION upn =
{
{
L"userPrincipalName",
ADS_ATTR_UPDATE,
ADSTYPE_CASE_IGNORE_STRING,
NULL,
0
},
0
};
//User Upn
DSQUERY_ATTR_TABLE_ENTRY UserUPNEntry =
{
L"userPrincipalName",
eUserUPN,
&upn,
CommonFilterFunc,
};
//
// SAM Account Name
//
DSATTRIBUTEDESCRIPTION samAccountName =
{
{
L"sAMAccountName",
ADS_ATTR_UPDATE,
ADSTYPE_CASE_IGNORE_STRING,
NULL,
0
},
0
};
//User SAM Account
DSQUERY_ATTR_TABLE_ENTRY UserSamidEntry =
{
L"sAMAccountName",
eUserSamid,
&samAccountName,
CommonFilterFunc,
};
//Computer samAccountName
DSQUERY_ATTR_TABLE_ENTRY ComputerSamidEntry =
{
L"sAMAccountName",
eComputerSamid,
&samAccountName,
CommonFilterFunc,
};
//Group samAccountName
DSQUERY_ATTR_TABLE_ENTRY GroupSamidEntry =
{
L"sAMAccountName",
eGroupSamid,
&samAccountName,
CommonFilterFunc,
};
//User Disabled
DSQUERY_ATTR_TABLE_ENTRY UserDisabledEntry =
{
L"disabled",
eUserDisabled,
NULL,
DisabledFilterFunc,
};
//Computer Disabled
DSQUERY_ATTR_TABLE_ENTRY ComputerDisabledEntry =
{
L"disabled",
eComputerDisabled,
NULL,
DisabledFilterFunc,
};
//User Inactive
DSQUERY_ATTR_TABLE_ENTRY UserInactiveEntry =
{
L"inactive",
eUserInactive,
NULL,
InactiveFilterFunc,
};
//Computer Inactive
DSQUERY_ATTR_TABLE_ENTRY ComputerInactiveEntry =
{
L"inactive",
eComputerInactive,
NULL,
InactiveFilterFunc,
};
//User stalepwd
DSQUERY_ATTR_TABLE_ENTRY UserStalepwdEntry =
{
L"stalepwd",
eUserStalepwd,
NULL,
StalepwdFilterFunc,
};
//Computer stalepwd
DSQUERY_ATTR_TABLE_ENTRY ComputerStalepwdEntry =
{
L"stalepwd",
eComputerStalepwd,
NULL,
StalepwdFilterFunc,
};
//
// Locations
//
DSATTRIBUTEDESCRIPTION location =
{
{
L"location",
ADS_ATTR_UPDATE,
ADSTYPE_CASE_IGNORE_STRING,
NULL,
0
},
0
};
//Subnet location
DSQUERY_ATTR_TABLE_ENTRY SubnetLocEntry=
{
L"location",
eSubnetLoc,
&location,
CommonFilterFunc,
};
//
// SiteObject
//
DSATTRIBUTEDESCRIPTION siteObject=
{
{
L"siteObject",
ADS_ATTR_UPDATE,
ADSTYPE_CASE_IGNORE_STRING,
NULL,
0
},
0
};
//Subnet Site
DSQUERY_ATTR_TABLE_ENTRY SubnetSiteEntry=
{
L"siteObject",
eSubnetSite,
&siteObject,
SubnetSiteFilterFunc,
};
//
//Valid OutputStrings for each objecttype
//
//
DSQUERY_OUTPUT_FORMAT_MAP g_format_dn =
{
g_pszDN,
DSQUERY_OUTPUT_DN
};
DSQUERY_OUTPUT_FORMAT_MAP g_format_rdn =
{
g_pszRDN,
DSQUERY_OUTPUT_RDN
};
DSQUERY_OUTPUT_FORMAT_MAP g_format_upn =
{
g_pszUPN,
DSQUERY_OUTPUT_UPN
};
DSQUERY_OUTPUT_FORMAT_MAP g_format_samid =
{
g_pszSamId,
DSQUERY_OUTPUT_SAMID
};
DSQUERY_OUTPUT_FORMAT_MAP g_format_ntlmid =
{
g_pszNtlmId,
DSQUERY_OUTPUT_NTLMID
};
PDSQUERY_OUTPUT_FORMAT_MAP UserOutputFormatMap[] =
{
&g_format_dn,
&g_format_rdn,
&g_format_upn,
&g_format_samid,
&g_format_ntlmid
};
//Computer
PDSQUERY_OUTPUT_FORMAT_MAP ComputerOutputFormatMap[] =
{
&g_format_dn,
&g_format_rdn,
&g_format_samid,
&g_format_ntlmid
};
//Group
PDSQUERY_OUTPUT_FORMAT_MAP GroupOutputFormatMap[] =
{
&g_format_dn,
&g_format_rdn,
&g_format_samid,
&g_format_ntlmid
};
//OU
PDSQUERY_OUTPUT_FORMAT_MAP OuOutputFormatMap[] =
{
&g_format_dn,
&g_format_rdn
};
//Contact
PDSQUERY_OUTPUT_FORMAT_MAP ContactOutputFormatMap[] =
{
&g_format_dn,
&g_format_rdn
};
//Server
PDSQUERY_OUTPUT_FORMAT_MAP ServerOutputFormatMap[] =
{
&g_format_dn,
&g_format_rdn
};
//Site
PDSQUERY_OUTPUT_FORMAT_MAP SiteOutputFormatMap[] =
{
&g_format_dn,
&g_format_rdn
};
//Subnet
PDSQUERY_OUTPUT_FORMAT_MAP SubnetOutputFormatMap[] =
{
&g_format_dn,
&g_format_rdn
};
//Attribute Table entries and ObjectTableEntries
//
//
//* Star
//
PDSQUERY_ATTR_TABLE_ENTRY StarAttributeTable[] =
{
&StarFilterEntry,
};
DSQueryObjectTableEntry g_StarObjectEntry =
{
L"*",
g_pszStar,
DSQUERY_STAR_COMMANDS,
USAGE_DSQUERY_STAR,
sizeof(StarAttributeTable)/sizeof(PDSATTRIBUTETABLEENTRY),
StarAttributeTable,
0,
NULL,
eStarScope,
g_pszDefStarFilter,
NULL
};
//
// User
//
PDSQUERY_ATTR_TABLE_ENTRY UserAttributeTable[] =
{
&UserNameEntry,
&UserUPNEntry,
&UserDescEntry,
&UserSamidEntry,
&UserDisabledEntry,
&UserInactiveEntry,
&UserStalepwdEntry
};
DSQueryObjectTableEntry g_UserObjectEntry =
{
L"user",
g_pszUser,
DSQUERY_USER_COMMANDS,
USAGE_DSQUERY_USER,
sizeof(UserAttributeTable)/sizeof(PDSATTRIBUTETABLEENTRY),
UserAttributeTable,
sizeof(UserOutputFormatMap)/sizeof(PDSQUERY_OUTPUT_FORMAT_MAP),
UserOutputFormatMap,
eUserScope,
g_pszDefUserFilter,
g_pszDefUserFilter
};
//
// Computer
//
PDSQUERY_ATTR_TABLE_ENTRY ComputerAttributeTable[] =
{
&ComputerNameEntry,
&ComputerDescEntry,
&ComputerSamidEntry,
&ComputerDisabledEntry,
&ComputerInactiveEntry,
&ComputerStalepwdEntry
};
DSQueryObjectTableEntry g_ComputerObjectEntry =
{
L"computer",
g_pszComputer,
DSQUERY_COMPUTER_COMMANDS,
USAGE_DSQUERY_COMPUTER,
sizeof(ComputerAttributeTable)/sizeof(PDSATTRIBUTETABLEENTRY),
ComputerAttributeTable,
sizeof(ComputerOutputFormatMap)/sizeof(PDSQUERY_OUTPUT_FORMAT_MAP),
ComputerOutputFormatMap,
eComputerScope,
g_pszDefComputerFilter,
g_pszDefComputerFilter
};
//
// Group
//
PDSQUERY_ATTR_TABLE_ENTRY GroupAttributeTable[] =
{
&GroupNameEntry,
&GroupDescEntry,
&GroupSamidEntry
};
DSQueryObjectTableEntry g_GroupObjectEntry =
{
L"group",
g_pszGroup,
DSQUERY_GROUP_COMMANDS,
USAGE_DSQUERY_GROUP,
sizeof(GroupAttributeTable)/sizeof(PDSATTRIBUTETABLEENTRY),
GroupAttributeTable,
sizeof(GroupOutputFormatMap)/sizeof(PDSQUERY_OUTPUT_FORMAT_MAP),
GroupOutputFormatMap,
eGroupScope,
g_pszDefGroupFilter,
g_pszDefGroupFilter
};
//
// OU
//
PDSQUERY_ATTR_TABLE_ENTRY OUAttributeTable[] =
{
&OUNameEntry,
&OUDescEntry
};
DSQueryObjectTableEntry g_OUObjectEntry =
{
L"ou",
g_pszOU,
DSQUERY_OU_COMMANDS,
USAGE_DSQUERY_OU,
sizeof(OUAttributeTable)/sizeof(PDSATTRIBUTETABLEENTRY),
OUAttributeTable,
sizeof(OuOutputFormatMap)/sizeof(PDSQUERY_OUTPUT_FORMAT_MAP),
OuOutputFormatMap,
eOUScope,
g_pszDefOUFilter,
g_pszDefOUFilter
};
//
// Server
//
PDSQUERY_ATTR_TABLE_ENTRY ServerAttributeTable[] =
{
&ServerNameEntry,
&ServerDescEntry
};
DSQueryObjectTableEntry g_ServerObjectEntry =
{
L"server",
g_pszServer,
DSQUERY_SERVER_COMMANDS,
USAGE_DSQUERY_SERVER,
sizeof(ServerAttributeTable)/sizeof(PDSATTRIBUTETABLEENTRY),
ServerAttributeTable,
sizeof(ServerOutputFormatMap)/sizeof(PDSQUERY_OUTPUT_FORMAT_MAP),
ServerOutputFormatMap,
static_cast<UINT>(-1),
g_pszDefServerFilter,
g_pszDefServerFilter
};
//
// Site
//
PDSQUERY_ATTR_TABLE_ENTRY SiteAttributeTable[] =
{
&SiteNameEntry,
&SiteDescEntry
};
DSQueryObjectTableEntry g_SiteObjectEntry =
{
L"site",
g_pszSite,
DSQUERY_SITE_COMMANDS,
USAGE_DSQUERY_SITE,
sizeof(SiteAttributeTable)/sizeof(PDSATTRIBUTETABLEENTRY),
SiteAttributeTable,
sizeof(SiteOutputFormatMap)/sizeof(PDSQUERY_OUTPUT_FORMAT_MAP),
SiteOutputFormatMap,
static_cast<UINT>(-1),
g_pszDefSiteFilter,
g_pszDefSiteFilter
};
//
// Contact
//
PDSQUERY_ATTR_TABLE_ENTRY ContactAttributeTable[] =
{
&ContactNameEntry,
&ContactDescEntry,
};
DSQueryObjectTableEntry g_ContactObjectEntry =
{
L"contact",
g_pszContact,
DSQUERY_CONTACT_COMMANDS,
USAGE_DSQUERY_USER,
sizeof(ContactAttributeTable)/sizeof(PDSATTRIBUTETABLEENTRY),
ContactAttributeTable,
sizeof(ContactOutputFormatMap)/sizeof(PDSQUERY_OUTPUT_FORMAT_MAP),
ContactOutputFormatMap,
eContactScope,
g_pszDefContactFilter,
g_pszDefContactFilter
};
//
// Subnet
//
PDSQUERY_ATTR_TABLE_ENTRY SubnetAttributeTable[] =
{
&SubnetNameEntry,
&SubnetDescEntry,
&SubnetLocEntry,
&SubnetSiteEntry,
};
DSQueryObjectTableEntry g_SubnetObjectEntry =
{
L"subnet",
g_pszSubnet,
DSQUERY_SUBNET_COMMANDS,
USAGE_DSQUERY_SUBNET,
sizeof(SubnetAttributeTable)/sizeof(PDSATTRIBUTETABLEENTRY),
SubnetAttributeTable,
sizeof(SubnetOutputFormatMap)/sizeof(PDSQUERY_OUTPUT_FORMAT_MAP),
SubnetOutputFormatMap,
static_cast<UINT>(-1),
g_pszDefSubnetFilter,
g_pszDefSubnetFilter
};
//+-------------------------------------------------------------------------
// Object Table
//--------------------------------------------------------------------------
PDSQueryObjectTableEntry g_DSObjectTable[] =
{
&g_StarObjectEntry,
&g_OUObjectEntry,
&g_UserObjectEntry,
&g_ComputerObjectEntry,
&g_GroupObjectEntry,
&g_ServerObjectEntry,
&g_SiteObjectEntry,
&g_ContactObjectEntry,
&g_SubnetObjectEntry,
NULL
};