//+------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1992 - 2000 // // File: gettable.cpp // // Contents: Defines Table DSGet // // History: 13-Oct-2000 JeffJon Created // // //-------------------------------------------------------------------------- #include "pch.h" #include "cstrings.h" #include "gettable.h" #include "display.h" #include "usage.h" //+-------------------------------------------------------------------------- // // Member: CDSGetDisplayInfo::AddValue // // Synopsis: Adds a value to the value array and allocates more space // if necessary. // // Arguments: [pszValue IN] : new value to be added // // Returns: HRESULT : E_OUTOFMEMORY if we failed to allocate space // S_OK if we succeeded in setting the password // // History: 23-Oct-2000 JeffJon Created // //--------------------------------------------------------------------------- HRESULT CDSGetDisplayInfo::AddValue(PCWSTR pszValue) { ENTER_FUNCTION_HR(LEVEL8_LOGGING, CDSGetDisplayInfo::AddValue, hr); do // false loop { // // Verify parameters // if (!pszValue) { ASSERT(pszValue); hr = E_INVALIDARG; break; } if (m_dwAttributeValueCount == m_dwAttributeValueSize) { DWORD dwNewSize = m_dwAttributeValueSize + 5; // // Allocate a new array with more space // PWSTR* ppszNewArray = new PWSTR[dwNewSize]; if (!ppszNewArray) { hr = E_OUTOFMEMORY; break; } m_dwAttributeValueSize = dwNewSize; // // Copy the old values // //Security Review:This is fine. memcpy(ppszNewArray, m_ppszAttributeStringValue, m_dwAttributeValueCount * sizeof(PWSTR)); // // Delete the old array // if (m_ppszAttributeStringValue) { delete[] m_ppszAttributeStringValue; } m_ppszAttributeStringValue = ppszNewArray; } // // Add the new value to the end of the array // m_ppszAttributeStringValue[m_dwAttributeValueCount] = new WCHAR[wcslen(pszValue) + 1]; if (!m_ppszAttributeStringValue[m_dwAttributeValueCount]) { hr = E_OUTOFMEMORY; break; } //Buffer is allocated correctly. wcscpy(m_ppszAttributeStringValue[m_dwAttributeValueCount], pszValue); m_dwAttributeValueCount++; } while (false); return hr; } //+------------------------------------------------------------------------- // Parser table //-------------------------------------------------------------------------- ARG_RECORD DSGET_COMMON_COMMANDS[] = { COMMON_COMMANDS // // objecttype // 0,(LPWSTR)c_sz_arg1_com_objecttype, 0,NULL, ARG_TYPE_STR, ARG_FLAG_REQUIRED|ARG_FLAG_NOFLAG, 0, 0, NULL, // // c Continue // 0,(PWSTR)c_sz_arg1_com_continue, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, (CMD_TYPE)_T(""), 0, NULL, // // l List // 0,(LPWSTR)c_sz_arg1_com_listformat, 0,NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // objectDN // 0,(LPWSTR)c_sz_arg1_com_objectDN, ID_ARG2_NULL,NULL, ARG_TYPE_MSZ, ARG_FLAG_REQUIRED|ARG_FLAG_NOFLAG|ARG_FLAG_STDIN|ARG_FLAG_DN, 0, 0, NULL, // // dn // 0, (PWSTR)g_pszArg1UserDN, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // description // 0, (PWSTR)c_sz_arg1_com_description, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, ARG_TERMINATOR }; ARG_RECORD DSGET_USER_COMMANDS[]= { // // SamID // 0, (PWSTR)g_pszArg1UserSAMID, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // sid // 0, (PWSTR)g_pszArg1UserSID, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // upn // 0, (PWSTR)g_pszArg1UserUPN, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // fn. FirstName // 0, (PWSTR)g_pszArg1UserFirstName, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // mi Middle Initial // 0, (PWSTR)g_pszArg1UserMiddleInitial, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // ln LastName // 0, (PWSTR)g_pszArg1UserLastName, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // display DisplayName // 0, (PWSTR)g_pszArg1UserDisplayName, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // empid Employee ID // 0, (PWSTR)g_pszArg1UserEmployeeID, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // office Office Location // 0, (PWSTR)g_pszArg1UserOffice, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // tel Telephone // 0, (PWSTR)g_pszArg1UserTelephone, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // email E-mail // 0, (PWSTR)g_pszArg1UserEmail, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // hometel Home Telephone // 0, (PWSTR)g_pszArg1UserHomeTelephone, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // pager Pager number // 0, (PWSTR)g_pszArg1UserPagerNumber, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // mobile Mobile Telephone Number // 0, (PWSTR)g_pszArg1UserMobileNumber, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // fax Fax Number // 0, (PWSTR)g_pszArg1UserFaxNumber, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // iptel IP phone# // 0, (PWSTR)g_pszArg1UserIPTel, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // webpg Web Page // 0, (PWSTR)g_pszArg1UserWebPage, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // title Title // 0, (PWSTR)g_pszArg1UserTitle, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // dept Department // 0, (PWSTR)g_pszArg1UserDepartment, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // company Company // 0, (PWSTR)g_pszArg1UserCompany, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // mgr Manager // 0, (PWSTR)g_pszArg1UserManager, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // hmdir Home Directory // 0, (PWSTR)g_pszArg1UserHomeDirectory, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // hmdrv Home Drive // 0, (PWSTR)g_pszArg1UserHomeDrive, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // profile Profile // 0, (PWSTR)g_pszArg1UserProfile, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // loscr Logon Script // 0, (PWSTR)g_pszArg1UserLogonScript, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // mustchpwd Must Change Password at next logon // 0, (PWSTR)g_pszArg1UserMustChangePwd, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // canchpwd Can Change Password // 0, (PWSTR)g_pszArg1UserCanChangePwd, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // pwdneverexpires Password never expires // 0, (PWSTR)g_pszArg1UserPwdNeverExpires, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // disabled Disable Account // 0, (PWSTR)g_pszArg1UserDisableAccount, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // acctexpires Account Expires // 0, (PWSTR)g_pszArg1UserAcctExpires, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // reversiblepwd Password stored with reversible encryption // 0, (PWSTR)g_pszArg1UserReversiblePwd, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // memberof Member of group // 0, (PWSTR)g_pszArg1UserMemberOf, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // expand Recursively expand group membership // 0, (PWSTR)g_pszArg1UserExpand, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // part // 0, (PWSTR)g_pszArg1UserPart, ID_ARG2_NULL, NULL, ARG_TYPE_STR, ARG_FLAG_OPTIONAL|ARG_FLAG_DN, 0, 0, NULL, // // qlimit // 0, (PWSTR)g_pszArg1UserQLimit, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // qUsed // 0, (PWSTR)g_pszArg1UserQuotaUsed, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, ARG_TERMINATOR }; ARG_RECORD DSGET_COMPUTER_COMMANDS[]= { // // SamID // 0, (PWSTR)g_pszArg1ComputerSAMID, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // sid // 0, (PWSTR)g_pszArg1ComputerSID, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // loc // 0, (PWSTR)g_pszArg1ComputerLoc, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // disabled Disable Account // 0, (PWSTR)g_pszArg1ComputerDisableAccount, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // memberof Member of group // 0, (PWSTR)g_pszArg1ComputerMemberOf, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // expand Recursively expand group membership // 0, (PWSTR)g_pszArg1ComputerExpand, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, (CMD_TYPE)_T(""), 0, NULL, // // part // 0, (PWSTR)g_pszArg1ComputerPart, ID_ARG2_NULL, NULL, ARG_TYPE_STR, ARG_FLAG_OPTIONAL|ARG_FLAG_DN, 0, 0, NULL, // // qlimit // 0, (PWSTR)g_pszArg1ComputerQLimit, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // qUsed // 0, (PWSTR)g_pszArg1ComputerQuotaUsed, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, ARG_TERMINATOR, }; ARG_RECORD DSGET_GROUP_COMMANDS[]= { // // samname // 0, (PWSTR)g_pszArg1GroupSamid, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // sid // 0, (PWSTR)g_pszArg1GroupSID, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // secgrp Security enabled // 0, (PWSTR)g_pszArg1GroupSecGrp, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // scope Group scope (local/global/universal) // 0, (PWSTR)g_pszArg1GroupScope, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // memberof Member of groups // 0, (PWSTR)g_pszArg1GroupMemberOf, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // members Contains members // 0, (PWSTR)g_pszArg1GroupMembers, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // expand Recursively expand group membership // 0, (PWSTR)g_pszArg1GroupExpand, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // part // 0, (PWSTR)g_pszArg1GroupPart, ID_ARG2_NULL, NULL, ARG_TYPE_STR, ARG_FLAG_OPTIONAL|ARG_FLAG_DN, 0, 0, NULL, // // qlimit // 0, (PWSTR)g_pszArg1GroupQLimit, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // qUsed // 0, (PWSTR)g_pszArg1GroupQuotaUsed, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, ARG_TERMINATOR, }; ARG_RECORD DSGET_CONTACT_COMMANDS[]= { // // fn. FirstName // 0, (PWSTR)g_pszArg1UserFirstName, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // mi Middle Initial // 0, (PWSTR)g_pszArg1UserMiddleInitial, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // ln LastName // 0, (PWSTR)g_pszArg1UserLastName, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // display DisplayName // 0, (PWSTR)g_pszArg1UserDisplayName, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // office Office Location // 0, (PWSTR)g_pszArg1UserOffice, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // tel Telephone // 0, (PWSTR)g_pszArg1UserTelephone, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // email E-mail // 0, (PWSTR)g_pszArg1UserEmail, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // hometel Home Telephone // 0, (PWSTR)g_pszArg1UserHomeTelephone, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // pager Pager number // 0, (PWSTR)g_pszArg1UserPagerNumber, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // mobile Mobile Telephone Number // 0, (PWSTR)g_pszArg1UserMobileNumber, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // fax Fax Number // 0, (PWSTR)g_pszArg1UserFaxNumber, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // iptel IP phone# // 0, (PWSTR)g_pszArg1UserIPTel, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // title Title // 0, (PWSTR)g_pszArg1UserTitle, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // dept Department // 0, (PWSTR)g_pszArg1UserDepartment, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // company Company // 0, (PWSTR)g_pszArg1UserCompany, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, ARG_TERMINATOR, }; ARG_RECORD DSGET_SERVER_COMMANDS[]= { // // dnsname dnsHostName // 0, (PWSTR)g_pszArg1ServerDnsName, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // site // 0, (PWSTR)g_pszArg1ServerSite, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // isGC // 0, (PWSTR)g_pszArg1ServerIsGC, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // part // 0, (PWSTR)g_pszArg1ServerPart, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // topobjowner // 0, (PWSTR)g_pszArg1ServerTopObjOwner, ID_ARG2_NULL, NULL, ARG_TYPE_INT, ARG_FLAG_OPTIONAL | ARG_FLAG_DEFAULTABLE, (void*) 10, // default nValue is 10 if not specified 0, NULL, ARG_TERMINATOR, }; ARG_RECORD DSGET_SITE_COMMANDS[]= { // // dnsname dnsHostName // 0, (PWSTR)g_pszArg1SiteAutotopology, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // site // 0, (PWSTR)g_pszArg1SiteCacheGroups, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // isGC // 0, (PWSTR)g_pszArg1SitePrefGCSite, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, ARG_TERMINATOR, }; ARG_RECORD DSGET_SUBNET_COMMANDS[]= { // // loc Location // 0, (PWSTR)g_pszArg1SubnetLocation, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // site // 0, (PWSTR)g_pszArg1SubnetSite, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, ARG_TERMINATOR, }; ARG_RECORD DSGET_PARTITION_COMMANDS[]= { // // qdefault // 0, (PWSTR)g_pszArg1PartitionQDefault, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // qmbstnwt // 0, (PWSTR)g_pszArg1PartitionQTombstoneWeight, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // topobjowner // 0, (PWSTR)g_pszArg1PartitionTopObjOwner, ID_ARG2_NULL, NULL, ARG_TYPE_INT, ARG_FLAG_OPTIONAL | ARG_FLAG_DEFAULTABLE, (void*) 10, // default nValue is 10 if not specified 0, NULL, ARG_TERMINATOR, }; ARG_RECORD DSGET_QUOTA_COMMANDS[]= { // // acct // 0, (PWSTR)g_pszArg1QuotaAcct, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, // // qlimit // 0, (PWSTR)g_pszArg1QuotaQLimit, ID_ARG2_NULL, NULL, ARG_TYPE_BOOL, ARG_FLAG_OPTIONAL, 0, 0, NULL, ARG_TERMINATOR, }; //+------------------------------------------------------------------------- // Attributes //-------------------------------------------------------------------------- // // User Quota Entries // DSGET_ATTR_TABLE_ENTRY qlimitUserEntry = { g_pszArg1UserQLimit, (PWSTR)g_pszAttrmsDSQuotaEffective, eUserQLimit, 0, DisplayQuotaInfoFunc }; DSGET_ATTR_TABLE_ENTRY quotaUsedUserEntry = { g_pszArg1UserQuotaUsed, (PWSTR)g_pszAttrmsDSQuotaUsed, eUserQuotaUsed, 0, DisplayQuotaInfoFunc }; // // Group Quota Entries // DSGET_ATTR_TABLE_ENTRY qlimitGroupEntry = { g_pszArg1GroupQLimit, (PWSTR)g_pszAttrmsDSQuotaEffective, eGroupQLimit, 0, DisplayQuotaInfoFunc }; DSGET_ATTR_TABLE_ENTRY quotaUsedGroupEntry = { g_pszArg1GroupQuotaUsed, (PWSTR)g_pszAttrmsDSQuotaUsed, eGroupQuotaUsed, 0, DisplayQuotaInfoFunc }; // // Description // DSGET_ATTR_TABLE_ENTRY descriptionEntry = { c_sz_arg1_com_description, L"description", eCommDescription, 0, CommonDisplayStringFunc, }; // // SamID // DSGET_ATTR_TABLE_ENTRY UserSAMEntry = { g_pszArg1UserSAMID, L"sAMAccountName", eUserSamID, 0, CommonDisplayStringFunc, }; // // SamID // DSGET_ATTR_TABLE_ENTRY ComputerSAMEntry = { g_pszArg1ComputerSAMID, L"sAMAccountName", eComputerSamID, 0, CommonDisplayStringFunc, }; // // SID // DSGET_ATTR_TABLE_ENTRY UserSIDEntry = { g_pszArg1UserSID, L"objectSID", eUserSID, 0, CommonDisplayStringFunc, }; // // SID // DSGET_ATTR_TABLE_ENTRY ComputerSIDEntry = { g_pszArg1ComputerSID, L"objectSID", eComputerSID, 0, CommonDisplayStringFunc, }; // // SID // DSGET_ATTR_TABLE_ENTRY GroupSIDEntry = { g_pszArg1GroupSID, L"objectSID", eGroupSID, 0, CommonDisplayStringFunc, }; // // UPN // DSGET_ATTR_TABLE_ENTRY UserUPNEntry = { g_pszArg1UserUPN, L"userPrincipalName", eUserUpn, 0, CommonDisplayStringFunc, }; // // First name // DSGET_ATTR_TABLE_ENTRY firstNameUserEntry = { g_pszArg1UserFirstName, L"givenName", eUserFn, 0, CommonDisplayStringFunc, }; DSGET_ATTR_TABLE_ENTRY firstNameContactEntry = { g_pszArg1UserFirstName, L"givenName", eContactFn, 0, CommonDisplayStringFunc, }; // // Middle Initial // DSGET_ATTR_TABLE_ENTRY middleInitialUserEntry = { g_pszArg1UserMiddleInitial, L"initials", eUserMi, 0, CommonDisplayStringFunc, }; DSGET_ATTR_TABLE_ENTRY middleInitialContactEntry = { g_pszArg1UserMiddleInitial, L"initials", eContactMi, 0, CommonDisplayStringFunc, }; // // Last name // DSGET_ATTR_TABLE_ENTRY lastNameUserEntry = { g_pszArg1UserLastName, L"sn", eUserLn, 0, CommonDisplayStringFunc, }; DSGET_ATTR_TABLE_ENTRY lastNameContactEntry = { g_pszArg1UserLastName, L"sn", eContactLn, 0, CommonDisplayStringFunc, }; // // Display name // DSGET_ATTR_TABLE_ENTRY displayNameUserEntry = { g_pszArg1UserDisplayName, L"displayName", eUserDisplay, 0, CommonDisplayStringFunc, }; // // Employee ID // DSGET_ATTR_TABLE_ENTRY employeeIDUserEntry = { g_pszArg1UserEmployeeID, L"employeeID", eUserEmpID, 0, CommonDisplayStringFunc, }; DSGET_ATTR_TABLE_ENTRY displayNameContactEntry = { g_pszArg1UserDisplayName, L"displayName", eContactDisplay, 0, CommonDisplayStringFunc, }; // // Office // DSGET_ATTR_TABLE_ENTRY officeUserEntry = { g_pszArg1UserOffice, L"physicalDeliveryOfficeName", eUserOffice, 0, CommonDisplayStringFunc, }; DSGET_ATTR_TABLE_ENTRY officeContactEntry = { g_pszArg1UserOffice, L"physicalDeliveryOfficeName", eContactOffice, 0, CommonDisplayStringFunc, }; // // Telephone // DSGET_ATTR_TABLE_ENTRY telephoneUserEntry = { g_pszArg1UserTelephone, L"telephoneNumber", eUserTel, 0, CommonDisplayStringFunc, }; DSGET_ATTR_TABLE_ENTRY telephoneContactEntry = { g_pszArg1UserTelephone, L"telephoneNumber", eContactTel, 0, CommonDisplayStringFunc, }; // // Email // DSGET_ATTR_TABLE_ENTRY emailUserEntry = { g_pszArg1UserEmail, L"mail", eUserEmail, 0, CommonDisplayStringFunc, }; DSGET_ATTR_TABLE_ENTRY emailContactEntry = { g_pszArg1UserEmail, L"mail", eContactEmail, 0, CommonDisplayStringFunc, }; // // Home Telephone // DSGET_ATTR_TABLE_ENTRY homeTelephoneUserEntry = { g_pszArg1UserHomeTelephone, L"homePhone", eUserHometel, 0, CommonDisplayStringFunc, }; DSGET_ATTR_TABLE_ENTRY homeTelephoneContactEntry = { g_pszArg1UserHomeTelephone, L"homePhone", eContactHometel, 0, CommonDisplayStringFunc, }; // // Pager // DSGET_ATTR_TABLE_ENTRY pagerUserEntry = { g_pszArg1UserPagerNumber, L"pager", eUserPager, 0, CommonDisplayStringFunc, }; DSGET_ATTR_TABLE_ENTRY pagerContactEntry = { g_pszArg1UserPagerNumber, L"pager", eContactPager, 0, CommonDisplayStringFunc, }; // // Mobile phone // DSGET_ATTR_TABLE_ENTRY mobileUserEntry = { g_pszArg1UserMobileNumber, L"mobile", eUserMobile, 0, CommonDisplayStringFunc, }; DSGET_ATTR_TABLE_ENTRY mobileContactEntry = { g_pszArg1UserMobileNumber, L"mobile", eContactMobile, 0, CommonDisplayStringFunc, }; // // Fax // DSGET_ATTR_TABLE_ENTRY faxUserEntry = { g_pszArg1UserFaxNumber, L"facsimileTelephoneNumber", eUserFax, 0, CommonDisplayStringFunc, }; DSGET_ATTR_TABLE_ENTRY faxContactEntry = { g_pszArg1UserFaxNumber, L"facsimileTelephoneNumber", eContactFax, 0, CommonDisplayStringFunc, }; // // IP phone # // DSGET_ATTR_TABLE_ENTRY ipPhoneUserEntry = { g_pszArg1UserIPTel, L"ipPhone", eUserIPTel, 0, CommonDisplayStringFunc, }; DSGET_ATTR_TABLE_ENTRY ipPhoneContactEntry = { g_pszArg1UserIPTel, L"ipPhone", eContactIPTel, 0, CommonDisplayStringFunc, }; // // Web Page // DSGET_ATTR_TABLE_ENTRY webPageUserEntry = { g_pszArg1UserWebPage, L"wWWHomePage", eUserWebPage, 0, CommonDisplayStringFunc, }; // // Title // DSGET_ATTR_TABLE_ENTRY titleUserEntry = { g_pszArg1UserTitle, L"title", eUserTitle, 0, CommonDisplayStringFunc, }; DSGET_ATTR_TABLE_ENTRY titleContactEntry = { g_pszArg1UserTitle, L"title", eContactTitle, 0, CommonDisplayStringFunc, }; // // Department // DSGET_ATTR_TABLE_ENTRY departmentUserEntry = { g_pszArg1UserDepartment, L"department", eUserDept, 0, CommonDisplayStringFunc, }; DSGET_ATTR_TABLE_ENTRY departmentContactEntry = { g_pszArg1UserDepartment, L"department", eContactDept, 0, CommonDisplayStringFunc, }; // // Company // DSGET_ATTR_TABLE_ENTRY companyUserEntry = { g_pszArg1UserCompany, L"company", eUserCompany, 0, CommonDisplayStringFunc, }; DSGET_ATTR_TABLE_ENTRY companyContactEntry = { g_pszArg1UserCompany, L"company", eContactCompany, 0, CommonDisplayStringFunc, }; // // Manager // DSGET_ATTR_TABLE_ENTRY managerUserEntry = { g_pszArg1UserManager, L"manager", eUserManager, DSGET_OUTPUT_DN_FLAG, CommonDisplayStringFunc, }; // // Home directory // DSGET_ATTR_TABLE_ENTRY homeDirectoryUserEntry = { g_pszArg1UserHomeDirectory, L"homeDirectory", eUserHomeDirectory, 0, CommonDisplayStringFunc, }; // // Home drive // DSGET_ATTR_TABLE_ENTRY homeDriveUserEntry = { g_pszArg1UserHomeDrive, L"homeDrive", eUserHomeDrive, 0, CommonDisplayStringFunc, }; // // Profile path // DSGET_ATTR_TABLE_ENTRY profilePathUserEntry = { g_pszArg1UserProfile, L"profilePath", eUserProfilePath, 0, CommonDisplayStringFunc, }; // // Logon script // DSGET_ATTR_TABLE_ENTRY logonScriptUserEntry = { g_pszArg1UserLogonScript, L"scriptPath", eUserLogonScript, 0, CommonDisplayStringFunc, }; // // pwdLastSet // DSGET_ATTR_TABLE_ENTRY mustChangePwdUserEntry = { g_pszArg1UserMustChangePwd, L"pwdLastSet", eUserMustchpwd, 0, DisplayMustChangePassword, }; // // user account control // DSGET_ATTR_TABLE_ENTRY disableUserEntry = { g_pszArg1UserDisableAccount, L"userAccountControl", eUserDisabled, 0, DisplayAccountDisabled }; DSGET_ATTR_TABLE_ENTRY disableComputerEntry = { g_pszArg1ComputerDisableAccount, L"userAccountControl", eComputerDisabled, 0, DisplayAccountDisabled }; DSGET_ATTR_TABLE_ENTRY pwdNeverExpiresUserEntry = { g_pszArg1UserPwdNeverExpires, L"userAccountControl", eUserPwdneverexpires, 0, DisplayPasswordNeverExpires }; DSGET_ATTR_TABLE_ENTRY reverisblePwdUserEntry = { g_pszArg1UserReversiblePwd, L"userAccountControl", eUserReversiblePwd, 0, DisplayReversiblePassword }; // // Account expires // DSGET_ATTR_TABLE_ENTRY accountExpiresUserEntry = { g_pszArg1UserAcctExpires, L"accountExpires", eUserAcctExpires, 0, DisplayAccountExpires, }; // // SAM Account Name // DSGET_ATTR_TABLE_ENTRY samNameGroupEntry = { g_pszArg1GroupSamid, L"sAMAccountName", eGroupSamname, 0, CommonDisplayStringFunc, }; // // Group Type // DSGET_ATTR_TABLE_ENTRY groupScopeTypeEntry = { g_pszArg1GroupScope, L"groupType", eGroupScope, 0, DisplayGroupScope }; DSGET_ATTR_TABLE_ENTRY groupSecurityTypeEntry = { g_pszArg1GroupSecGrp, L"groupType", eGroupSecgrp, 0, DisplayGroupSecurityEnabled }; // // Group Members // DSGET_ATTR_TABLE_ENTRY membersGroupEntry = { g_pszArg1GroupMembers, L"member", eGroupMembers, DSGET_OUTPUT_DN_FLAG, DisplayGroupMembers }; // // MemberOf // DSGET_ATTR_TABLE_ENTRY memberOfUserEntry = { L"Member of", L"memberOf", eUserMemberOf, DSGET_OUTPUT_DN_FLAG, DisplayUserMemberOf }; DSGET_ATTR_TABLE_ENTRY memberOfComputerEntry = { g_pszArg1UserMemberOf, L"memberOf", eComputerMemberOf, DSGET_OUTPUT_DN_FLAG, DisplayComputerMemberOf }; DSGET_ATTR_TABLE_ENTRY memberOfGroupEntry = { g_pszArg1GroupMemberOf, L"memberOf", eGroupMemberOf, DSGET_OUTPUT_DN_FLAG, DisplayGroupMemberOf }; // // User Can Change Password // DSGET_ATTR_TABLE_ENTRY canChangePwdUserEntry = { g_pszArg1UserCanChangePwd, NULL, eUserCanchpwd, 0, DisplayCanChangePassword }; // // Server entries // DSGET_ATTR_TABLE_ENTRY dnsNameServerEntry = { g_pszArg1ServerDnsName, L"dnsHostName", eServerDnsName, 0, CommonDisplayStringFunc }; DSGET_ATTR_TABLE_ENTRY siteServerEntry = { g_pszArg1ServerSite, NULL, eServerSite, 0, DisplayGrandparentRDN }; DSGET_ATTR_TABLE_ENTRY isGCServerEntry = { g_pszArg1ServerIsGC, NULL, eServerIsGC, 0, IsServerGCDisplay }; DSGET_ATTR_TABLE_ENTRY topObjOwnerServerEntry = { NULL, L"msDS-TopQuotaUsage", eServerTopObjOwner, DSGET_OUTPUT_DN_FLAG, DisplayTopObjOwner }; DSGET_ATTR_TABLE_ENTRY partServerEntry = { g_pszArg1ServerPart, NULL, eServerPart, DSGET_OUTPUT_DN_FLAG, DisplayPartitions }; // // Site entries // DSGET_ATTR_TABLE_ENTRY autoTopSiteEntry = { g_pszArg1SiteAutotopology, NULL, eSiteAutoTop, 0, IsAutotopologyEnabledSite }; DSGET_ATTR_TABLE_ENTRY cacheGroupsSiteEntry = { g_pszArg1SiteCacheGroups, NULL, eSiteCacheGroups, 0, IsCacheGroupsEnabledSite }; DSGET_ATTR_TABLE_ENTRY prefGCSiteEntry = { g_pszArg1SitePrefGCSite, NULL, eSitePrefGC, 0, DisplayPreferredGC }; // Computer entries DSGET_ATTR_TABLE_ENTRY locComputerEntry = { g_pszArg1ComputerLoc, L"location", eComputerLoc, 0, CommonDisplayStringFunc }; DSGET_ATTR_TABLE_ENTRY qlimitComputerEntry = { g_pszArg1ComputerQLimit, (PWSTR)g_pszAttrmsDSQuotaEffective, eComputerQLimit, 0, DisplayQuotaInfoFunc }; DSGET_ATTR_TABLE_ENTRY quotaUsedComputerEntry = { g_pszArg1ComputerQuotaUsed, (PWSTR)g_pszAttrmsDSQuotaUsed, eComputerQuotaUsed, 0, DisplayQuotaInfoFunc }; // // Subnet entries // DSGET_ATTR_TABLE_ENTRY locSubnetEntry = { g_pszArg1SubnetLocation, L"location", eSubnetLocation, 0, CommonDisplayStringFunc }; DSGET_ATTR_TABLE_ENTRY siteSubnetEntry = { g_pszArg1SubnetSite, L"siteObject", eSubnetSite, 0, DisplayObjectAttributeAsRDN }; // // partition entries // DSGET_ATTR_TABLE_ENTRY QDefaultPartitionEntry = { g_pszArg1PartitionQDefault, L"msDS-DefaultQuota", ePartitionQDefault, 0, CommonDisplayStringFunc }; DSGET_ATTR_TABLE_ENTRY qTombstoneWeightPartitionEntry = { g_pszArg1PartitionQTombstoneWeight, L"msDS-TombstoneQuotaFactor", ePartitionQTombstoneWeight, 0, CommonDisplayStringFunc }; DSGET_ATTR_TABLE_ENTRY topObjOwnerPartitionEntry = { NULL, L"msDS-TopQuotaUsage", ePartitionTopObjOwner, DSGET_OUTPUT_DN_FLAG, DisplayTopObjOwner }; // // quota entries // DSGET_ATTR_TABLE_ENTRY acctQuotaEntry = { g_pszArg1QuotaAcct, L"msDS-QuotaTrustee", eQuotaAcct, 0, DisplayUserFromSidFunc }; DSGET_ATTR_TABLE_ENTRY qlimitQuotaEntry = { g_pszArg1QuotaQLimit, L"msDS-QuotaAmount", eQuotaQLimit, 0, CommonDisplayStringFunc }; // //Attribute Table entries and ObjectTableEntries // // // User // PDSGET_ATTR_TABLE_ENTRY UserAttributeTable[] = { &descriptionEntry, &UserSAMEntry, &UserSIDEntry, &UserUPNEntry, &firstNameUserEntry, &middleInitialUserEntry, &lastNameUserEntry, &displayNameUserEntry, &employeeIDUserEntry, &officeUserEntry, &telephoneUserEntry, &emailUserEntry, &homeTelephoneUserEntry, &pagerUserEntry, &mobileUserEntry, &faxUserEntry, &ipPhoneUserEntry, &webPageUserEntry, &titleUserEntry, &departmentUserEntry, &companyUserEntry, &managerUserEntry, &homeDirectoryUserEntry, &homeDriveUserEntry, &profilePathUserEntry, &logonScriptUserEntry, &mustChangePwdUserEntry, &canChangePwdUserEntry, &reverisblePwdUserEntry, &pwdNeverExpiresUserEntry, &accountExpiresUserEntry, &disableUserEntry, &memberOfUserEntry, //&partUserEntry, &qlimitUserEntry, "aUsedUserEntry, }; DSGetObjectTableEntry g_UserObjectEntry = { L"user", g_pszUser, DSGET_USER_COMMANDS, USAGE_DSGET_USER, sizeof(UserAttributeTable)/sizeof(PDSATTRIBUTETABLEENTRY), UserAttributeTable, }; // // Contact // PDSGET_ATTR_TABLE_ENTRY ContactAttributeTable[] = { &descriptionEntry, &firstNameContactEntry, &middleInitialContactEntry, &lastNameContactEntry, &displayNameContactEntry, &officeContactEntry, &telephoneContactEntry, &emailContactEntry, &homeTelephoneContactEntry, &pagerContactEntry, &mobileContactEntry, &faxContactEntry, &ipPhoneContactEntry, &titleContactEntry, &departmentContactEntry, &companyContactEntry, }; DSGetObjectTableEntry g_ContactObjectEntry = { L"contact", g_pszContact, DSGET_CONTACT_COMMANDS, USAGE_DSGET_CONTACT, sizeof(ContactAttributeTable)/sizeof(PDSATTRIBUTETABLEENTRY), ContactAttributeTable, }; // // Computer // PDSGET_ATTR_TABLE_ENTRY ComputerAttributeTable[] = { &descriptionEntry, &ComputerSAMEntry, &ComputerSIDEntry, &locComputerEntry, &disableComputerEntry, &memberOfComputerEntry, //&partComputerEntry, &qlimitComputerEntry, "aUsedComputerEntry, }; DSGetObjectTableEntry g_ComputerObjectEntry = { L"computer", g_pszComputer, DSGET_COMPUTER_COMMANDS, USAGE_DSGET_COMPUTER, sizeof(ComputerAttributeTable)/sizeof(PDSATTRIBUTETABLEENTRY), ComputerAttributeTable, }; // // Group // PDSGET_ATTR_TABLE_ENTRY GroupAttributeTable[] = { &descriptionEntry, &samNameGroupEntry, &GroupSIDEntry, &groupScopeTypeEntry, &groupSecurityTypeEntry, &memberOfGroupEntry, &membersGroupEntry, //&partGroupEntry, &qlimitGroupEntry, "aUsedGroupEntry, }; DSGetObjectTableEntry g_GroupObjectEntry = { L"group", g_pszGroup, DSGET_GROUP_COMMANDS, USAGE_DSGET_GROUP, sizeof(GroupAttributeTable)/sizeof(PDSATTRIBUTETABLEENTRY), GroupAttributeTable, }; // // OU // PDSGET_ATTR_TABLE_ENTRY OUAttributeTable[] = { &descriptionEntry }; DSGetObjectTableEntry g_OUObjectEntry = { L"ou", g_pszOU, NULL, USAGE_DSGET_OU, sizeof(OUAttributeTable)/sizeof(PDSATTRIBUTETABLEENTRY), OUAttributeTable, }; // // Server // PDSGET_ATTR_TABLE_ENTRY ServerAttributeTable[] = { &descriptionEntry, &dnsNameServerEntry, &siteServerEntry, &isGCServerEntry, &topObjOwnerServerEntry, &partServerEntry }; DSGetObjectTableEntry g_ServerObjectEntry = { L"server", g_pszServer, DSGET_SERVER_COMMANDS, USAGE_DSGET_SERVER, sizeof(ServerAttributeTable)/sizeof(PDSATTRIBUTETABLEENTRY), ServerAttributeTable, }; // // Site // PDSGET_ATTR_TABLE_ENTRY SiteAttributeTable[] = { &descriptionEntry, &autoTopSiteEntry, &cacheGroupsSiteEntry, &prefGCSiteEntry }; DSGetObjectTableEntry g_SiteObjectEntry = { L"site", g_pszSite, DSGET_SITE_COMMANDS, USAGE_DSGET_SITE, sizeof(SiteAttributeTable)/sizeof(PDSATTRIBUTETABLEENTRY), SiteAttributeTable, }; // // Subnet // PDSGET_ATTR_TABLE_ENTRY SubnetAttributeTable[] = { &descriptionEntry, &locSubnetEntry, &siteSubnetEntry }; DSGetObjectTableEntry g_SubnetObjectEntry = { L"subnet", g_pszSubnet, DSGET_SUBNET_COMMANDS, USAGE_DSGET_SUBNET, sizeof(SubnetAttributeTable)/sizeof(PDSATTRIBUTETABLEENTRY), SubnetAttributeTable, }; // // partition // PDSGET_ATTR_TABLE_ENTRY PartitionAttributeTable[] = { &QDefaultPartitionEntry, &qTombstoneWeightPartitionEntry, &topObjOwnerPartitionEntry, }; DSGetObjectTableEntry g_PartitionObjectEntry = { L"msDS-QuotaContainer", g_pszPartition, DSGET_PARTITION_COMMANDS, USAGE_DSGET_PARTITION, sizeof(PartitionAttributeTable)/sizeof(PDSATTRIBUTETABLEENTRY), PartitionAttributeTable, }; // // quota // PDSGET_ATTR_TABLE_ENTRY QuotaAttributeTable[] = { &descriptionEntry, &acctQuotaEntry, &qlimitQuotaEntry, }; DSGetObjectTableEntry g_QuotaObjectEntry = { L"msDS-QuotaControl", g_pszQuota, DSGET_QUOTA_COMMANDS, USAGE_DSGET_QUOTA, sizeof(QuotaAttributeTable)/sizeof(PDSATTRIBUTETABLEENTRY), QuotaAttributeTable, }; //+------------------------------------------------------------------------- // Object Table //-------------------------------------------------------------------------- PDSGetObjectTableEntry g_DSObjectTable[] = { &g_OUObjectEntry, &g_UserObjectEntry, &g_ContactObjectEntry, &g_ComputerObjectEntry, &g_GroupObjectEntry, &g_ServerObjectEntry, &g_SiteObjectEntry, &g_SubnetObjectEntry, &g_PartitionObjectEntry, &g_QuotaObjectEntry, NULL }; // //Usage Table // UINT USAGE_DSGET[] = { USAGE_DSGET_DESCRIPTION, USAGE_DSGET_REMARKS, USAGE_DSGET_EXAMPLES, USAGE_END, }; UINT USAGE_DSGET_USER[] = { USAGE_DSGET_USER_DESCRIPTION, USAGE_DSGET_USER_SYNTAX, USAGE_DSGET_USER_PARAMETERS, USAGE_DSGET_USER_REMARKS, USAGE_DSGET_USER_EXAMPLES, USAGE_END, }; UINT USAGE_DSGET_CONTACT[] = { USAGE_DSGET_CONTACT_DESCRIPTION, USAGE_DSGET_CONTACT_SYNTAX, USAGE_DSGET_CONTACT_PARAMETERS, USAGE_DSGET_CONTACT_REMARKS, USAGE_DSGET_CONTACT_EXAMPLES, USAGE_DSGET_CONTACT_SEE_ALSO, USAGE_END, }; UINT USAGE_DSGET_COMPUTER[] = { USAGE_DSGET_COMPUTER_DESCRIPTION, USAGE_DSGET_COMPUTER_SYNTAX, USAGE_DSGET_COMPUTER_PARAMETERS, USAGE_DSGET_COMPUTER_REMARKS, USAGE_DSGET_COMPUTER_EXAMPLES, USAGE_DSGET_COMPUTER_SEE_ALSO, USAGE_END, }; UINT USAGE_DSGET_GROUP[] = { USAGE_DSGET_GROUP_DESCRIPTION, USAGE_DSGET_GROUP_SYNTAX, USAGE_DSGET_GROUP_PARAMETERS, USAGE_DSGET_GROUP_REMARKS, USAGE_DSGET_GROUP_EXAMPLES, USAGE_DSGET_GROUP_SEE_ALSO, USAGE_END, }; UINT USAGE_DSGET_OU[] = { USAGE_DSGET_OU_DESCRIPTION, USAGE_DSGET_OU_SYNTAX, USAGE_DSGET_OU_PARAMETERS, USAGE_DSGET_OU_REMARKS, USAGE_DSGET_OU_EXAMPLES, USAGE_DSGET_OU_SEE_ALSO, USAGE_END, }; UINT USAGE_DSGET_SERVER[] = { USAGE_DSGET_SERVER_DESCRIPTION, USAGE_DSGET_SERVER_SYNTAX, USAGE_DSGET_SERVER_PARAMETERS, USAGE_DSGET_SERVER_REMARKS, USAGE_DSGET_SERVER_EXAMPLES, USAGE_DSGET_SERVER_SEE_ALSO, USAGE_END, }; UINT USAGE_DSGET_SITE[] = { USAGE_DSGET_SITE_DESCRIPTION, USAGE_DSGET_SITE_SYNTAX, USAGE_DSGET_SITE_PARAMETERS, USAGE_DSGET_SITE_REMARKS, USAGE_DSGET_SITE_EXAMPLES, USAGE_DSGET_SITE_SEE_ALSO, USAGE_END, }; UINT USAGE_DSGET_SUBNET[] = { USAGE_DSGET_SUBNET_DESCRIPTION, USAGE_DSGET_SUBNET_SYNTAX, USAGE_DSGET_SUBNET_PARAMETERS, USAGE_DSGET_SUBNET_REMARKS, USAGE_DSGET_SUBNET_EXAMPLES, USAGE_DSGET_SUBNET_SEE_ALSO, USAGE_END, }; UINT USAGE_DSGET_PARTITION[] = { USAGE_DSGET_PARTITION_DESCRIPTION, USAGE_DSGET_PARTITION_SYNTAX, USAGE_DSGET_PARTITION_PARAMETERS, USAGE_DSGET_PARTITION_REMARKS, USAGE_DSGET_PARTITION_EXAMPLES, USAGE_DSGET_PARTITION_SEE_ALSO, USAGE_END, }; UINT USAGE_DSGET_QUOTA[] = { USAGE_DSGET_QUOTA_DESCRIPTION, USAGE_DSGET_QUOTA_SYNTAX, USAGE_DSGET_QUOTA_PARAMETERS, USAGE_DSGET_QUOTA_REMARKS, USAGE_DSGET_QUOTA_EXAMPLES, USAGE_DSGET_QUOTA_SEE_ALSO, USAGE_END, };