<para>
The IDMAP dump file can be restored using the following command:
<screen>
-net idmap restore <full_path_and_tdb_filename> < dumpfile.txt
+net idmap restore idmap_dump.txt
</screen>
Where the Samba run-time tdb files are stored in the <filename>/var/lib/samba</filename> directory
the following command can be used to restore the data to the tdb file:
developer="1"
xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
<description>
- <para>This option allows you to control what
- address Samba will listen for connections on. This is used to
- support multiple virtual interfaces on the one server, each
+ <para>This option allows you to control what
+ address Samba will listen for connections on. This is used to
+ support multiple virtual interfaces on the one server, each
with a different configuration.</para>
-
- <para>By default Samba will accept connections on any
+ <para>Setting this option should never be necessary on usual Samba
+ servers running only one nmbd.</para>
+
+ <para>By default Samba will accept connections on any
address.</para>
</description>
--- /dev/null
+<samba:parameter name="access based share enum"
+ type="boolean"
+ context="S"
+ basic="1" advanced="1" developer="1"
+ xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
+ <synonym>public</synonym>
+ <description>
+ <para>If this parameter is <constant>yes</constant> for a
+ service, then the share hosted by the service will only be visible
+ to users who have read or write access to the share during share
+ enumeration (for example net view \\sambaserver). This has
+ parallels to access based enumeration, the main difference being
+ that only share permissions are evaluated, and security
+ descriptors on files contained on the share are not used in
+ computing enumeration access rights.</para>
+ </description>
+ <value type="default">no</value>
+</samba:parameter>
* Are two sockaddr 's the same family and address ? Ignore port etc.
*/
-bool addr_equal(const struct sockaddr *ip1,
+bool sockaddr_equal(const struct sockaddr *ip1,
const struct sockaddr *ip2)
{
if (ip1->sa_family != ip2->sa_family) {
-[
+import "srvsvc.idl";
+
+[
uuid("6bffd098-a112-3610-9833-012892020162"),
version(0.0),
helpstring("Browsing"),
{
/******************/
/* Function 0x00 */
- [todo] NTSTATUS BrowserrServerEnum();
+ [todo] void BrowserrServerEnum();
/******************/
/* Function 0x01 */
- [todo] NTSTATUS BrowserrDebugCall();
+ [todo] void BrowserrDebugCall();
/******************/
/* Function 0x02 */
- [todo] NTSTATUS BrowserrQueryOtherDomains();
+
+ typedef struct {
+ uint32 entries_read;
+ [size_is(entries_read)] srvsvc_NetSrvInfo100 *entries;
+ } BrowserrSrvInfo100Ctr;
+
+ typedef struct {
+ uint32 entries_read;
+ [size_is(entries_read)] srvsvc_NetSrvInfo101 *entries;
+ } BrowserrSrvInfo101Ctr;
+
+ typedef [switch_type(uint32)] union {
+ [case(100)] BrowserrSrvInfo100Ctr *info100;
+ [case(101)] BrowserrSrvInfo101Ctr *info101;
+ [default] ;
+ } BrowserrSrvInfoUnion;
+
+ typedef struct {
+ uint32 level;
+ [switch_is(level)] BrowserrSrvInfoUnion info;
+ } BrowserrSrvInfo;
+
+ WERROR BrowserrQueryOtherDomains(
+ [in,unique] [string,charset(UTF16)] uint16 *server_unc,
+ [in,out,ref] BrowserrSrvInfo *info,
+ [out,ref] uint32 *total_entries
+ );
/******************/
/* Function 0x03 */
- [todo] NTSTATUS BrowserrResetNetlogonState();
+ [todo] void BrowserrResetNetlogonState();
/******************/
/* Function 0x04 */
- [todo] NTSTATUS BrowserrDebugTrace();
+ [todo] void BrowserrDebugTrace();
/******************/
/* Function 0x05 */
- [todo] NTSTATUS BrowserrQueryStatistics();
+ [todo] void BrowserrQueryStatistics();
/******************/
/* Function 0x06 */
- [todo] NTSTATUS BrowserResetStatistics();
+ [todo] void BrowserResetStatistics();
/******************/
/* Function 0x07 */
- [todo] NTSTATUS NetrBrowserStatisticsClear();
+ [todo] void NetrBrowserStatisticsClear();
/******************/
/* Function 0x08 */
- [todo] NTSTATUS NetrBrowserStatisticsGet();
+ [todo] void NetrBrowserStatisticsGet();
/******************/
/* Function 0x09 */
- [todo] NTSTATUS BrowserrSetNetlogonState();
+ [todo] void BrowserrSetNetlogonState();
/******************/
/* Function 0x0a */
- [todo] NTSTATUS BrowserrQueryEmulatedDomains();
+ [todo] void BrowserrQueryEmulatedDomains();
/******************/
/* Function 0x0b */
- [todo] NTSTATUS BrowserrServerEnumEx();
+ [todo] void BrowserrServerEnumEx();
}
typedef bitmap security_secinfo security_secinfo;
typedef bitmap kerb_EncTypes kerb_EncTypes;
- typedef [public,noejs] struct {
+ typedef [public] struct {
[value(2*strlen_m(string))] uint16 length;
[value(2*strlen_m(string))] uint16 size;
[charset(UTF16),size_is(size/2),length_is(length/2)] uint16 *string;
]
interface misc
{
- typedef [public,noprint,gensize,noejs] struct {
+ typedef [public,noprint,gensize] struct {
uint32 time_low;
uint16 time_mid;
uint16 time_hi_and_version;
/****************/
/* Function 0x2e */
- [todo] WERROR netr_NETRSERVERGETTRUSTINFO();
+
+ typedef struct {
+ uint32 count;
+ [size_is(count)] uint32 *data;
+ uint32 entry_count;
+ [size_is(count)] lsa_String *entries;
+ } netr_TrustInfo;
+
+ NTSTATUS netr_ServerGetTrustInfo(
+ [in,unique] [string,charset(UTF16)] uint16 *server_name,
+ [in,ref] [string,charset(UTF16)] uint16 *account_name,
+ [in] netr_SchannelType secure_channel_type,
+ [in,ref] [string,charset(UTF16)] uint16 *computer_name,
+ [in,ref] netr_Authenticator *credential,
+ [out,ref] netr_Authenticator *return_authenticator,
+ [out,ref] samr_Password *new_owf_password,
+ [out,ref] samr_Password *old_owf_password,
+ [out,ref] netr_TrustInfo **trust_info
+ );
}
typedef struct {
hyper sequence_num;
NTTIME domain_create_time;
- uint32 unknown1;
- uint32 unknown2;
+ hyper modified_count_at_last_promotion;
} samr_DomInfo13;
typedef [switch_type(uint16)] union {
} samr_Password;
typedef struct {
- samr_Password lm_pwd;
samr_Password nt_pwd;
- boolean8 lm_pwd_active;
+ samr_Password lm_pwd;
boolean8 nt_pwd_active;
+ boolean8 lm_pwd_active;
+ uint8 password_expired;
} samr_UserInfo18;
typedef struct {
SAMR_FIELD_PARAMETERS = 0x00200000,
SAMR_FIELD_COUNTRY_CODE = 0x00400000,
SAMR_FIELD_CODE_PAGE = 0x00800000,
- SAMR_FIELD_PASSWORD = 0x01000000, /* either of these */
- SAMR_FIELD_PASSWORD2 = 0x02000000, /* two bits seems to work */
+ SAMR_FIELD_NT_PASSWORD_PRESENT = 0x01000000, /* either of these */
+ SAMR_FIELD_LM_PASSWORD_PRESENT = 0x02000000, /* two bits seems to work */
SAMR_FIELD_PRIVATE_DATA = 0x04000000,
SAMR_FIELD_EXPIRED_FLAG = 0x08000000,
SAMR_FIELD_SEC_DESC = 0x10000000,
lsa_String workstations;
lsa_String comment;
lsa_BinaryString parameters;
- lsa_String unknown1;
- lsa_String unknown2;
+ lsa_BinaryString lm_owf_password;
+ lsa_BinaryString nt_owf_password;
lsa_String unknown3;
uint32 buf_count;
[size_is(buf_count)] uint8 *buffer;
uint16 logon_count;
uint16 country_code;
uint16 code_page;
- uint8 nt_password_set;
uint8 lm_password_set;
+ uint8 nt_password_set;
uint8 password_expired;
uint8 unknown4;
} samr_UserInfo21;
import "misc.idl";
import "dom_sid.idl";
+/*
+ use the same structure for dom_sid2 as dom_sid. A dom_sid2 is really
+ just a dom sid, but with the sub_auths represented as a conformant
+ array. As with all in-structure conformant arrays, the array length
+ is placed before the start of the structure. That's what gives rise
+ to the extra num_auths elemenent. We don't want the Samba code to
+ have to bother with such esoteric NDR details, so its easier to just
+ define it as a dom_sid and use pidl magic to make it all work. It
+ just means you need to mark a sid as a "dom_sid2" in the IDL when you
+ know it is of the conformant array variety
+*/
+cpp_quote("#define dom_sid2 dom_sid")
+
+/* same struct as dom_sid but inside a 28 bytes fixed buffer in NDR */
+cpp_quote("#define dom_sid28 dom_sid")
+
+/* same struct as dom_sid but in a variable byte buffer, which is maybe empty in NDR */
+cpp_quote("#define dom_sid0 dom_sid")
+
[
helper("librpc/gen_ndr/ndr_dom_sid.h"),
+ pyhelper("librpc/ndr/py_security.c"),
pointer_default(unique)
]
interface security
{
+
+ typedef [public,gensize,noprint,nosize,nopull,nopush] struct {
+ uint8 sid_rev_num; /**< SID revision number */
+ [range(0,15)] int8 num_auths; /**< Number of sub-authorities */
+ uint8 id_auth[6]; /**< Identifier Authority */
+ uint32 sub_auths[15];
+ } dom_sid;
/*
access masks are divided up like this:
0xabccdddd
KERB_ENCTYPE_AES128_CTS_HMAC_SHA1_96 = 0x00000008,
KERB_ENCTYPE_AES256_CTS_HMAC_SHA1_96 = 0x00000010
} kerb_EncTypes;
+
}
PLATFORM_ID_VMS = 700
} srvsvc_PlatformId;
- typedef struct {
+ typedef [public] struct {
srvsvc_PlatformId platform_id;
[string,charset(UTF16)] uint16 *server_name;
} srvsvc_NetSrvInfo100;
- typedef struct {
+ typedef [public] struct {
srvsvc_PlatformId platform_id;
[string,charset(UTF16)] uint16 *server_name;
uint32 version_major;
REG_QWORD = 11
} winreg_Type;
- typedef [public,noejs] struct {
+ typedef [public] struct {
[value(strlen_m_term(name)*2)] uint16 name_len;
[value(strlen_m_term(name)*2)] uint16 name_size;
[string,charset(UTF16)] uint16 *name;
#include "includes.h"
#include "librpc/gen_ndr/ndr_security.h"
+#if _SAMBA_BUILD_ == 4
+#include "libcli/security/security.h"
+#endif
/*
return the wire size of a security_ace
return ret;
}
+/*
+ return the wire size of a dom_sid
+*/
+size_t ndr_size_dom_sid(const struct dom_sid *sid, int flags)
+{
+ if (!sid) return 0;
+ return 8 + 4*sid->num_auths;
+}
+
+size_t ndr_size_dom_sid28(const struct dom_sid *sid, int flags)
+{
+ struct dom_sid zero_sid;
+
+ if (!sid) return 0;
+
+ ZERO_STRUCT(zero_sid);
+
+ if (memcmp(&zero_sid, sid, sizeof(zero_sid)) == 0) {
+ return 0;
+ }
+
+ return 8 + 4*sid->num_auths;
+}
+
+size_t ndr_size_dom_sid0(const struct dom_sid *sid, int flags)
+{
+ return ndr_size_dom_sid28(sid, flags);
+}
+
+/*
+ print a dom_sid
+*/
+void ndr_print_dom_sid(struct ndr_print *ndr, const char *name, const struct dom_sid *sid)
+{
+ ndr->print(ndr, "%-25s: %s", name, dom_sid_string(ndr, sid));
+}
+
+void ndr_print_dom_sid2(struct ndr_print *ndr, const char *name, const struct dom_sid *sid)
+{
+ ndr_print_dom_sid(ndr, name, sid);
+}
+
+void ndr_print_dom_sid28(struct ndr_print *ndr, const char *name, const struct dom_sid *sid)
+{
+ ndr_print_dom_sid(ndr, name, sid);
+}
+
+void ndr_print_dom_sid0(struct ndr_print *ndr, const char *name, const struct dom_sid *sid)
+{
+ ndr_print_dom_sid(ndr, name, sid);
+}
+
+
+/*
+ parse a dom_sid2 - this is a dom_sid but with an extra copy of the num_auths field
+*/
+enum ndr_err_code ndr_pull_dom_sid2(struct ndr_pull *ndr, int ndr_flags, struct dom_sid *sid)
+{
+ uint32_t num_auths;
+ if (!(ndr_flags & NDR_SCALARS)) {
+ return NDR_ERR_SUCCESS;
+ }
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &num_auths));
+ NDR_CHECK(ndr_pull_dom_sid(ndr, ndr_flags, sid));
+ if (sid->num_auths != num_auths) {
+ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE,
+ "Bad array size %u should exceed %u",
+ num_auths, sid->num_auths);
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+/*
+ parse a dom_sid2 - this is a dom_sid but with an extra copy of the num_auths field
+*/
+enum ndr_err_code ndr_push_dom_sid2(struct ndr_push *ndr, int ndr_flags, const struct dom_sid *sid)
+{
+ if (!(ndr_flags & NDR_SCALARS)) {
+ return NDR_ERR_SUCCESS;
+ }
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sid->num_auths));
+ return ndr_push_dom_sid(ndr, ndr_flags, sid);
+}
+
+/*
+ parse a dom_sid28 - this is a dom_sid in a fixed 28 byte buffer, so we need to ensure there are only upto 5 sub_auth
+*/
+enum ndr_err_code ndr_pull_dom_sid28(struct ndr_pull *ndr, int ndr_flags, struct dom_sid *sid)
+{
+ enum ndr_err_code status;
+ struct ndr_pull *subndr;
+
+ if (!(ndr_flags & NDR_SCALARS)) {
+ return NDR_ERR_SUCCESS;
+ }
+
+ subndr = talloc_zero(ndr, struct ndr_pull);
+ NDR_ERR_HAVE_NO_MEMORY(subndr);
+ subndr->flags = ndr->flags;
+ subndr->current_mem_ctx = ndr->current_mem_ctx;
+
+ subndr->data = ndr->data + ndr->offset;
+ subndr->data_size = 28;
+ subndr->offset = 0;
+
+ NDR_CHECK(ndr_pull_advance(ndr, 28));
+
+ status = ndr_pull_dom_sid(subndr, ndr_flags, sid);
+ if (!NDR_ERR_CODE_IS_SUCCESS(status)) {
+ /* handle a w2k bug which send random data in the buffer */
+ ZERO_STRUCTP(sid);
+ } else if (sid->num_auths == 0 && sid->sub_auths) {
+ ZERO_STRUCT(sid->sub_auths);
+ }
+
+ return NDR_ERR_SUCCESS;
+}
+
+/*
+ push a dom_sid28 - this is a dom_sid in a 28 byte fixed buffer
+*/
+enum ndr_err_code ndr_push_dom_sid28(struct ndr_push *ndr, int ndr_flags, const struct dom_sid *sid)
+{
+ uint32_t old_offset;
+ uint32_t padding;
+
+ if (!(ndr_flags & NDR_SCALARS)) {
+ return NDR_ERR_SUCCESS;
+ }
+
+ if (sid->num_auths > 5) {
+ return ndr_push_error(ndr, NDR_ERR_RANGE,
+ "dom_sid28 allows only upto 5 sub auth [%u]",
+ sid->num_auths);
+ }
+
+ old_offset = ndr->offset;
+ NDR_CHECK(ndr_push_dom_sid(ndr, ndr_flags, sid));
+
+ padding = 28 - (ndr->offset - old_offset);
+
+ if (padding > 0) {
+ NDR_CHECK(ndr_push_zero(ndr, padding));
+ }
+
+ return NDR_ERR_SUCCESS;
+}
+
+/*
+ parse a dom_sid0 - this is a dom_sid in a variable byte buffer, which is maybe empty
+*/
+enum ndr_err_code ndr_pull_dom_sid0(struct ndr_pull *ndr, int ndr_flags, struct dom_sid *sid)
+{
+ if (!(ndr_flags & NDR_SCALARS)) {
+ return NDR_ERR_SUCCESS;
+ }
+
+ if (ndr->data_size == ndr->offset) {
+ ZERO_STRUCTP(sid);
+ return NDR_ERR_SUCCESS;
+ }
+
+ return ndr_pull_dom_sid(ndr, ndr_flags, sid);
+}
+
+/*
+ push a dom_sid0 - this is a dom_sid in a variable byte buffer, which is maybe empty
+*/
+enum ndr_err_code ndr_push_dom_sid0(struct ndr_push *ndr, int ndr_flags, const struct dom_sid *sid)
+{
+ struct dom_sid zero_sid;
+
+ if (!(ndr_flags & NDR_SCALARS)) {
+ return NDR_ERR_SUCCESS;
+ }
+
+ if (!sid) {
+ return NDR_ERR_SUCCESS;
+ }
+
+ ZERO_STRUCT(zero_sid);
+
+ if (memcmp(&zero_sid, sid, sizeof(zero_sid)) == 0) {
+ return NDR_ERR_SUCCESS;
+ }
+
+ return ndr_push_dom_sid(ndr, ndr_flags, sid);
+}
+
+_PUBLIC_ enum ndr_err_code ndr_push_dom_sid(struct ndr_push *ndr, int ndr_flags, const struct dom_sid *r)
+{
+ uint32_t cntr_sub_auths_0;
+ if (ndr_flags & NDR_SCALARS) {
+ NDR_CHECK(ndr_push_align(ndr, 4));
+ NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->sid_rev_num));
+ NDR_CHECK(ndr_push_int8(ndr, NDR_SCALARS, r->num_auths));
+ NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->id_auth, 6));
+ for (cntr_sub_auths_0 = 0; cntr_sub_auths_0 < r->num_auths; cntr_sub_auths_0++) {
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sub_auths[cntr_sub_auths_0]));
+ }
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_pull_dom_sid(struct ndr_pull *ndr, int ndr_flags, struct dom_sid *r)
+{
+ uint32_t cntr_sub_auths_0;
+ if (ndr_flags & NDR_SCALARS) {
+ NDR_CHECK(ndr_pull_align(ndr, 4));
+ NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->sid_rev_num));
+ NDR_CHECK(ndr_pull_int8(ndr, NDR_SCALARS, &r->num_auths));
+ if (r->num_auths < 0 || r->num_auths > 15) {
+ return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
+ }
+ NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->id_auth, 6));
+ for (cntr_sub_auths_0 = 0; cntr_sub_auths_0 < r->num_auths; cntr_sub_auths_0++) {
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sub_auths[cntr_sub_auths_0]));
+ }
+ }
+ return NDR_ERR_SUCCESS;
+}
+#!/bin/sh
case `uname -m` in
- x86_64)
- libdir=/usr/lib64/samba
- ;;
- *)
- libdir=/usr/lib/samba
- ;;
+ x86_64)
+ _libarch=lib64
+ ;;
+ *)
+ _libarch=lib
+ ;;
esac
-CFLAGS="-Wall -g -D_GNU_SOURCE" ./configure \
- --prefix=/usr \
- --localstatedir=/var \
- --with-configdir=/etc/samba \
- --with-libdir=$libdir \
- --with-lockdir=/var/lib/samba \
- --with-logfilebase=/var/log/samba \
- --with-mandir=/usr/man \
- --with-piddir=/var/run \
- --with-privatedir=/etc/samba \
- --with-sambabook=/usr/share/swat/using_samba \
- --with-swatdir=/usr/share/swat \
+_libarchdir=/usr/${_libarch}
+
+_prefix=/usr
+_sysconfdir=/etc
+_mandir=/usr/man
+_datadir=/usr/share
+
+# check for ccache
+ccache -h 2>&1 > /dev/null
+if [ $? -eq 0 ]; then
+ CC="ccache gcc"
+else
+ CC="gcc"
+fi
+
+./autogen.sh
+
+CC="$CC" CFLAGS="-Wall -g -D_GNU_SOURCE" ./configure -C \
+ --prefix=${_prefix} \
+ --localstatedir=/var \
+ --with-configdir=${_sysconfdir}/samba \
+ --with-libdir=${_libarchdir}/samba \
+ --with-pammodulesdir=/${_libarch}/security \
+ --with-lockdir=/var/lib/samba \
+ --with-logfilebase=/var/log/samba \
+ --with-mandir=${_mandir} \
+ --with-piddir=/var/run \
+ --with-privatedir=${_sysconfdir}/samba \
+ --with-sambabook=${_datadir}/swat/using_samba \
+ --with-swatdir=${_datadir}/swat \
--disable-cups \
- --with-acl-support \
+ --with-acl-support \
--with-ads \
- --with-automount \
- --with-fhs \
+ --with-automount \
+ --with-fhs \
--with-pam_smbpass \
--with-libsmbclient \
--with-libsmbsharemodes \
- --without-smbwrapper \
+ --without-smbwrapper \
--with-pam \
--with-quotas \
- --with-shared-modules=idmap_rid,idmap_ad,idmap_tdb2 \
+ --with-shared-modules=idmap_rid,idmap_ad,idmap_tdb2,vfs_gpfs \
--with-syslog \
--with-utmp \
--with-cluster-support \
--without-dnsupdate \
--with-aio-support \
$*
+
+make showlayout
+
DIRNAME=$(dirname $0)
TOPDIR=${DIRNAME}/../..
-SRCDIR=${TOPDIR}/source
-VERSION_H=${SRCDIR}/include/version.h
SPECFILE="samba.spec"
DOCS="docs.tar.bz2"
##
## determine the samba version and create the SPEC file
##
-pushd ${SRCDIR}
-./script/mkversion.sh
-popd
-if [ ! -f ${VERSION_H} ] ; then
- echo "Error creating version.h"
- exit 1
+${DIRNAME}/makespec.sh
+RC=$?
+if [ $RC -ne 0 ]; then
+ exit ${RC}
fi
-VERSION=`grep SAMBA_VERSION_OFFICIAL_STRING ${VERSION_H} | awk '{print $3}'`
-vendor_version=`grep SAMBA_VERSION_VENDOR_SUFFIX ${VERSION_H} | awk '{print $3}'`
-if test "x${vendor_version}" != "x" ; then
- VERSION="${VERSION}-${vendor_version}"
-fi
-VERSION=`echo ${VERSION} | sed 's/-/_/g'`
-VERSION=`echo ${VERSION} | sed 's/\"//g'`
-echo "VERSION: ${VERSION}"
-sed -e s/PVERSION/${VERSION}/g \
- < ${DIRNAME}/${SPECFILE}.tmpl \
- > ${DIRNAME}/${SPECFILE}
+RELEASE=$(grep ^Release ${DIRNAME}/${SPECFILE} | sed -e 's/^Release:\ \+//')
+VERSION=$(grep ^Version ${DIRNAME}/${SPECFILE} | sed -e 's/^Version:\ \+//')
##
## create the tarball
--- /dev/null
+#!/bin/sh
+#
+# Copyright (C) Michael Adam 2008
+#
+# Script to determine the samba version and create the SPEC file from template
+
+DIRNAME=$(dirname $0)
+TOPDIR=${DIRNAME}/../..
+SRCDIR=${TOPDIR}/source
+VERSION_H=${SRCDIR}/include/version.h
+SPECFILE=${DIRNAME}/samba.spec
+
+##
+## determine the samba version and create the SPEC file
+##
+pushd ${SRCDIR}
+./script/mkversion.sh
+popd
+if [ ! -f ${VERSION_H} ] ; then
+ echo "Error creating version.h"
+ exit 1
+fi
+
+VERSION=`grep SAMBA_VERSION_OFFICIAL_STRING ${VERSION_H} | awk '{print $3}'`
+vendor_version=`grep SAMBA_VERSION_VENDOR_SUFFIX ${VERSION_H} | awk '{print
+$3}'`
+if test "x${vendor_version}" != "x" ; then
+ VERSION="${VERSION}-${vendor_version}"
+fi
+VERSION=`echo ${VERSION} | sed 's/-/_/g'`
+VERSION=`echo ${VERSION} | sed 's/\"//g'`
+echo "VERSION: ${VERSION}"
+sed -e s/PVERSION/${VERSION}/g \
+ < ${SPECFILE}.tmpl \
+ > ${SPECFILE}
+
# RPM_OPT_FLAGS="$RPM_OPT_FLAGS -D_FILE_OFFSET_BITS=64"
## check for ccache
-# ccache -h 2>&1 > /dev/null
-#if [ $? -eq 0 ]; then
-# CC="ccache gcc"
-#else
+if ccache -h >/dev/null 2>&1 ; then
+ CC="ccache gcc"
+else
CC="gcc"
-#fi
+fi
## always run autogen.sh
./autogen.sh
--with-configdir=%{_sysconfdir}/samba \
--libdir=%{_libarchdir} \
--with-modulesdir=%{_libarchdir}/samba \
+ --with-pammodulesdir=%{_libarch}/security \
--with-lockdir=/var/lib/samba \
--with-logfilebase=/var/log/samba \
--with-mandir=%{_mandir} \
--without-smbwrapper \
--with-pam \
--with-quotas \
- --with-shared-modules=idmap_rid,idmap_ad,idmap_tdb2 \
+ --with-shared-modules=idmap_rid,idmap_ad,idmap_tdb2,vfs_gpfs \
--with-syslog \
--with-utmp \
--with-cluster-support \
install
cd ..
-# NSS & PAM winbind support
-install -m 755 source/bin/pam_winbind.so $RPM_BUILD_ROOT/%{_libarch}/security/pam_winbind.so
+# NSS winbind support
install -m 755 source/nsswitch/libnss_winbind.so $RPM_BUILD_ROOT/%{_libarch}/libnss_winbind.so.2
( cd $RPM_BUILD_ROOT/%{_libarch};
ln -sf libnss_winbind.so.2 libnss_winbind.so )
#install -m 755 source/nsswitch/libnss_wins.so $RPM_BUILD_ROOT/%{_libarch}/libnss_wins.so
# ( cd $RPM_BUILD_ROOT/%{_libarch}; ln -sf libnss_wins.so libnss_wins.so.2 )
-# Install pam_smbpass.so
-install -m755 source/bin/pam_smbpass.so $RPM_BUILD_ROOT/%{_libarch}/security/pam_smbpass.so
## cleanup
/bin/rm -rf $RPM_BUILD_ROOT/usr/lib*/samba/security
/sbin/mount.cifs
/sbin/umount.cifs
+%{_sbindir}/cifs.upcall
+
%{_bindir}/rpcclient
%{_bindir}/smbcacls
%{_bindir}/findsmb
%{_mandir}/man8/mount.cifs.8.*
%{_mandir}/man8/umount.cifs.8.*
+%{_mandir}/man8/cifs.upcall.8*
%{_mandir}/man8/smbspool.8*
%{_mandir}/man1/smbget.1*
%{_mandir}/man5/smbgetrc.5*
%{_mandir}/man1/ldbedit.1*
%{_mandir}/man1/ldbmodify.1*
%{_mandir}/man1/ldbsearch.1*
-%{_mandir}/man8/cifs.upcall.8*
%ifarch i386 i486 i586 i686 ppc s390
%files winbind-32bit
"nopush" => ["FUNCTION", "TYPEDEF"],
"nopull" => ["FUNCTION", "TYPEDEF"],
"noprint" => ["FUNCTION", "TYPEDEF"],
- "noejs" => ["FUNCTION", "TYPEDEF"],
# union
"switch_is" => ["ELEMENT"],
"endpoint" => ["INTERFACE"],
"pointer_default" => ["INTERFACE"],
"helper" => ["INTERFACE"],
+ "pyhelper" => ["INTERFACE"],
"authservice" => ["INTERFACE"],
"restricted" => ["INTERFACE"],
"nopull" => ["FUNCTION", "TYPEDEF", "STRUCT", "UNION", "ENUM", "BITMAP"],
"nosize" => ["FUNCTION", "TYPEDEF", "STRUCT", "UNION", "ENUM", "BITMAP"],
"noprint" => ["FUNCTION", "TYPEDEF", "STRUCT", "UNION", "ENUM", "BITMAP", "ELEMENT"],
- "noejs" => ["FUNCTION", "TYPEDEF", "STRUCT", "UNION", "ENUM", "BITMAP"],
"todo" => ["FUNCTION"],
# union
require Exporter;
@ISA = qw(Exporter);
-@EXPORT = qw(is_intree choose_header NumStars ElementStars ArrayBrackets DeclLong);
+@EXPORT = qw(is_intree choose_header NumStars ElementStars ArrayBrackets DeclLong ArrayDynamicallyAllocated);
use Parse::Pidl::Util qw(has_property is_constant);
use Parse::Pidl::NDR qw(GetNextLevel);
return "#include <$out>";
}
+sub ArrayDynamicallyAllocated($$)
+{
+ my ($e, $l) = @_;
+ die("Not an array") unless ($l->{TYPE} eq "ARRAY");
+ return 0 if ($l->{IS_FIXED} and not has_property($e, "charset"));
+ return 1;
+}
+
sub NumStars($;$)
{
my ($e, $d) = @_;
foreach my $l (@{$e->{LEVELS}}) {
next unless ($l->{TYPE} eq "ARRAY");
- next if ($l->{IS_FIXED}) and not has_property($e, "charset");
+ next unless (ArrayDynamicallyAllocated($e, $l));
$n++;
}
foreach my $l (@{$e->{LEVELS}}) {
next unless ($l->{TYPE} eq "ARRAY");
- next unless ($l->{IS_FIXED}) and not has_property($e, "charset");
+ next if ArrayDynamicallyAllocated($e, $l);
$res .= "[$l->{SIZE_IS}]";
}
+++ /dev/null
-###################################################
-# EJS function wrapper generator
-# Copyright jelmer@samba.org 2005
-# Copyright Andrew Tridgell 2005
-# released under the GNU GPL
-
-package Parse::Pidl::Samba4::EJS;
-
-use Exporter;
-@ISA = qw(Exporter);
-@EXPORT_OK = qw(check_null_pointer fn_declare TypeFunctionName);
-
-use strict;
-use Parse::Pidl::Typelist qw(typeHasBody);
-use Parse::Pidl::CUtil qw(get_pointer_to get_value_of);
-use Parse::Pidl::Util qw(has_property ParseExpr);
-use Parse::Pidl::NDR qw(GetPrevLevel GetNextLevel);
-use Parse::Pidl::Samba4::Header qw(GenerateStructEnv GenerateFunctionInEnv
- GenerateFunctionOutEnv);
-
-use vars qw($VERSION);
-$VERSION = '0.01';
-
-sub new($) {
- my ($class) = @_;
- my $self = { res => "", res_hdr => "", tabs => "", constants => {}};
- bless($self, $class);
-}
-
-sub pidl_hdr ($$)
-{
- my $self = shift;
- $self->{res_hdr} .= shift;
-}
-
-sub pidl($$)
-{
- my ($self, $d) = @_;
- if ($d) {
- $self->{res} .= $self->{tabs};
- $self->{res} .= $d;
- }
- $self->{res} .= "\n";
-}
-
-sub indent($)
-{
- my ($self) = @_;
- $self->{tabs} .= "\t";
-}
-
-sub deindent($)
-{
- my ($self) = @_;
- $self->{tabs} = substr($self->{tabs}, 0, -1);
-}
-
-#####################################################################
-# check that a variable we get from ParseExpr isn't a null pointer
-sub check_null_pointer($$)
-{
- my ($self, $size) = @_;
- if ($size =~ /^\*/) {
- my $size2 = substr($size, 1);
- $self->pidl("if ($size2 == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;");
- }
-}
-
-#####################################################################
-# work out is a parse function should be declared static or not
-sub fn_declare($$$)
-{
- my ($self,$fn,$decl) = @_;
-
- if (has_property($fn, "public")) {
- $self->pidl_hdr("$decl;\n");
- $self->pidl("_PUBLIC_ $decl");
- } else {
- $self->pidl("static $decl");
- }
-}
-
-###########################
-# pull a scalar element
-sub EjsPullScalar($$$$$$$)
-{
- my ($self, $e, $l, $var, $name, $env) = @_;
-
- return if (has_property($e, "value"));
-
- if (ref($e->{TYPE}) eq "HASH" and not defined($e->{TYPE}->{NAME})) {
- $self->EjsTypePull($e->{TYPE}, $var);
- } else {
- my $pl = Parse::Pidl::NDR::GetPrevLevel($e, $l);
- $var = get_pointer_to($var);
- # have to handle strings specially :(
- if (Parse::Pidl::Typelist::scalar_is_reference($e->{TYPE})
- and (defined($pl) and $pl->{TYPE} eq "POINTER")) {
- $var = get_pointer_to($var);
- }
-
- my $t;
- if (ref($e->{TYPE}) eq "HASH") {
- $t = "$e->{TYPE}->{TYPE}_$e->{TYPE}->{NAME}";
- } else {
- $t = $e->{TYPE};
- }
- $self->pidl("EJS_CHECK(ejs_pull_$t(ejs, v, $name, $var));");
- }
-}
-
-###########################
-# pull a pointer element
-sub EjsPullPointer($$$$$$)
-{
- my ($self, $e, $l, $var, $name, $env) = @_;
- $self->pidl("if (ejs_pull_null(ejs, v, $name)) {");
- $self->indent;
- if ($l->{POINTER_TYPE} eq "ref") {
- $self->pidl("return NT_STATUS_INVALID_PARAMETER_MIX;");
- } else {
- $self->pidl("$var = NULL;");
- }
- $self->deindent;
- $self->pidl("} else {");
- $self->indent;
- $self->pidl("EJS_ALLOC(ejs, $var);");
- $var = get_value_of($var);
- $self->EjsPullElement($e, GetNextLevel($e, $l), $var, $name, $env);
- $self->deindent;
- $self->pidl("}");
-}
-
-###########################
-# pull a string element
-sub EjsPullString($$$$$$)
-{
- my ($self, $e, $l, $var, $name, $env) = @_;
- my $pl = GetPrevLevel($e, $l);
- $var = get_pointer_to($var);
- if (defined($pl) and $pl->{TYPE} eq "POINTER") {
- $var = get_pointer_to($var);
- }
- $self->pidl("EJS_CHECK(ejs_pull_string(ejs, v, $name, $var));");
-}
-
-###########################
-# pull an array element
-sub EjsPullArray($$$$$$)
-{
- my ($self, $e, $l, $var, $name, $env) = @_;
- my $nl = GetNextLevel($e, $l);
- my $length = ParseExpr($l->{LENGTH_IS}, $env, $e);
- my $size = ParseExpr($l->{SIZE_IS}, $env, $e);
- my $pl = GetPrevLevel($e, $l);
- if ($pl && $pl->{TYPE} eq "POINTER") {
- $var = get_pointer_to($var);
- }
- # uint8 arrays are treated as data blobs
- if ($nl->{TYPE} eq 'DATA' && $e->{TYPE} eq 'uint8') {
- if (!$l->{IS_FIXED}) {
- $self->check_null_pointer($size);
- $self->pidl("EJS_ALLOC_N(ejs, $var, $size);");
- }
- $self->check_null_pointer($length);
- $self->pidl("ejs_pull_array_uint8(ejs, v, $name, $var, $length);");
- return;
- }
- my $avar = $var . "[i]";
- $self->pidl("{");
- $self->indent;
- $self->pidl("uint32_t i;");
- if (!$l->{IS_FIXED}) {
- $self->pidl("EJS_ALLOC_N(ejs, $var, $size);");
- }
- $self->pidl("for (i=0;i<$length;i++) {");
- $self->indent;
- $self->pidl("char *id = talloc_asprintf(ejs, \"%s.%u\", $name, i);");
- $self->EjsPullElement($e, $nl, $avar, "id", $env);
- $self->pidl("talloc_free(id);");
- $self->deindent;
- $self->pidl("}");
- $self->pidl("ejs_push_uint32(ejs, v, $name \".length\", &i);");
- $self->deindent;
- $self->pidl("}");
-}
-
-###########################
-# pull a switch element
-sub EjsPullSwitch($$$$$$)
-{
- my ($self, $e, $l, $var, $name, $env) = @_;
- my $switch_var = ParseExpr($l->{SWITCH_IS}, $env, $e);
- $self->pidl("ejs_set_switch(ejs, $switch_var);");
- $self->EjsPullElement($e, GetNextLevel($e, $l), $var, $name, $env);
-}
-
-###########################
-# pull a structure element
-sub EjsPullElement($$$$$$)
-{
- my ($self, $e, $l, $var, $name, $env) = @_;
- if (($l->{TYPE} eq "POINTER")) {
- $self->EjsPullPointer($e, $l, $var, $name, $env);
- } elsif (has_property($e, "charset")) {
- $self->EjsPullString($e, $l, $var, $name, $env);
- } elsif ($l->{TYPE} eq "ARRAY") {
- $self->EjsPullArray($e, $l, $var, $name, $env);
- } elsif ($l->{TYPE} eq "DATA") {
- $self->EjsPullScalar($e, $l, $var, $name, $env);
- } elsif (($l->{TYPE} eq "SWITCH")) {
- $self->EjsPullSwitch($e, $l, $var, $name, $env);
- } else {
- $self->pidl("return ejs_panic(ejs, \"unhandled pull type $l->{TYPE}\");");
- }
-}
-
-#############################################
-# pull a structure/union element at top level
-sub EjsPullElementTop($$$)
-{
- my ($self, $e, $env) = @_;
- my $l = $e->{LEVELS}[0];
- my $var = ParseExpr($e->{NAME}, $env, $e);
- my $name = "\"$e->{NAME}\"";
- $self->EjsPullElement($e, $l, $var, $name, $env);
-}
-
-###########################
-# pull a struct
-sub EjsStructPull($$$)
-{
- my ($self, $d, $varname) = @_;
- my $env = GenerateStructEnv($d, $varname);
- $self->pidl("EJS_CHECK(ejs_pull_struct_start(ejs, &v, name));");
- foreach my $e (@{$d->{ELEMENTS}}) {
- $self->EjsPullElementTop($e, $env);
- }
-}
-
-###########################
-# pull a union
-sub EjsUnionPull($$$)
-{
- my ($self, $d, $varname) = @_;
- my $have_default = 0;
- $self->pidl("EJS_CHECK(ejs_pull_struct_start(ejs, &v, name));");
- $self->pidl("switch (ejs->switch_var) {");
- $self->indent;
- foreach my $e (@{$d->{ELEMENTS}}) {
- if ($e->{CASE} eq "default") {
- $have_default = 1;
- }
- $self->pidl("$e->{CASE}:");
- $self->indent;
- if ($e->{TYPE} ne "EMPTY") {
- $self->EjsPullElementTop($e, { $e->{NAME} => "$varname->$e->{NAME}"});
- }
- $self->pidl("break;");
- $self->deindent;
- }
- if (! $have_default) {
- $self->pidl("default:");
- $self->indent;
- $self->pidl("return ejs_panic(ejs, \"Bad switch value\");");
- $self->deindent;
- }
- $self->deindent;
- $self->pidl("}");
-}
-
-##############################################
-# put the enum elements in the constants array
-sub EjsEnumConstant($$)
-{
- my ($self, $d) = @_;
- return unless (defined($d->{ELEMENTS}));
- my $v = 0;
- foreach my $e (@{$d->{ELEMENTS}}) {
- my $el = $e;
- chomp $el;
- if ($el =~ /^(.*)=\s*(.*)\s*$/) {
- $el = $1;
- $v = $2;
- }
- $self->{constants}->{$el} = $v;
- $v++;
- }
-}
-
-###########################
-# pull a enum
-sub EjsEnumPull($$$)
-{
- my ($self, $d, $varname) = @_;
- $self->EjsEnumConstant($d);
- $self->pidl("unsigned e;");
- $self->pidl("EJS_CHECK(ejs_pull_enum(ejs, v, name, &e));");
- $self->pidl("*$varname = e;");
-}
-
-###########################
-# pull a bitmap
-sub EjsBitmapPull($$$)
-{
- my ($self, $d, $varname) = @_;
- my $type_fn = $d->{BASE_TYPE};
- $self->pidl("EJS_CHECK(ejs_pull_$type_fn(ejs, v, name, $varname));");
-}
-
-sub EjsTypePullFunction($$$)
-{
- sub EjsTypePullFunction($$$);
- my ($self, $d, $name) = @_;
- return if (has_property($d, "noejs"));
-
- if ($d->{TYPE} eq "TYPEDEF") {
- $self->EjsTypePullFunction($d->{DATA}, $name);
- return;
- }
-
- if ($d->{TYPE} eq "STRUCT") {
- $self->fn_declare($d, "NTSTATUS ejs_pull_$name(struct ejs_rpc *ejs, struct MprVar *v, const char *name, struct $name *r)");
- } elsif ($d->{TYPE} eq "UNION") {
- $self->fn_declare($d, "NTSTATUS ejs_pull_$name(struct ejs_rpc *ejs, struct MprVar *v, const char *name, union $name *r)");
- } elsif ($d->{TYPE} eq "ENUM") {
- $self->fn_declare($d, "NTSTATUS ejs_pull_$name(struct ejs_rpc *ejs, struct MprVar *v, const char *name, enum $name *r)");
- } elsif ($d->{TYPE} eq "BITMAP") {
- my($type_decl) = Parse::Pidl::Typelist::mapTypeName($d->{BASE_TYPE});
- $self->fn_declare($d, "NTSTATUS ejs_pull_$name(struct ejs_rpc *ejs, struct MprVar *v, const char *name, $type_decl *r)");
- }
- $self->pidl("{");
- $self->indent;
-
- $self->EjsTypePull($d, "r");
-
- $self->pidl("return NT_STATUS_OK;");
- $self->deindent;
- $self->pidl("}\n");
-}
-
-sub EjsTypePull($$$)
-{
- my ($self, $d, $varname) = @_;
- if ($d->{TYPE} eq 'STRUCT') {
- $self->EjsStructPull($d, $varname);
- } elsif ($d->{TYPE} eq 'UNION') {
- $self->EjsUnionPull($d, $varname);
- } elsif ($d->{TYPE} eq 'ENUM') {
- $self->EjsEnumPull($d, $varname);
- } elsif ($d->{TYPE} eq 'BITMAP') {
- $self->EjsBitmapPull($d, $varname);
- } else {
- warn "Unhandled pull $varname of type $d->{TYPE}";
- }
-}
-
-#####################
-# generate a function
-sub EjsPullFunction($$)
-{
- my ($self, $d) = @_;
- my $env = GenerateFunctionInEnv($d);
- my $name = $d->{NAME};
-
- $self->pidl("\nstatic NTSTATUS ejs_pull_$name(struct ejs_rpc *ejs, struct MprVar *v, struct $name *r)");
- $self->pidl("{");
- $self->indent;
- $self->pidl("EJS_CHECK(ejs_pull_struct_start(ejs, &v, \"input\"));");
-
- # we pull non-array elements before array elements as arrays
- # may have length_is() or size_is() properties that depend
- # on the non-array elements
- foreach my $e (@{$d->{ELEMENTS}}) {
- next unless (grep(/in/, @{$e->{DIRECTION}}));
- next if (has_property($e, "length_is") || has_property($e, "size_is"));
- $self->EjsPullElementTop($e, $env);
- }
-
- foreach my $e (@{$d->{ELEMENTS}}) {
- next unless (grep(/in/, @{$e->{DIRECTION}}));
- next unless (has_property($e, "length_is") || has_property($e, "size_is"));
- $self->EjsPullElementTop($e, $env);
- }
-
- $self->pidl("return NT_STATUS_OK;");
- $self->deindent;
- $self->pidl("}\n");
-}
-
-###########################
-# push a scalar element
-sub EjsPushScalar($$$$$$)
-{
- my ($self, $e, $l, $var, $name, $env) = @_;
-
- if (ref($e->{TYPE}) eq "HASH" and not defined($e->{TYPE}->{NAME})) {
- $self->EjsTypePush($e->{TYPE}, get_pointer_to($var));
- } else {
- # have to handle strings specially :(
- my $pl = GetPrevLevel($e, $l);
-
- if ((not Parse::Pidl::Typelist::scalar_is_reference($e->{TYPE}))
- or (defined($pl) and $pl->{TYPE} eq "POINTER")) {
- $var = get_pointer_to($var);
- }
-
- $self->pidl("EJS_CHECK(".TypeFunctionName("ejs_push", $e->{TYPE})."(ejs, v, $name, $var));");
- }
-}
-
-###########################
-# push a string element
-sub EjsPushString($$$$$$)
-{
- my ($self, $e, $l, $var, $name, $env) = @_;
- my $pl = GetPrevLevel($e, $l);
- if (defined($pl) and $pl->{TYPE} eq "POINTER") {
- $var = get_pointer_to($var);
- }
- $self->pidl("EJS_CHECK(ejs_push_string(ejs, v, $name, $var));");
-}
-
-###########################
-# push a pointer element
-sub EjsPushPointer($$$$$$)
-{
- my ($self, $e, $l, $var, $name, $env) = @_;
- $self->pidl("if (NULL == $var) {");
- $self->indent;
- if ($l->{POINTER_TYPE} eq "ref") {
- $self->pidl("return NT_STATUS_INVALID_PARAMETER_MIX;");
- } else {
- $self->pidl("EJS_CHECK(ejs_push_null(ejs, v, $name));");
- }
- $self->deindent;
- $self->pidl("} else {");
- $self->indent;
- $var = get_value_of($var);
- $self->EjsPushElement($e, GetNextLevel($e, $l), $var, $name, $env);
- $self->deindent;
- $self->pidl("}");
-}
-
-###########################
-# push a switch element
-sub EjsPushSwitch($$$$$$)
-{
- my ($self, $e, $l, $var, $name, $env) = @_;
- my $switch_var = ParseExpr($l->{SWITCH_IS}, $env, $e);
- $self->pidl("ejs_set_switch(ejs, $switch_var);");
- $self->EjsPushElement($e, GetNextLevel($e, $l), $var, $name, $env);
-}
-
-###########################
-# push an array element
-sub EjsPushArray($$$$$$)
-{
- my ($self, $e, $l, $var, $name, $env) = @_;
- my $nl = GetNextLevel($e, $l);
- my $length = ParseExpr($l->{LENGTH_IS}, $env, $e);
- my $pl = GetPrevLevel($e, $l);
- if ($pl && $pl->{TYPE} eq "POINTER") {
- $var = get_pointer_to($var);
- }
- # uint8 arrays are treated as data blobs
- if ($nl->{TYPE} eq 'DATA' && $e->{TYPE} eq 'uint8') {
- $self->check_null_pointer($length);
- $self->pidl("ejs_push_array_uint8(ejs, v, $name, $var, $length);");
- return;
- }
- my $avar = $var . "[i]";
- $self->pidl("{");
- $self->indent;
- $self->pidl("uint32_t i;");
- $self->pidl("for (i=0;i<$length;i++) {");
- $self->indent;
- $self->pidl("const char *id = talloc_asprintf(ejs, \"%s.%u\", $name, i);");
- $self->EjsPushElement($e, $nl, $avar, "id", $env);
- $self->deindent;
- $self->pidl("}");
- $self->pidl("ejs_push_uint32(ejs, v, $name \".length\", &i);");
- $self->deindent;
- $self->pidl("}");
-}
-
-################################
-# push a structure/union element
-sub EjsPushElement($$$$$$)
-{
- my ($self, $e, $l, $var, $name, $env) = @_;
- if (($l->{TYPE} eq "POINTER")) {
- $self->EjsPushPointer($e, $l, $var, $name, $env);
- } elsif (has_property($e, "charset")) {
- $self->EjsPushString($e, $l, $var, $name, $env);
- } elsif ($l->{TYPE} eq "ARRAY") {
- $self->EjsPushArray($e, $l, $var, $name, $env);
- } elsif ($l->{TYPE} eq "DATA") {
- $self->EjsPushScalar($e, $l, $var, $name, $env);
- } elsif (($l->{TYPE} eq "SWITCH")) {
- $self->EjsPushSwitch($e, $l, $var, $name, $env);
- } else {
- $self->pidl("return ejs_panic(ejs, \"unhandled push type $l->{TYPE}\");");
- }
-}
-
-#############################################
-# push a structure/union element at top level
-sub EjsPushElementTop($$$)
-{
- my ($self, $e, $env) = @_;
- my $l = $e->{LEVELS}[0];
- my $var = ParseExpr($e->{NAME}, $env, $e);
- my $name = "\"$e->{NAME}\"";
- $self->EjsPushElement($e, $l, $var, $name, $env);
-}
-
-###########################
-# push a struct
-sub EjsStructPush($$$)
-{
- my ($self, $d, $varname) = @_;
- my $env = GenerateStructEnv($d, $varname);
- $self->pidl("EJS_CHECK(ejs_push_struct_start(ejs, &v, name));");
- foreach my $e (@{$d->{ELEMENTS}}) {
- $self->EjsPushElementTop($e, $env);
- }
-}
-
-###########################
-# push a union
-sub EjsUnionPush($$$)
-{
- my ($self, $d, $varname) = @_;
- my $have_default = 0;
- $self->pidl("EJS_CHECK(ejs_push_struct_start(ejs, &v, name));");
- $self->pidl("switch (ejs->switch_var) {");
- $self->indent;
- foreach my $e (@{$d->{ELEMENTS}}) {
- if ($e->{CASE} eq "default") {
- $have_default = 1;
- }
- $self->pidl("$e->{CASE}:");
- $self->indent;
- if ($e->{TYPE} ne "EMPTY") {
- $self->EjsPushElementTop($e, { $e->{NAME} => "$varname->$e->{NAME}"} );
- }
- $self->pidl("break;");
- $self->deindent;
- }
- if (! $have_default) {
- $self->pidl("default:");
- $self->indent;
- $self->pidl("return ejs_panic(ejs, \"Bad switch value\");");
- $self->deindent;
- }
- $self->deindent;
- $self->pidl("}");
-}
-
-###########################
-# push a enum
-sub EjsEnumPush($$$)
-{
- my ($self, $d, $varname) = @_;
- $self->EjsEnumConstant($d);
- $self->pidl("unsigned e = ".get_value_of($varname).";");
- $self->pidl("EJS_CHECK(ejs_push_enum(ejs, v, name, &e));");
-}
-
-###########################
-# push a bitmap
-sub EjsBitmapPush($$$)
-{
- my ($self, $d, $varname) = @_;
- return unless (defined($d->{ELEMENTS}));
- my $type_fn = $d->{BASE_TYPE};
- # put the bitmap elements in the constants array
- foreach my $e (@{$d->{ELEMENTS}}) {
- if ($e =~ /^(\w*)\s*(.*)\s*$/) {
- my $bname = $1;
- my $v = $2;
- $self->{constants}->{$bname} = $v;
- }
- }
- $self->pidl("EJS_CHECK(ejs_push_$type_fn(ejs, v, name, $varname));");
-}
-
-sub EjsTypePushFunction($$$)
-{
- sub EjsTypePushFunction($$$);
- my ($self, $d, $name) = @_;
- return if (has_property($d, "noejs"));
-
- my $var = undef;
- my $dt = $d;
- if ($dt->{TYPE} eq "TYPEDEF") {
- $dt = $dt->{DATA};
- }
- if ($dt->{TYPE} eq "STRUCT") {
- $var = "const struct $name *r";
- } elsif ($dt->{TYPE} eq "UNION") {
- $var = "const union $name *r";
- } elsif ($dt->{TYPE} eq "ENUM") {
- $var = "const enum $name *r";
- } elsif ($dt->{TYPE} eq "BITMAP") {
- my($type_decl) = Parse::Pidl::Typelist::mapTypeName($dt->{BASE_TYPE});
- $var = "const $type_decl *r";
- }
- $self->fn_declare($d, "NTSTATUS ".TypeFunctionName("ejs_push", $d) . "(struct ejs_rpc *ejs, struct MprVar *v, const char *name, $var)");
- $self->pidl("{");
- $self->indent;
- $self->EjsTypePush($d, "r");
- $self->pidl("return NT_STATUS_OK;");
- $self->deindent;
- $self->pidl("}\n");
-}
-
-sub EjsTypePush($$$)
-{
- sub EjsTypePush($$$);
- my ($self, $d, $varname) = @_;
-
- if ($d->{TYPE} eq 'STRUCT') {
- $self->EjsStructPush($d, $varname);
- } elsif ($d->{TYPE} eq 'UNION') {
- $self->EjsUnionPush($d, $varname);
- } elsif ($d->{TYPE} eq 'ENUM') {
- $self->EjsEnumPush($d, $varname);
- } elsif ($d->{TYPE} eq 'BITMAP') {
- $self->EjsBitmapPush($d, $varname);
- } elsif ($d->{TYPE} eq 'TYPEDEF') {
- $self->EjsTypePush($d->{DATA}, $varname);
- } else {
- warn "Unhandled push $varname of type $d->{TYPE}";
- }
-}
-
-#####################
-# generate a function
-sub EjsPushFunction($$)
-{
- my ($self, $d) = @_;
- my $env = GenerateFunctionOutEnv($d);
-
- $self->pidl("\nstatic NTSTATUS ejs_push_$d->{NAME}(struct ejs_rpc *ejs, struct MprVar *v, const struct $d->{NAME} *r)");
- $self->pidl("{");
- $self->indent;
- $self->pidl("EJS_CHECK(ejs_push_struct_start(ejs, &v, \"output\"));");
-
- foreach my $e (@{$d->{ELEMENTS}}) {
- next unless (grep(/out/, @{$e->{DIRECTION}}));
- $self->EjsPushElementTop($e, $env);
- }
-
- if ($d->{RETURN_TYPE}) {
- $self->pidl("EJS_CHECK(".TypeFunctionName("ejs_push", $d->{RETURN_TYPE})."(ejs, v, \"result\", &r->out.result));");
- }
-
- $self->pidl("return NT_STATUS_OK;");
- $self->deindent;
- $self->pidl("}\n");
-}
-
-#################################
-# generate a ejs mapping function
-sub EjsFunction($$$)
-{
- my ($self, $d, $iface) = @_;
- my $name = $d->{NAME};
- my $callnum = uc("NDR_$name");
- my $table = "&ndr_table_$iface";
-
- $self->pidl("static int ejs_$name(int eid, int argc, struct MprVar **argv)");
- $self->pidl("{");
- $self->indent;
- $self->pidl("return ejs_rpc_call(eid, argc, argv, $table, $callnum, (ejs_pull_function_t)ejs_pull_$name, (ejs_push_function_t)ejs_push_$name);");
- $self->deindent;
- $self->pidl("}\n");
-}
-
-###################
-# handle a constant
-sub EjsConst($$)
-{
- my ($self, $const) = @_;
- $self->{constants}->{$const->{NAME}} = $const->{VALUE};
-}
-
-sub EjsImport
-{
- my $self = shift;
- my @imports = @_;
- foreach (@imports) {
- s/\.idl\"$//;
- s/^\"//;
- $self->pidl_hdr("#include \"librpc/gen_ndr/ndr_$_\_ejs\.h\"\n");
- }
-}
-
-#####################################################################
-# parse the interface definitions
-sub EjsInterface($$$)
-{
- my($self,$interface,$needed) = @_;
- my @fns = ();
- my $name = $interface->{NAME};
-
- $self->pidl_hdr("#ifndef _HEADER_EJS_$interface->{NAME}\n");
- $self->pidl_hdr("#define _HEADER_EJS_$interface->{NAME}\n\n");
-
- $self->pidl_hdr("\n");
-
- foreach my $d (@{$interface->{TYPES}}) {
- next unless (typeHasBody($d));
- ($needed->{TypeFunctionName("ejs_push", $d)}) && $self->EjsTypePushFunction($d, $d->{NAME});
- ($needed->{TypeFunctionName("ejs_pull", $d)}) && $self->EjsTypePullFunction($d, $d->{NAME});
- }
-
- foreach my $d (@{$interface->{FUNCTIONS}}) {
- next if not defined($d->{OPNUM});
- next if has_property($d, "noejs");
-
- $self->EjsPullFunction($d);
- $self->EjsPushFunction($d);
- $self->EjsFunction($d, $name);
-
- push (@fns, $d->{NAME});
- }
-
- foreach my $d (@{$interface->{CONSTS}}) {
- $self->EjsConst($d);
- }
-
- $self->pidl("static int ejs_$name\_init(int eid, int argc, struct MprVar **argv)");
- $self->pidl("{");
- $self->indent;
- $self->pidl("struct MprVar *obj = mprInitObject(eid, \"$name\", argc, argv);");
- foreach (@fns) {
- $self->pidl("mprSetCFunction(obj, \"$_\", ejs_$_);");
- }
- foreach my $v (keys %{$self->{constants}}) {
- my $value = $self->{constants}->{$v};
- if (substr($value, 0, 1) eq "\"") {
- $self->pidl("mprSetVar(obj, \"$v\", mprString($value));");
- } else {
- $self->pidl("mprSetVar(obj, \"$v\", mprCreateNumberVar($value));");
- }
- }
- $self->pidl("return ejs_rpc_init(obj, \"$name\");");
- $self->deindent;
- $self->pidl("}\n");
-
- $self->pidl("NTSTATUS ejs_init_$name(void)");
- $self->pidl("{");
- $self->indent;
- $self->pidl("ejsDefineCFunction(-1, \"$name\_init\", ejs_$name\_init, NULL, MPR_VAR_SCRIPT_HANDLE);");
- $self->pidl("return NT_STATUS_OK;");
- $self->deindent;
- $self->pidl("}");
-
- $self->pidl_hdr("\n");
- $self->pidl_hdr("#endif /* _HEADER_EJS_$interface->{NAME} */\n");
-}
-
-#####################################################################
-# parse a parsed IDL into a C header
-sub Parse($$$)
-{
- my($self,$ndr,$hdr) = @_;
-
- my $ejs_hdr = $hdr;
- $ejs_hdr =~ s/.h$/_ejs.h/;
-
- $self->pidl_hdr("/* header auto-generated by pidl */\n\n");
-
- $self->pidl("
-/* EJS wrapper functions auto-generated by pidl */
-#include \"includes.h\"
-#include \"librpc/rpc/dcerpc.h\"
-#include \"lib/appweb/ejs/ejs.h\"
-#include \"scripting/ejs/ejsrpc.h\"
-#include \"scripting/ejs/smbcalls.h\"
-#include \"librpc/gen_ndr/ndr_misc_ejs.h\"
-#include \"$hdr\"
-#include \"$ejs_hdr\"
-
-");
-
- my %needed = ();
-
- foreach my $x (@{$ndr}) {
- ($x->{TYPE} eq "INTERFACE") && NeededInterface($x, \%needed);
- }
-
- foreach my $x (@$ndr) {
- ($x->{TYPE} eq "INTERFACE") && $self->EjsInterface($x, \%needed);
- ($x->{TYPE} eq "IMPORT") && $self->EjsImport(@{$x->{PATHS}});
- }
-
- return ($self->{res_hdr}, $self->{res});
-}
-
-sub NeededFunction($$)
-{
- my ($fn,$needed) = @_;
-
- $needed->{"ejs_pull_$fn->{NAME}"} = 1;
- $needed->{"ejs_push_$fn->{NAME}"} = 1;
-
- foreach (@{$fn->{ELEMENTS}}) {
- next if (has_property($_, "subcontext")); #FIXME: Support subcontexts
- if (grep(/in/, @{$_->{DIRECTION}})) {
- $needed->{TypeFunctionName("ejs_pull", $_->{TYPE})} = 1;
- }
- if (grep(/out/, @{$_->{DIRECTION}})) {
- $needed->{TypeFunctionName("ejs_push", $_->{TYPE})} = 1;
- }
- }
-}
-
-sub NeededType($$$)
-{
- sub NeededType($$$);
- my ($t,$needed,$req) = @_;
-
- NeededType($t->{DATA}, $needed, $req) if ($t->{TYPE} eq "TYPEDEF");
-
- return unless (($t->{TYPE} eq "STRUCT") or ($t->{TYPE} eq "UNION"));
-
- return unless(typeHasBody($t));
-
- foreach (@{$t->{ELEMENTS}}) {
- next if (has_property($_, "subcontext")); #FIXME: Support subcontexts
- my $n;
- if (ref($_->{TYPE}) ne "HASH" or defined($_->{TYPE}->{NAME})) {
- $needed->{TypeFunctionName("ejs_$req", $_->{TYPE})} = 1;
- }
- NeededType($_->{TYPE}, $needed, $req) if (ref($_->{TYPE}) eq "HASH");
- }
-}
-
-#####################################################################
-# work out what parse functions are needed
-sub NeededInterface($$)
-{
- my ($interface,$needed) = @_;
-
- NeededFunction($_, $needed) foreach (@{$interface->{FUNCTIONS}});
-
- foreach (reverse @{$interface->{TYPES}}) {
- if (has_property($_, "public")) {
- $needed->{TypeFunctionName("ejs_pull", $_)} = not has_property($_, "noejs");
- $needed->{TypeFunctionName("ejs_push", $_)} = not has_property($_, "noejs");
- }
-
- NeededType($_, $needed, "pull") if ($needed->{TypeFunctionName("ejs_pull", $_)});
- NeededType($_, $needed, "push") if ($needed->{TypeFunctionName("ejs_push", $_)});
- }
-}
-
-sub TypeFunctionName($$)
-{
- my ($prefix, $t) = @_;
-
- return "$prefix\_$t->{NAME}" if (ref($t) eq "HASH" and
- $t->{TYPE} eq "TYPEDEF");
- return "$prefix\_$t->{TYPE}_$t->{NAME}" if (ref($t) eq "HASH");
- return "$prefix\_$t";
-}
-
-
-
-1;
use Parse::Pidl::Util qw(has_property ParseExpr ParseExprExt print_uuid unmake_str);
use Parse::Pidl::CUtil qw(get_pointer_to get_value_of get_array_element);
use Parse::Pidl::NDR qw(GetPrevLevel GetNextLevel ContainsDeferred is_charset_array);
-use Parse::Pidl::Samba4 qw(is_intree choose_header);
+use Parse::Pidl::Samba4 qw(is_intree choose_header ArrayDynamicallyAllocated);
use Parse::Pidl::Samba4::Header qw(GenerateFunctionInEnv GenerateFunctionOutEnv EnvSubstituteValue GenerateStructEnv);
use Parse::Pidl qw(warning);
$self->defer("}");
}
- if (not $l->{IS_FIXED} and not is_charset_array($e, $l)) {
+ if (ArrayDynamicallyAllocated($e,$l) and not is_charset_array($e,$l)) {
$self->AllocateArrayLevel($e,$l,$ndr,$var_name,$size);
}
return undef unless ($l->{TYPE} eq "POINTER" or $l->{TYPE} eq "ARRAY");
- return undef if ($l->{TYPE} eq "ARRAY" and $l->{IS_FIXED});
+ return undef unless ($l->{TYPE} ne "ARRAY" or ArrayDynamicallyAllocated($e,$l));
return undef if has_fast_array($e, $l);
return undef if is_charset_array($e, $l);
use Parse::Pidl::Util qw(has_property ParseExpr unmake_str);
use Parse::Pidl::NDR qw(GetPrevLevel GetNextLevel ContainsDeferred is_charset_array);
use Parse::Pidl::CUtil qw(get_value_of get_pointer_to);
+use Parse::Pidl::Samba4 qw(ArrayDynamicallyAllocated);
use Parse::Pidl::Samba4::Header qw(GenerateFunctionInEnv GenerateFunctionOutEnv EnvSubstituteValue GenerateStructEnv);
use vars qw($VERSION);
$self->pidl("static PyObject *py_$name\_new(PyTypeObject *self, PyObject *args, PyObject *kwargs)");
$self->pidl("{");
$self->indent;
+ $self->pidl("char *kwlist[] = {NULL};");
$self->pidl("$cname *ret = talloc_zero(NULL, $cname);");
+ $self->pidl("if (!PyArg_ParseTupleAndKeywords(args, kwargs, \"\", kwlist))");
+ $self->pidl("\treturn NULL;");
$self->pidl("return py_talloc_import(&$name\_Type, ret);");
$self->deindent;
$self->pidl("}");
$self->indent;
$self->pidl("{ \"__ndr_pack__\", (PyCFunction)py_$name\_ndr_pack, METH_NOARGS, \"S.pack() -> blob\\nNDR pack\" },");
$self->pidl("{ \"__ndr_unpack__\", (PyCFunction)py_$name\_ndr_unpack, METH_VARARGS, \"S.unpack(blob) -> None\\nNDR unpack\" },");
+ $self->deindent;
+ $self->pidl("#ifdef ".uc("py_$name\_extra_methods"));
+ $self->pidl("\t" .uc("py_$name\_extra_methods"));
+ $self->pidl("#endif");
+ $self->indent;
$self->pidl("{ NULL, NULL, 0, NULL }");
$self->deindent;
$self->pidl("};");
$self->pidl_hdr("#define $name\_Check(op) PyObject_TypeCheck(op, &$name\_Type)\n");
$self->pidl_hdr("#define $name\_CheckExact(op) ((op)->ob_type == &$name\_Type)\n");
$self->pidl_hdr("\n");
+ $self->pidl("#ifndef ".uc("py_$name\_repr"));
+ $self->pidl("#define ".uc("py_$name\_repr") . " py_talloc_default_repr");
+ $self->pidl("#endif");
+ $self->pidl("");
my $docstring = ($self->DocString($d, $name) or "NULL");
my $typeobject = "$name\_Type";
$self->pidl("PyTypeObject $typeobject = {");
$self->pidl(".tp_basicsize = sizeof(py_talloc_Object),");
$self->pidl(".tp_dealloc = py_talloc_dealloc,");
$self->pidl(".tp_getset = $getsetters,");
- $self->pidl(".tp_repr = py_talloc_default_repr,");
+ $self->pidl(".tp_repr = ".uc("py_$name\_repr").",");
$self->pidl(".tp_doc = $docstring,");
$self->pidl(".tp_methods = $py_methods,");
$self->pidl(".tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,");
$self->pidl_hdr("\n");
+ if (has_property($interface, "pyhelper")) {
+ $self->pidl("#include \"".unmake_str($interface->{PROPERTIES}->{pyhelper})."\"\n");
+ }
+
$self->Const($_) foreach (@{$interface->{CONSTS}});
foreach my $d (@{$interface->{TYPES}}) {
$self->pidl("{");
$self->indent;
$self->pidl("int $counter;");
- if (!$l->{IS_FIXED}) {
+ if (ArrayDynamicallyAllocated($e, $l)) {
$self->pidl("$var_name = talloc_array_ptrtype($mem_ctx, $var_name, PyList_Size($py_var));");
}
$self->pidl("for ($counter = 0; $counter < PyList_Size($py_var); $counter++) {");
+++ /dev/null
-#!/usr/bin/perl
-# (C) 2007 Jelmer Vernooij <jelmer@samba.org>
-# Published under the GNU General Public License
-use strict;
-use warnings;
-
-use Test::More tests => 10;
-use FindBin qw($RealBin);
-use lib "$RealBin";
-use Util;
-use Parse::Pidl::Util qw(MyDumper);
-use Parse::Pidl::Samba4::EJS qw(check_null_pointer
- fn_declare TypeFunctionName);
-
-my $ejs = new Parse::Pidl::Samba4::EJS();
-
-$ejs->check_null_pointer("bla");
-is($ejs->{res}, "");
-
-$ejs = new Parse::Pidl::Samba4::EJS();
-$ejs->check_null_pointer("*bla");
-is($ejs->{res}, "if (bla == NULL) return NT_STATUS_INVALID_PARAMETER_MIX;\n");
-
-$ejs = new Parse::Pidl::Samba4::EJS();
-$ejs->fn_declare({ PROPERTIES => { public => 1 } }, "myproto(int x)");
-is($ejs->{res}, "_PUBLIC_ myproto(int x)\n");
-is($ejs->{res_hdr}, "myproto(int x);\n");
-
-$ejs = new Parse::Pidl::Samba4::EJS();
-$ejs->fn_declare({ PROPERTIES => {} }, "mybla(int foo)");
-is($ejs->{res}, "static mybla(int foo)\n");
-is($ejs->{res_hdr}, "");
-
-is(TypeFunctionName("ejs_pull", "uint32"), "ejs_pull_uint32");
-is(TypeFunctionName("ejs_pull", {TYPE => "ENUM", NAME => "bar"}), "ejs_pull_ENUM_bar");
-is(TypeFunctionName("ejs_pull", {TYPE => "TYPEDEF", NAME => "bar", DATA => undef}), "ejs_pull_bar");
-is(TypeFunctionName("ejs_push", {TYPE => "STRUCT", NAME => "bar"}), "ejs_push_STRUCT_bar");
VFS_ACL_XATTR_OBJ = modules/vfs_acl_xattr.o
VFS_ACL_TDB_OBJ = modules/vfs_acl_tdb.o
VFS_SMB_TRAFFIC_ANALYZER_OBJ = modules/vfs_smb_traffic_analyzer.o
-VFS_ONEFS_OBJ = modules/vfs_onefs.o modules/onefs_acl.o
+VFS_ONEFS_OBJ = modules/vfs_onefs.o modules/onefs_acl.o modules/onefs_system.o \
+ modules/onefs_open.o
PLAINTEXT_AUTH_OBJ = auth/pampass.o auth/pass_check.o
WINBINDD_OBJ1 = \
winbindd/winbindd.o \
+ winbindd/winbindd_reqtrans.o \
winbindd/winbindd_user.o \
winbindd/winbindd_group.o \
winbindd/winbindd_util.o \
struct auth_serversupplied_info *copy_serverinfo(TALLOC_CTX *mem_ctx,
- auth_serversupplied_info *src)
+ const auth_serversupplied_info *src)
{
auth_serversupplied_info *dst;
Send a message.
****************************************************************************/
-static void send_message(void)
+static void send_message(const char *username)
{
int total_len = 0;
int grp_id;
- if (!cli_message_start(cli, desthost,
- get_cmdline_auth_info_username(), &grp_id)) {
+ if (!cli_message_start(cli, desthost, username, &grp_id)) {
d_printf("message start: %s\n", cli_errstr(cli));
return;
}
Handle a message operation.
****************************************************************************/
-static int do_message_op(void)
+static int do_message_op(struct user_auth_info *auth_info)
{
struct sockaddr_storage ss;
struct nmb_name called, calling;
snprintf(name_type_hex, sizeof(name_type_hex), "#%X", name_type);
fstrcat(server_name, name_type_hex);
- zero_addr(&ss);
+ zero_sockaddr(&ss);
if (have_ip)
ss = dest_ss;
return 1;
}
- send_message();
+ send_message(get_cmdline_auth_info_username(auth_info));
cli_cm_shutdown();
return 0;
POPT_TABLEEND
};
TALLOC_CTX *frame = talloc_stackframe();
+ struct user_auth_info *auth_info;
if (!client_set_cur_dir("\\")) {
exit(ENOMEM);
load_case_tables();
+ auth_info = user_auth_info_init(frame);
+ if (auth_info == NULL) {
+ exit(1);
+ }
+ popt_common_set_auth_info(auth_info);
+
/* skip argv(0) */
pc = poptGetContext("smbclient", argc, (const char **) argv, long_options, 0);
poptSetOtherOptionHelp(pc, "service <password>");
}
/* if the service has already been retrieved then check if we have also a password */
- if (service_opt && (!get_cmdline_auth_info_got_pass()) && poptPeekArg(pc)) {
- set_cmdline_auth_info_password(poptGetArg(pc));
+ if (service_opt
+ && (!get_cmdline_auth_info_got_pass(auth_info))
+ && poptPeekArg(pc)) {
+ set_cmdline_auth_info_password(auth_info,
+ poptGetArg(pc));
}
switch (opt) {
}
/* if the service has already been retrieved then check if we have also a password */
- if (service_opt && !get_cmdline_auth_info_got_pass() && poptPeekArg(pc)) {
- set_cmdline_auth_info_password(poptGetArg(pc));
+ if (service_opt
+ && !get_cmdline_auth_info_got_pass(auth_info)
+ && poptPeekArg(pc)) {
+ set_cmdline_auth_info_password(auth_info,
+ poptGetArg(pc));
}
/* check for the -P option */
argv[0], get_dyn_CONFIGFILE());
}
- if (get_cmdline_auth_info_use_machine_account() &&
- !set_cmdline_auth_info_machine_account_creds()) {
+ if (get_cmdline_auth_info_use_machine_account(auth_info) &&
+ !set_cmdline_auth_info_machine_account_creds(auth_info)) {
exit(-1);
}
calling_name = talloc_strdup(frame, global_myname() );
}
- smb_encrypt = get_cmdline_auth_info_smb_encrypt();
+ smb_encrypt = get_cmdline_auth_info_smb_encrypt(auth_info);
if (!init_names()) {
fprintf(stderr, "init_names() failed\n");
exit(1);
/* Store the username and password for dfs support */
- cli_cm_set_credentials();
+ cli_cm_set_credentials(auth_info);
DEBUG(3,("Client started (version %s).\n", SAMBA_VERSION_STRING));
}
if (message) {
- return do_message_op();
+ return do_message_op(auth_info);
}
if (process(base_directory)) {
#define MOUNT_PASSWD_SIZE 64
#define DOMAIN_SIZE 64
+/* currently maximum length of IPv6 address string */
+#define MAX_ADDRESS_LEN INET6_ADDRSTRLEN
+
const char *thisprogram;
int verboseflag = 0;
static int got_password = 0;
return username;
}
-static char * parse_cifs_url(char * unc_name)
-{
- printf("\nMounting cifs URL not implemented yet. Attempt to mount %s\n",unc_name);
- return NULL;
-}
-
static int open_cred_file(char * file_name)
{
char * line_buf;
} else if (strncmp(data, "ip", 2) == 0) {
if (!value || !*value) {
printf("target ip address argument missing");
- } else if (strnlen(value, 35) < 35) {
+ } else if (strnlen(value, MAX_ADDRESS_LEN) <= MAX_ADDRESS_LEN) {
if(verboseflag)
printf("ip address %s override specified\n",value);
got_ip = 1;
}
/* Note that caller frees the returned buffer if necessary */
-static char * parse_server(char ** punc_name)
+static struct addrinfo *
+parse_server(char ** punc_name)
{
char * unc_name = *punc_name;
int length = strnlen(unc_name, MAX_UNC_LEN);
char * share;
- char * ipaddress_string = NULL;
- struct hostent * host_entry = NULL;
- struct in_addr server_ipaddr;
+ struct addrinfo *addrlist;
+ int rc;
if(length > (MAX_UNC_LEN - 1)) {
printf("mount error: UNC name too long");
return NULL;
}
- if (strncasecmp("cifs://",unc_name,7) == 0)
- return parse_cifs_url(unc_name+7);
- if (strncasecmp("smb://",unc_name,6) == 0) {
- return parse_cifs_url(unc_name+6);
+ if ((strncasecmp("cifs://", unc_name, 7) == 0) ||
+ (strncasecmp("smb://", unc_name, 6) == 0)) {
+ printf("\nMounting cifs URL not implemented yet. Attempt to mount %s\n", unc_name);
+ return NULL;
}
if(length < 3) {
*share = 0; /* temporarily terminate the string */
share += 1;
if(got_ip == 0) {
- host_entry = gethostbyname(unc_name);
+ rc = getaddrinfo(unc_name, NULL, NULL, &addrlist);
+ if (rc != 0) {
+ printf("mount error: could not resolve address for %s: %s\n",
+ unc_name, gai_strerror(rc));
+ addrlist = NULL;
+ }
}
*(share - 1) = '/'; /* put delimiter back */
printf("ip address specified explicitly\n");
return NULL;
}
- if(host_entry == NULL) {
- printf("mount error: could not find target server. TCP name %s not found\n", unc_name);
- return NULL;
- } else {
- /* BB should we pass an alternate version of the share name as Unicode */
- /* BB what about ipv6? BB */
- /* BB add retries with alternate servers in list */
+ /* BB should we pass an alternate version of the share name as Unicode */
- memcpy(&server_ipaddr.s_addr, host_entry->h_addr, 4);
-
- ipaddress_string = inet_ntoa(server_ipaddr);
- if(ipaddress_string == NULL) {
- printf("mount error: could not get valid ip address for target server\n");
- return NULL;
- }
- return ipaddress_string;
- }
+ return addrlist;
} else {
/* BB add code to find DFS root (send null path on get DFS Referral to specified server here */
printf("Mounting the DFS root for a particular server not implemented yet\n");
int flags = MS_MANDLOCK; /* no need to set legacy MS_MGC_VAL */
char * orgoptions = NULL;
char * share_name = NULL;
- char * ipaddr = NULL;
+ const char * ipaddr = NULL;
char * uuid = NULL;
char * mountpoint = NULL;
char * options = NULL;
+ char * optionstail;
char * resolved_path = NULL;
char * temp;
char * dev_name;
int optlen = 0;
int orgoptlen = 0;
size_t options_size = 0;
+ size_t current_len;
int retry = 0; /* set when we have to retry mount with uppercase */
+ struct addrinfo *addrhead = NULL, *addr;
struct stat statbuf;
struct utsname sysinfo;
struct mntent mountent;
+ struct sockaddr_in *addr4;
+ struct sockaddr_in6 *addr6;
FILE * pmntfile;
/* setlocale(LC_ALL, "");
rc = EX_USAGE;
goto mount_exit;
}
- ipaddr = parse_server(&share_name);
- if((ipaddr == NULL) && (got_ip == 0)) {
+ addrhead = addr = parse_server(&share_name);
+ if((addrhead == NULL) && (got_ip == 0)) {
printf("No ip address specified and hostname not found\n");
rc = EX_USAGE;
goto mount_exit;
}
if(got_user == 0) {
- user_name = getusername();
+ /* Note that the password will not be retrieved from the
+ USER env variable (ie user%password form) as there is
+ already a PASSWD environment varaible */
+ if (getenv("USER"))
+ user_name = strdup(getenv("USER"));
+ if (user_name == NULL)
+ user_name = getusername();
got_user = 1;
}
}
/* FIXME launch daemon (handles dfs name resolution and credential change)
remember to clear parms and overwrite password field before launching */
-mount_retry:
if(orgoptions) {
optlen = strlen(orgoptions);
orgoptlen = optlen;
}
if(user_name)
optlen += strlen(user_name) + 6;
- if(ipaddr)
- optlen += strlen(ipaddr) + 4;
+ optlen += MAX_ADDRESS_LEN + 4;
if(mountpassword)
optlen += strlen(mountpassword) + 6;
+mount_retry:
SAFE_FREE(options);
options_size = optlen + 10 + DOMAIN_SIZE;
options = (char *)malloc(options_size /* space for commas in password */ + 8 /* space for domain= , domain name itself was counted as part of the length username string above */);
exit(EX_SYSERR);
}
- options[0] = 0;
- strlcpy(options,"unc=",options_size);
+ strlcpy(options, "unc=", options_size);
strlcat(options,share_name,options_size);
/* scan backwards and reverse direction of slash */
temp = strrchr(options, '/');
if(temp > options + 6)
*temp = '\\';
- if(ipaddr) {
- strlcat(options,",ip=",options_size);
- strlcat(options,ipaddr,options_size);
- }
-
if(user_name) {
/* check for syntax like user=domain\user */
if(got_domain == 0)
/* convert all '\\' to '/' in share portion so that /proc/mounts looks pretty */
replace_char(dev_name, '\\', '/', strlen(share_name));
- if(mount(dev_name, mountpoint, "cifs", flags, options)) {
- /* remember to kill daemon on error */
+ if (!got_ip && addr) {
+ strlcat(options, ",ip=", options_size);
+ current_len = strnlen(options, options_size);
+ optionstail = options + current_len;
+ switch (addr->ai_addr->sa_family) {
+ case AF_INET6:
+ addr6 = (struct sockaddr_in6 *) addr->ai_addr;
+ ipaddr = inet_ntop(AF_INET6, &addr6->sin6_addr, optionstail,
+ options_size - current_len);
+ break;
+ case AF_INET:
+ addr4 = (struct sockaddr_in *) addr->ai_addr;
+ ipaddr = inet_ntop(AF_INET, &addr4->sin_addr, optionstail,
+ options_size - current_len);
+ break;
+ }
+
+ /* if the address looks bogus, try the next one */
+ if (!ipaddr) {
+ addr = addr->ai_next;
+ if (addr)
+ goto mount_retry;
+ rc = EX_SYSERR;
+ goto mount_exit;
+ }
+ }
+
+ if (mount(dev_name, mountpoint, "cifs", flags, options)) {
switch (errno) {
- case 0:
- printf("mount failed but no error number set\n");
+ case ECONNREFUSED:
+ case EHOSTUNREACH:
+ if (addr) {
+ addr = addr->ai_next;
+ if (addr)
+ goto mount_retry;
+ }
break;
case ENODEV:
printf("mount error: cifs filesystem not supported by the system\n");
goto mount_retry;
}
}
- default:
- printf("mount error %d = %s\n",errno,strerror(errno));
}
+ printf("mount error(%d): %s\n", errno, strerror(errno));
printf("Refer to the mount.cifs(8) manual page (e.g.man mount.cifs)\n");
rc = EX_FAIL;
- } else {
- atexit(unlock_mtab);
- rc = lock_mtab();
- if (rc) {
- printf("cannot lock mtab");
- goto mount_exit;
- }
- pmntfile = setmntent(MOUNTED, "a+");
- if (!pmntfile) {
- printf("could not update mount table\n");
- unlock_mtab();
- rc = EX_FILEIO;
- goto mount_exit;
- }
- mountent.mnt_fsname = dev_name;
- mountent.mnt_dir = mountpoint;
- mountent.mnt_type = CONST_DISCARD(char *,"cifs");
- mountent.mnt_opts = (char *)malloc(220);
- if(mountent.mnt_opts) {
- char * mount_user = getusername();
- memset(mountent.mnt_opts,0,200);
- if(flags & MS_RDONLY)
- strlcat(mountent.mnt_opts,"ro",220);
- else
- strlcat(mountent.mnt_opts,"rw",220);
- if(flags & MS_MANDLOCK)
- strlcat(mountent.mnt_opts,",mand",220);
- if(flags & MS_NOEXEC)
- strlcat(mountent.mnt_opts,",noexec",220);
- if(flags & MS_NOSUID)
- strlcat(mountent.mnt_opts,",nosuid",220);
- if(flags & MS_NODEV)
- strlcat(mountent.mnt_opts,",nodev",220);
- if(flags & MS_SYNCHRONOUS)
- strlcat(mountent.mnt_opts,",sync",220);
- if(mount_user) {
- if(getuid() != 0) {
- strlcat(mountent.mnt_opts,
- ",user=", 220);
- strlcat(mountent.mnt_opts,
- mount_user, 220);
- }
+ goto mount_exit;
+ }
+
+ atexit(unlock_mtab);
+ rc = lock_mtab();
+ if (rc) {
+ printf("cannot lock mtab");
+ goto mount_exit;
+ }
+ pmntfile = setmntent(MOUNTED, "a+");
+ if (!pmntfile) {
+ printf("could not update mount table\n");
+ unlock_mtab();
+ rc = EX_FILEIO;
+ goto mount_exit;
+ }
+ mountent.mnt_fsname = dev_name;
+ mountent.mnt_dir = mountpoint;
+ mountent.mnt_type = CONST_DISCARD(char *,"cifs");
+ mountent.mnt_opts = (char *)malloc(220);
+ if(mountent.mnt_opts) {
+ char * mount_user = getusername();
+ memset(mountent.mnt_opts,0,200);
+ if(flags & MS_RDONLY)
+ strlcat(mountent.mnt_opts,"ro",220);
+ else
+ strlcat(mountent.mnt_opts,"rw",220);
+ if(flags & MS_MANDLOCK)
+ strlcat(mountent.mnt_opts,",mand",220);
+ if(flags & MS_NOEXEC)
+ strlcat(mountent.mnt_opts,",noexec",220);
+ if(flags & MS_NOSUID)
+ strlcat(mountent.mnt_opts,",nosuid",220);
+ if(flags & MS_NODEV)
+ strlcat(mountent.mnt_opts,",nodev",220);
+ if(flags & MS_SYNCHRONOUS)
+ strlcat(mountent.mnt_opts,",sync",220);
+ if(mount_user) {
+ if(getuid() != 0) {
+ strlcat(mountent.mnt_opts,
+ ",user=", 220);
+ strlcat(mountent.mnt_opts,
+ mount_user, 220);
}
}
- mountent.mnt_freq = 0;
- mountent.mnt_passno = 0;
- rc = addmntent(pmntfile,&mountent);
- endmntent(pmntfile);
- unlock_mtab();
- SAFE_FREE(mountent.mnt_opts);
- if (rc)
- rc = EX_FILEIO;
}
+ mountent.mnt_freq = 0;
+ mountent.mnt_passno = 0;
+ rc = addmntent(pmntfile,&mountent);
+ endmntent(pmntfile);
+ unlock_mtab();
+ SAFE_FREE(mountent.mnt_opts);
+ if (rc)
+ rc = EX_FILEIO;
mount_exit:
if(mountpassword) {
int len = strlen(mountpassword);
SAFE_FREE(mountpassword);
}
+ if (addrhead)
+ freeaddrinfo(addrhead);
SAFE_FREE(options);
SAFE_FREE(orgoptions);
SAFE_FREE(resolved_path);
fi
LIBS="$save_LIBS"
+printf "%s" "checking for GPFS libs (with 3.2.1 PTF8 available as GPL)... "
+save_LIBS="$LIBS"
+LIBS="$LIBS -lgpfs"
+AC_TRY_LINK([#include <gpfs.h>],
+ [gpfs_set_share(0,GPFS_SHARE_READ,GPFS_DENY_NONE)],
+ samba_cv_HAVE_GPFS=yes,
+ samba_cv_HAVE_GPFS=no)
+echo $samba_cv_HAVE_GPFS
+if test x"$samba_cv_HAVE_GPFS" = x"yes"; then
+ AC_DEFINE(HAVE_GPFS,1,[Whether GPFS GPL libs are available])
+ default_shared_modules="$default_shared_modules vfs_gpfs"
+fi
+LIBS="$save_LIBS"
+
#############################################
# check if building on Isilon OneFS
printf "%s" "checking for Isilon OneFS... "
char *server_site_name;
char *client_site_name;
time_t current_time;
- int tried_closest_dc;
char *schema_path;
char *config_path;
} config;
bool async_req_nomem(const void *p, struct async_req *req);
+bool async_req_is_error(struct async_req *req, NTSTATUS *status);
+
+NTSTATUS async_req_simple_recv(struct async_req *req);
+
#endif
size_t size_hint);
void cli_chain_uncork(struct cli_state *cli);
bool cli_in_chain(struct cli_state *cli);
+bool smb_splice_chain(char **poutbuf, uint8_t smb_command,
+ uint8_t wct, const uint16_t *vwv,
+ size_t bytes_alignment,
+ uint16_t num_bytes, const uint8_t *bytes);
NTSTATUS cli_pull_reply(struct async_req *req,
uint8_t *pwct, uint16_t **pvwv,
#include "includes.h"
-ssize_t async_syscall_result_ssize_t(struct async_req **req, int *perrno);
-size_t async_syscall_result_size_t (struct async_req **req, int *perrno);
-ssize_t async_syscall_result_int (struct async_req **req, int *perrno);
+ssize_t async_syscall_result_ssize_t(struct async_req *req, int *perrno);
+size_t async_syscall_result_size_t(struct async_req *req, int *perrno);
+ssize_t async_syscall_result_int(struct async_req *req, int *perrno);
struct async_req *async_send(TALLOC_CTX *mem_ctx, struct event_context *ev,
int fd, const void *buffer, size_t length,
int flags);
-struct async_req *async_sendall(TALLOC_CTX *mem_ctx, struct event_context *ev,
- int fd, const void *buffer, size_t length,
- int flags);
struct async_req *async_recv(TALLOC_CTX *mem_ctx, struct event_context *ev,
int fd, void *buffer, size_t length,
int flags);
-struct async_req *async_recvall(TALLOC_CTX *mem_ctx, struct event_context *ev,
- int fd, void *buffer, size_t length,
- int flags);
struct async_req *async_connect(TALLOC_CTX *mem_ctx, struct event_context *ev,
int fd, const struct sockaddr *address,
socklen_t address_len);
+struct async_req *sendall_send(TALLOC_CTX *mem_ctx, struct event_context *ev,
+ int fd, const void *buffer, size_t length,
+ int flags);
+NTSTATUS sendall_recv(struct async_req *req);
+
+struct async_req *recvall_send(TALLOC_CTX *mem_ctx, struct event_context *ev,
+ int fd, void *buffer, size_t length,
+ int flags);
+NTSTATUS recvall_recv(struct async_req *req);
+
#endif
char *domain;
char *user_name;
+ DATA_BLOB user_session_key;
union {
struct schannel_auth_struct *schannel_auth;
bool is_guest,
struct auth_serversupplied_info **presult);
struct auth_serversupplied_info *copy_serverinfo(TALLOC_CTX *mem_ctx,
- auth_serversupplied_info *src);
+ const auth_serversupplied_info *src);
bool init_guest_info(void);
bool server_info_set_session_key(struct auth_serversupplied_info *info,
DATA_BLOB session_key);
/* The following definitions come from lib/popt_common.c */
+void popt_common_set_auth_info(struct user_auth_info *auth_info);
/* The following definitions come from lib/privileges.c */
/* The following definitions come from lib/secdesc.c */
bool sec_desc_equal(SEC_DESC *s1, SEC_DESC *s2);
+uint32_t get_sec_info(const SEC_DESC *sd);
SEC_DESC_BUF *sec_desc_merge(TALLOC_CTX *ctx, SEC_DESC_BUF *new_sdb, SEC_DESC_BUF *old_sdb);
SEC_DESC *make_sec_desc(TALLOC_CTX *ctx,
enum security_descriptor_revision revision,
const char *my_netbios_names(int i);
bool set_netbios_aliases(const char **str_array);
bool init_names(void);
-const char *get_cmdline_auth_info_username(void);
-void set_cmdline_auth_info_username(const char *username);
-const char *get_cmdline_auth_info_password(void);
-void set_cmdline_auth_info_password(const char *password);
-bool set_cmdline_auth_info_signing_state(const char *arg);
-int get_cmdline_auth_info_signing_state(void);
-void set_cmdline_auth_info_use_kerberos(bool b);
-bool get_cmdline_auth_info_use_kerberos(void);
-void set_cmdline_auth_info_use_krb5_ticket(void);
-void set_cmdline_auth_info_smb_encrypt(void);
-void set_cmdline_auth_info_use_machine_account(void);
-bool get_cmdline_auth_info_got_pass(void);
-bool get_cmdline_auth_info_smb_encrypt(void);
-bool get_cmdline_auth_info_use_machine_account(void);
-bool get_cmdline_auth_info_copy(struct user_auth_info *info);
-bool set_cmdline_auth_info_machine_account_creds(void);
+struct user_auth_info *user_auth_info_init(TALLOC_CTX *mem_ctx);
+const char *get_cmdline_auth_info_username(struct user_auth_info *auth_info);
+void set_cmdline_auth_info_username(struct user_auth_info *auth_info,
+ const char *username);
+void set_cmdline_auth_info_password(struct user_auth_info *auth_info,
+ const char *password);
+const char *get_cmdline_auth_info_password(struct user_auth_info *auth_info);
+bool set_cmdline_auth_info_signing_state(struct user_auth_info *auth_info,
+ const char *arg);
+int get_cmdline_auth_info_signing_state(struct user_auth_info *auth_info);
+void set_cmdline_auth_info_use_kerberos(struct user_auth_info *auth_info,
+ bool b);
+bool get_cmdline_auth_info_use_kerberos(struct user_auth_info *auth_info);
+void set_cmdline_auth_info_use_krb5_ticket(struct user_auth_info *auth_info);
+void set_cmdline_auth_info_smb_encrypt(struct user_auth_info *auth_info);
+void set_cmdline_auth_info_use_machine_account(struct user_auth_info *auth_info);
+bool get_cmdline_auth_info_got_pass(struct user_auth_info *auth_info);
+bool get_cmdline_auth_info_smb_encrypt(struct user_auth_info *auth_info);
+bool get_cmdline_auth_info_use_machine_account(struct user_auth_info *auth_info);
+struct user_auth_info *get_cmdline_auth_info_copy(TALLOC_CTX *mem_ctx,
+ struct user_auth_info *info);
+bool set_cmdline_auth_info_machine_account_creds(struct user_auth_info *auth_info);
bool add_gid_to_array_unique(TALLOC_CTX *mem_ctx, gid_t gid,
gid_t **gids, size_t *num_gids);
const char *get_numlist(const char *p, uint32 **num, int *count);
bool is_loopback_addr(const struct sockaddr *pss);
bool is_zero_addr(const struct sockaddr *pss);
void zero_ip_v4(struct in_addr *ip);
-void zero_addr(struct sockaddr_storage *pss);
+void zero_sockaddr(struct sockaddr_storage *pss);
void in_addr_to_sockaddr_storage(struct sockaddr_storage *ss,
struct in_addr ip);
bool same_net(const struct sockaddr *ip1,
const struct sockaddr *ip2,
const struct sockaddr *mask);
-bool addr_equal(const struct sockaddr *ip1,
+bool sockaddr_equal(const struct sockaddr *ip1,
const struct sockaddr *ip2);
bool is_address_any(const struct sockaddr *psa);
uint16_t get_sockaddr_port(const struct sockaddr_storage *pss);
/* The following definitions come from librpc/ndr/sid.c */
-enum ndr_err_code ndr_push_dom_sid(struct ndr_push *ndr, int ndr_flags, const struct dom_sid *r);
-enum ndr_err_code ndr_pull_dom_sid(struct ndr_pull *ndr, int ndr_flags, struct dom_sid *r);
char *dom_sid_string(TALLOC_CTX *mem_ctx, const struct dom_sid *sid);
-enum ndr_err_code ndr_pull_dom_sid2(struct ndr_pull *ndr, int ndr_flags, struct dom_sid *sid);
-enum ndr_err_code ndr_push_dom_sid2(struct ndr_push *ndr, int ndr_flags, const struct dom_sid *sid);
-enum ndr_err_code ndr_pull_dom_sid28(struct ndr_pull *ndr, int ndr_flags, struct dom_sid *sid);
-enum ndr_err_code ndr_push_dom_sid28(struct ndr_push *ndr, int ndr_flags, const struct dom_sid *sid);
-enum ndr_err_code ndr_pull_dom_sid0(struct ndr_pull *ndr, int ndr_flags, struct dom_sid *sid);
-enum ndr_err_code ndr_push_dom_sid0(struct ndr_push *ndr, int ndr_flags, const struct dom_sid *sid);
/* The following definitions come from librpc/rpc/binding.c */
bool force_encrypt);
void cli_cm_shutdown(void);
void cli_cm_display(void);
-void cli_cm_set_credentials(void);
+void cli_cm_set_credentials(struct user_auth_info *auth_info);
void cli_cm_set_port(int port_number);
void cli_cm_set_dest_name_type(int type);
void cli_cm_set_signing_state(int state);
/* The following definitions come from libsmb/namequery.c */
bool saf_store( const char *domain, const char *servername );
+bool saf_join_store( const char *domain, const char *servername );
bool saf_delete( const char *domain );
char *saf_fetch( const char *domain );
NODE_STATUS_STRUCT *node_status_query(int fd,
bool is_deferred_open_entry(const struct share_mode_entry *e);
bool is_unused_share_mode_entry(const struct share_mode_entry *e);
void set_share_mode(struct share_mode_lock *lck, files_struct *fsp,
- uid_t uid, uint16 mid, uint16 op_type, bool initial_delete_on_close_allowed);
+ uid_t uid, uint16 mid, uint16 op_type);
void add_deferred_open(struct share_mode_lock *lck, uint16 mid,
struct timeval request_time,
struct file_id id);
bool downgrade_share_oplock(struct share_mode_lock *lck, files_struct *fsp);
NTSTATUS can_set_delete_on_close(files_struct *fsp, bool delete_on_close,
uint32 dosmode);
-bool can_set_initial_delete_on_close(const struct share_mode_lock *lck);
void set_delete_on_close_token(struct share_mode_lock *lck, UNIX_USER_TOKEN *tok);
void set_delete_on_close_lck(struct share_mode_lock *lck, bool delete_on_close, UNIX_USER_TOKEN *tok);
bool set_delete_on_close(files_struct *fsp, bool delete_on_close, UNIX_USER_TOKEN *tok);
-bool set_allow_initial_delete_on_close(struct share_mode_lock *lck, files_struct *fsp, bool delete_on_close);
bool set_sticky_write_time(struct file_id fileid, struct timespec write_time);
bool set_write_time(struct file_id fileid, struct timespec write_time);
int share_mode_forall(void (*fn)(const struct share_mode_entry *, const char *,
char *lp_remote_browse_sync(void);
const char **lp_wins_server_list(void);
const char **lp_interfaces(void);
-char *lp_socket_address(void);
+const char *lp_socket_address(void);
char *lp_nis_home_map_name(void);
const char **lp_netbios_aliases(void);
const char *lp_passdb_backend(void);
bool lp_hideunreadable(int );
bool lp_hideunwriteable_files(int );
bool lp_browseable(int );
+bool lp_access_based_share_enum(int );
bool lp_readonly(int );
bool lp_no_set_dir(int );
bool lp_guest_ok(int );
const char *lp_ldap_user_suffix(void);
const char *lp_ldap_group_suffix(void);
const char *lp_ldap_idmap_suffix(void);
-void *lp_local_ptr(int snum, void *ptr);
+void *lp_local_ptr_by_snum(int snum, void *ptr);
bool lp_do_parameter(int snum, const char *pszParmName, const char *pszParmValue);
void init_locals(void);
bool lp_is_default(int snum, struct parm_struct *parm);
uint32_t acct_flags);
void init_samr_user_info18(struct samr_UserInfo18 *r,
const uint8 lm_pwd[16],
- const uint8 nt_pwd[16]);
+ const uint8 nt_pwd[16],
+ uint8_t password_expired);
void init_samr_user_info20(struct samr_UserInfo20 *r,
struct lsa_BinaryString *parameters);
void init_samr_user_info21(struct samr_UserInfo21 *r,
bool svcctl_io_q_query_service_status_ex(const char *desc, SVCCTL_Q_QUERY_SERVICE_STATUSEX *q_u, prs_struct *ps, int depth);
bool svcctl_io_r_query_service_status_ex(const char *desc, SVCCTL_R_QUERY_SERVICE_STATUSEX *r_u, prs_struct *ps, int depth);
-/* The following definitions come from rpc_server/srv_dfs_nt.c */
-
-void _dfs_GetManagerVersion(pipes_struct *p, struct dfs_GetManagerVersion *r);
-WERROR _dfs_Add(pipes_struct *p, struct dfs_Add *r);
-WERROR _dfs_Remove(pipes_struct *p, struct dfs_Remove *r);
-WERROR _dfs_Enum(pipes_struct *p, struct dfs_Enum *r);
-WERROR _dfs_GetInfo(pipes_struct *p, struct dfs_GetInfo *r);
-WERROR _dfs_SetInfo(pipes_struct *p, struct dfs_SetInfo *r);
-WERROR _dfs_Rename(pipes_struct *p, struct dfs_Rename *r);
-WERROR _dfs_Move(pipes_struct *p, struct dfs_Move *r);
-WERROR _dfs_ManagerGetConfigInfo(pipes_struct *p, struct dfs_ManagerGetConfigInfo *r);
-WERROR _dfs_ManagerSendSiteInfo(pipes_struct *p, struct dfs_ManagerSendSiteInfo *r);
-WERROR _dfs_AddFtRoot(pipes_struct *p, struct dfs_AddFtRoot *r);
-WERROR _dfs_RemoveFtRoot(pipes_struct *p, struct dfs_RemoveFtRoot *r);
-WERROR _dfs_AddStdRoot(pipes_struct *p, struct dfs_AddStdRoot *r);
-WERROR _dfs_RemoveStdRoot(pipes_struct *p, struct dfs_RemoveStdRoot *r);
-WERROR _dfs_ManagerInitialize(pipes_struct *p, struct dfs_ManagerInitialize *r);
-WERROR _dfs_AddStdRootForced(pipes_struct *p, struct dfs_AddStdRootForced *r);
-WERROR _dfs_GetDcAddress(pipes_struct *p, struct dfs_GetDcAddress *r);
-WERROR _dfs_SetDcAddress(pipes_struct *p, struct dfs_SetDcAddress *r);
-WERROR _dfs_FlushFtTable(pipes_struct *p, struct dfs_FlushFtTable *r);
-WERROR _dfs_Add2(pipes_struct *p, struct dfs_Add2 *r);
-WERROR _dfs_Remove2(pipes_struct *p, struct dfs_Remove2 *r);
-WERROR _dfs_EnumEx(pipes_struct *p, struct dfs_EnumEx *r);
-WERROR _dfs_SetInfo2(pipes_struct *p, struct dfs_SetInfo2 *r);
-
-/* The following definitions come from rpc_server/srv_dssetup_nt.c */
-
-WERROR _dssetup_DsRoleGetPrimaryDomainInformation(pipes_struct *p,
- struct dssetup_DsRoleGetPrimaryDomainInformation *r);
-WERROR _dssetup_DsRoleDnsNameToFlatName(pipes_struct *p,
- struct dssetup_DsRoleDnsNameToFlatName *r);
-WERROR _dssetup_DsRoleDcAsDc(pipes_struct *p,
- struct dssetup_DsRoleDcAsDc *r);
-WERROR _dssetup_DsRoleDcAsReplica(pipes_struct *p,
- struct dssetup_DsRoleDcAsReplica *r);
-WERROR _dssetup_DsRoleDemoteDc(pipes_struct *p,
- struct dssetup_DsRoleDemoteDc *r);
-WERROR _dssetup_DsRoleGetDcOperationProgress(pipes_struct *p,
- struct dssetup_DsRoleGetDcOperationProgress *r);
-WERROR _dssetup_DsRoleGetDcOperationResults(pipes_struct *p,
- struct dssetup_DsRoleGetDcOperationResults *r);
-WERROR _dssetup_DsRoleCancel(pipes_struct *p,
- struct dssetup_DsRoleCancel *r);
-WERROR _dssetup_DsRoleServerSaveStateForUpgrade(pipes_struct *p,
- struct dssetup_DsRoleServerSaveStateForUpgrade *r);
-WERROR _dssetup_DsRoleUpgradeDownlevelServer(pipes_struct *p,
- struct dssetup_DsRoleUpgradeDownlevelServer *r);
-WERROR _dssetup_DsRoleAbortDownlevelServerUpgrade(pipes_struct *p,
- struct dssetup_DsRoleAbortDownlevelServerUpgrade *r);
-
-/* The following definitions come from rpc_server/srv_echo_nt.c */
-
-void _echo_AddOne(pipes_struct *p, struct echo_AddOne *r );
-void _echo_EchoData(pipes_struct *p, struct echo_EchoData *r);
-void _echo_SinkData(pipes_struct *p, struct echo_SinkData *r);
-void _echo_SourceData(pipes_struct *p, struct echo_SourceData *r);
-void _echo_TestCall(pipes_struct *p, struct echo_TestCall *r);
-NTSTATUS _echo_TestCall2(pipes_struct *p, struct echo_TestCall2 *r);
-uint32 _echo_TestSleep(pipes_struct *p, struct echo_TestSleep *r);
-void _echo_TestEnum(pipes_struct *p, struct echo_TestEnum *r);
-void _echo_TestSurrounding(pipes_struct *p, struct echo_TestSurrounding *r);
-uint16 _echo_TestDoublePointer(pipes_struct *p, struct echo_TestDoublePointer *r);
-
/* The following definitions come from rpc_server/srv_eventlog.c */
NTSTATUS rpc_eventlog2_init(void);
/* The following definitions come from rpc_server/srv_eventlog_nt.c */
-NTSTATUS _eventlog_OpenEventLogW(pipes_struct *p,
- struct eventlog_OpenEventLogW *r);
-NTSTATUS _eventlog_ClearEventLogW(pipes_struct *p,
- struct eventlog_ClearEventLogW *r);
-NTSTATUS _eventlog_CloseEventLog( pipes_struct * p, struct eventlog_CloseEventLog *r );
NTSTATUS _eventlog_read_eventlog( pipes_struct * p,
EVENTLOG_Q_READ_EVENTLOG * q_u,
EVENTLOG_R_READ_EVENTLOG * r_u );
-NTSTATUS _eventlog_GetOldestRecord(pipes_struct *p,
- struct eventlog_GetOldestRecord *r);
-NTSTATUS _eventlog_GetNumRecords(pipes_struct *p,
- struct eventlog_GetNumRecords *r);
-NTSTATUS _eventlog_BackupEventLogW(pipes_struct *p, struct eventlog_BackupEventLogW *r);
-NTSTATUS _eventlog_DeregisterEventSource(pipes_struct *p, struct eventlog_DeregisterEventSource *r);
-NTSTATUS _eventlog_ChangeNotify(pipes_struct *p, struct eventlog_ChangeNotify *r);
-NTSTATUS _eventlog_RegisterEventSourceW(pipes_struct *p, struct eventlog_RegisterEventSourceW *r);
-NTSTATUS _eventlog_OpenBackupEventLogW(pipes_struct *p, struct eventlog_OpenBackupEventLogW *r);
-NTSTATUS _eventlog_ReadEventLogW(pipes_struct *p, struct eventlog_ReadEventLogW *r);
-NTSTATUS _eventlog_ReportEventW(pipes_struct *p, struct eventlog_ReportEventW *r);
-NTSTATUS _eventlog_ClearEventLogA(pipes_struct *p, struct eventlog_ClearEventLogA *r);
-NTSTATUS _eventlog_BackupEventLogA(pipes_struct *p, struct eventlog_BackupEventLogA *r);
-NTSTATUS _eventlog_OpenEventLogA(pipes_struct *p, struct eventlog_OpenEventLogA *r);
-NTSTATUS _eventlog_RegisterEventSourceA(pipes_struct *p, struct eventlog_RegisterEventSourceA *r);
-NTSTATUS _eventlog_OpenBackupEventLogA(pipes_struct *p, struct eventlog_OpenBackupEventLogA *r);
-NTSTATUS _eventlog_ReadEventLogA(pipes_struct *p, struct eventlog_ReadEventLogA *r);
-NTSTATUS _eventlog_ReportEventA(pipes_struct *p, struct eventlog_ReportEventA *r);
-NTSTATUS _eventlog_RegisterClusterSvc(pipes_struct *p, struct eventlog_RegisterClusterSvc *r);
-NTSTATUS _eventlog_DeregisterClusterSvc(pipes_struct *p, struct eventlog_DeregisterClusterSvc *r);
-NTSTATUS _eventlog_WriteClusterEvents(pipes_struct *p, struct eventlog_WriteClusterEvents *r);
-NTSTATUS _eventlog_GetLogIntormation(pipes_struct *p, struct eventlog_GetLogIntormation *r);
-NTSTATUS _eventlog_FlushEventLog(pipes_struct *p, struct eventlog_FlushEventLog *r);
-
-/* The following definitions come from rpc_server/srv_initshutdown_nt.c */
-
-WERROR _initshutdown_Init(pipes_struct *p, struct initshutdown_Init *r);
-WERROR _initshutdown_InitEx(pipes_struct *p, struct initshutdown_InitEx *r);
-WERROR _initshutdown_Abort(pipes_struct *p, struct initshutdown_Abort *r);
/* The following definitions come from rpc_server/srv_lsa_hnd.c */
void close_policy_by_pipe(pipes_struct *p);
bool pipe_access_check(pipes_struct *p);
-/* The following definitions come from rpc_server/srv_lsa_nt.c */
-
-NTSTATUS _lsa_OpenPolicy2(pipes_struct *p,
- struct lsa_OpenPolicy2 *r);
-NTSTATUS _lsa_OpenPolicy(pipes_struct *p,
- struct lsa_OpenPolicy *r);
-NTSTATUS _lsa_EnumTrustDom(pipes_struct *p,
- struct lsa_EnumTrustDom *r);
-NTSTATUS _lsa_QueryInfoPolicy(pipes_struct *p,
- struct lsa_QueryInfoPolicy *r);
-NTSTATUS _lsa_LookupSids(pipes_struct *p,
- struct lsa_LookupSids *r);
-NTSTATUS _lsa_LookupSids2(pipes_struct *p,
- struct lsa_LookupSids2 *r);
-NTSTATUS _lsa_LookupSids3(pipes_struct *p,
- struct lsa_LookupSids3 *r);
-NTSTATUS _lsa_LookupNames(pipes_struct *p,
- struct lsa_LookupNames *r);
-NTSTATUS _lsa_LookupNames2(pipes_struct *p,
- struct lsa_LookupNames2 *r);
-NTSTATUS _lsa_LookupNames3(pipes_struct *p,
- struct lsa_LookupNames3 *r);
-NTSTATUS _lsa_LookupNames4(pipes_struct *p,
- struct lsa_LookupNames4 *r);
-NTSTATUS _lsa_Close(pipes_struct *p, struct lsa_Close *r);
-NTSTATUS _lsa_OpenSecret(pipes_struct *p, struct lsa_OpenSecret *r);
-NTSTATUS _lsa_OpenTrustedDomain(pipes_struct *p, struct lsa_OpenTrustedDomain *r);
-NTSTATUS _lsa_CreateTrustedDomain(pipes_struct *p, struct lsa_CreateTrustedDomain *r);
-NTSTATUS _lsa_CreateSecret(pipes_struct *p, struct lsa_CreateSecret *r);
-NTSTATUS _lsa_SetSecret(pipes_struct *p, struct lsa_SetSecret *r);
-NTSTATUS _lsa_DeleteObject(pipes_struct *p,
- struct lsa_DeleteObject *r);
-NTSTATUS _lsa_EnumPrivs(pipes_struct *p,
- struct lsa_EnumPrivs *r);
-NTSTATUS _lsa_LookupPrivDisplayName(pipes_struct *p,
- struct lsa_LookupPrivDisplayName *r);
-NTSTATUS _lsa_EnumAccounts(pipes_struct *p,
- struct lsa_EnumAccounts *r);
-NTSTATUS _lsa_GetUserName(pipes_struct *p,
- struct lsa_GetUserName *r);
-NTSTATUS _lsa_CreateAccount(pipes_struct *p,
- struct lsa_CreateAccount *r);
-NTSTATUS _lsa_OpenAccount(pipes_struct *p,
- struct lsa_OpenAccount *r);
-NTSTATUS _lsa_EnumPrivsAccount(pipes_struct *p,
- struct lsa_EnumPrivsAccount *r);
-NTSTATUS _lsa_GetSystemAccessAccount(pipes_struct *p,
- struct lsa_GetSystemAccessAccount *r);
-NTSTATUS _lsa_SetSystemAccessAccount(pipes_struct *p,
- struct lsa_SetSystemAccessAccount *r);
-NTSTATUS _lsa_AddPrivilegesToAccount(pipes_struct *p,
- struct lsa_AddPrivilegesToAccount *r);
-NTSTATUS _lsa_RemovePrivilegesFromAccount(pipes_struct *p,
- struct lsa_RemovePrivilegesFromAccount *r);
-NTSTATUS _lsa_QuerySecurity(pipes_struct *p,
- struct lsa_QuerySecurity *r);
-NTSTATUS _lsa_AddAccountRights(pipes_struct *p,
- struct lsa_AddAccountRights *r);
-NTSTATUS _lsa_RemoveAccountRights(pipes_struct *p,
- struct lsa_RemoveAccountRights *r);
-NTSTATUS _lsa_EnumAccountRights(pipes_struct *p,
- struct lsa_EnumAccountRights *r);
-NTSTATUS _lsa_LookupPrivValue(pipes_struct *p,
- struct lsa_LookupPrivValue *r);
-NTSTATUS _lsa_Delete(pipes_struct *p, struct lsa_Delete *r);
-NTSTATUS _lsa_SetSecObj(pipes_struct *p, struct lsa_SetSecObj *r);
-NTSTATUS _lsa_ChangePassword(pipes_struct *p, struct lsa_ChangePassword *r);
-NTSTATUS _lsa_SetInfoPolicy(pipes_struct *p, struct lsa_SetInfoPolicy *r);
-NTSTATUS _lsa_ClearAuditLog(pipes_struct *p, struct lsa_ClearAuditLog *r);
-NTSTATUS _lsa_GetQuotasForAccount(pipes_struct *p, struct lsa_GetQuotasForAccount *r);
-NTSTATUS _lsa_SetQuotasForAccount(pipes_struct *p, struct lsa_SetQuotasForAccount *r);
-NTSTATUS _lsa_QueryTrustedDomainInfo(pipes_struct *p, struct lsa_QueryTrustedDomainInfo *r);
-NTSTATUS _lsa_SetInformationTrustedDomain(pipes_struct *p, struct lsa_SetInformationTrustedDomain *r);
-NTSTATUS _lsa_QuerySecret(pipes_struct *p, struct lsa_QuerySecret *r);
-NTSTATUS _lsa_LookupPrivName(pipes_struct *p, struct lsa_LookupPrivName *r);
-NTSTATUS _lsa_EnumAccountsWithUserRight(pipes_struct *p, struct lsa_EnumAccountsWithUserRight *r);
-NTSTATUS _lsa_QueryTrustedDomainInfoBySid(pipes_struct *p, struct lsa_QueryTrustedDomainInfoBySid *r);
-NTSTATUS _lsa_SetTrustedDomainInfo(pipes_struct *p, struct lsa_SetTrustedDomainInfo *r);
-NTSTATUS _lsa_DeleteTrustedDomain(pipes_struct *p, struct lsa_DeleteTrustedDomain *r);
-NTSTATUS _lsa_StorePrivateData(pipes_struct *p, struct lsa_StorePrivateData *r);
-NTSTATUS _lsa_RetrievePrivateData(pipes_struct *p, struct lsa_RetrievePrivateData *r);
-NTSTATUS _lsa_QueryInfoPolicy2(pipes_struct *p, struct lsa_QueryInfoPolicy2 *r);
-NTSTATUS _lsa_SetInfoPolicy2(pipes_struct *p, struct lsa_SetInfoPolicy2 *r);
-NTSTATUS _lsa_QueryTrustedDomainInfoByName(pipes_struct *p, struct lsa_QueryTrustedDomainInfoByName *r);
-NTSTATUS _lsa_SetTrustedDomainInfoByName(pipes_struct *p, struct lsa_SetTrustedDomainInfoByName *r);
-NTSTATUS _lsa_EnumTrustedDomainsEx(pipes_struct *p, struct lsa_EnumTrustedDomainsEx *r);
-NTSTATUS _lsa_CreateTrustedDomainEx(pipes_struct *p, struct lsa_CreateTrustedDomainEx *r);
-NTSTATUS _lsa_CloseTrustedDomainEx(pipes_struct *p, struct lsa_CloseTrustedDomainEx *r);
-NTSTATUS _lsa_QueryDomainInformationPolicy(pipes_struct *p, struct lsa_QueryDomainInformationPolicy *r);
-NTSTATUS _lsa_SetDomainInformationPolicy(pipes_struct *p, struct lsa_SetDomainInformationPolicy *r);
-NTSTATUS _lsa_OpenTrustedDomainByName(pipes_struct *p, struct lsa_OpenTrustedDomainByName *r);
-NTSTATUS _lsa_TestCall(pipes_struct *p, struct lsa_TestCall *r);
-NTSTATUS _lsa_CreateTrustedDomainEx2(pipes_struct *p, struct lsa_CreateTrustedDomainEx2 *r);
-NTSTATUS _lsa_CREDRWRITE(pipes_struct *p, struct lsa_CREDRWRITE *r);
-NTSTATUS _lsa_CREDRREAD(pipes_struct *p, struct lsa_CREDRREAD *r);
-NTSTATUS _lsa_CREDRENUMERATE(pipes_struct *p, struct lsa_CREDRENUMERATE *r);
-NTSTATUS _lsa_CREDRWRITEDOMAINCREDENTIALS(pipes_struct *p, struct lsa_CREDRWRITEDOMAINCREDENTIALS *r);
-NTSTATUS _lsa_CREDRREADDOMAINCREDENTIALS(pipes_struct *p, struct lsa_CREDRREADDOMAINCREDENTIALS *r);
-NTSTATUS _lsa_CREDRDELETE(pipes_struct *p, struct lsa_CREDRDELETE *r);
-NTSTATUS _lsa_CREDRGETTARGETINFO(pipes_struct *p, struct lsa_CREDRGETTARGETINFO *r);
-NTSTATUS _lsa_CREDRPROFILELOADED(pipes_struct *p, struct lsa_CREDRPROFILELOADED *r);
-NTSTATUS _lsa_CREDRGETSESSIONTYPES(pipes_struct *p, struct lsa_CREDRGETSESSIONTYPES *r);
-NTSTATUS _lsa_LSARREGISTERAUDITEVENT(pipes_struct *p, struct lsa_LSARREGISTERAUDITEVENT *r);
-NTSTATUS _lsa_LSARGENAUDITEVENT(pipes_struct *p, struct lsa_LSARGENAUDITEVENT *r);
-NTSTATUS _lsa_LSARUNREGISTERAUDITEVENT(pipes_struct *p, struct lsa_LSARUNREGISTERAUDITEVENT *r);
-NTSTATUS _lsa_lsaRQueryForestTrustInformation(pipes_struct *p, struct lsa_lsaRQueryForestTrustInformation *r);
-NTSTATUS _lsa_LSARSETFORESTTRUSTINFORMATION(pipes_struct *p, struct lsa_LSARSETFORESTTRUSTINFORMATION *r);
-NTSTATUS _lsa_CREDRRENAME(pipes_struct *p, struct lsa_CREDRRENAME *r);
-NTSTATUS _lsa_LSAROPENPOLICYSCE(pipes_struct *p, struct lsa_LSAROPENPOLICYSCE *r);
-NTSTATUS _lsa_LSARADTREGISTERSECURITYEVENTSOURCE(pipes_struct *p, struct lsa_LSARADTREGISTERSECURITYEVENTSOURCE *r);
-NTSTATUS _lsa_LSARADTUNREGISTERSECURITYEVENTSOURCE(pipes_struct *p, struct lsa_LSARADTUNREGISTERSECURITYEVENTSOURCE *r);
-NTSTATUS _lsa_LSARADTREPORTSECURITYEVENT(pipes_struct *p, struct lsa_LSARADTREPORTSECURITYEVENT *r);
-
-/* The following definitions come from rpc_server/srv_netlog_nt.c */
-
-WERROR _netr_LogonControl(pipes_struct *p,
- struct netr_LogonControl *r);
-WERROR _netr_LogonControl2(pipes_struct *p,
- struct netr_LogonControl2 *r);
-WERROR _netr_NetrEnumerateTrustedDomains(pipes_struct *p,
- struct netr_NetrEnumerateTrustedDomains *r);
-NTSTATUS _netr_ServerReqChallenge(pipes_struct *p,
- struct netr_ServerReqChallenge *r);
-NTSTATUS _netr_ServerAuthenticate(pipes_struct *p,
- struct netr_ServerAuthenticate *r);
-NTSTATUS _netr_ServerAuthenticate2(pipes_struct *p,
- struct netr_ServerAuthenticate2 *r);
-NTSTATUS _netr_ServerPasswordSet(pipes_struct *p,
- struct netr_ServerPasswordSet *r);
-NTSTATUS _netr_LogonSamLogoff(pipes_struct *p,
- struct netr_LogonSamLogoff *r);
-NTSTATUS _netr_LogonSamLogon(pipes_struct *p,
- struct netr_LogonSamLogon *r);
-NTSTATUS _netr_LogonSamLogonEx(pipes_struct *p,
- struct netr_LogonSamLogonEx *r);
-WERROR _netr_LogonUasLogon(pipes_struct *p,
- struct netr_LogonUasLogon *r);
-WERROR _netr_LogonUasLogoff(pipes_struct *p,
- struct netr_LogonUasLogoff *r);
-NTSTATUS _netr_DatabaseDeltas(pipes_struct *p,
- struct netr_DatabaseDeltas *r);
-NTSTATUS _netr_DatabaseSync(pipes_struct *p,
- struct netr_DatabaseSync *r);
-NTSTATUS _netr_AccountDeltas(pipes_struct *p,
- struct netr_AccountDeltas *r);
-NTSTATUS _netr_AccountSync(pipes_struct *p,
- struct netr_AccountSync *r);
-WERROR _netr_GetDcName(pipes_struct *p,
- struct netr_GetDcName *r);
-WERROR _netr_GetAnyDCName(pipes_struct *p,
- struct netr_GetAnyDCName *r);
-NTSTATUS _netr_DatabaseSync2(pipes_struct *p,
- struct netr_DatabaseSync2 *r);
-NTSTATUS _netr_DatabaseRedo(pipes_struct *p,
- struct netr_DatabaseRedo *r);
-WERROR _netr_LogonControl2Ex(pipes_struct *p,
- struct netr_LogonControl2Ex *r);
-WERROR _netr_DsRGetDCName(pipes_struct *p,
- struct netr_DsRGetDCName *r);
-WERROR _netr_NETRLOGONDUMMYROUTINE1(pipes_struct *p,
- struct netr_NETRLOGONDUMMYROUTINE1 *r);
-WERROR _netr_NETRLOGONSETSERVICEBITS(pipes_struct *p,
- struct netr_NETRLOGONSETSERVICEBITS *r);
-WERROR _netr_LogonGetTrustRid(pipes_struct *p,
- struct netr_LogonGetTrustRid *r);
-WERROR _netr_NETRLOGONCOMPUTESERVERDIGEST(pipes_struct *p,
- struct netr_NETRLOGONCOMPUTESERVERDIGEST *r);
-WERROR _netr_NETRLOGONCOMPUTECLIENTDIGEST(pipes_struct *p,
- struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r);
-NTSTATUS _netr_ServerAuthenticate3(pipes_struct *p,
- struct netr_ServerAuthenticate3 *r);
-WERROR _netr_DsRGetDCNameEx(pipes_struct *p,
- struct netr_DsRGetDCNameEx *r);
-WERROR _netr_DsRGetSiteName(pipes_struct *p,
- struct netr_DsRGetSiteName *r);
-NTSTATUS _netr_LogonGetDomainInfo(pipes_struct *p,
- struct netr_LogonGetDomainInfo *r);
-NTSTATUS _netr_ServerPasswordSet2(pipes_struct *p,
- struct netr_ServerPasswordSet2 *r);
-WERROR _netr_ServerPasswordGet(pipes_struct *p,
- struct netr_ServerPasswordGet *r);
-WERROR _netr_NETRLOGONSENDTOSAM(pipes_struct *p,
- struct netr_NETRLOGONSENDTOSAM *r);
-WERROR _netr_DsRAddressToSitenamesW(pipes_struct *p,
- struct netr_DsRAddressToSitenamesW *r);
-WERROR _netr_DsRGetDCNameEx2(pipes_struct *p,
- struct netr_DsRGetDCNameEx2 *r);
-WERROR _netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(pipes_struct *p,
- struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r);
-WERROR _netr_NetrEnumerateTrustedDomainsEx(pipes_struct *p,
- struct netr_NetrEnumerateTrustedDomainsEx *r);
-WERROR _netr_DsRAddressToSitenamesExW(pipes_struct *p,
- struct netr_DsRAddressToSitenamesExW *r);
-WERROR _netr_DsrGetDcSiteCoverageW(pipes_struct *p,
- struct netr_DsrGetDcSiteCoverageW *r);
-WERROR _netr_DsrEnumerateDomainTrusts(pipes_struct *p,
- struct netr_DsrEnumerateDomainTrusts *r);
-WERROR _netr_DsrDeregisterDNSHostRecords(pipes_struct *p,
- struct netr_DsrDeregisterDNSHostRecords *r);
-NTSTATUS _netr_ServerTrustPasswordsGet(pipes_struct *p,
- struct netr_ServerTrustPasswordsGet *r);
-WERROR _netr_DsRGetForestTrustInformation(pipes_struct *p,
- struct netr_DsRGetForestTrustInformation *r);
-WERROR _netr_GetForestTrustInformation(pipes_struct *p,
- struct netr_GetForestTrustInformation *r);
-NTSTATUS _netr_LogonSamLogonWithFlags(pipes_struct *p,
- struct netr_LogonSamLogonWithFlags *r);
-WERROR _netr_NETRSERVERGETTRUSTINFO(pipes_struct *p,
- struct netr_NETRSERVERGETTRUSTINFO *r);
-
/* The following definitions come from rpc_server/srv_ntsvcs.c */
void ntsvcs2_get_pipe_fns( struct api_struct **fns, int *n_fns );
/* The following definitions come from rpc_server/srv_ntsvcs_nt.c */
-WERROR _PNP_GetVersion(pipes_struct *p,
- struct PNP_GetVersion *r);
-WERROR _PNP_GetDeviceListSize(pipes_struct *p,
- struct PNP_GetDeviceListSize *r);
WERROR _ntsvcs_get_device_list( pipes_struct *p, NTSVCS_Q_GET_DEVICE_LIST *q_u, NTSVCS_R_GET_DEVICE_LIST *r_u );
-WERROR _PNP_ValidateDeviceInstance(pipes_struct *p,
- struct PNP_ValidateDeviceInstance *r);
-WERROR _PNP_GetHwProfInfo(pipes_struct *p,
- struct PNP_GetHwProfInfo *r);
-WERROR _PNP_HwProfFlags(pipes_struct *p,
- struct PNP_HwProfFlags *r);
-WERROR _PNP_Disconnect(pipes_struct *p,
- struct PNP_Disconnect *r);
-WERROR _PNP_Connect(pipes_struct *p,
- struct PNP_Connect *r);
-WERROR _PNP_GetGlobalState(pipes_struct *p,
- struct PNP_GetGlobalState *r);
-WERROR _PNP_InitDetection(pipes_struct *p,
- struct PNP_InitDetection *r);
-WERROR _PNP_ReportLogOn(pipes_struct *p,
- struct PNP_ReportLogOn *r);
-WERROR _PNP_GetRootDeviceInstance(pipes_struct *p,
- struct PNP_GetRootDeviceInstance *r);
-WERROR _PNP_GetRelatedDeviceInstance(pipes_struct *p,
- struct PNP_GetRelatedDeviceInstance *r);
-WERROR _PNP_EnumerateSubKeys(pipes_struct *p,
- struct PNP_EnumerateSubKeys *r);
-WERROR _PNP_GetDeviceList(pipes_struct *p,
- struct PNP_GetDeviceList *r);
-WERROR _PNP_GetDepth(pipes_struct *p,
- struct PNP_GetDepth *r);
-WERROR _PNP_GetDeviceRegProp(pipes_struct *p,
- struct PNP_GetDeviceRegProp *r);
-WERROR _PNP_SetDeviceRegProp(pipes_struct *p,
- struct PNP_SetDeviceRegProp *r);
-WERROR _PNP_GetClassInstance(pipes_struct *p,
- struct PNP_GetClassInstance *r);
-WERROR _PNP_CreateKey(pipes_struct *p,
- struct PNP_CreateKey *r);
-WERROR _PNP_DeleteRegistryKey(pipes_struct *p,
- struct PNP_DeleteRegistryKey *r);
-WERROR _PNP_GetClassCount(pipes_struct *p,
- struct PNP_GetClassCount *r);
-WERROR _PNP_GetClassName(pipes_struct *p,
- struct PNP_GetClassName *r);
-WERROR _PNP_DeleteClassKey(pipes_struct *p,
- struct PNP_DeleteClassKey *r);
-WERROR _PNP_GetInterfaceDeviceAlias(pipes_struct *p,
- struct PNP_GetInterfaceDeviceAlias *r);
-WERROR _PNP_GetInterfaceDeviceList(pipes_struct *p,
- struct PNP_GetInterfaceDeviceList *r);
-WERROR _PNP_GetInterfaceDeviceListSize(pipes_struct *p,
- struct PNP_GetInterfaceDeviceListSize *r);
-WERROR _PNP_RegisterDeviceClassAssociation(pipes_struct *p,
- struct PNP_RegisterDeviceClassAssociation *r);
-WERROR _PNP_UnregisterDeviceClassAssociation(pipes_struct *p,
- struct PNP_UnregisterDeviceClassAssociation *r);
-WERROR _PNP_GetClassRegProp(pipes_struct *p,
- struct PNP_GetClassRegProp *r);
-WERROR _PNP_SetClassRegProp(pipes_struct *p,
- struct PNP_SetClassRegProp *r);
-WERROR _PNP_CreateDevInst(pipes_struct *p,
- struct PNP_CreateDevInst *r);
-WERROR _PNP_DeviceInstanceAction(pipes_struct *p,
- struct PNP_DeviceInstanceAction *r);
-WERROR _PNP_GetDeviceStatus(pipes_struct *p,
- struct PNP_GetDeviceStatus *r);
-WERROR _PNP_SetDeviceProblem(pipes_struct *p,
- struct PNP_SetDeviceProblem *r);
-WERROR _PNP_DisableDevInst(pipes_struct *p,
- struct PNP_DisableDevInst *r);
-WERROR _PNP_UninstallDevInst(pipes_struct *p,
- struct PNP_UninstallDevInst *r);
-WERROR _PNP_AddID(pipes_struct *p,
- struct PNP_AddID *r);
-WERROR _PNP_RegisterDriver(pipes_struct *p,
- struct PNP_RegisterDriver *r);
-WERROR _PNP_QueryRemove(pipes_struct *p,
- struct PNP_QueryRemove *r);
-WERROR _PNP_RequestDeviceEject(pipes_struct *p,
- struct PNP_RequestDeviceEject *r);
-WERROR _PNP_IsDockStationPresent(pipes_struct *p,
- struct PNP_IsDockStationPresent *r);
-WERROR _PNP_RequestEjectPC(pipes_struct *p,
- struct PNP_RequestEjectPC *r);
-WERROR _PNP_AddEmptyLogConf(pipes_struct *p,
- struct PNP_AddEmptyLogConf *r);
-WERROR _PNP_FreeLogConf(pipes_struct *p,
- struct PNP_FreeLogConf *r);
-WERROR _PNP_GetFirstLogConf(pipes_struct *p,
- struct PNP_GetFirstLogConf *r);
-WERROR _PNP_GetNextLogConf(pipes_struct *p,
- struct PNP_GetNextLogConf *r);
-WERROR _PNP_GetLogConfPriority(pipes_struct *p,
- struct PNP_GetLogConfPriority *r);
-WERROR _PNP_AddResDes(pipes_struct *p,
- struct PNP_AddResDes *r);
-WERROR _PNP_FreeResDes(pipes_struct *p,
- struct PNP_FreeResDes *r);
-WERROR _PNP_GetNextResDes(pipes_struct *p,
- struct PNP_GetNextResDes *r);
-WERROR _PNP_GetResDesData(pipes_struct *p,
- struct PNP_GetResDesData *r);
-WERROR _PNP_GetResDesDataSize(pipes_struct *p,
- struct PNP_GetResDesDataSize *r);
-WERROR _PNP_ModifyResDes(pipes_struct *p,
- struct PNP_ModifyResDes *r);
-WERROR _PNP_DetectResourceLimit(pipes_struct *p,
- struct PNP_DetectResourceLimit *r);
-WERROR _PNP_QueryResConfList(pipes_struct *p,
- struct PNP_QueryResConfList *r);
-WERROR _PNP_SetHwProf(pipes_struct *p,
- struct PNP_SetHwProf *r);
-WERROR _PNP_QueryArbitratorFreeData(pipes_struct *p,
- struct PNP_QueryArbitratorFreeData *r);
-WERROR _PNP_QueryArbitratorFreeSize(pipes_struct *p,
- struct PNP_QueryArbitratorFreeSize *r);
-WERROR _PNP_RunDetection(pipes_struct *p,
- struct PNP_RunDetection *r);
-WERROR _PNP_RegisterNotification(pipes_struct *p,
- struct PNP_RegisterNotification *r);
-WERROR _PNP_UnregisterNotification(pipes_struct *p,
- struct PNP_UnregisterNotification *r);
-WERROR _PNP_GetCustomDevProp(pipes_struct *p,
- struct PNP_GetCustomDevProp *r);
-WERROR _PNP_GetVersionInternal(pipes_struct *p,
- struct PNP_GetVersionInternal *r);
-WERROR _PNP_GetBlockedDriverInfo(pipes_struct *p,
- struct PNP_GetBlockedDriverInfo *r);
-WERROR _PNP_GetServerSideDeviceInstallFlags(pipes_struct *p,
- struct PNP_GetServerSideDeviceInstallFlags *r);
/* The following definitions come from rpc_server/srv_pipe.c */
NTSTATUS np_read(struct files_struct *fsp, uint8_t *data, size_t len,
ssize_t *nread, bool *is_data_outstanding);
-
-/* The following definitions come from rpc_server/srv_samr_nt.c */
-
-NTSTATUS _samr_Close(pipes_struct *p, struct samr_Close *r);
-NTSTATUS _samr_OpenDomain(pipes_struct *p,
- struct samr_OpenDomain *r);
-NTSTATUS _samr_GetUserPwInfo(pipes_struct *p,
- struct samr_GetUserPwInfo *r);
-NTSTATUS _samr_SetSecurity(pipes_struct *p,
- struct samr_SetSecurity *r);
-NTSTATUS _samr_QuerySecurity(pipes_struct *p,
- struct samr_QuerySecurity *r);
-NTSTATUS _samr_EnumDomainUsers(pipes_struct *p,
- struct samr_EnumDomainUsers *r);
-NTSTATUS _samr_EnumDomainGroups(pipes_struct *p,
- struct samr_EnumDomainGroups *r);
-NTSTATUS _samr_EnumDomainAliases(pipes_struct *p,
- struct samr_EnumDomainAliases *r);
-NTSTATUS _samr_QueryDisplayInfo(pipes_struct *p,
- struct samr_QueryDisplayInfo *r);
-NTSTATUS _samr_QueryDisplayInfo2(pipes_struct *p,
- struct samr_QueryDisplayInfo2 *r);
-NTSTATUS _samr_QueryDisplayInfo3(pipes_struct *p,
- struct samr_QueryDisplayInfo3 *r);
-NTSTATUS _samr_QueryAliasInfo(pipes_struct *p,
- struct samr_QueryAliasInfo *r);
-NTSTATUS _samr_LookupNames(pipes_struct *p,
- struct samr_LookupNames *r);
-NTSTATUS _samr_ChangePasswordUser2(pipes_struct *p,
- struct samr_ChangePasswordUser2 *r);
-NTSTATUS _samr_ChangePasswordUser3(pipes_struct *p,
- struct samr_ChangePasswordUser3 *r);
-NTSTATUS _samr_LookupRids(pipes_struct *p,
- struct samr_LookupRids *r);
-NTSTATUS _samr_OpenUser(pipes_struct *p,
- struct samr_OpenUser *r);
-NTSTATUS _samr_QueryUserInfo(pipes_struct *p,
- struct samr_QueryUserInfo *r);
-NTSTATUS _samr_GetGroupsForUser(pipes_struct *p,
- struct samr_GetGroupsForUser *r);
-NTSTATUS _samr_QueryDomainInfo(pipes_struct *p,
- struct samr_QueryDomainInfo *r);
-NTSTATUS _samr_CreateUser2(pipes_struct *p,
- struct samr_CreateUser2 *r);
-NTSTATUS _samr_Connect(pipes_struct *p,
- struct samr_Connect *r);
-NTSTATUS _samr_Connect2(pipes_struct *p,
- struct samr_Connect2 *r);
-NTSTATUS _samr_Connect4(pipes_struct *p,
- struct samr_Connect4 *r);
-NTSTATUS _samr_Connect5(pipes_struct *p,
- struct samr_Connect5 *r);
-NTSTATUS _samr_LookupDomain(pipes_struct *p,
- struct samr_LookupDomain *r);
-NTSTATUS _samr_EnumDomains(pipes_struct *p,
- struct samr_EnumDomains *r);
-NTSTATUS _samr_OpenAlias(pipes_struct *p,
- struct samr_OpenAlias *r);
-NTSTATUS _samr_SetUserInfo(pipes_struct *p,
- struct samr_SetUserInfo *r);
-NTSTATUS _samr_SetUserInfo2(pipes_struct *p,
- struct samr_SetUserInfo2 *r);
-NTSTATUS _samr_GetAliasMembership(pipes_struct *p,
- struct samr_GetAliasMembership *r);
-NTSTATUS _samr_GetMembersInAlias(pipes_struct *p,
- struct samr_GetMembersInAlias *r);
-NTSTATUS _samr_QueryGroupMember(pipes_struct *p,
- struct samr_QueryGroupMember *r);
-NTSTATUS _samr_AddAliasMember(pipes_struct *p,
- struct samr_AddAliasMember *r);
-NTSTATUS _samr_DeleteAliasMember(pipes_struct *p,
- struct samr_DeleteAliasMember *r);
-NTSTATUS _samr_AddGroupMember(pipes_struct *p,
- struct samr_AddGroupMember *r);
-NTSTATUS _samr_DeleteGroupMember(pipes_struct *p,
- struct samr_DeleteGroupMember *r);
-NTSTATUS _samr_DeleteUser(pipes_struct *p,
- struct samr_DeleteUser *r);
-NTSTATUS _samr_DeleteDomainGroup(pipes_struct *p,
- struct samr_DeleteDomainGroup *r);
-NTSTATUS _samr_DeleteDomAlias(pipes_struct *p,
- struct samr_DeleteDomAlias *r);
-NTSTATUS _samr_CreateDomainGroup(pipes_struct *p,
- struct samr_CreateDomainGroup *r);
-NTSTATUS _samr_CreateDomAlias(pipes_struct *p,
- struct samr_CreateDomAlias *r);
-NTSTATUS _samr_QueryGroupInfo(pipes_struct *p,
- struct samr_QueryGroupInfo *r);
-NTSTATUS _samr_SetGroupInfo(pipes_struct *p,
- struct samr_SetGroupInfo *r);
-NTSTATUS _samr_SetAliasInfo(pipes_struct *p,
- struct samr_SetAliasInfo *r);
-NTSTATUS _samr_GetDomPwInfo(pipes_struct *p,
- struct samr_GetDomPwInfo *r);
-NTSTATUS _samr_OpenGroup(pipes_struct *p,
- struct samr_OpenGroup *r);
-NTSTATUS _samr_RemoveMemberFromForeignDomain(pipes_struct *p,
- struct samr_RemoveMemberFromForeignDomain *r);
-NTSTATUS _samr_QueryDomainInfo2(pipes_struct *p,
- struct samr_QueryDomainInfo2 *r);
-NTSTATUS _samr_SetDomainInfo(pipes_struct *p,
- struct samr_SetDomainInfo *r);
-NTSTATUS _samr_GetDisplayEnumerationIndex(pipes_struct *p,
- struct samr_GetDisplayEnumerationIndex *r);
-NTSTATUS _samr_GetDisplayEnumerationIndex2(pipes_struct *p,
- struct samr_GetDisplayEnumerationIndex2 *r);
-NTSTATUS _samr_Shutdown(pipes_struct *p,
- struct samr_Shutdown *r);
-NTSTATUS _samr_CreateUser(pipes_struct *p,
- struct samr_CreateUser *r);
-NTSTATUS _samr_SetMemberAttributesOfGroup(pipes_struct *p,
- struct samr_SetMemberAttributesOfGroup *r);
-NTSTATUS _samr_ChangePasswordUser(pipes_struct *p,
- struct samr_ChangePasswordUser *r);
-NTSTATUS _samr_TestPrivateFunctionsDomain(pipes_struct *p,
- struct samr_TestPrivateFunctionsDomain *r);
-NTSTATUS _samr_TestPrivateFunctionsUser(pipes_struct *p,
- struct samr_TestPrivateFunctionsUser *r);
-NTSTATUS _samr_QueryUserInfo2(pipes_struct *p,
- struct samr_QueryUserInfo2 *r);
-NTSTATUS _samr_AddMultipleMembersToAlias(pipes_struct *p,
- struct samr_AddMultipleMembersToAlias *r);
-NTSTATUS _samr_RemoveMultipleMembersFromAlias(pipes_struct *p,
- struct samr_RemoveMultipleMembersFromAlias *r);
-NTSTATUS _samr_OemChangePasswordUser2(pipes_struct *p,
- struct samr_OemChangePasswordUser2 *r);
-NTSTATUS _samr_SetBootKeyInformation(pipes_struct *p,
- struct samr_SetBootKeyInformation *r);
-NTSTATUS _samr_GetBootKeyInformation(pipes_struct *p,
- struct samr_GetBootKeyInformation *r);
-NTSTATUS _samr_Connect3(pipes_struct *p,
- struct samr_Connect3 *r);
-NTSTATUS _samr_RidToSid(pipes_struct *p,
- struct samr_RidToSid *r);
-NTSTATUS _samr_SetDsrmPassword(pipes_struct *p,
- struct samr_SetDsrmPassword *r);
-NTSTATUS _samr_ValidatePassword(pipes_struct *p,
- struct samr_ValidatePassword *r);
-
/* The following definitions come from rpc_server/srv_samr_util.c */
void copy_id20_to_sam_passwd(struct samu *to,
/* The following definitions come from rpc_server/srv_srvsvc_nt.c */
-WERROR _srvsvc_NetFileEnum(pipes_struct *p,
- struct srvsvc_NetFileEnum *r);
-WERROR _srvsvc_NetSrvGetInfo(pipes_struct *p,
- struct srvsvc_NetSrvGetInfo *r);
-WERROR _srvsvc_NetSrvSetInfo(pipes_struct *p,
- struct srvsvc_NetSrvSetInfo *r);
-WERROR _srvsvc_NetConnEnum(pipes_struct *p,
- struct srvsvc_NetConnEnum *r);
-WERROR _srvsvc_NetSessEnum(pipes_struct *p,
- struct srvsvc_NetSessEnum *r);
-WERROR _srvsvc_NetSessDel(pipes_struct *p,
- struct srvsvc_NetSessDel *r);
-WERROR _srvsvc_NetShareEnumAll(pipes_struct *p,
- struct srvsvc_NetShareEnumAll *r);
-WERROR _srvsvc_NetShareEnum(pipes_struct *p,
- struct srvsvc_NetShareEnum *r);
-WERROR _srvsvc_NetShareGetInfo(pipes_struct *p,
- struct srvsvc_NetShareGetInfo *r);
char *valid_share_pathname(TALLOC_CTX *ctx, const char *dos_pathname);
-WERROR _srvsvc_NetShareSetInfo(pipes_struct *p,
- struct srvsvc_NetShareSetInfo *r);
-WERROR _srvsvc_NetShareAdd(pipes_struct *p,
- struct srvsvc_NetShareAdd *r);
-WERROR _srvsvc_NetShareDel(pipes_struct *p,
- struct srvsvc_NetShareDel *r);
-WERROR _srvsvc_NetShareDelSticky(pipes_struct *p,
- struct srvsvc_NetShareDelSticky *r);
-WERROR _srvsvc_NetRemoteTOD(pipes_struct *p,
- struct srvsvc_NetRemoteTOD *r);
-WERROR _srvsvc_NetGetFileSecurity(pipes_struct *p,
- struct srvsvc_NetGetFileSecurity *r);
-WERROR _srvsvc_NetSetFileSecurity(pipes_struct *p,
- struct srvsvc_NetSetFileSecurity *r);
-WERROR _srvsvc_NetDiskEnum(pipes_struct *p,
- struct srvsvc_NetDiskEnum *r);
-WERROR _srvsvc_NetNameValidate(pipes_struct *p,
- struct srvsvc_NetNameValidate *r);
-WERROR _srvsvc_NetFileClose(pipes_struct *p, struct srvsvc_NetFileClose *r);
-WERROR _srvsvc_NetCharDevEnum(pipes_struct *p, struct srvsvc_NetCharDevEnum *r);
-WERROR _srvsvc_NetCharDevGetInfo(pipes_struct *p, struct srvsvc_NetCharDevGetInfo *r);
-WERROR _srvsvc_NetCharDevControl(pipes_struct *p, struct srvsvc_NetCharDevControl *r);
-WERROR _srvsvc_NetCharDevQEnum(pipes_struct *p, struct srvsvc_NetCharDevQEnum *r);
-WERROR _srvsvc_NetCharDevQGetInfo(pipes_struct *p, struct srvsvc_NetCharDevQGetInfo *r);
-WERROR _srvsvc_NetCharDevQSetInfo(pipes_struct *p, struct srvsvc_NetCharDevQSetInfo *r);
-WERROR _srvsvc_NetCharDevQPurge(pipes_struct *p, struct srvsvc_NetCharDevQPurge *r);
-WERROR _srvsvc_NetCharDevQPurgeSelf(pipes_struct *p, struct srvsvc_NetCharDevQPurgeSelf *r);
-WERROR _srvsvc_NetFileGetInfo(pipes_struct *p, struct srvsvc_NetFileGetInfo *r);
-WERROR _srvsvc_NetShareCheck(pipes_struct *p, struct srvsvc_NetShareCheck *r);
-WERROR _srvsvc_NetServerStatisticsGet(pipes_struct *p, struct srvsvc_NetServerStatisticsGet *r);
-WERROR _srvsvc_NetTransportAdd(pipes_struct *p, struct srvsvc_NetTransportAdd *r);
-WERROR _srvsvc_NetTransportEnum(pipes_struct *p, struct srvsvc_NetTransportEnum *r);
-WERROR _srvsvc_NetTransportDel(pipes_struct *p, struct srvsvc_NetTransportDel *r);
-WERROR _srvsvc_NetSetServiceBits(pipes_struct *p, struct srvsvc_NetSetServiceBits *r);
-WERROR _srvsvc_NetPathType(pipes_struct *p, struct srvsvc_NetPathType *r);
-WERROR _srvsvc_NetPathCanonicalize(pipes_struct *p, struct srvsvc_NetPathCanonicalize *r);
-WERROR _srvsvc_NetPathCompare(pipes_struct *p, struct srvsvc_NetPathCompare *r);
-WERROR _srvsvc_NETRPRNAMECANONICALIZE(pipes_struct *p, struct srvsvc_NETRPRNAMECANONICALIZE *r);
-WERROR _srvsvc_NetPRNameCompare(pipes_struct *p, struct srvsvc_NetPRNameCompare *r);
-WERROR _srvsvc_NetShareDelStart(pipes_struct *p, struct srvsvc_NetShareDelStart *r);
-WERROR _srvsvc_NetShareDelCommit(pipes_struct *p, struct srvsvc_NetShareDelCommit *r);
-WERROR _srvsvc_NetServerTransportAddEx(pipes_struct *p, struct srvsvc_NetServerTransportAddEx *r);
-WERROR _srvsvc_NetServerSetServiceBitsEx(pipes_struct *p, struct srvsvc_NetServerSetServiceBitsEx *r);
-WERROR _srvsvc_NETRDFSGETVERSION(pipes_struct *p, struct srvsvc_NETRDFSGETVERSION *r);
-WERROR _srvsvc_NETRDFSCREATELOCALPARTITION(pipes_struct *p, struct srvsvc_NETRDFSCREATELOCALPARTITION *r);
-WERROR _srvsvc_NETRDFSDELETELOCALPARTITION(pipes_struct *p, struct srvsvc_NETRDFSDELETELOCALPARTITION *r);
-WERROR _srvsvc_NETRDFSSETLOCALVOLUMESTATE(pipes_struct *p, struct srvsvc_NETRDFSSETLOCALVOLUMESTATE *r);
-WERROR _srvsvc_NETRDFSSETSERVERINFO(pipes_struct *p, struct srvsvc_NETRDFSSETSERVERINFO *r);
-WERROR _srvsvc_NETRDFSCREATEEXITPOINT(pipes_struct *p, struct srvsvc_NETRDFSCREATEEXITPOINT *r);
-WERROR _srvsvc_NETRDFSDELETEEXITPOINT(pipes_struct *p, struct srvsvc_NETRDFSDELETEEXITPOINT *r);
-WERROR _srvsvc_NETRDFSMODIFYPREFIX(pipes_struct *p, struct srvsvc_NETRDFSMODIFYPREFIX *r);
-WERROR _srvsvc_NETRDFSFIXLOCALVOLUME(pipes_struct *p, struct srvsvc_NETRDFSFIXLOCALVOLUME *r);
-WERROR _srvsvc_NETRDFSMANAGERREPORTSITEINFO(pipes_struct *p, struct srvsvc_NETRDFSMANAGERREPORTSITEINFO *r);
-WERROR _srvsvc_NETRSERVERTRANSPORTDELEX(pipes_struct *p, struct srvsvc_NETRSERVERTRANSPORTDELEX *r);
/* The following definitions come from rpc_server/srv_svcctl.c */
/* The following definitions come from rpc_server/srv_svcctl_nt.c */
bool init_service_op_table( void );
-WERROR _svcctl_OpenSCManagerW(pipes_struct *p,
- struct svcctl_OpenSCManagerW *r);
-WERROR _svcctl_OpenServiceW(pipes_struct *p,
- struct svcctl_OpenServiceW *r);
-WERROR _svcctl_CloseServiceHandle(pipes_struct *p, struct svcctl_CloseServiceHandle *r);
-WERROR _svcctl_GetServiceDisplayNameW(pipes_struct *p,
- struct svcctl_GetServiceDisplayNameW *r);
-WERROR _svcctl_QueryServiceStatus(pipes_struct *p,
- struct svcctl_QueryServiceStatus *r);
WERROR _svcctl_enum_services_status(pipes_struct *p, SVCCTL_Q_ENUM_SERVICES_STATUS *q_u, SVCCTL_R_ENUM_SERVICES_STATUS *r_u);
-WERROR _svcctl_StartServiceW(pipes_struct *p,
- struct svcctl_StartServiceW *r);
-WERROR _svcctl_ControlService(pipes_struct *p,
- struct svcctl_ControlService *r);
-WERROR _svcctl_EnumDependentServicesW(pipes_struct *p,
- struct svcctl_EnumDependentServicesW *r);
WERROR _svcctl_query_service_status_ex( pipes_struct *p, SVCCTL_Q_QUERY_SERVICE_STATUSEX *q_u, SVCCTL_R_QUERY_SERVICE_STATUSEX *r_u );
WERROR _svcctl_query_service_config2( pipes_struct *p, SVCCTL_Q_QUERY_SERVICE_CONFIG2 *q_u, SVCCTL_R_QUERY_SERVICE_CONFIG2 *r_u );
-WERROR _svcctl_LockServiceDatabase(pipes_struct *p,
- struct svcctl_LockServiceDatabase *r);
-WERROR _svcctl_UnlockServiceDatabase(pipes_struct *p,
- struct svcctl_UnlockServiceDatabase *r);
-WERROR _svcctl_QueryServiceObjectSecurity(pipes_struct *p,
- struct svcctl_QueryServiceObjectSecurity *r);
-WERROR _svcctl_SetServiceObjectSecurity(pipes_struct *p,
- struct svcctl_SetServiceObjectSecurity *r);
-WERROR _svcctl_DeleteService(pipes_struct *p, struct svcctl_DeleteService *r);
-WERROR _svcctl_SetServiceStatus(pipes_struct *p, struct svcctl_SetServiceStatus *r);
-WERROR _svcctl_NotifyBootConfigStatus(pipes_struct *p, struct svcctl_NotifyBootConfigStatus *r);
-WERROR _svcctl_SCSetServiceBitsW(pipes_struct *p, struct svcctl_SCSetServiceBitsW *r);
-WERROR _svcctl_ChangeServiceConfigW(pipes_struct *p, struct svcctl_ChangeServiceConfigW *r);
-WERROR _svcctl_CreateServiceW(pipes_struct *p, struct svcctl_CreateServiceW *r);
-WERROR _svcctl_EnumServicesStatusW(pipes_struct *p, struct svcctl_EnumServicesStatusW *r);
-WERROR _svcctl_QueryServiceConfigW(pipes_struct *p, struct svcctl_QueryServiceConfigW *r);
-WERROR _svcctl_QueryServiceLockStatusW(pipes_struct *p, struct svcctl_QueryServiceLockStatusW *r);
-WERROR _svcctl_GetServiceKeyNameW(pipes_struct *p, struct svcctl_GetServiceKeyNameW *r);
-WERROR _svcctl_SCSetServiceBitsA(pipes_struct *p, struct svcctl_SCSetServiceBitsA *r);
-WERROR _svcctl_ChangeServiceConfigA(pipes_struct *p, struct svcctl_ChangeServiceConfigA *r);
-WERROR _svcctl_CreateServiceA(pipes_struct *p, struct svcctl_CreateServiceA *r);
-WERROR _svcctl_EnumDependentServicesA(pipes_struct *p, struct svcctl_EnumDependentServicesA *r);
-WERROR _svcctl_EnumServicesStatusA(pipes_struct *p, struct svcctl_EnumServicesStatusA *r);
-WERROR _svcctl_OpenSCManagerA(pipes_struct *p, struct svcctl_OpenSCManagerA *r);
-WERROR _svcctl_OpenServiceA(pipes_struct *p, struct svcctl_OpenServiceA *r);
-WERROR _svcctl_QueryServiceConfigA(pipes_struct *p, struct svcctl_QueryServiceConfigA *r);
-WERROR _svcctl_QueryServiceLockStatusA(pipes_struct *p, struct svcctl_QueryServiceLockStatusA *r);
-WERROR _svcctl_StartServiceA(pipes_struct *p, struct svcctl_StartServiceA *r);
-WERROR _svcctl_GetServiceDisplayNameA(pipes_struct *p, struct svcctl_GetServiceDisplayNameA *r);
-WERROR _svcctl_GetServiceKeyNameA(pipes_struct *p, struct svcctl_GetServiceKeyNameA *r);
-WERROR _svcctl_GetCurrentGroupeStateW(pipes_struct *p, struct svcctl_GetCurrentGroupeStateW *r);
-WERROR _svcctl_EnumServiceGroupW(pipes_struct *p, struct svcctl_EnumServiceGroupW *r);
-WERROR _svcctl_ChangeServiceConfig2A(pipes_struct *p, struct svcctl_ChangeServiceConfig2A *r);
-WERROR _svcctl_ChangeServiceConfig2W(pipes_struct *p, struct svcctl_ChangeServiceConfig2W *r);
-WERROR _svcctl_QueryServiceConfig2A(pipes_struct *p, struct svcctl_QueryServiceConfig2A *r);
-WERROR _svcctl_QueryServiceConfig2W(pipes_struct *p, struct svcctl_QueryServiceConfig2W *r);
-WERROR _svcctl_QueryServiceStatusEx(pipes_struct *p, struct svcctl_QueryServiceStatusEx *r);
-WERROR _EnumServicesStatusExA(pipes_struct *p, struct EnumServicesStatusExA *r);
-WERROR _EnumServicesStatusExW(pipes_struct *p, struct EnumServicesStatusExW *r);
-WERROR _svcctl_SCSendTSMessage(pipes_struct *p, struct svcctl_SCSendTSMessage *r);
-
-/* The following definitions come from rpc_server/srv_winreg_nt.c */
-
-WERROR _winreg_CloseKey(pipes_struct *p, struct winreg_CloseKey *r);
-WERROR _winreg_OpenHKLM(pipes_struct *p, struct winreg_OpenHKLM *r);
-WERROR _winreg_OpenHKPD(pipes_struct *p, struct winreg_OpenHKPD *r);
-WERROR _winreg_OpenHKPT(pipes_struct *p, struct winreg_OpenHKPT *r);
-WERROR _winreg_OpenHKCR(pipes_struct *p, struct winreg_OpenHKCR *r);
-WERROR _winreg_OpenHKU(pipes_struct *p, struct winreg_OpenHKU *r);
-WERROR _winreg_OpenHKCU(pipes_struct *p, struct winreg_OpenHKCU *r);
-WERROR _winreg_OpenHKCC(pipes_struct *p, struct winreg_OpenHKCC *r);
-WERROR _winreg_OpenHKDD(pipes_struct *p, struct winreg_OpenHKDD *r);
-WERROR _winreg_OpenHKPN(pipes_struct *p, struct winreg_OpenHKPN *r);
-WERROR _winreg_OpenKey(pipes_struct *p, struct winreg_OpenKey *r);
-WERROR _winreg_QueryValue(pipes_struct *p, struct winreg_QueryValue *r);
-WERROR _winreg_QueryInfoKey(pipes_struct *p, struct winreg_QueryInfoKey *r);
-WERROR _winreg_GetVersion(pipes_struct *p, struct winreg_GetVersion *r);
-WERROR _winreg_EnumKey(pipes_struct *p, struct winreg_EnumKey *r);
-WERROR _winreg_EnumValue(pipes_struct *p, struct winreg_EnumValue *r);
-WERROR _winreg_InitiateSystemShutdown(pipes_struct *p, struct winreg_InitiateSystemShutdown *r);
-WERROR _winreg_InitiateSystemShutdownEx(pipes_struct *p, struct winreg_InitiateSystemShutdownEx *r);
-WERROR _winreg_AbortSystemShutdown(pipes_struct *p, struct winreg_AbortSystemShutdown *r);
-WERROR _winreg_RestoreKey(pipes_struct *p, struct winreg_RestoreKey *r);
-WERROR _winreg_SaveKey(pipes_struct *p, struct winreg_SaveKey *r);
-WERROR _winreg_SaveKeyEx(pipes_struct *p, struct winreg_SaveKeyEx *r);
-WERROR _winreg_CreateKey( pipes_struct *p, struct winreg_CreateKey *r);
-WERROR _winreg_SetValue(pipes_struct *p, struct winreg_SetValue *r);
-WERROR _winreg_DeleteKey(pipes_struct *p, struct winreg_DeleteKey *r);
-WERROR _winreg_DeleteValue(pipes_struct *p, struct winreg_DeleteValue *r);
-WERROR _winreg_GetKeySecurity(pipes_struct *p, struct winreg_GetKeySecurity *r);
-WERROR _winreg_SetKeySecurity(pipes_struct *p, struct winreg_SetKeySecurity *r);
-WERROR _winreg_FlushKey(pipes_struct *p, struct winreg_FlushKey *r);
-WERROR _winreg_UnLoadKey(pipes_struct *p, struct winreg_UnLoadKey *r);
-WERROR _winreg_ReplaceKey(pipes_struct *p, struct winreg_ReplaceKey *r);
-WERROR _winreg_LoadKey(pipes_struct *p, struct winreg_LoadKey *r);
-WERROR _winreg_NotifyChangeKeyValue(pipes_struct *p, struct winreg_NotifyChangeKeyValue *r);
-WERROR _winreg_QueryMultipleValues(pipes_struct *p, struct winreg_QueryMultipleValues *r);
-WERROR _winreg_QueryMultipleValues2(pipes_struct *p, struct winreg_QueryMultipleValues2 *r);
-
-/* The following definitions come from rpc_server/srv_wkssvc_nt.c */
-
-WERROR _wkssvc_NetWkstaGetInfo(pipes_struct *p, struct wkssvc_NetWkstaGetInfo *r);
-WERROR _wkssvc_NetWkstaSetInfo(pipes_struct *p, struct wkssvc_NetWkstaSetInfo *r);
-WERROR _wkssvc_NetWkstaEnumUsers(pipes_struct *p, struct wkssvc_NetWkstaEnumUsers *r);
-WERROR _wkssvc_NetrWkstaUserGetInfo(pipes_struct *p, struct wkssvc_NetrWkstaUserGetInfo *r);
-WERROR _wkssvc_NetrWkstaUserSetInfo(pipes_struct *p, struct wkssvc_NetrWkstaUserSetInfo *r);
-WERROR _wkssvc_NetWkstaTransportEnum(pipes_struct *p, struct wkssvc_NetWkstaTransportEnum *r);
-WERROR _wkssvc_NetrWkstaTransportAdd(pipes_struct *p, struct wkssvc_NetrWkstaTransportAdd *r);
-WERROR _wkssvc_NetrWkstaTransportDel(pipes_struct *p, struct wkssvc_NetrWkstaTransportDel *r);
-WERROR _wkssvc_NetrUseAdd(pipes_struct *p, struct wkssvc_NetrUseAdd *r);
-WERROR _wkssvc_NetrUseGetInfo(pipes_struct *p, struct wkssvc_NetrUseGetInfo *r);
-WERROR _wkssvc_NetrUseDel(pipes_struct *p, struct wkssvc_NetrUseDel *r);
-WERROR _wkssvc_NetrUseEnum(pipes_struct *p, struct wkssvc_NetrUseEnum *r);
-WERROR _wkssvc_NetrMessageBufferSend(pipes_struct *p, struct wkssvc_NetrMessageBufferSend *r);
-WERROR _wkssvc_NetrWorkstationStatisticsGet(pipes_struct *p, struct wkssvc_NetrWorkstationStatisticsGet *r) ;
-WERROR _wkssvc_NetrLogonDomainNameAdd(pipes_struct *p, struct wkssvc_NetrLogonDomainNameAdd *r);
-WERROR _wkssvc_NetrLogonDomainNameDel(pipes_struct *p, struct wkssvc_NetrLogonDomainNameDel *r);
-WERROR _wkssvc_NetrJoinDomain(pipes_struct *p, struct wkssvc_NetrJoinDomain *r);
-WERROR _wkssvc_NetrUnjoinDomain(pipes_struct *p, struct wkssvc_NetrUnjoinDomain *r);
-WERROR _wkssvc_NetrRenameMachineInDomain(pipes_struct *p, struct wkssvc_NetrRenameMachineInDomain *r);
-WERROR _wkssvc_NetrValidateName(pipes_struct *p, struct wkssvc_NetrValidateName *r);
-WERROR _wkssvc_NetrGetJoinInformation(pipes_struct *p, struct wkssvc_NetrGetJoinInformation *r);
-WERROR _wkssvc_NetrGetJoinableOus(pipes_struct *p, struct wkssvc_NetrGetJoinableOus *r);
-WERROR _wkssvc_NetrJoinDomain2(pipes_struct *p,
- struct wkssvc_NetrJoinDomain2 *r);
-WERROR _wkssvc_NetrUnjoinDomain2(pipes_struct *p,
- struct wkssvc_NetrUnjoinDomain2 *r);
-WERROR _wkssvc_NetrRenameMachineInDomain2(pipes_struct *p, struct wkssvc_NetrRenameMachineInDomain2 *r);
-WERROR _wkssvc_NetrValidateName2(pipes_struct *p, struct wkssvc_NetrValidateName2 *r);
-WERROR _wkssvc_NetrGetJoinableOus2(pipes_struct *p, struct wkssvc_NetrGetJoinableOus2 *r);
-WERROR _wkssvc_NetrAddAlternateComputerName(pipes_struct *p, struct wkssvc_NetrAddAlternateComputerName *r);
-WERROR _wkssvc_NetrRemoveAlternateComputerName(pipes_struct *p, struct wkssvc_NetrRemoveAlternateComputerName *r);
-WERROR _wkssvc_NetrSetPrimaryComputername(pipes_struct *p, struct wkssvc_NetrSetPrimaryComputername *r);
-WERROR _wkssvc_NetrEnumerateComputerNames(pipes_struct *p, struct wkssvc_NetrEnumerateComputerNames *r);
/* The following definitions come from rpcclient/cmd_dfs.c */
mode_t unix_mode(connection_struct *conn, int dosmode, const char *fname,
const char *inherit_from_dir);
uint32 dos_mode_msdfs(connection_struct *conn, const char *path,SMB_STRUCT_STAT *sbuf);
+int dos_attributes_to_stat_dos_flags(uint32_t dosmode);
uint32 dos_mode(connection_struct *conn, const char *path,SMB_STRUCT_STAT *sbuf);
int file_set_dosmode(connection_struct *conn, const char *fname,
uint32 dosmode, SMB_STRUCT_STAT *st,
char **pp_saved_last_component,
SMB_STRUCT_STAT *pst);
NTSTATUS check_name(connection_struct *conn, const char *name);
+int get_real_filename(connection_struct *conn, const char *path,
+ const char *name, TALLOC_CTX *mem_ctx,
+ char **found_name);
/* The following definitions come from smbd/files.c */
uint32_t access_desired,
uint32_t *access_granted);
NTSTATUS fd_close(files_struct *fsp);
+void change_file_owner_to_parent(connection_struct *conn,
+ const char *inherit_from_dir,
+ files_struct *fsp);
+NTSTATUS change_dir_owner_to_parent(connection_struct *conn,
+ const char *inherit_from_dir,
+ const char *fname,
+ SMB_STRUCT_STAT *psbuf);
+bool is_executable(const char *fname);
+bool is_stat_open(uint32 access_mask);
+bool request_timed_out(struct timeval request_time,
+ struct timeval timeout);
+bool open_match_attributes(connection_struct *conn,
+ const char *path,
+ uint32 old_dos_attr,
+ uint32 new_dos_attr,
+ mode_t existing_unx_mode,
+ mode_t new_unx_mode,
+ mode_t *returned_unx_mode);
+NTSTATUS fcb_or_dos_open(struct smb_request *req,
+ connection_struct *conn,
+ files_struct *fsp_to_dup_into,
+ const char *fname,
+ struct file_id id,
+ uint16 file_pid,
+ uint16 vuid,
+ uint32 access_mask,
+ uint32 share_access,
+ uint32 create_options);
bool map_open_params_to_ntcreate(const char *fname, int deny_mode, int open_func,
uint32 *paccess_mask,
uint32 *pshare_mode,
uint32 *pcreate_disposition,
uint32 *pcreate_options);
-NTSTATUS open_file_ntcreate(connection_struct *conn,
- struct smb_request *req,
- const char *fname,
- SMB_STRUCT_STAT *psbuf,
- uint32 access_mask, /* access bits (FILE_READ_DATA etc.) */
- uint32 share_access, /* share constants (FILE_SHARE_READ etc) */
- uint32 create_disposition, /* FILE_OPEN_IF etc. */
- uint32 create_options, /* options such as delete on close. */
- uint32 new_dos_attributes, /* attributes used for new file. */
- int oplock_request, /* internal Samba oplock codes. */
- /* Information (FILE_EXISTS etc.) */
- int *pinfo,
- files_struct **result);
NTSTATUS open_file_fchmod(struct smb_request *req, connection_struct *conn,
const char *fname,
SMB_STRUCT_STAT *psbuf, files_struct **result);
NTSTATUS close_file_fchmod(struct smb_request *req, files_struct *fsp);
-NTSTATUS open_directory(connection_struct *conn,
- struct smb_request *req,
- const char *fname,
- SMB_STRUCT_STAT *psbuf,
- uint32 access_mask,
- uint32 share_access,
- uint32 create_disposition,
- uint32 create_options,
- uint32 file_attributes,
- int *pinfo,
- files_struct **result);
NTSTATUS create_directory(connection_struct *conn, struct smb_request *req, const char *directory);
void msg_file_was_renamed(struct messaging_context *msg,
void *private_data,
uint32_t msg_type,
struct server_id server_id,
DATA_BLOB *data);
-NTSTATUS create_file_unixpath(connection_struct *conn,
- struct smb_request *req,
- const char *fname,
- uint32_t access_mask,
- uint32_t share_access,
- uint32_t create_disposition,
- uint32_t create_options,
- uint32_t file_attributes,
- uint32_t oplock_request,
- uint64_t allocation_size,
- struct security_descriptor *sd,
- struct ea_list *ea_list,
-
- files_struct **result,
- int *pinfo,
- SMB_STRUCT_STAT *psbuf);
-NTSTATUS create_file(connection_struct *conn,
- struct smb_request *req,
- uint16_t root_dir_fid,
- const char *fname,
- uint32_t access_mask,
- uint32_t share_access,
- uint32_t create_disposition,
- uint32_t create_options,
- uint32_t file_attributes,
- uint32_t oplock_request,
- uint64_t allocation_size,
- struct security_descriptor *sd,
- struct ea_list *ea_list,
-
- files_struct **result,
- int *pinfo,
- SMB_STRUCT_STAT *psbuf);
+struct case_semantics_state;
+struct case_semantics_state *set_posix_case_semantics(TALLOC_CTX *mem_ctx,
+ connection_struct *conn);
+NTSTATUS create_file_default(connection_struct *conn,
+ struct smb_request *req,
+ uint16_t root_dir_fid,
+ const char *fname,
+ uint32_t create_file_flags,
+ uint32_t access_mask,
+ uint32_t share_access,
+ uint32_t create_disposition,
+ uint32_t create_options,
+ uint32_t file_attributes,
+ uint32_t oplock_request,
+ uint64_t allocation_size,
+ struct security_descriptor *sd,
+ struct ea_list *ea_list,
+
+ files_struct **result,
+ int *pinfo,
+ SMB_STRUCT_STAT *psbuf);
+NTSTATUS get_relative_fid_filename(connection_struct *conn,
+ struct smb_request *req,
+ uint16_t root_dir_fid,
+ const char *fname, char **new_fname);
/* The following definitions come from smbd/oplock.c */
const struct nt_user_token *token,
const char **list);
bool user_ok_token(const char *username, const char *domain,
- struct nt_user_token *token, int snum);
+ const struct nt_user_token *token, int snum);
bool is_share_read_only_for_token(const char *username,
const char *domain,
- struct nt_user_token *token,
+ const struct nt_user_token *token,
connection_struct *conn);
/* The following definitions come from smbd/srvstr.c */
*
* @sa http://msdn.microsoft.com/library/default.asp?url=/library/en-us/security/accctrl_38yn.asp
**/
-typedef struct dom_sid {
- uint8 sid_rev_num; /**< SID revision number */
- uint8 num_auths; /**< Number of sub-authorities */
- uint8 id_auth[6]; /**< Identifier Authority */
- /*
- * Pointer to sub-authorities.
- *
- * @note The values in these uint32's are in *native* byteorder, not
- * neccessarily little-endian...... JRA.
- */
- uint32 sub_auths[MAXSUBAUTHS];
-} DOM_SID;
+typedef struct dom_sid DOM_SID;
enum id_mapping {
ID_UNKNOWN = 0,
};
#define SHARE_MODE_FLAG_POSIX_OPEN 0x1
-#define SHARE_MODE_ALLOW_INITIAL_DELETE_ON_CLOSE 0x2
/* struct returned by get_share_modes */
struct share_mode_entry {
char samba_version_string[SAMBA_EXTENDED_INFO_VERSION_STRING_LENGTH];
};
+/*
+ * create_file_flags
+ */
+#define CFF_DOS_PATH 0x00000001
+
#endif /* _SMB_H */
/* Warning - this must only be called with 0 <= c < 128. IT WILL
* GIVE GARBAGE if c > 128 or c < 0. JRA.
*/
-extern char toupper_ascii_fast_table[];
+extern const char toupper_ascii_fast_table[];
#define toupper_ascii_fast(c) toupper_ascii_fast_table[(unsigned int)(c)];
#endif
open handle. JRA. */
/* Changed to version 24 - make security descriptor const in fset_nt_acl. JRA. */
/* Changed to version 25 - Jelmer's change from SMB_BIG_UINT to uint64_t. */
+/* Leave at 25 - not yet released. Add create_file call. -- tprouty. */
#define SMB_VFS_INTERFACE_VERSION 25
struct files_struct;
struct security_descriptor;
struct vfs_statvfs_struct;
+struct smb_request;
+struct ea_list;
/*
Available VFS operations. These values must be in sync with vfs_ops struct
/* File operations */
SMB_VFS_OP_OPEN,
+ SMB_VFS_OP_CREATE_FILE,
SMB_VFS_OP_CLOSE,
SMB_VFS_OP_READ,
SMB_VFS_OP_PREAD,
SMB_VFS_OP_CHFLAGS,
SMB_VFS_OP_FILE_ID_CREATE,
SMB_VFS_OP_STREAMINFO,
+ SMB_VFS_OP_GET_REAL_FILENAME,
/* NT ACL operations. */
/* File operations */
int (*open)(struct vfs_handle_struct *handle, const char *fname, files_struct *fsp, int flags, mode_t mode);
+ NTSTATUS (*create_file)(struct vfs_handle_struct *handle,
+ struct smb_request *req,
+ uint16_t root_dir_fid,
+ const char *fname,
+ uint32_t create_file_flags,
+ uint32_t access_mask,
+ uint32_t share_access,
+ uint32_t create_disposition,
+ uint32_t create_options,
+ uint32_t file_attributes,
+ uint32_t oplock_request,
+ uint64_t allocation_size,
+ struct security_descriptor *sd,
+ struct ea_list *ea_list,
+ files_struct **result,
+ int *pinfo,
+ SMB_STRUCT_STAT *psbuf);
int (*close_fn)(struct vfs_handle_struct *handle, struct files_struct *fsp);
ssize_t (*vfs_read)(struct vfs_handle_struct *handle, struct files_struct *fsp, void *data, size_t n);
ssize_t (*pread)(struct vfs_handle_struct *handle, struct files_struct *fsp, void *data, size_t n, SMB_OFF_T offset);
unsigned int *num_streams,
struct stream_struct **streams);
+ int (*get_real_filename)(struct vfs_handle_struct *handle,
+ const char *path,
+ const char *name,
+ TALLOC_CTX *mem_ctx,
+ char **found_name);
+
/* NT ACL operations. */
NTSTATUS (*fget_nt_acl)(struct vfs_handle_struct *handle,
/* File operations */
struct vfs_handle_struct *open;
+ struct vfs_handle_struct *create_file;
struct vfs_handle_struct *close_hnd;
struct vfs_handle_struct *vfs_read;
struct vfs_handle_struct *pread;
struct vfs_handle_struct *chflags;
struct vfs_handle_struct *file_id_create;
struct vfs_handle_struct *streaminfo;
+ struct vfs_handle_struct *get_real_filename;
/* NT ACL operations. */
/* File operations */
#define SMB_VFS_OPEN(conn, fname, fsp, flags, mode) (((conn)->vfs.ops.open)((conn)->vfs.handles.open, (fname), (fsp), (flags), (mode)))
+#define SMB_VFS_CREATE_FILE(conn, req, root_dir_fid, fname, create_file_flags, access_mask, share_access, create_disposition, create_options, file_attributes, oplock_request, allocation_size, sd, ea_list, result, pinfo, psbuf) (((conn)->vfs.ops.create_file)((conn)->vfs.handles.create_file, (req), (root_dir_fid), (fname), (create_file_flags), (access_mask), (share_access), (create_disposition), (create_options), (file_attributes), (oplock_request), (allocation_size), (sd), (ea_list), (result), (pinfo), (psbuf)))
#define SMB_VFS_CLOSE(fsp) ((fsp)->conn->vfs.ops.close_fn((fsp)->conn->vfs.handles.close_hnd, (fsp)))
#define SMB_VFS_READ(fsp, data, n) ((fsp)->conn->vfs.ops.vfs_read((fsp)->conn->vfs.handles.vfs_read, (fsp), (data), (n)))
#define SMB_VFS_PREAD(fsp, data, n, off) ((fsp)->conn->vfs.ops.pread((fsp)->conn->vfs.handles.pread, (fsp), (data), (n), (off)))
#define SMB_VFS_CHFLAGS(conn, path, flags) ((conn)->vfs.ops.chflags((conn)->vfs.handles.chflags, (path), (flags)))
#define SMB_VFS_FILE_ID_CREATE(conn, dev, inode) ((conn)->vfs.ops.file_id_create((conn)->vfs.handles.file_id_create, (dev), (inode)))
#define SMB_VFS_STREAMINFO(conn, fsp, fname, mem_ctx, num_streams, streams) ((conn)->vfs.ops.streaminfo((conn)->vfs.handles.streaminfo, (fsp), (fname), (mem_ctx), (num_streams), (streams)))
+#define SMB_VFS_GET_REAL_FILENAME(conn, path, name, mem_ctx, found_name) ((conn)->vfs.ops.get_real_filename((conn)->vfs.handles.get_real_filename, (path), (name), (mem_ctx), (found_name)))
/* NT ACL operations. */
#define SMB_VFS_FGET_NT_ACL(fsp, security_info, ppdesc) ((fsp)->conn->vfs.ops.fget_nt_acl((fsp)->conn->vfs.handles.fget_nt_acl, (fsp), (security_info), (ppdesc)))
/* File operations */
#define SMB_VFS_OPAQUE_OPEN(conn, fname, fsp, flags, mode) (((conn)->vfs_opaque.ops.open)((conn)->vfs_opaque.handles.open, (fname), (fsp), (flags), (mode)))
+#define SMB_VFS_OPAQUE_CREATE_FILE(conn, req, root_dir_fid, fname, create_file_flags, access_mask, share_access, create_disposition, create_options, file_attributes, oplock_request, allocation_size, sd, ea_list, result, pinfo, psbuf) (((conn)->vfs_opaque.ops.create_file)((conn)->vfs_opaque.handles.create_file, (req), (root_dir_fid), (fname), (create_file_flags), (access_mask), (share_access), (create_disposition), (create_options), (file_attributes), (oplock_request), (allocation_size), (sd), (ea_list), (result), (pinfo), (psbuf)))
#define SMB_VFS_OPAQUE_CLOSE(fsp) ((fsp)->conn->vfs_opaque.ops.close_fn((fsp)->conn->vfs_opaque.handles.close_hnd, (fsp)))
#define SMB_VFS_OPAQUE_READ(fsp, data, n) ((fsp)->conn->vfs_opaque.ops.vfs_read((fsp)->conn->vfs_opaque.handles.vfs_read, (fsp), (data), (n)))
#define SMB_VFS_OPAQUE_PREAD(fsp, data, n, off) ((fsp)->conn->vfs_opaque.ops.pread((fsp)->conn->vfs_opaque.handles.pread, (fsp), (data), (n), (off)))
#define SMB_VFS_OPAQUE_CHFLAGS(conn, path, flags) ((conn)->vfs_opaque.ops.chflags((conn)->vfs_opaque.handles.chflags, (path), (flags)))
#define SMB_VFS_OPAQUE_FILE_ID_CREATE(conn, dev, inode) ((conn)->vfs.ops_opaque.file_id_create((conn)->vfs_opaque.handles.file_id_create, (dev), (inode)))
#define SMB_VFS_OPAQUE_STREAMINFO(conn, fsp, fname, mem_ctx, num_streams, streams) ((conn)->vfs_opaque.ops.streaminfo((conn)->vfs_opaque.handles.streaminfo, (fsp), (fname), (mem_ctx), (num_streams), (streams)))
+#define SMB_VFS_OPAQUE_GET_REAL_FILENAME(conn, path, name, mem_ctx, found_name) ((conn)->vfs_opaque.ops.get_real_filename((conn)->vfs_opaque.handles.get_real_filename, (path), (name), (mem_ctx), (found_name)))
/* NT ACL operations. */
#define SMB_VFS_OPAQUE_FGET_NT_ACL(fsp, security_info, ppdesc) ((fsp)->conn->vfs_opaque.ops.fget_nt_acl((fsp)->conn->vfs_opaque.handles.fget_nt_acl, (fsp), (security_info), (ppdesc)))
/* File operations */
#define SMB_VFS_NEXT_OPEN(handle, fname, fsp, flags, mode) (((handle)->vfs_next.ops.open)((handle)->vfs_next.handles.open, (fname), (fsp), (flags), (mode)))
+#define SMB_VFS_NEXT_CREATE_FILE(handle, req, root_dir_fid, fname, create_file_flags, access_mask, share_access, create_disposition, create_options, file_attributes, oplock_request, allocation_size, sd, ea_list, result, pinfo, psbuf) (((handle)->vfs_next.ops.create_file)((handle)->vfs_next.handles.create_file, (req), (root_dir_fid), (fname), (create_file_flags), (access_mask), (share_access), (create_disposition), (create_options), (file_attributes), (oplock_request), (allocation_size), (sd), (ea_list), (result), (pinfo), (psbuf)))
#define SMB_VFS_NEXT_CLOSE(handle, fsp) ((handle)->vfs_next.ops.close_fn((handle)->vfs_next.handles.close_hnd, (fsp)))
#define SMB_VFS_NEXT_READ(handle, fsp, data, n) ((handle)->vfs_next.ops.vfs_read((handle)->vfs_next.handles.vfs_read, (fsp), (data), (n)))
#define SMB_VFS_NEXT_PREAD(handle, fsp, data, n, off) ((handle)->vfs_next.ops.pread((handle)->vfs_next.handles.pread, (fsp), (data), (n), (off)))
#define SMB_VFS_NEXT_CHFLAGS(handle, path, flags) ((handle)->vfs_next.ops.chflags((handle)->vfs_next.handles.chflags, (path), (flags)))
#define SMB_VFS_NEXT_FILE_ID_CREATE(handle, dev, inode) ((handle)->vfs_next.ops.file_id_create((handle)->vfs_next.handles.file_id_create, (dev), (inode)))
#define SMB_VFS_NEXT_STREAMINFO(handle, fsp, fname, mem_ctx, num_streams, streams) ((handle)->vfs_next.ops.streaminfo((handle)->vfs_next.handles.streaminfo, (fsp), (fname), (mem_ctx), (num_streams), (streams)))
+#define SMB_VFS_NEXT_GET_REAL_FILENAME(conn, path, name, mem_ctx, found_name) ((conn)->vfs_next.ops.get_real_filename((conn)->vfs_next.handles.get_real_filename, (path), (name), (mem_ctx), (found_name)))
/* NT ACL operations. */
#define SMB_VFS_NEXT_FGET_NT_ACL(handle, fsp, security_info, ppdesc) ((handle)->vfs_next.ops.fget_nt_acl((handle)->vfs_next.handles.fget_nt_acl, (fsp), (security_info), (ppdesc)))
async_req_error(req, NT_STATUS_NO_MEMORY);
return true;
}
+
+bool async_req_is_error(struct async_req *req, NTSTATUS *status)
+{
+ if (req->state < ASYNC_REQ_DONE) {
+ *status = NT_STATUS_INTERNAL_ERROR;
+ return true;
+ }
+ if (req->state == ASYNC_REQ_ERROR) {
+ *status = req->status;
+ return true;
+ }
+ return false;
+}
+
+NTSTATUS async_req_simple_recv(struct async_req *req)
+{
+ NTSTATUS status;
+
+ if (async_req_is_error(req, &status)) {
+ return status;
+ }
+ return NT_STATUS_OK;
+}
* @retval The return value from the asynchronously called syscall
*/
-ssize_t async_syscall_result_ssize_t(struct async_req **req, int *perrno)
+ssize_t async_syscall_result_ssize_t(struct async_req *req, int *perrno)
{
struct async_syscall_state *state = talloc_get_type_abort(
- (*req)->private_data, struct async_syscall_state);
-
- int sys_errno = state->sys_errno;
- ssize_t result = state->result.result_ssize_t;
-
- TALLOC_FREE(*req);
+ req->private_data, struct async_syscall_state);
- *perrno = sys_errno;
- return result;
+ *perrno = state->sys_errno;
+ return state->result.result_ssize_t;
}
/**
* @retval The return value from the asynchronously called syscall
*/
-size_t async_syscall_result_size_t(struct async_req **req, int *perrno)
+size_t async_syscall_result_size_t(struct async_req *req, int *perrno)
{
struct async_syscall_state *state = talloc_get_type_abort(
- (*req)->private_data, struct async_syscall_state);
-
- int sys_errno = state->sys_errno;
- size_t result = state->result.result_ssize_t;
-
- TALLOC_FREE(*req);
+ req->private_data, struct async_syscall_state);
- *perrno = sys_errno;
- return result;
+ *perrno = state->sys_errno;
+ return state->result.result_size_t;
}
/**
* @retval The return value from the asynchronously called syscall
*/
-ssize_t async_syscall_result_int(struct async_req **req, int *perrno)
+ssize_t async_syscall_result_int(struct async_req *req, int *perrno)
{
struct async_syscall_state *state = talloc_get_type_abort(
- (*req)->private_data, struct async_syscall_state);
-
- int sys_errno = state->sys_errno;
- int result = state->result.result_ssize_t;
-
- TALLOC_FREE(*req);
+ req->private_data, struct async_syscall_state);
- *perrno = sys_errno;
- return result;
+ *perrno = state->sys_errno;
+ return state->result.result_int;
}
/**
* "length" bytes
*/
-struct async_req *async_sendall(TALLOC_CTX *mem_ctx, struct event_context *ev,
- int fd, const void *buffer, size_t length,
- int flags)
+struct async_req *sendall_send(TALLOC_CTX *mem_ctx, struct event_context *ev,
+ int fd, const void *buffer, size_t length,
+ int flags)
{
struct async_req *result;
struct async_syscall_state *state;
return result;
}
+NTSTATUS sendall_recv(struct async_req *req)
+{
+ return async_req_simple_recv(req);
+}
+
/**
* fde event handler for the "recv" syscall
* @param[in] ev The event context that sent us here
* async_recvall will call recv(2) until "length" bytes are received
*/
-struct async_req *async_recvall(TALLOC_CTX *mem_ctx, struct event_context *ev,
- int fd, void *buffer, size_t length,
- int flags)
+struct async_req *recvall_send(TALLOC_CTX *mem_ctx, struct event_context *ev,
+ int fd, void *buffer, size_t length,
+ int flags)
{
struct async_req *result;
struct async_syscall_state *state;
return result;
}
+NTSTATUS recvall_recv(struct async_req *req)
+{
+ return async_req_simple_recv(req);
+}
+
/**
* fde event handler for connect(2)
* @param[in] ev The event context that sent us here
ret = vasprintf(&msgbuf, format_str, ap);
va_end(ap);
- if (ret == -1) {
+ if (ret != -1) {
syslog(priority, "%s", msgbuf);
}
SAFE_FREE(msgbuf);
void display_acl_type(uint16 type)
{
- static fstring typestr="";
+ fstring typestr="";
typestr[0] = 0;
{
struct interface *i;
for (i=local_interfaces;i;i=i->next) {
- if (addr_equal((struct sockaddr *)&i->ip,ip)) {
+ if (sockaddr_equal((struct sockaddr *)&i->ip,ip)) {
return true;
}
}
if (same_net(ip, (struct sockaddr *)&i->ip, (struct sockaddr *)&i->netmask)) {
return i;
}
- } else if (addr_equal((struct sockaddr *)&i->ip, ip)) {
+ } else if (sockaddr_equal((struct sockaddr *)&i->ip, ip)) {
return i;
}
}
{
struct interface *i;
for (i=local_interfaces;i;i=i->next) {
- if (addr_equal((struct sockaddr *)&i->ip,pss)) {
+ if (sockaddr_equal((struct sockaddr *)&i->ip,pss)) {
struct sockaddr_in6 *psa6 =
(struct sockaddr_in6 *)pss;
psa6->sin6_scope_id = if_nametoindex(i->name);
}
for (i=0;i<total_probed;i++) {
- if (addr_equal((struct sockaddr *)&ss, (struct sockaddr *)&probed_ifaces[i].ip)) {
+ if (sockaddr_equal((struct sockaddr *)&ss, (struct sockaddr *)&probed_ifaces[i].ip)) {
add_interface(&probed_ifaces[i]);
return;
}
make_net(&ss_net, &ss, &ss_mask);
/* Maybe the first component was a broadcast address. */
- if (addr_equal((struct sockaddr *)&ss_bcast, (struct sockaddr *)&ss) ||
- addr_equal((struct sockaddr *)&ss_net, (struct sockaddr *)&ss)) {
+ if (sockaddr_equal((struct sockaddr *)&ss_bcast, (struct sockaddr *)&ss) ||
+ sockaddr_equal((struct sockaddr *)&ss_net, (struct sockaddr *)&ss)) {
for (i=0;i<total_probed;i++) {
if (same_net((struct sockaddr *)&ss,
(struct sockaddr *)&probed_ifaces[i].ip,
fields_present |= SAMR_FIELD_ACCOUNT_NAME;
}
if (infoX->usriX_password) {
- fields_present |= SAMR_FIELD_PASSWORD;
+ fields_present |= SAMR_FIELD_NT_PASSWORD_PRESENT;
}
if (infoX->usriX_flags) {
fields_present |= SAMR_FIELD_ACCT_FLAGS;
};
struct poptOption popt_common_version[] = {
- { NULL, 0, POPT_ARG_CALLBACK, (void *)popt_common_callback },
+ { NULL, 0, POPT_ARG_CALLBACK|POPT_CBFLAG_POST, (void *)popt_common_callback },
{ "version", 'V', POPT_ARG_NONE, NULL, 'V', "Print version" },
POPT_TABLEEND
};
* exit on failure
* ****************************************************************************/
-static void get_password_file(void)
+static void get_password_file(struct user_auth_info *auth_info)
{
int fd = -1;
char *p;
}
SAFE_FREE(spec);
- set_cmdline_auth_info_password(pass);
+ set_cmdline_auth_info_password(auth_info, pass);
if (close_it) {
close(fd);
}
}
-static void get_credentials_file(const char *file)
+static void get_credentials_file(struct user_auth_info *auth_info,
+ const char *file)
{
XFILE *auth;
fstring buf;
val++;
if (strwicmp("password", param) == 0) {
- set_cmdline_auth_info_password(val);
+ set_cmdline_auth_info_password(auth_info, val);
} else if (strwicmp("username", param) == 0) {
- set_cmdline_auth_info_username(val);
+ set_cmdline_auth_info_username(auth_info, val);
} else if (strwicmp("domain", param) == 0) {
set_global_myworkgroup(val);
}
const struct poptOption *opt,
const char *arg, const void *data)
{
+ struct user_auth_info *auth_info = talloc_get_type_abort(
+ *((const char **)data), struct user_auth_info);
char *p;
if (reason == POPT_CALLBACK_REASON_PRE) {
- set_cmdline_auth_info_username("GUEST");
+ set_cmdline_auth_info_username(auth_info, "GUEST");
if (getenv("LOGNAME")) {
- set_cmdline_auth_info_username(getenv("LOGNAME"));
+ set_cmdline_auth_info_username(auth_info,
+ getenv("LOGNAME"));
}
if (getenv("USER")) {
if (!puser) {
exit(ENOMEM);
}
- set_cmdline_auth_info_username(puser);
+ set_cmdline_auth_info_username(auth_info, puser);
if ((p = strchr_m(puser,'%'))) {
size_t len;
*p = 0;
len = strlen(p+1);
- set_cmdline_auth_info_password(p+1);
+ set_cmdline_auth_info_password(auth_info, p+1);
memset(strchr_m(getenv("USER"),'%')+1,'X',len);
}
SAFE_FREE(puser);
}
if (getenv("PASSWD")) {
- set_cmdline_auth_info_password(getenv("PASSWD"));
+ set_cmdline_auth_info_password(auth_info,
+ getenv("PASSWD"));
}
if (getenv("PASSWD_FD") || getenv("PASSWD_FILE")) {
- get_password_file();
+ get_password_file(auth_info);
}
return;
if ((lp=strchr_m(puser,'%'))) {
size_t len;
*lp = 0;
- set_cmdline_auth_info_username(puser);
- set_cmdline_auth_info_password(lp+1);
+ set_cmdline_auth_info_username(auth_info,
+ puser);
+ set_cmdline_auth_info_password(auth_info,
+ lp+1);
len = strlen(lp+1);
memset(strchr_m(arg,'%')+1,'X',len);
} else {
- set_cmdline_auth_info_username(puser);
+ set_cmdline_auth_info_username(auth_info,
+ puser);
}
SAFE_FREE(puser);
}
break;
case 'A':
- get_credentials_file(arg);
+ get_credentials_file(auth_info, arg);
break;
case 'k':
d_printf("No kerberos support compiled in\n");
exit(1);
#else
- set_cmdline_auth_info_use_krb5_ticket();
+ set_cmdline_auth_info_use_krb5_ticket(auth_info);
#endif
break;
case 'S':
- if (!set_cmdline_auth_info_signing_state(arg)) {
+ if (!set_cmdline_auth_info_signing_state(auth_info, arg)) {
fprintf(stderr, "Unknown signing option %s\n", arg );
exit(1);
}
break;
case 'P':
- set_cmdline_auth_info_use_machine_account();
+ set_cmdline_auth_info_use_machine_account(auth_info);
break;
case 'N':
- set_cmdline_auth_info_password("");
+ set_cmdline_auth_info_password(auth_info, "");
break;
case 'e':
- set_cmdline_auth_info_smb_encrypt();
+ set_cmdline_auth_info_smb_encrypt(auth_info);
break;
}
}
+static struct user_auth_info *global_auth_info;
+
+void popt_common_set_auth_info(struct user_auth_info *auth_info)
+{
+ global_auth_info = auth_info;
+}
+
struct poptOption popt_common_credentials[] = {
- { NULL, 0, POPT_ARG_CALLBACK|POPT_CBFLAG_PRE, (void *)popt_common_credentials_callback },
+ { NULL, 0, POPT_ARG_CALLBACK|POPT_CBFLAG_PRE,
+ (void *)popt_common_credentials_callback, 0,
+ (const char *)&global_auth_info },
{ "user", 'U', POPT_ARG_STRING, NULL, 'U', "Set the network username", "USERNAME" },
{ "no-pass", 'N', POPT_ARG_NONE, NULL, 'N', "Don't ask for a password" },
{ "kerberos", 'k', POPT_ARG_NONE, NULL, 'k', "Use kerberos (active directory) authentication" },
return True;
}
+/*******************************************************************
+ Given a security_descriptor return the sec_info.
+********************************************************************/
+
+uint32_t get_sec_info(const SEC_DESC *sd)
+{
+ uint32_t sec_info = ALL_SECURITY_INFORMATION;
+
+ SMB_ASSERT(sd);
+
+ if (sd->owner_sid == NULL) {
+ sec_info &= ~OWNER_SECURITY_INFORMATION;
+ }
+ if (sd->group_sid == NULL) {
+ sec_info &= ~GROUP_SECURITY_INFORMATION;
+ }
+ if (sd->sacl == NULL) {
+ sec_info &= ~SACL_SECURITY_INFORMATION;
+ }
+ if (sd->dacl == NULL) {
+ sec_info &= ~DACL_SECURITY_INFORMATION;
+ }
+
+ return sec_info;
+}
+
+
/*******************************************************************
Merge part of security descriptor old_sec in to the empty sections of
security descriptor new_sec.
Used mainly in client tools.
****************************************************************************/
-static struct user_auth_info cmdline_auth_info = {
- NULL, /* username */
- NULL, /* password */
- false, /* got_pass */
- false, /* use_kerberos */
- Undefined, /* signing state */
- false, /* smb_encrypt */
- false /* use machine account */
-};
-
-const char *get_cmdline_auth_info_username(void)
-{
- if (!cmdline_auth_info.username) {
+struct user_auth_info *user_auth_info_init(TALLOC_CTX *mem_ctx)
+{
+ struct user_auth_info *result;
+
+ result = TALLOC_ZERO_P(mem_ctx, struct user_auth_info);
+ if (result == NULL) {
+ return NULL;
+ }
+
+ result->signing_state = Undefined;
+ return result;
+}
+
+const char *get_cmdline_auth_info_username(struct user_auth_info *auth_info)
+{
+ if (!auth_info->username) {
return "";
}
- return cmdline_auth_info.username;
+ return auth_info->username;
}
-void set_cmdline_auth_info_username(const char *username)
+void set_cmdline_auth_info_username(struct user_auth_info *auth_info,
+ const char *username)
{
- SAFE_FREE(cmdline_auth_info.username);
- cmdline_auth_info.username = SMB_STRDUP(username);
- if (!cmdline_auth_info.username) {
+ TALLOC_FREE(auth_info->username);
+ auth_info->username = talloc_strdup(auth_info, username);
+ if (!auth_info->username) {
exit(ENOMEM);
}
}
-const char *get_cmdline_auth_info_password(void)
+const char *get_cmdline_auth_info_password(struct user_auth_info *auth_info)
{
- if (!cmdline_auth_info.password) {
+ if (!auth_info->password) {
return "";
}
- return cmdline_auth_info.password;
+ return auth_info->password;
}
-void set_cmdline_auth_info_password(const char *password)
+void set_cmdline_auth_info_password(struct user_auth_info *auth_info,
+ const char *password)
{
- SAFE_FREE(cmdline_auth_info.password);
- cmdline_auth_info.password = SMB_STRDUP(password);
- if (!cmdline_auth_info.password) {
+ TALLOC_FREE(auth_info->password);
+ auth_info->password = talloc_strdup(auth_info, password);
+ if (!auth_info->password) {
exit(ENOMEM);
}
- cmdline_auth_info.got_pass = true;
+ auth_info->got_pass = true;
}
-bool set_cmdline_auth_info_signing_state(const char *arg)
+bool set_cmdline_auth_info_signing_state(struct user_auth_info *auth_info,
+ const char *arg)
{
- cmdline_auth_info.signing_state = -1;
+ auth_info->signing_state = -1;
if (strequal(arg, "off") || strequal(arg, "no") ||
strequal(arg, "false")) {
- cmdline_auth_info.signing_state = false;
+ auth_info->signing_state = false;
} else if (strequal(arg, "on") || strequal(arg, "yes") ||
strequal(arg, "true") || strequal(arg, "auto")) {
- cmdline_auth_info.signing_state = true;
+ auth_info->signing_state = true;
} else if (strequal(arg, "force") || strequal(arg, "required") ||
strequal(arg, "forced")) {
- cmdline_auth_info.signing_state = Required;
+ auth_info->signing_state = Required;
} else {
return false;
}
return true;
}
-int get_cmdline_auth_info_signing_state(void)
+int get_cmdline_auth_info_signing_state(struct user_auth_info *auth_info)
{
- return cmdline_auth_info.signing_state;
+ return auth_info->signing_state;
}
-void set_cmdline_auth_info_use_kerberos(bool b)
+void set_cmdline_auth_info_use_kerberos(struct user_auth_info *auth_info,
+ bool b)
{
- cmdline_auth_info.use_kerberos = b;
+ auth_info->use_kerberos = b;
}
-bool get_cmdline_auth_info_use_kerberos(void)
+bool get_cmdline_auth_info_use_kerberos(struct user_auth_info *auth_info)
{
- return cmdline_auth_info.use_kerberos;
+ return auth_info->use_kerberos;
}
/* This should only be used by lib/popt_common.c JRA */
-void set_cmdline_auth_info_use_krb5_ticket(void)
+void set_cmdline_auth_info_use_krb5_ticket(struct user_auth_info *auth_info)
{
- cmdline_auth_info.use_kerberos = true;
- cmdline_auth_info.got_pass = true;
+ auth_info->use_kerberos = true;
+ auth_info->got_pass = true;
}
/* This should only be used by lib/popt_common.c JRA */
-void set_cmdline_auth_info_smb_encrypt(void)
+void set_cmdline_auth_info_smb_encrypt(struct user_auth_info *auth_info)
{
- cmdline_auth_info.smb_encrypt = true;
+ auth_info->smb_encrypt = true;
}
-void set_cmdline_auth_info_use_machine_account(void)
+void set_cmdline_auth_info_use_machine_account(struct user_auth_info *auth_info)
{
- cmdline_auth_info.use_machine_account = true;
+ auth_info->use_machine_account = true;
}
-bool get_cmdline_auth_info_got_pass(void)
+bool get_cmdline_auth_info_got_pass(struct user_auth_info *auth_info)
{
- return cmdline_auth_info.got_pass;
+ return auth_info->got_pass;
}
-bool get_cmdline_auth_info_smb_encrypt(void)
+bool get_cmdline_auth_info_smb_encrypt(struct user_auth_info *auth_info)
{
- return cmdline_auth_info.smb_encrypt;
+ return auth_info->smb_encrypt;
}
-bool get_cmdline_auth_info_use_machine_account(void)
+bool get_cmdline_auth_info_use_machine_account(struct user_auth_info *auth_info)
{
- return cmdline_auth_info.use_machine_account;
+ return auth_info->use_machine_account;
}
-bool get_cmdline_auth_info_copy(struct user_auth_info *info)
+struct user_auth_info *get_cmdline_auth_info_copy(TALLOC_CTX *mem_ctx,
+ struct user_auth_info *src)
{
- *info = cmdline_auth_info;
- /* Now re-alloc the strings. */
- info->username = SMB_STRDUP(get_cmdline_auth_info_username());
- info->password = SMB_STRDUP(get_cmdline_auth_info_password());
- if (!info->username || !info->password) {
- return false;
+ struct user_auth_info *result;
+
+ result = user_auth_info_init(mem_ctx);
+ if (result == NULL) {
+ return NULL;
}
- return true;
+
+ *result = *src;
+
+ result->username = talloc_strdup(
+ result, get_cmdline_auth_info_username(src));
+ result->password = talloc_strdup(
+ result, get_cmdline_auth_info_password(src));
+ if ((result->username == NULL) || (result->password == NULL)) {
+ TALLOC_FREE(result);
+ return NULL;
+ }
+
+ return result;
}
-bool set_cmdline_auth_info_machine_account_creds(void)
+bool set_cmdline_auth_info_machine_account_creds(struct user_auth_info *auth_info)
{
char *pass = NULL;
char *account = NULL;
- if (!get_cmdline_auth_info_use_machine_account()) {
+ if (!get_cmdline_auth_info_use_machine_account(auth_info)) {
return false;
}
return false;
}
- set_cmdline_auth_info_username(account);
- set_cmdline_auth_info_password(pass);
+ set_cmdline_auth_info_username(auth_info, account);
+ set_cmdline_auth_info_password(auth_info, pass);
SAFE_FREE(account);
SAFE_FREE(pass);
}
#endif
- zero_addr(pss);
+ zero_sockaddr(pss);
if (!interpret_string_addr_internal(&res, str, flags|AI_ADDRCONFIG)) {
return false;
Set an address to INADDR_ANY.
******************************************************************/
-void zero_addr(struct sockaddr_storage *pss)
+void zero_sockaddr(struct sockaddr_storage *pss)
{
memset(pss, '\0', sizeof(*pss));
/* Ensure we're at least a valid sockaddr-storage. */
if (!res->ai_addr) {
continue;
}
- if (addr_equal((const struct sockaddr *)res->ai_addr,
+ if (sockaddr_equal((const struct sockaddr *)res->ai_addr,
(struct sockaddr *)pss)) {
freeaddrinfo(ailist);
return true;
p = get_peer_addr_internal(fd, addr_buf, sizeof(addr_buf), (struct sockaddr *)&ss, &length);
/* it might be the same as the last one - save some DNS work */
- if (addr_equal((struct sockaddr *)&ss, (struct sockaddr *)&nc.ss)) {
+ if (sockaddr_equal((struct sockaddr *)&ss, (struct sockaddr *)&nc.ss)) {
return nc.name ? nc.name : "UNKNOWN";
}
}
n = get_interfaces(nics, MAX_INTERFACES);
for (i=0; i<n; i++) {
- if (addr_equal((struct sockaddr *)&nics[i].ip, (struct sockaddr *)&ss)) {
+ if (sockaddr_equal((struct sockaddr *)&nics[i].ip, (struct sockaddr *)&ss)) {
TALLOC_FREE(nics);
return true;
}
#include "includes.h"
-char toupper_ascii_fast_table[128] = {
+const char toupper_ascii_fast_table[128] = {
0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
get_kdc_list(realm, sitename, &ip_srv_site, &count_site);
for (i = 0; i < count_site; i++) {
- if (addr_equal((struct sockaddr *)&ip_srv_site[i].ss,
+ if (sockaddr_equal((struct sockaddr *)&ip_srv_site[i].ss,
(struct sockaddr *)pss)) {
continue;
}
for (i = 0; i < count_nonsite; i++) {
int j;
- if (addr_equal((struct sockaddr *)&ip_srv_nonsite[i].ss, (struct sockaddr *)pss)) {
+ if (sockaddr_equal((struct sockaddr *)&ip_srv_nonsite[i].ss, (struct sockaddr *)pss)) {
continue;
}
/* Ensure this isn't an IP already seen (YUK! this is n*n....) */
for (j = 0; j < count_site; j++) {
- if (addr_equal((struct sockaddr *)&ip_srv_nonsite[i].ss,
+ if (sockaddr_equal((struct sockaddr *)&ip_srv_nonsite[i].ss,
(struct sockaddr *)&ip_srv_site[j].ss)) {
break;
}
return True;
}
+ if (ads->config.client_site_name == NULL) {
+ DEBUG(10,("ads_closest_dc: client belongs to no site\n"));
+ return True;
+ }
+
DEBUG(10,("ads_closest_dc: %s is not the closest DC\n",
ads->config.ldap_server_name));
static NTSTATUS ads_find_dc(ADS_STRUCT *ads)
{
+ const char *c_domain;
const char *c_realm;
int count, i=0;
struct ip_service *ip_list;
const char *realm;
+ const char *domain;
bool got_realm = False;
bool use_own_domain = False;
char *sitename;
return NT_STATUS_INVALID_PARAMETER; /* rather need MISSING_PARAMETER ... */
}
+ if ( use_own_domain ) {
+ c_domain = lp_workgroup();
+ } else {
+ c_domain = ads->server.workgroup;
+ }
+
realm = c_realm;
+ domain = c_domain;
+
+ /*
+ * In case of LDAP we use get_dc_name() as that
+ * creates the custom krb5.conf file
+ */
+ if (!(ads->auth.flags & ADS_AUTH_NO_BIND)) {
+ fstring srv_name;
+ struct sockaddr_storage ip_out;
+
+ DEBUG(6,("ads_find_dc: (ldap) looking for %s '%s'\n",
+ (got_realm ? "realm" : "domain"), realm));
+
+ if (get_dc_name(domain, realm, srv_name, &ip_out)) {
+ /*
+ * we call ads_try_connect() to fill in the
+ * ads->config details
+ */
+ if (ads_try_connect(ads, srv_name, false)) {
+ return NT_STATUS_OK;
+ }
+ }
+
+ return NT_STATUS_NO_LOGON_SERVERS;
+ }
sitename = sitename_fetch(realm);
again:
- DEBUG(6,("ads_find_dc: looking for %s '%s'\n",
+ DEBUG(6,("ads_find_dc: (cldap) looking for %s '%s'\n",
(got_realm ? "realm" : "domain"), realm));
status = get_sorted_dc_list(realm, sitename, &ip_list, &count, got_realm);
/* cache the successful connection for workgroup and realm */
if (ads_closest_dc(ads)) {
- print_sockaddr(addr, sizeof(addr), &ads->ldap.ss);
- saf_store( ads->server.workgroup, addr);
- saf_store( ads->server.realm, addr);
+ saf_store( ads->server.workgroup, ads->config.ldap_server_name);
+ saf_store( ads->server.realm, ads->config.ldap_server_name);
}
ldap_set_option(ads->ldap.ld, LDAP_OPT_PROTOCOL_VERSION, &version);
ndr_print_string(ndr, "server_site_name", r->config.server_site_name);
ndr_print_string(ndr, "client_site_name", r->config.client_site_name);
ndr_print_time_t(ndr, "current_time", r->config.current_time);
- ndr_print_bool(ndr, "tried_closest_dc", r->config.tried_closest_dc);
ndr_print_string(ndr, "schema_path", r->config.schema_path);
ndr_print_string(ndr, "config_path", r->config.config_path);
ndr->depth--;
return WERR_OK;
}
- saf_store(r->in.domain_name, r->in.dc_name);
+ saf_join_store(r->out.netbios_domain_name, r->in.dc_name);
+ if (r->out.dns_domain_name) {
+ saf_join_store(r->out.dns_domain_name, r->in.dc_name);
+ }
#ifdef WITH_ADS
if (r->out.domain_is_ad) {
r->in.domain_name,
NULL,
NULL,
+ DS_FORCE_REDISCOVERY |
DS_DIRECTORY_SERVICE_REQUIRED |
DS_WRITABLE_REQUIRED |
DS_RETURN_DNS_NAME,
ret = krb5_kt_start_seq_get(ctx->context, ctx->keytab, &cursor);
if (ret) {
- DEBUG(10, ("krb5_kt_start_seq_get failed: %s",
+ DEBUG(10, ("krb5_kt_start_seq_get failed: %s\n",
error_message(ret)));
return NULL;
}
* libnet_samsync
*/
-void libnet_init_netr_ChangeLogEntry(struct samsync_object *o,
- struct netr_ChangeLogEntry *e)
+static void libnet_init_netr_ChangeLogEntry(struct samsync_object *o,
+ struct netr_ChangeLogEntry *e)
{
ZERO_STRUCTP(e);
return r.out.result;
}
-NTSTATUS rpccli_netr_NETRSERVERGETTRUSTINFO(struct rpc_pipe_client *cli,
- TALLOC_CTX *mem_ctx,
- WERROR *werror)
+NTSTATUS rpccli_netr_ServerGetTrustInfo(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ const char *server_name /* [in] [unique,charset(UTF16)] */,
+ const char *account_name /* [in] [ref,charset(UTF16)] */,
+ enum netr_SchannelType secure_channel_type /* [in] */,
+ const char *computer_name /* [in] [ref,charset(UTF16)] */,
+ struct netr_Authenticator *credential /* [in] [ref] */,
+ struct netr_Authenticator *return_authenticator /* [out] [ref] */,
+ struct samr_Password *new_owf_password /* [out] [ref] */,
+ struct samr_Password *old_owf_password /* [out] [ref] */,
+ struct netr_TrustInfo **trust_info /* [out] [ref] */)
{
- struct netr_NETRSERVERGETTRUSTINFO r;
+ struct netr_ServerGetTrustInfo r;
NTSTATUS status;
/* In parameters */
+ r.in.server_name = server_name;
+ r.in.account_name = account_name;
+ r.in.secure_channel_type = secure_channel_type;
+ r.in.computer_name = computer_name;
+ r.in.credential = credential;
if (DEBUGLEVEL >= 10) {
- NDR_PRINT_IN_DEBUG(netr_NETRSERVERGETTRUSTINFO, &r);
+ NDR_PRINT_IN_DEBUG(netr_ServerGetTrustInfo, &r);
}
status = cli_do_rpc_ndr(cli,
mem_ctx,
&ndr_table_netlogon,
- NDR_NETR_NETRSERVERGETTRUSTINFO,
+ NDR_NETR_SERVERGETTRUSTINFO,
&r);
if (!NT_STATUS_IS_OK(status)) {
}
if (DEBUGLEVEL >= 10) {
- NDR_PRINT_OUT_DEBUG(netr_NETRSERVERGETTRUSTINFO, &r);
+ NDR_PRINT_OUT_DEBUG(netr_ServerGetTrustInfo, &r);
}
if (NT_STATUS_IS_ERR(status)) {
}
/* Return variables */
+ *return_authenticator = *r.out.return_authenticator;
+ *new_owf_password = *r.out.new_owf_password;
+ *old_owf_password = *r.out.old_owf_password;
+ *trust_info = *r.out.trust_info;
/* Return result */
- if (werror) {
- *werror = r.out.result;
- }
-
- return werror_to_ntstatus(r.out.result);
+ return r.out.result;
}
union netr_Validation *validation /* [out] [ref,switch_is(validation_level)] */,
uint8_t *authoritative /* [out] [ref] */,
uint32_t *flags /* [in,out] [ref] */);
-NTSTATUS rpccli_netr_NETRSERVERGETTRUSTINFO(struct rpc_pipe_client *cli,
- TALLOC_CTX *mem_ctx,
- WERROR *werror);
+NTSTATUS rpccli_netr_ServerGetTrustInfo(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ const char *server_name /* [in] [unique,charset(UTF16)] */,
+ const char *account_name /* [in] [ref,charset(UTF16)] */,
+ enum netr_SchannelType secure_channel_type /* [in] */,
+ const char *computer_name /* [in] [ref,charset(UTF16)] */,
+ struct netr_Authenticator *credential /* [in] [ref] */,
+ struct netr_Authenticator *return_authenticator /* [out] [ref] */,
+ struct samr_Password *new_owf_password /* [out] [ref] */,
+ struct samr_Password *old_owf_password /* [out] [ref] */,
+ struct netr_TrustInfo **trust_info /* [out] [ref] */);
#endif /* __CLI_NETLOGON__ */
uint16_t length;/* [value(2*strlen_m(string))] */
uint16_t size;/* [value(2*strlen_m(string))] */
const char *string;/* [unique,charset(UTF16),length_is(length/2),size_is(size/2)] */
-}/* [public,noejs] */;
+}/* [public] */;
struct lsa_StringLarge {
uint16_t length;/* [value(2*strlen_m(string))] */
uint16_t time_hi_and_version;
uint8_t clock_seq[2];
uint8_t node[6];
-}/* [noprint,gensize,public,noejs] */;
+}/* [noprint,gensize,public] */;
struct ndr_syntax_id {
struct GUID uuid;
NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->password));
}
if (ndr_flags & NDR_BUFFERS) {
- NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->password));
}
return NDR_ERR_SUCCESS;
}
NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->password));
}
if (ndr_flags & NDR_BUFFERS) {
- NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->password));
}
return NDR_ERR_SUCCESS;
}
break;
case TRUST_AUTH_TYPE_NT4OWF:
- NDR_CHECK(ndr_push_AuthInfoNT4Owf(ndr, NDR_BUFFERS, &r->nt4owf));
break;
case TRUST_AUTH_TYPE_CLEAR:
break;
case TRUST_AUTH_TYPE_NT4OWF:
- NDR_CHECK(ndr_pull_AuthInfoNT4Owf(ndr, NDR_BUFFERS, &r->nt4owf));
break;
case TRUST_AUTH_TYPE_CLEAR:
}
}
if (ndr_flags & NDR_BUFFERS) {
- NDR_CHECK(ndr_push_AuthInfo(ndr, NDR_BUFFERS, &r->AuthInfo));
}
return NDR_ERR_SUCCESS;
}
}
}
if (ndr_flags & NDR_BUFFERS) {
- NDR_CHECK(ndr_pull_AuthInfo(ndr, NDR_BUFFERS, &r->AuthInfo));
}
return NDR_ERR_SUCCESS;
}
for (cntr_current_0 = 0; cntr_current_0 < r->count; cntr_current_0++) {
if (r->current[cntr_current_0]) {
NDR_CHECK(ndr_push_relative_ptr2(ndr, r->current[cntr_current_0]));
- NDR_CHECK(ndr_push_AuthenticationInformation(ndr, NDR_SCALARS|NDR_BUFFERS, r->current[cntr_current_0]));
+ NDR_CHECK(ndr_push_AuthenticationInformation(ndr, NDR_SCALARS, r->current[cntr_current_0]));
}
}
}
NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->current[cntr_current_0]));
_mem_save_current_1 = NDR_PULL_GET_MEM_CTX(ndr);
NDR_PULL_SET_MEM_CTX(ndr, r->current[cntr_current_0], 0);
- NDR_CHECK(ndr_pull_AuthenticationInformation(ndr, NDR_SCALARS|NDR_BUFFERS, r->current[cntr_current_0]));
+ NDR_CHECK(ndr_pull_AuthenticationInformation(ndr, NDR_SCALARS, r->current[cntr_current_0]));
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_current_1, 0);
ndr->offset = _relative_save_offset;
}
ndr->depth--;
}
+static enum ndr_err_code ndr_push_netr_TrustInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_TrustInfo *r)
+{
+ uint32_t cntr_data_1;
+ uint32_t cntr_entries_1;
+ if (ndr_flags & NDR_SCALARS) {
+ NDR_CHECK(ndr_push_align(ndr, 4));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
+ NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->entry_count));
+ NDR_CHECK(ndr_push_unique_ptr(ndr, r->entries));
+ }
+ if (ndr_flags & NDR_BUFFERS) {
+ if (r->data) {
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
+ for (cntr_data_1 = 0; cntr_data_1 < r->count; cntr_data_1++) {
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->data[cntr_data_1]));
+ }
+ }
+ if (r->entries) {
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
+ for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
+ NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->entries[cntr_entries_1]));
+ }
+ for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
+ NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->entries[cntr_entries_1]));
+ }
+ }
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_netr_TrustInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_TrustInfo *r)
+{
+ uint32_t _ptr_data;
+ uint32_t cntr_data_1;
+ TALLOC_CTX *_mem_save_data_0;
+ TALLOC_CTX *_mem_save_data_1;
+ uint32_t _ptr_entries;
+ uint32_t cntr_entries_1;
+ TALLOC_CTX *_mem_save_entries_0;
+ TALLOC_CTX *_mem_save_entries_1;
+ if (ndr_flags & NDR_SCALARS) {
+ NDR_CHECK(ndr_pull_align(ndr, 4));
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
+ NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
+ if (_ptr_data) {
+ NDR_PULL_ALLOC(ndr, r->data);
+ } else {
+ r->data = NULL;
+ }
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->entry_count));
+ NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_entries));
+ if (_ptr_entries) {
+ NDR_PULL_ALLOC(ndr, r->entries);
+ } else {
+ r->entries = NULL;
+ }
+ }
+ if (ndr_flags & NDR_BUFFERS) {
+ if (r->data) {
+ _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
+ NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
+ NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
+ _mem_save_data_1 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
+ for (cntr_data_1 = 0; cntr_data_1 < r->count; cntr_data_1++) {
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->data[cntr_data_1]));
+ }
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_1, 0);
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
+ }
+ if (r->entries) {
+ _mem_save_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0);
+ NDR_CHECK(ndr_pull_array_size(ndr, &r->entries));
+ NDR_PULL_ALLOC_N(ndr, r->entries, ndr_get_array_size(ndr, &r->entries));
+ _mem_save_entries_1 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0);
+ for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
+ NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->entries[cntr_entries_1]));
+ }
+ for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
+ NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->entries[cntr_entries_1]));
+ }
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_1, 0);
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_0, 0);
+ }
+ if (r->data) {
+ NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->count));
+ }
+ if (r->entries) {
+ NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->entries, r->count));
+ }
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_netr_TrustInfo(struct ndr_print *ndr, const char *name, const struct netr_TrustInfo *r)
+{
+ uint32_t cntr_data_1;
+ uint32_t cntr_entries_1;
+ ndr_print_struct(ndr, name, "netr_TrustInfo");
+ ndr->depth++;
+ ndr_print_uint32(ndr, "count", r->count);
+ ndr_print_ptr(ndr, "data", r->data);
+ ndr->depth++;
+ if (r->data) {
+ ndr->print(ndr, "%s: ARRAY(%d)", "data", (int)r->count);
+ ndr->depth++;
+ for (cntr_data_1=0;cntr_data_1<r->count;cntr_data_1++) {
+ char *idx_1=NULL;
+ if (asprintf(&idx_1, "[%d]", cntr_data_1) != -1) {
+ ndr_print_uint32(ndr, "data", r->data[cntr_data_1]);
+ free(idx_1);
+ }
+ }
+ ndr->depth--;
+ }
+ ndr->depth--;
+ ndr_print_uint32(ndr, "entry_count", r->entry_count);
+ ndr_print_ptr(ndr, "entries", r->entries);
+ ndr->depth++;
+ if (r->entries) {
+ ndr->print(ndr, "%s: ARRAY(%d)", "entries", (int)r->count);
+ ndr->depth++;
+ for (cntr_entries_1=0;cntr_entries_1<r->count;cntr_entries_1++) {
+ char *idx_1=NULL;
+ if (asprintf(&idx_1, "[%d]", cntr_entries_1) != -1) {
+ ndr_print_lsa_String(ndr, "entries", &r->entries[cntr_entries_1]);
+ free(idx_1);
+ }
+ }
+ ndr->depth--;
+ }
+ ndr->depth--;
+ ndr->depth--;
+}
+
static enum ndr_err_code ndr_push_netr_LogonUasLogon(struct ndr_push *ndr, int flags, const struct netr_LogonUasLogon *r)
{
if (flags & NDR_IN) {
ndr->depth--;
}
-static enum ndr_err_code ndr_push_netr_NETRSERVERGETTRUSTINFO(struct ndr_push *ndr, int flags, const struct netr_NETRSERVERGETTRUSTINFO *r)
+static enum ndr_err_code ndr_push_netr_ServerGetTrustInfo(struct ndr_push *ndr, int flags, const struct netr_ServerGetTrustInfo *r)
{
if (flags & NDR_IN) {
+ NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
+ if (r->in.server_name) {
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
+ NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
+ }
+ if (r->in.account_name == NULL) {
+ return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+ }
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
+ NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.account_name, ndr_charset_length(r->in.account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
+ NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
+ if (r->in.computer_name == NULL) {
+ return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+ }
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
+ NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
+ if (r->in.credential == NULL) {
+ return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+ }
+ NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
}
if (flags & NDR_OUT) {
- NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
+ if (r->out.return_authenticator == NULL) {
+ return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+ }
+ NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
+ if (r->out.new_owf_password == NULL) {
+ return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+ }
+ NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->out.new_owf_password));
+ if (r->out.old_owf_password == NULL) {
+ return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+ }
+ NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->out.old_owf_password));
+ if (r->out.trust_info == NULL) {
+ return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+ }
+ NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.trust_info));
+ if (*r->out.trust_info) {
+ NDR_CHECK(ndr_push_netr_TrustInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.trust_info));
+ }
+ NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
}
return NDR_ERR_SUCCESS;
}
-static enum ndr_err_code ndr_pull_netr_NETRSERVERGETTRUSTINFO(struct ndr_pull *ndr, int flags, struct netr_NETRSERVERGETTRUSTINFO *r)
+static enum ndr_err_code ndr_pull_netr_ServerGetTrustInfo(struct ndr_pull *ndr, int flags, struct netr_ServerGetTrustInfo *r)
{
+ uint32_t _ptr_server_name;
+ uint32_t _ptr_trust_info;
+ TALLOC_CTX *_mem_save_server_name_0;
+ TALLOC_CTX *_mem_save_credential_0;
+ TALLOC_CTX *_mem_save_return_authenticator_0;
+ TALLOC_CTX *_mem_save_new_owf_password_0;
+ TALLOC_CTX *_mem_save_old_owf_password_0;
+ TALLOC_CTX *_mem_save_trust_info_0;
+ TALLOC_CTX *_mem_save_trust_info_1;
if (flags & NDR_IN) {
+ ZERO_STRUCT(r->out);
+
+ NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
+ if (_ptr_server_name) {
+ NDR_PULL_ALLOC(ndr, r->in.server_name);
+ } else {
+ r->in.server_name = NULL;
+ }
+ if (r->in.server_name) {
+ _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
+ NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
+ NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
+ if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
+ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
+ }
+ NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
+ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
+ }
+ NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
+ NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
+ if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
+ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name));
+ }
+ NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
+ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16));
+ NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
+ NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
+ NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
+ if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
+ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
+ }
+ NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
+ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
+ if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+ NDR_PULL_ALLOC(ndr, r->in.credential);
+ }
+ _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
+ NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
+ ZERO_STRUCTP(r->out.return_authenticator);
+ NDR_PULL_ALLOC(ndr, r->out.new_owf_password);
+ ZERO_STRUCTP(r->out.new_owf_password);
+ NDR_PULL_ALLOC(ndr, r->out.old_owf_password);
+ ZERO_STRUCTP(r->out.old_owf_password);
+ NDR_PULL_ALLOC(ndr, r->out.trust_info);
+ ZERO_STRUCTP(r->out.trust_info);
}
if (flags & NDR_OUT) {
- NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
+ if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+ NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
+ }
+ _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
+ if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+ NDR_PULL_ALLOC(ndr, r->out.new_owf_password);
+ }
+ _mem_save_new_owf_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->out.new_owf_password, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->out.new_owf_password));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_owf_password_0, LIBNDR_FLAG_REF_ALLOC);
+ if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+ NDR_PULL_ALLOC(ndr, r->out.old_owf_password);
+ }
+ _mem_save_old_owf_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->out.old_owf_password, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->out.old_owf_password));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_old_owf_password_0, LIBNDR_FLAG_REF_ALLOC);
+ if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+ NDR_PULL_ALLOC(ndr, r->out.trust_info);
+ }
+ _mem_save_trust_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->out.trust_info, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trust_info));
+ if (_ptr_trust_info) {
+ NDR_PULL_ALLOC(ndr, *r->out.trust_info);
+ } else {
+ *r->out.trust_info = NULL;
+ }
+ if (*r->out.trust_info) {
+ _mem_save_trust_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, *r->out.trust_info, 0);
+ NDR_CHECK(ndr_pull_netr_TrustInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.trust_info));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trust_info_1, 0);
+ }
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trust_info_0, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
}
return NDR_ERR_SUCCESS;
}
-_PUBLIC_ void ndr_print_netr_NETRSERVERGETTRUSTINFO(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRSERVERGETTRUSTINFO *r)
+_PUBLIC_ void ndr_print_netr_ServerGetTrustInfo(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerGetTrustInfo *r)
{
- ndr_print_struct(ndr, name, "netr_NETRSERVERGETTRUSTINFO");
+ ndr_print_struct(ndr, name, "netr_ServerGetTrustInfo");
ndr->depth++;
if (flags & NDR_SET_VALUES) {
ndr->flags |= LIBNDR_PRINT_SET_VALUES;
}
if (flags & NDR_IN) {
- ndr_print_struct(ndr, "in", "netr_NETRSERVERGETTRUSTINFO");
+ ndr_print_struct(ndr, "in", "netr_ServerGetTrustInfo");
+ ndr->depth++;
+ ndr_print_ptr(ndr, "server_name", r->in.server_name);
ndr->depth++;
+ if (r->in.server_name) {
+ ndr_print_string(ndr, "server_name", r->in.server_name);
+ }
+ ndr->depth--;
+ ndr_print_ptr(ndr, "account_name", r->in.account_name);
+ ndr->depth++;
+ ndr_print_string(ndr, "account_name", r->in.account_name);
+ ndr->depth--;
+ ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
+ ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
+ ndr->depth++;
+ ndr_print_string(ndr, "computer_name", r->in.computer_name);
+ ndr->depth--;
+ ndr_print_ptr(ndr, "credential", r->in.credential);
+ ndr->depth++;
+ ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
+ ndr->depth--;
ndr->depth--;
}
if (flags & NDR_OUT) {
- ndr_print_struct(ndr, "out", "netr_NETRSERVERGETTRUSTINFO");
+ ndr_print_struct(ndr, "out", "netr_ServerGetTrustInfo");
ndr->depth++;
- ndr_print_WERROR(ndr, "result", r->out.result);
+ ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
+ ndr->depth++;
+ ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
+ ndr->depth--;
+ ndr_print_ptr(ndr, "new_owf_password", r->out.new_owf_password);
+ ndr->depth++;
+ ndr_print_samr_Password(ndr, "new_owf_password", r->out.new_owf_password);
+ ndr->depth--;
+ ndr_print_ptr(ndr, "old_owf_password", r->out.old_owf_password);
+ ndr->depth++;
+ ndr_print_samr_Password(ndr, "old_owf_password", r->out.old_owf_password);
+ ndr->depth--;
+ ndr_print_ptr(ndr, "trust_info", r->out.trust_info);
+ ndr->depth++;
+ ndr_print_ptr(ndr, "trust_info", *r->out.trust_info);
+ ndr->depth++;
+ if (*r->out.trust_info) {
+ ndr_print_netr_TrustInfo(ndr, "trust_info", *r->out.trust_info);
+ }
+ ndr->depth--;
+ ndr->depth--;
+ ndr_print_NTSTATUS(ndr, "result", r->out.result);
ndr->depth--;
}
ndr->depth--;
false,
},
{
- "netr_NETRSERVERGETTRUSTINFO",
- sizeof(struct netr_NETRSERVERGETTRUSTINFO),
- (ndr_push_flags_fn_t) ndr_push_netr_NETRSERVERGETTRUSTINFO,
- (ndr_pull_flags_fn_t) ndr_pull_netr_NETRSERVERGETTRUSTINFO,
- (ndr_print_function_t) ndr_print_netr_NETRSERVERGETTRUSTINFO,
+ "netr_ServerGetTrustInfo",
+ sizeof(struct netr_ServerGetTrustInfo),
+ (ndr_push_flags_fn_t) ndr_push_netr_ServerGetTrustInfo,
+ (ndr_pull_flags_fn_t) ndr_pull_netr_ServerGetTrustInfo,
+ (ndr_print_function_t) ndr_print_netr_ServerGetTrustInfo,
false,
},
{ NULL, 0, NULL, NULL, NULL, false }
#define NDR_NETR_LOGONSAMLOGONWITHFLAGS (0x2d)
-#define NDR_NETR_NETRSERVERGETTRUSTINFO (0x2e)
+#define NDR_NETR_SERVERGETTRUSTINFO (0x2e)
#define NDR_NETLOGON_CALL_COUNT (47)
void ndr_print_netr_UasInfo(struct ndr_print *ndr, const char *name, const struct netr_UasInfo *r);
void ndr_print_netr_DomainTrustList(struct ndr_print *ndr, const char *name, const struct netr_DomainTrustList *r);
void ndr_print_netr_DsRAddressToSitenamesExWCtr(struct ndr_print *ndr, const char *name, const struct netr_DsRAddressToSitenamesExWCtr *r);
void ndr_print_DcSitesCtr(struct ndr_print *ndr, const char *name, const struct DcSitesCtr *r);
+void ndr_print_netr_TrustInfo(struct ndr_print *ndr, const char *name, const struct netr_TrustInfo *r);
void ndr_print_netr_LogonUasLogon(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonUasLogon *r);
void ndr_print_netr_LogonUasLogoff(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonUasLogoff *r);
void ndr_print_netr_LogonSamLogon(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogon *r);
void ndr_print_netr_DsRGetForestTrustInformation(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetForestTrustInformation *r);
void ndr_print_netr_GetForestTrustInformation(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetForestTrustInformation *r);
void ndr_print_netr_LogonSamLogonWithFlags(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogonWithFlags *r);
-void ndr_print_netr_NETRSERVERGETTRUSTINFO(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRSERVERGETTRUSTINFO *r);
+void ndr_print_netr_ServerGetTrustInfo(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerGetTrustInfo *r);
#endif /* _HEADER_NDR_netlogon */
NDR_CHECK(ndr_push_align(ndr, 8));
NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->sequence_num));
NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->domain_create_time));
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
+ NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->modified_count_at_last_promotion));
}
if (ndr_flags & NDR_BUFFERS) {
}
NDR_CHECK(ndr_pull_align(ndr, 8));
NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->sequence_num));
NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->domain_create_time));
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
+ NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->modified_count_at_last_promotion));
}
if (ndr_flags & NDR_BUFFERS) {
}
ndr->depth++;
ndr_print_hyper(ndr, "sequence_num", r->sequence_num);
ndr_print_NTTIME(ndr, "domain_create_time", r->domain_create_time);
- ndr_print_uint32(ndr, "unknown1", r->unknown1);
- ndr_print_uint32(ndr, "unknown2", r->unknown2);
+ ndr_print_hyper(ndr, "modified_count_at_last_promotion", r->modified_count_at_last_promotion);
ndr->depth--;
}
{
if (ndr_flags & NDR_SCALARS) {
NDR_CHECK(ndr_push_align(ndr, 1));
- NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->lm_pwd));
NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->nt_pwd));
- NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->lm_pwd_active));
+ NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->lm_pwd));
NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->nt_pwd_active));
+ NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->lm_pwd_active));
+ NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->password_expired));
}
if (ndr_flags & NDR_BUFFERS) {
}
{
if (ndr_flags & NDR_SCALARS) {
NDR_CHECK(ndr_pull_align(ndr, 1));
- NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->lm_pwd));
NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->nt_pwd));
- NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->lm_pwd_active));
+ NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->lm_pwd));
NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->nt_pwd_active));
+ NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->lm_pwd_active));
+ NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->password_expired));
}
if (ndr_flags & NDR_BUFFERS) {
}
{
ndr_print_struct(ndr, name, "samr_UserInfo18");
ndr->depth++;
- ndr_print_samr_Password(ndr, "lm_pwd", &r->lm_pwd);
ndr_print_samr_Password(ndr, "nt_pwd", &r->nt_pwd);
- ndr_print_uint8(ndr, "lm_pwd_active", r->lm_pwd_active);
+ ndr_print_samr_Password(ndr, "lm_pwd", &r->lm_pwd);
ndr_print_uint8(ndr, "nt_pwd_active", r->nt_pwd_active);
+ ndr_print_uint8(ndr, "lm_pwd_active", r->lm_pwd_active);
+ ndr_print_uint8(ndr, "password_expired", r->password_expired);
ndr->depth--;
}
ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_PARAMETERS", SAMR_FIELD_PARAMETERS, r);
ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_COUNTRY_CODE", SAMR_FIELD_COUNTRY_CODE, r);
ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_CODE_PAGE", SAMR_FIELD_CODE_PAGE, r);
- ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_PASSWORD", SAMR_FIELD_PASSWORD, r);
- ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_PASSWORD2", SAMR_FIELD_PASSWORD2, r);
+ ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_NT_PASSWORD_PRESENT", SAMR_FIELD_NT_PASSWORD_PRESENT, r);
+ ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_LM_PASSWORD_PRESENT", SAMR_FIELD_LM_PASSWORD_PRESENT, r);
ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_PRIVATE_DATA", SAMR_FIELD_PRIVATE_DATA, r);
ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_EXPIRED_FLAG", SAMR_FIELD_EXPIRED_FLAG, r);
ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SAMR_FIELD_SEC_DESC", SAMR_FIELD_SEC_DESC, r);
NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->workstations));
NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->comment));
NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_SCALARS, &r->parameters));
- NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
- NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
+ NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_SCALARS, &r->lm_owf_password));
+ NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_SCALARS, &r->nt_owf_password));
NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->buf_count));
NDR_CHECK(ndr_push_unique_ptr(ndr, r->buffer));
NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->country_code));
NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->code_page));
- NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->nt_password_set));
NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->lm_password_set));
+ NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->nt_password_set));
NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->password_expired));
NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->unknown4));
}
NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->comment));
NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_BUFFERS, &r->parameters));
- NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
- NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
+ NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_BUFFERS, &r->lm_owf_password));
+ NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_BUFFERS, &r->nt_owf_password));
NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
if (r->buffer) {
NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->buf_count));
NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->workstations));
NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->comment));
NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_SCALARS, &r->parameters));
- NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
- NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
+ NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_SCALARS, &r->lm_owf_password));
+ NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_SCALARS, &r->nt_owf_password));
NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->buf_count));
NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->country_code));
NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->code_page));
- NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->nt_password_set));
NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->lm_password_set));
+ NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->nt_password_set));
NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->password_expired));
NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->unknown4));
}
NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->comment));
NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_BUFFERS, &r->parameters));
- NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
- NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
+ NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_BUFFERS, &r->lm_owf_password));
+ NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_BUFFERS, &r->nt_owf_password));
NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
if (r->buffer) {
_mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
ndr_print_lsa_String(ndr, "workstations", &r->workstations);
ndr_print_lsa_String(ndr, "comment", &r->comment);
ndr_print_lsa_BinaryString(ndr, "parameters", &r->parameters);
- ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
- ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
+ ndr_print_lsa_BinaryString(ndr, "lm_owf_password", &r->lm_owf_password);
+ ndr_print_lsa_BinaryString(ndr, "nt_owf_password", &r->nt_owf_password);
ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
ndr_print_uint32(ndr, "buf_count", r->buf_count);
ndr_print_ptr(ndr, "buffer", r->buffer);
ndr_print_uint16(ndr, "logon_count", r->logon_count);
ndr_print_uint16(ndr, "country_code", r->country_code);
ndr_print_uint16(ndr, "code_page", r->code_page);
- ndr_print_uint8(ndr, "nt_password_set", r->nt_password_set);
ndr_print_uint8(ndr, "lm_password_set", r->lm_password_set);
+ ndr_print_uint8(ndr, "nt_password_set", r->nt_password_set);
ndr_print_uint8(ndr, "password_expired", r->password_expired);
ndr_print_uint8(ndr, "unknown4", r->unknown4);
ndr->depth--;
}
if (ndr_flags & NDR_BUFFERS) {
NDR_CHECK(ndr_push_security_ace_object_ctr(ndr, NDR_BUFFERS, &r->object));
- NDR_CHECK(ndr_push_dom_sid(ndr, NDR_BUFFERS, &r->trustee));
}
return NDR_ERR_SUCCESS;
}
if (ndr_flags & NDR_BUFFERS) {
if (r->owner_sid) {
NDR_CHECK(ndr_push_relative_ptr2(ndr, r->owner_sid));
- NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS|NDR_BUFFERS, r->owner_sid));
+ NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, r->owner_sid));
}
if (r->group_sid) {
NDR_CHECK(ndr_push_relative_ptr2(ndr, r->group_sid));
- NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS|NDR_BUFFERS, r->group_sid));
+ NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, r->group_sid));
}
if (r->sacl) {
NDR_CHECK(ndr_push_relative_ptr2(ndr, r->sacl));
NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->owner_sid));
_mem_save_owner_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
NDR_PULL_SET_MEM_CTX(ndr, r->owner_sid, 0);
- NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS|NDR_BUFFERS, r->owner_sid));
+ NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, r->owner_sid));
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_owner_sid_0, 0);
ndr->offset = _relative_save_offset;
}
NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->group_sid));
_mem_save_group_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
NDR_PULL_SET_MEM_CTX(ndr, r->group_sid, 0);
- NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS|NDR_BUFFERS, r->group_sid));
+ NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, r->group_sid));
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_sid_0, 0);
ndr->offset = _relative_save_offset;
}
}
if (ndr_flags & NDR_BUFFERS) {
if (r->user_sid) {
- NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS|NDR_BUFFERS, r->user_sid));
+ NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, r->user_sid));
}
if (r->group_sid) {
- NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS|NDR_BUFFERS, r->group_sid));
+ NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, r->group_sid));
}
for (cntr_sids_0 = 0; cntr_sids_0 < r->num_sids; cntr_sids_0++) {
if (r->sids[cntr_sids_0]) {
- NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS|NDR_BUFFERS, r->sids[cntr_sids_0]));
+ NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, r->sids[cntr_sids_0]));
}
}
}
if (r->user_sid) {
_mem_save_user_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
NDR_PULL_SET_MEM_CTX(ndr, r->user_sid, 0);
- NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS|NDR_BUFFERS, r->user_sid));
+ NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, r->user_sid));
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_sid_0, 0);
}
if (r->group_sid) {
_mem_save_group_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
NDR_PULL_SET_MEM_CTX(ndr, r->group_sid, 0);
- NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS|NDR_BUFFERS, r->group_sid));
+ NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, r->group_sid));
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_sid_0, 0);
}
_mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
if (r->sids[cntr_sids_0]) {
_mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr);
NDR_PULL_SET_MEM_CTX(ndr, r->sids[cntr_sids_0], 0);
- NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS|NDR_BUFFERS, r->sids[cntr_sids_0]));
+ NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, r->sids[cntr_sids_0]));
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0);
}
}
#include "librpc/gen_ndr/ndr_dom_sid.h"
#define NDR_SECURITY_CALL_COUNT (0)
+enum ndr_err_code ndr_push_dom_sid(struct ndr_push *ndr, int ndr_flags, const struct dom_sid *r);
+enum ndr_err_code ndr_pull_dom_sid(struct ndr_pull *ndr, int ndr_flags, struct dom_sid *r);
+void ndr_print_dom_sid(struct ndr_print *ndr, const char *name, const struct dom_sid *r);
+size_t ndr_size_dom_sid(const struct dom_sid *r, int flags);
enum ndr_err_code ndr_push_security_ace_flags(struct ndr_push *ndr, int ndr_flags, uint8_t r);
enum ndr_err_code ndr_pull_security_ace_flags(struct ndr_pull *ndr, int ndr_flags, uint8_t *r);
void ndr_print_security_ace_flags(struct ndr_print *ndr, const char *name, uint8_t r);
ndr_print_enum(ndr, name, "ENUM", val, r);
}
-static enum ndr_err_code ndr_push_srvsvc_NetSrvInfo100(struct ndr_push *ndr, int ndr_flags, const struct srvsvc_NetSrvInfo100 *r)
+_PUBLIC_ enum ndr_err_code ndr_push_srvsvc_NetSrvInfo100(struct ndr_push *ndr, int ndr_flags, const struct srvsvc_NetSrvInfo100 *r)
{
if (ndr_flags & NDR_SCALARS) {
NDR_CHECK(ndr_push_align(ndr, 4));
return NDR_ERR_SUCCESS;
}
-static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo100(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetSrvInfo100 *r)
+_PUBLIC_ enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo100(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetSrvInfo100 *r)
{
uint32_t _ptr_server_name;
TALLOC_CTX *_mem_save_server_name_0;
ndr->depth--;
}
-static enum ndr_err_code ndr_push_srvsvc_NetSrvInfo101(struct ndr_push *ndr, int ndr_flags, const struct srvsvc_NetSrvInfo101 *r)
+_PUBLIC_ enum ndr_err_code ndr_push_srvsvc_NetSrvInfo101(struct ndr_push *ndr, int ndr_flags, const struct srvsvc_NetSrvInfo101 *r)
{
if (ndr_flags & NDR_SCALARS) {
NDR_CHECK(ndr_push_align(ndr, 4));
return NDR_ERR_SUCCESS;
}
-static enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo101(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetSrvInfo101 *r)
+_PUBLIC_ enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo101(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetSrvInfo101 *r)
{
uint32_t _ptr_server_name;
TALLOC_CTX *_mem_save_server_name_0;
enum ndr_err_code ndr_push_srvsvc_PlatformId(struct ndr_push *ndr, int ndr_flags, enum srvsvc_PlatformId r);
enum ndr_err_code ndr_pull_srvsvc_PlatformId(struct ndr_pull *ndr, int ndr_flags, enum srvsvc_PlatformId *r);
void ndr_print_srvsvc_PlatformId(struct ndr_print *ndr, const char *name, enum srvsvc_PlatformId r);
+enum ndr_err_code ndr_push_srvsvc_NetSrvInfo100(struct ndr_push *ndr, int ndr_flags, const struct srvsvc_NetSrvInfo100 *r);
+enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo100(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetSrvInfo100 *r);
void ndr_print_srvsvc_NetSrvInfo100(struct ndr_print *ndr, const char *name, const struct srvsvc_NetSrvInfo100 *r);
+enum ndr_err_code ndr_push_srvsvc_NetSrvInfo101(struct ndr_push *ndr, int ndr_flags, const struct srvsvc_NetSrvInfo101 *r);
+enum ndr_err_code ndr_pull_srvsvc_NetSrvInfo101(struct ndr_pull *ndr, int ndr_flags, struct srvsvc_NetSrvInfo101 *r);
void ndr_print_srvsvc_NetSrvInfo101(struct ndr_print *ndr, const char *name, const struct srvsvc_NetSrvInfo101 *r);
void ndr_print_srvsvc_NetSrvInfo102(struct ndr_print *ndr, const char *name, const struct srvsvc_NetSrvInfo102 *r);
void ndr_print_srvsvc_NetSrvInfo402(struct ndr_print *ndr, const char *name, const struct srvsvc_NetSrvInfo402 *r);
struct lsa_String *sites;/* [unique,size_is(num_sites)] */
};
+struct netr_TrustInfo {
+ uint32_t count;
+ uint32_t *data;/* [unique,size_is(count)] */
+ uint32_t entry_count;
+ struct lsa_String *entries;/* [unique,size_is(count)] */
+};
+
struct netr_LogonUasLogon {
struct {
};
-struct netr_NETRSERVERGETTRUSTINFO {
+struct netr_ServerGetTrustInfo {
struct {
- WERROR result;
+ const char *server_name;/* [unique,charset(UTF16)] */
+ const char *account_name;/* [ref,charset(UTF16)] */
+ enum netr_SchannelType secure_channel_type;
+ const char *computer_name;/* [ref,charset(UTF16)] */
+ struct netr_Authenticator *credential;/* [ref] */
+ } in;
+
+ struct {
+ struct netr_Authenticator *return_authenticator;/* [ref] */
+ struct samr_Password *new_owf_password;/* [ref] */
+ struct samr_Password *old_owf_password;/* [ref] */
+ struct netr_TrustInfo **trust_info;/* [ref] */
+ NTSTATUS result;
} out;
};
struct samr_DomInfo13 {
uint64_t sequence_num;
NTTIME domain_create_time;
- uint32_t unknown1;
- uint32_t unknown2;
+ uint64_t modified_count_at_last_promotion;
};
union samr_DomainInfo {
}/* [public,flag(LIBNDR_PRINT_ARRAY_HEX)] */;
struct samr_UserInfo18 {
- struct samr_Password lm_pwd;
struct samr_Password nt_pwd;
- uint8_t lm_pwd_active;
+ struct samr_Password lm_pwd;
uint8_t nt_pwd_active;
+ uint8_t lm_pwd_active;
+ uint8_t password_expired;
};
struct samr_UserInfo20 {
#define SAMR_FIELD_PARAMETERS ( 0x00200000 )
#define SAMR_FIELD_COUNTRY_CODE ( 0x00400000 )
#define SAMR_FIELD_CODE_PAGE ( 0x00800000 )
-#define SAMR_FIELD_PASSWORD ( 0x01000000 )
-#define SAMR_FIELD_PASSWORD2 ( 0x02000000 )
+#define SAMR_FIELD_NT_PASSWORD_PRESENT ( 0x01000000 )
+#define SAMR_FIELD_LM_PASSWORD_PRESENT ( 0x02000000 )
#define SAMR_FIELD_PRIVATE_DATA ( 0x04000000 )
#define SAMR_FIELD_EXPIRED_FLAG ( 0x08000000 )
#define SAMR_FIELD_SEC_DESC ( 0x10000000 )
struct lsa_String workstations;
struct lsa_String comment;
struct lsa_BinaryString parameters;
- struct lsa_String unknown1;
- struct lsa_String unknown2;
+ struct lsa_BinaryString lm_owf_password;
+ struct lsa_BinaryString nt_owf_password;
struct lsa_String unknown3;
uint32_t buf_count;
uint8_t *buffer;/* [unique,size_is(buf_count)] */
uint16_t logon_count;
uint16_t country_code;
uint16_t code_page;
- uint8_t nt_password_set;
uint8_t lm_password_set;
+ uint8_t nt_password_set;
uint8_t password_expired;
uint8_t unknown4;
};
#include "librpc/gen_ndr/misc.h"
#include "librpc/gen_ndr/dom_sid.h"
+#define dom_sid2 dom_sid
+#define dom_sid28 dom_sid
+#define dom_sid0 dom_sid
#ifndef _HEADER_security
#define _HEADER_security
#define DOMAIN_RID_ENTERPRISE_ADMINS ( 519 )
#define NT4_ACL_REVISION ( SECURITY_ACL_REVISION_NT4 )
#define SD_REVISION ( SECURITY_DESCRIPTOR_REVISION_1 )
+struct dom_sid {
+ uint8_t sid_rev_num;
+ int8_t num_auths;/* [range(0,15)] */
+ uint8_t id_auth[6];
+ uint32_t sub_auths[15];
+}/* [noprint,gensize,nopull,public,nopush,nosize] */;
+
enum sec_privilege
#ifndef USE_UINT_ENUMS
{
return true;
}
-static bool api_netr_NETRSERVERGETTRUSTINFO(pipes_struct *p)
+static bool api_netr_ServerGetTrustInfo(pipes_struct *p)
{
const struct ndr_interface_call *call;
struct ndr_pull *pull;
struct ndr_push *push;
enum ndr_err_code ndr_err;
DATA_BLOB blob;
- struct netr_NETRSERVERGETTRUSTINFO *r;
+ struct netr_ServerGetTrustInfo *r;
- call = &ndr_table_netlogon.calls[NDR_NETR_NETRSERVERGETTRUSTINFO];
+ call = &ndr_table_netlogon.calls[NDR_NETR_SERVERGETTRUSTINFO];
- r = talloc(talloc_tos(), struct netr_NETRSERVERGETTRUSTINFO);
+ r = talloc(talloc_tos(), struct netr_ServerGetTrustInfo);
if (r == NULL) {
return false;
}
}
if (DEBUGLEVEL >= 10) {
- NDR_PRINT_IN_DEBUG(netr_NETRSERVERGETTRUSTINFO, r);
+ NDR_PRINT_IN_DEBUG(netr_ServerGetTrustInfo, r);
}
- r->out.result = _netr_NETRSERVERGETTRUSTINFO(p, r);
+ ZERO_STRUCT(r->out);
+ r->out.return_authenticator = talloc_zero(r, struct netr_Authenticator);
+ if (r->out.return_authenticator == NULL) {
+ talloc_free(r);
+ return false;
+ }
+
+ r->out.new_owf_password = talloc_zero(r, struct samr_Password);
+ if (r->out.new_owf_password == NULL) {
+ talloc_free(r);
+ return false;
+ }
+
+ r->out.old_owf_password = talloc_zero(r, struct samr_Password);
+ if (r->out.old_owf_password == NULL) {
+ talloc_free(r);
+ return false;
+ }
+
+ r->out.trust_info = talloc_zero(r, struct netr_TrustInfo *);
+ if (r->out.trust_info == NULL) {
+ talloc_free(r);
+ return false;
+ }
+
+ r->out.result = _netr_ServerGetTrustInfo(p, r);
if (p->rng_fault_state) {
talloc_free(r);
}
if (DEBUGLEVEL >= 10) {
- NDR_PRINT_OUT_DEBUG(netr_NETRSERVERGETTRUSTINFO, r);
+ NDR_PRINT_OUT_DEBUG(netr_ServerGetTrustInfo, r);
}
push = ndr_push_init_ctx(r, NULL);
{"NETR_DSRGETFORESTTRUSTINFORMATION", NDR_NETR_DSRGETFORESTTRUSTINFORMATION, api_netr_DsRGetForestTrustInformation},
{"NETR_GETFORESTTRUSTINFORMATION", NDR_NETR_GETFORESTTRUSTINFORMATION, api_netr_GetForestTrustInformation},
{"NETR_LOGONSAMLOGONWITHFLAGS", NDR_NETR_LOGONSAMLOGONWITHFLAGS, api_netr_LogonSamLogonWithFlags},
- {"NETR_NETRSERVERGETTRUSTINFO", NDR_NETR_NETRSERVERGETTRUSTINFO, api_netr_NETRSERVERGETTRUSTINFO},
+ {"NETR_SERVERGETTRUSTINFO", NDR_NETR_SERVERGETTRUSTINFO, api_netr_ServerGetTrustInfo},
};
void netlogon_get_pipe_fns(struct api_struct **fns, int *n_fns)
WERROR _netr_DsRGetForestTrustInformation(pipes_struct *p, struct netr_DsRGetForestTrustInformation *r);
WERROR _netr_GetForestTrustInformation(pipes_struct *p, struct netr_GetForestTrustInformation *r);
NTSTATUS _netr_LogonSamLogonWithFlags(pipes_struct *p, struct netr_LogonSamLogonWithFlags *r);
-WERROR _netr_NETRSERVERGETTRUSTINFO(pipes_struct *p, struct netr_NETRSERVERGETTRUSTINFO *r);
+NTSTATUS _netr_ServerGetTrustInfo(pipes_struct *p, struct netr_ServerGetTrustInfo *r);
void netlogon_get_pipe_fns(struct api_struct **fns, int *n_fns);
NTSTATUS rpc_netlogon_init(void);
#endif /* __SRV_NETLOGON__ */
struct srvsvc_NetSrvInfo100 {
enum srvsvc_PlatformId platform_id;
const char *server_name;/* [unique,charset(UTF16)] */
-};
+}/* [public] */;
struct srvsvc_NetSrvInfo101 {
enum srvsvc_PlatformId platform_id;
uint32_t version_minor;
uint32_t server_type;
const char *comment;/* [unique,charset(UTF16)] */
-};
+}/* [public] */;
struct srvsvc_NetSrvInfo102 {
enum srvsvc_PlatformId platform_id;
uint16_t name_len;/* [value(strlen_m_term(name)*2)] */
uint16_t name_size;/* [value(strlen_m_term(name)*2)] */
const char *name;/* [unique,charset(UTF16)] */
-}/* [public,noejs] */;
+}/* [public] */;
struct KeySecurityData {
uint8_t *data;/* [unique,length_is(len),size_is(size)] */
#include "includes.h"
-/*
- return the wire size of a dom_sid
-*/
-size_t ndr_size_dom_sid(const struct dom_sid *sid, int flags)
-{
- if (!sid) return 0;
- return 8 + 4*sid->num_auths;
-}
-
-size_t ndr_size_dom_sid28(const struct dom_sid *sid, int flags)
-{
- struct dom_sid zero_sid;
-
- if (!sid) return 0;
-
- ZERO_STRUCT(zero_sid);
-
- if (memcmp(&zero_sid, sid, sizeof(zero_sid)) == 0) {
- return 0;
- }
-
- return 8 + 4*sid->num_auths;
-}
-
-size_t ndr_size_dom_sid0(const struct dom_sid *sid, int flags)
-{
- return ndr_size_dom_sid28(sid, flags);
-}
-
-enum ndr_err_code ndr_push_dom_sid(struct ndr_push *ndr, int ndr_flags, const struct dom_sid *r)
-{
- uint32_t cntr_sub_auths_0;
- if (ndr_flags & NDR_SCALARS) {
- NDR_CHECK(ndr_push_align(ndr, 4));
- NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->sid_rev_num));
- NDR_CHECK(ndr_push_int8(ndr, NDR_SCALARS, r->num_auths));
- NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->id_auth, 6));
- for (cntr_sub_auths_0 = 0; cntr_sub_auths_0 < r->num_auths; cntr_sub_auths_0++) {
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sub_auths[cntr_sub_auths_0]));
- }
- }
- if (ndr_flags & NDR_BUFFERS) {
- }
- return NDR_ERR_SUCCESS;
-}
-
-enum ndr_err_code ndr_pull_dom_sid(struct ndr_pull *ndr, int ndr_flags, struct dom_sid *r)
-{
- uint32_t cntr_sub_auths_0;
- if (ndr_flags & NDR_SCALARS) {
- NDR_CHECK(ndr_pull_align(ndr, 4));
- NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->sid_rev_num));
- NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->num_auths));
- if (r->num_auths > 15) {
- return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
- }
- NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->id_auth, 6));
- for (cntr_sub_auths_0 = 0; cntr_sub_auths_0 < r->num_auths; cntr_sub_auths_0++) {
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sub_auths[cntr_sub_auths_0]));
- }
- }
- if (ndr_flags & NDR_BUFFERS) {
- }
- return NDR_ERR_SUCCESS;
-}
-
/*
convert a dom_sid to a string
*/
return ret;
}
-
-/*
- parse a dom_sid2 - this is a dom_sid but with an extra copy of the num_auths field
-*/
-enum ndr_err_code ndr_pull_dom_sid2(struct ndr_pull *ndr, int ndr_flags, struct dom_sid *sid)
-{
- uint32_t num_auths;
- if (!(ndr_flags & NDR_SCALARS)) {
- return NDR_ERR_SUCCESS;
- }
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &num_auths));
- NDR_CHECK(ndr_pull_dom_sid(ndr, ndr_flags, sid));
- if (sid->num_auths != num_auths) {
- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE,
- "Bad array size %u should exceed %u",
- num_auths, sid->num_auths);
- }
- return NDR_ERR_SUCCESS;
-}
-
-/*
- parse a dom_sid2 - this is a dom_sid but with an extra copy of the num_auths field
-*/
-enum ndr_err_code ndr_push_dom_sid2(struct ndr_push *ndr, int ndr_flags, const struct dom_sid *sid)
-{
- if (!(ndr_flags & NDR_SCALARS)) {
- return NDR_ERR_SUCCESS;
- }
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sid->num_auths));
- return ndr_push_dom_sid(ndr, ndr_flags, sid);
-}
-
-/*
- parse a dom_sid28 - this is a dom_sid in a fixed 28 byte buffer, so we need to ensure there are only upto 5 sub_auth
-*/
-enum ndr_err_code ndr_pull_dom_sid28(struct ndr_pull *ndr, int ndr_flags, struct dom_sid *sid)
-{
- enum ndr_err_code status;
- struct ndr_pull *subndr;
-
- if (!(ndr_flags & NDR_SCALARS)) {
- return NDR_ERR_SUCCESS;
- }
-
- subndr = talloc_zero(ndr, struct ndr_pull);
- NDR_ERR_HAVE_NO_MEMORY(subndr);
- subndr->flags = ndr->flags;
- subndr->current_mem_ctx = ndr->current_mem_ctx;
-
- subndr->data = ndr->data + ndr->offset;
- subndr->data_size = 28;
- subndr->offset = 0;
-
- NDR_CHECK(ndr_pull_advance(ndr, 28));
-
- status = ndr_pull_dom_sid(subndr, ndr_flags, sid);
- if (!NDR_ERR_CODE_IS_SUCCESS(status)) {
- /* handle a w2k bug which send random data in the buffer */
- ZERO_STRUCTP(sid);
- }
-
- return NDR_ERR_SUCCESS;
-}
-
-/*
- push a dom_sid28 - this is a dom_sid in a 28 byte fixed buffer
-*/
-enum ndr_err_code ndr_push_dom_sid28(struct ndr_push *ndr, int ndr_flags, const struct dom_sid *sid)
-{
- uint32_t old_offset;
- uint32_t padding;
-
- if (!(ndr_flags & NDR_SCALARS)) {
- return NDR_ERR_SUCCESS;
- }
-
- if (sid->num_auths > 5) {
- return ndr_push_error(ndr, NDR_ERR_RANGE,
- "dom_sid28 allows only upto 5 sub auth [%u]",
- sid->num_auths);
- }
-
- old_offset = ndr->offset;
- NDR_CHECK(ndr_push_dom_sid(ndr, ndr_flags, sid));
-
- padding = 28 - (ndr->offset - old_offset);
-
- if (padding > 0) {
- NDR_CHECK(ndr_push_zero(ndr, padding));
- }
-
- return NDR_ERR_SUCCESS;
-}
-
-/*
- parse a dom_sid0 - this is a dom_sid in a variable byte buffer, which is maybe empty
-*/
-enum ndr_err_code ndr_pull_dom_sid0(struct ndr_pull *ndr, int ndr_flags, struct dom_sid *sid)
-{
- if (!(ndr_flags & NDR_SCALARS)) {
- return NDR_ERR_SUCCESS;
- }
-
- if (ndr->data_size == ndr->offset) {
- ZERO_STRUCTP(sid);
- return NDR_ERR_SUCCESS;
- }
-
- return ndr_pull_dom_sid(ndr, ndr_flags, sid);
-}
-
-/*
- push a dom_sid0 - this is a dom_sid in a variable byte buffer, which is maybe empty
-*/
-enum ndr_err_code ndr_push_dom_sid0(struct ndr_push *ndr, int ndr_flags, const struct dom_sid *sid)
-{
- struct dom_sid zero_sid;
-
- if (!(ndr_flags & NDR_SCALARS)) {
- return NDR_ERR_SUCCESS;
- }
-
- if (!sid) {
- return NDR_ERR_SUCCESS;
- }
-
- ZERO_STRUCT(zero_sid);
-
- if (memcmp(&zero_sid, sid, sizeof(zero_sid)) == 0) {
- return NDR_ERR_SUCCESS;
- }
-
- return ndr_push_dom_sid(ndr, ndr_flags, sid);
-}
-
-/*
- print a dom_sid
-*/
-void ndr_print_dom_sid(struct ndr_print *ndr, const char *name, const struct dom_sid *sid)
-{
- ndr->print(ndr, "%-25s: %s", name, dom_sid_string(ndr, sid));
-}
-
-void ndr_print_dom_sid2(struct ndr_print *ndr, const char *name, const struct dom_sid *sid)
-{
- ndr_print_dom_sid(ndr, name, sid);
-}
-
-void ndr_print_dom_sid28(struct ndr_print *ndr, const char *name, const struct dom_sid *sid)
-{
- ndr_print_dom_sid(ndr, name, sid);
-}
-
-void ndr_print_dom_sid0(struct ndr_print *ndr, const char *name, const struct dom_sid *sid)
-{
- ndr_print_dom_sid(ndr, name, sid);
-}
-
return NT_STATUS_OK;
}
+#if 0
+
+Completely unfinished and unused -- vl :-)
+
/**
* Connect to a DCE/RPC interface.
*
return nt_status;
}
+
+#endif
return true;
}
+/**
+ * @brief Do the smb chaining at a buffer level
+ * @param[in] poutbuf Pointer to the talloc'ed buffer to be modified
+ * @param[in] smb_command The command that we want to issue
+ * @param[in] wct How many words?
+ * @param[in] vwv The words, already in network order
+ * @param[in] bytes_alignment How shall we align "bytes"?
+ * @param[in] num_bytes How many bytes?
+ * @param[in] bytes The data the request ships
+ *
+ * smb_splice_chain() adds the vwv and bytes to the request already present in
+ * *poutbuf.
+ */
+
+bool smb_splice_chain(char **poutbuf, uint8_t smb_command,
+ uint8_t wct, const uint16_t *vwv,
+ size_t bytes_alignment,
+ uint16_t num_bytes, const uint8_t *bytes)
+{
+ char *outbuf;
+ size_t old_size, new_size;
+ size_t ofs;
+ size_t chain_padding = 0;
+ size_t bytes_padding = 0;
+ bool first_request;
+
+ old_size = talloc_get_size(*poutbuf);
+
+ /*
+ * old_size == smb_wct means we're pushing the first request in for
+ * libsmb/
+ */
+
+ first_request = (old_size == smb_wct);
+
+ if (!first_request && ((old_size % 4) != 0)) {
+ /*
+ * Align the wct field of subsequent requests to a 4-byte
+ * boundary
+ */
+ chain_padding = 4 - (old_size % 4);
+ }
+
+ /*
+ * After the old request comes the new wct field (1 byte), the vwv's
+ * and the num_bytes field. After at we might need to align the bytes
+ * given to us to "bytes_alignment", increasing the num_bytes value.
+ */
+
+ new_size = old_size + chain_padding + 1 + wct * sizeof(uint16_t) + 2;
+
+ if ((bytes_alignment != 0) && ((new_size % bytes_alignment) != 0)) {
+ bytes_padding = bytes_alignment + (new_size % bytes_alignment);
+ }
+
+ new_size += bytes_padding + num_bytes;
+
+ if (new_size > 0xffff) {
+ DEBUG(1, ("splice_chain: %u bytes won't fit\n",
+ (unsigned)new_size));
+ return false;
+ }
+
+ outbuf = TALLOC_REALLOC_ARRAY(NULL, *poutbuf, char, new_size);
+ if (outbuf == NULL) {
+ DEBUG(0, ("talloc failed\n"));
+ return false;
+ }
+ *poutbuf = outbuf;
+
+ if (first_request) {
+ SCVAL(outbuf, smb_com, smb_command);
+ } else {
+ size_t andx_cmd_ofs;
+
+ if (!find_andx_cmd_ofs(outbuf, &andx_cmd_ofs)) {
+ DEBUG(1, ("invalid command chain\n"));
+ *poutbuf = TALLOC_REALLOC_ARRAY(
+ NULL, *poutbuf, char, old_size);
+ return false;
+ }
+
+ if (chain_padding != 0) {
+ memset(outbuf + old_size, 0, chain_padding);
+ old_size += chain_padding;
+ }
+
+ SCVAL(outbuf, andx_cmd_ofs, smb_command);
+ SSVAL(outbuf, andx_cmd_ofs + 2, old_size - 4);
+ }
+
+ ofs = old_size;
+
+ SCVAL(outbuf, ofs, wct);
+ ofs += 1;
+
+ memcpy(outbuf + ofs, vwv, sizeof(uint16_t) * wct);
+ ofs += sizeof(uint16_t) * wct;
+
+ SSVAL(outbuf, ofs, num_bytes + bytes_padding);
+ ofs += sizeof(uint16_t);
+
+ if (bytes_padding != 0) {
+ memset(outbuf + ofs, 0, bytes_padding);
+ ofs += bytes_padding;
+ }
+
+ memcpy(outbuf + ofs, bytes, num_bytes);
+
+ return true;
+}
+
/**
* @brief Destroy an async_req that is the visible part of a cli_request
* @param[in] req The request to kill
const uint8_t *bytes)
{
struct async_req **tmp_reqs;
- char *tmp_buf;
struct cli_request *req;
- size_t old_size, new_size;
- size_t ofs;
req = cli->chain_accumulator;
talloc_set_destructor(req->async[req->num_async-1],
cli_async_req_destructor);
- old_size = talloc_get_size(req->outbuf);
-
- /*
- * We need space for the wct field, the words, the byte count field
- * and the bytes themselves.
- */
- new_size = old_size + 1 + wct * sizeof(uint16_t) + 2 + num_bytes;
-
- if (new_size > 0xffff) {
- DEBUG(1, ("cli_request_chain: %u bytes won't fit\n",
- (unsigned)new_size));
+ if (!smb_splice_chain(&req->outbuf, smb_command, wct, vwv,
+ 0, num_bytes, bytes)) {
goto fail;
}
- tmp_buf = TALLOC_REALLOC_ARRAY(NULL, req->outbuf, char, new_size);
- if (tmp_buf == NULL) {
- DEBUG(0, ("talloc failed\n"));
- goto fail;
- }
- req->outbuf = tmp_buf;
-
- if (old_size == smb_wct) {
- SCVAL(req->outbuf, smb_com, smb_command);
- } else {
- size_t andx_cmd_ofs;
- if (!find_andx_cmd_ofs(req->outbuf, &andx_cmd_ofs)) {
- DEBUG(1, ("invalid command chain\n"));
- goto fail;
- }
- SCVAL(req->outbuf, andx_cmd_ofs, smb_command);
- SSVAL(req->outbuf, andx_cmd_ofs + 2, old_size - 4);
- }
-
- ofs = old_size;
-
- SCVAL(req->outbuf, ofs, wct);
- ofs += 1;
-
- memcpy(req->outbuf + ofs, vwv, sizeof(uint16_t) * wct);
- ofs += sizeof(uint16_t) * wct;
-
- SSVAL(req->outbuf, ofs, num_bytes);
- ofs += sizeof(uint16_t);
-
- memcpy(req->outbuf + ofs, bytes, num_bytes);
-
return req->async[req->num_async-1];
fail:
static const struct {
int prot;
- const char *name;
-} prots[] = {
- {PROTOCOL_CORE,"PC NETWORK PROGRAM 1.0"},
- {PROTOCOL_COREPLUS,"MICROSOFT NETWORKS 1.03"},
- {PROTOCOL_LANMAN1,"MICROSOFT NETWORKS 3.0"},
- {PROTOCOL_LANMAN1,"LANMAN1.0"},
- {PROTOCOL_LANMAN2,"LM1.2X002"},
- {PROTOCOL_LANMAN2,"DOS LANMAN2.1"},
- {PROTOCOL_LANMAN2,"LANMAN2.1"},
- {PROTOCOL_LANMAN2,"Samba"},
- {PROTOCOL_NT1,"NT LANMAN 1.0"},
- {PROTOCOL_NT1,"NT LM 0.12"},
- {-1,NULL}
+ const char name[24];
+} prots[10] = {
+ {PROTOCOL_CORE, "PC NETWORK PROGRAM 1.0"},
+ {PROTOCOL_COREPLUS, "MICROSOFT NETWORKS 1.03"},
+ {PROTOCOL_LANMAN1, "MICROSOFT NETWORKS 3.0"},
+ {PROTOCOL_LANMAN1, "LANMAN1.0"},
+ {PROTOCOL_LANMAN2, "LM1.2X002"},
+ {PROTOCOL_LANMAN2, "DOS LANMAN2.1"},
+ {PROTOCOL_LANMAN2, "LANMAN2.1"},
+ {PROTOCOL_LANMAN2, "Samba"},
+ {PROTOCOL_NT1, "NT LANMAN 1.0"},
+ {PROTOCOL_NT1, "NT LM 0.12"},
};
-static const char *star_smbserver_name = "*SMBSERVER";
+#define STAR_SMBSERVER "*SMBSERVER"
/**
* Set the user session key for a connection
if (NT_STATUS_IS_OK(nt_status)) {
- DATA_BLOB key = data_blob(ntlmssp_state->session_key.data,
- ntlmssp_state->session_key.length);
- DATA_BLOB null_blob = data_blob_null;
- bool res;
-
fstrcpy(cli->server_domain, ntlmssp_state->server_domain);
cli_set_session_key(cli, ntlmssp_state->session_key);
- res = cli_simple_set_signing(cli, key, null_blob);
-
- data_blob_free(&key);
-
- if (res) {
+ if (cli_simple_set_signing(
+ cli, ntlmssp_state->session_key, data_blob_null)) {
/* 'resign' the last message, so we get the right sequence numbers
for checking the first reply from the server */
if (principal == NULL &&
!is_ipaddress(cli->desthost) &&
- !strequal(star_smbserver_name,
+ !strequal(STAR_SMBSERVER,
cli->desthost)) {
char *realm = NULL;
char *machine = NULL;
cli_set_message(cli->outbuf,0,0,True);
p = smb_buf(cli->outbuf);
- for (numprots=0;
- prots[numprots].name && prots[numprots].prot<=cli->protocol;
- numprots++) {
+ for (numprots=0; numprots < ARRAY_SIZE(prots); numprots++) {
+ if (prots[numprots].prot > cli->protocol) {
+ break;
+ }
*p++ = 2;
p += clistr_push(cli, p, prots[numprots].name, -1, STR_TERMINATE);
}
memset(cli->outbuf,'\0',smb_size);
+ plength = 0;
+
/* setup the protocol strings */
- for (plength=0,numprots=0;
- prots[numprots].name && prots[numprots].prot<=cli->protocol;
- numprots++)
+ for (numprots=0; numprots < ARRAY_SIZE(prots); numprots++) {
+ if (prots[numprots].prot > cli->protocol) {
+ break;
+ }
plength += strlen(prots[numprots].name)+2;
+ }
cli_set_message(cli->outbuf,0,plength,True);
p = smb_buf(cli->outbuf);
- for (numprots=0;
- prots[numprots].name && prots[numprots].prot<=cli->protocol;
- numprots++) {
+ for (numprots=0; numprots < ARRAY_SIZE(prots); numprots++) {
+ if (prots[numprots].prot > cli->protocol) {
+ break;
+ }
*p++ = 2;
p += clistr_push(cli, p, prots[numprots].name, -1, STR_TERMINATE);
}
/* reasonable default hostname */
if (!host) {
- host = star_smbserver_name;
+ host = STAR_SMBSERVER;
}
fstrcpy(cli->desthost, host);
if (dest_ss) {
ss = *dest_ss;
} else {
- zero_addr(&ss);
+ zero_sockaddr(&ss);
}
again:
*p = 0;
goto again;
}
- if (strcmp(called.name, star_smbserver_name)) {
- make_nmb_name(&called , star_smbserver_name, 0x20);
+ if (strcmp(called.name, STAR_SMBSERVER)) {
+ make_nmb_name(&called , STAR_SMBSERVER, 0x20);
goto again;
}
return NT_STATUS_BAD_NETWORK_NAME;
*/
if(is_ipaddress(desthost)) {
- make_nmb_name(&called, star_smbserver_name, 0x20);
+ make_nmb_name(&called, STAR_SMBSERVER, 0x20);
} else {
make_nmb_name(&called, desthost, 0x20);
}
NTSTATUS status;
struct nmb_name smbservername;
- make_nmb_name(&smbservername, star_smbserver_name, 0x20);
+ make_nmb_name(&smbservername, STAR_SMBSERVER, 0x20);
/*
* If the name wasn't *SMBSERVER then
server_n = server;
- zero_addr(&ss);
+ zero_sockaddr(&ss);
make_nmb_name(&calling, global_myname(), 0x0);
make_nmb_name(&called , server, name_type);
again:
- zero_addr(&ss);
+ zero_sockaddr(&ss);
if (have_ip)
ss = dest_ss;
/****************************************************************************
****************************************************************************/
-void cli_cm_set_credentials(void)
+void cli_cm_set_credentials(struct user_auth_info *auth_info)
{
SAFE_FREE(cm_creds.username);
- cm_creds.username = SMB_STRDUP(get_cmdline_auth_info_username());
+ cm_creds.username = SMB_STRDUP(get_cmdline_auth_info_username(
+ auth_info));
- if (get_cmdline_auth_info_got_pass()) {
- cm_set_password(get_cmdline_auth_info_password());
+ if (get_cmdline_auth_info_got_pass(auth_info)) {
+ cm_set_password(get_cmdline_auth_info_password(auth_info));
}
- cm_creds.use_kerberos = get_cmdline_auth_info_use_kerberos();
+ cm_creds.use_kerberos = get_cmdline_auth_info_use_kerberos(auth_info);
cm_creds.fallback_after_kerberos = false;
- cm_creds.signing_state = get_cmdline_auth_info_signing_state();
+ cm_creds.signing_state = get_cmdline_auth_info_signing_state(auth_info);
}
/****************************************************************************
NTSTATUS cli_echo_recv(struct async_req *req)
{
- SMB_ASSERT(req->state >= ASYNC_REQ_DONE);
- if (req->state == ASYNC_REQ_ERROR) {
- return req->status;
- }
-
- return NT_STATUS_OK;
+ return async_req_simple_recv(req);
}
/**
uint8_t *bytes;
NTSTATUS status;
- SMB_ASSERT(req->state >= ASYNC_REQ_DONE);
- if (req->state == ASYNC_REQ_ERROR) {
- return req->status;
+ if (async_req_is_error(req, &status)) {
+ return status;
}
status = cli_pull_reply(req, &wct, &vwv, &num_bytes, &bytes);
uint16_t *vwv;
uint16_t num_bytes;
uint8_t *bytes;
+ NTSTATUS status;
- SMB_ASSERT(req->state >= ASYNC_REQ_DONE);
- if (req->state == ASYNC_REQ_ERROR) {
- return req->status;
+ if (async_req_is_error(req, &status)) {
+ return status;
}
return cli_pull_reply(req, &wct, &vwv, &num_bytes, &bytes);
}
SAFE_FREE(mask);
- if (ff_searchcount > 0) {
+ if (ff_searchcount > 0 && ff_eos == 0 && finfo.name) {
mask = SMB_STRDUP(finfo.name);
} else {
mask = SMB_STRDUP("");
uint16_t *vwv;
uint16_t num_bytes;
uint8_t *bytes;
+ uint8_t *buf;
NTSTATUS status;
size_t size;
- SMB_ASSERT(req->state >= ASYNC_REQ_DONE);
- if (req->state == ASYNC_REQ_ERROR) {
- return req->status;
+ if (async_req_is_error(req, &status)) {
+ return status;
}
status = cli_pull_reply(req, &wct, &vwv, &num_bytes, &bytes);
return NT_STATUS_UNEXPECTED_IO_ERROR;
}
+ /*
+ * bcc field must be valid for small reads, for large reads the 16-bit
+ * bcc field can't be correct.
+ */
+
+ if ((size < 0xffff) && (size > num_bytes)) {
+ DEBUG(5, ("server announced more bytes than sent\n"));
+ return NT_STATUS_INVALID_NETWORK_RESPONSE;
+ }
+
+ buf = (uint8_t *)smb_base(cli_req->inbuf) + SVAL(vwv+6, 0);
+
+ if (trans_oob(smb_len(cli_req->inbuf), SVAL(vwv+6, 0), size)
+ || (buf < bytes)) {
+ DEBUG(5, ("server returned invalid read&x data offset\n"));
+ return NT_STATUS_INVALID_NETWORK_RESPONSE;
+ }
+
*rcvbuf = (uint8_t *)(smb_base(cli_req->inbuf) + SVAL(vwv + 6, 0));
*received = size;
return NT_STATUS_OK;
{
struct cli_pull_state *state = talloc_get_type_abort(
req->private_data, struct cli_pull_state);
+ NTSTATUS status;
- SMB_ASSERT(req->state >= ASYNC_REQ_DONE);
- if (req->state == ASYNC_REQ_ERROR) {
- return req->status;
+ if (async_req_is_error(req, &status)) {
+ return status;
}
*received = state->pushed;
return NT_STATUS_OK;
req->private_data, struct cli_request);
struct cli_trans_state *state = talloc_get_type_abort(
cli_req->recv_helper.priv, struct cli_trans_state);
+ NTSTATUS status;
- SMB_ASSERT(req->state >= ASYNC_REQ_DONE);
- if (req->state == ASYNC_REQ_ERROR) {
- return req->status;
+ if (async_req_is_error(req, &status)) {
+ return status;
}
if (setup != NULL) {
num_dcs, info);
}
+static bool is_closest_site(struct netr_DsRGetDCNameInfo *info)
+{
+ if (info->dc_flags & DS_SERVER_CLOSEST) {
+ return true;
+ }
+
+ if (!info->client_site_name) {
+ return true;
+ }
+
+ if (!info->dc_site_name) {
+ return false;
+ }
+
+ if (strcmp(info->client_site_name, info->dc_site_name) == 0) {
+ return true;
+ }
+
+ return false;
+}
+
/********************************************************************
dsgetdcname.
NTSTATUS status = NT_STATUS_DOMAIN_CONTROLLER_NOT_FOUND;
struct netr_DsRGetDCNameInfo *myinfo = NULL;
char *query_site = NULL;
+ bool first = true;
+ struct netr_DsRGetDCNameInfo *first_info = NULL;
DEBUG(10,("dsgetdcname: domain_name: %s, "
"domain_guid: %s, site_name: %s, flags: 0x%08x\n",
status = dsgetdcname_cached(mem_ctx, msg_ctx, domain_name, domain_guid,
flags, query_site, &myinfo);
if (NT_STATUS_IS_OK(status)) {
- *info = myinfo;
goto done;
}
domain_guid, flags, query_site,
&myinfo);
- if (NT_STATUS_IS_OK(status)) {
- *info = myinfo;
- }
-
done:
SAFE_FREE(query_site);
- return status;
+ if (!NT_STATUS_IS_OK(status)) {
+ if (!first) {
+ *info = first_info;
+ return NT_STATUS_OK;
+ }
+ return status;
+ }
+
+ if (!first) {
+ TALLOC_FREE(first_info);
+ } else if (!is_closest_site(myinfo)) {
+ first = false;
+ first_info = myinfo;
+ /* TODO: may use the next_closest_site here */
+ query_site = SMB_STRDUP(myinfo->client_site_name);
+ goto rediscover;
+ }
+
+ *info = myinfo;
+ return NT_STATUS_OK;
}
smbc_bool use_kerberos,
char *signing_state)
{
-
- set_cmdline_auth_info_username(user);
- set_cmdline_auth_info_password(password);
- set_cmdline_auth_info_use_kerberos(use_kerberos);
- if (! set_cmdline_auth_info_signing_state(signing_state)) {
+ struct user_auth_info *auth_info;
+
+ auth_info = user_auth_info_init(talloc_tos());
+ if (auth_info == NULL) {
+ return;
+ }
+ set_cmdline_auth_info_username(auth_info, user);
+ set_cmdline_auth_info_password(auth_info, password);
+ set_cmdline_auth_info_use_kerberos(auth_info, use_kerberos);
+ if (! set_cmdline_auth_info_signing_state(auth_info, signing_state)) {
DEBUG(0, ("Invalid signing state: %s", signing_state));
}
set_global_myworkgroup(workgroup);
- cli_cm_set_credentials();
+ cli_cm_set_credentials(auth_info);
+ TALLOC_FREE(auth_info);
}
* Our list function simply checks to see if a directory is not empty
*/
-static int smbc_rmdir_dirempty = True;
-
static void
rmdir_list_fn(const char *mnt,
file_info *finfo,
{
if (strncmp(finfo->name, ".", 1) != 0 &&
strncmp(finfo->name, "..", 2) != 0) {
- smbc_rmdir_dirempty = False;
+ bool *smbc_rmdir_dirempty = (bool *)state;
+ *smbc_rmdir_dirempty = false;
}
}
/* Local storage to avoid buffer overflows */
char *lpath;
-
- smbc_rmdir_dirempty = True; /* Make this so ... */
+ bool smbc_rmdir_dirempty = true;
lpath = talloc_asprintf(frame, "%s\\*",
targetpath);
if (cli_list(targetcli, lpath,
aDIR | aSYSTEM | aHIDDEN,
- rmdir_list_fn, NULL) < 0) {
+ rmdir_list_fn,
+ &smbc_rmdir_dirempty) < 0) {
/* Fix errno to ignore latest error ... */
DEBUG(5, ("smbc_rmdir: "
const char *username_used;
NTSTATUS status;
- zero_addr(&ss);
+ zero_sockaddr(&ss);
ZERO_STRUCT(c);
if (server[0] == 0) {
again:
- zero_addr(&ss);
+ zero_sockaddr(&ss);
/* have to open a new connection */
if ((c = cli_initialise()) == NULL) {
flags |= CLI_FULL_CONNECTION_USE_KERBEROS;
}
- zero_addr(&ss);
+ zero_sockaddr(&ss);
nt_status = cli_full_connection(&ipc_cli,
global_myname(), server,
&ss, 0, "IPC$", "?????",
****************************************************************************/
#define SAFKEY_FMT "SAF/DOMAIN/%s"
#define SAF_TTL 900
+#define SAFJOINKEY_FMT "SAFJOIN/DOMAIN/%s"
+#define SAFJOIN_TTL 3600
static char *saf_key(const char *domain)
{
return keystr;
}
+static char *saf_join_key(const char *domain)
+{
+ char *keystr;
+
+ asprintf_strupper_m(&keystr, SAFJOINKEY_FMT, domain);
+
+ return keystr;
+}
+
/****************************************************************************
****************************************************************************/
return False;
key = saf_key( domain );
- expire = time( NULL ) + SAF_TTL;
+ expire = time( NULL ) + lp_parm_int(-1, "saf","ttl", SAF_TTL);
DEBUG(10,("saf_store: domain = [%s], server = [%s], expire = [%u]\n",
domain, servername, (unsigned int)expire ));
return ret;
}
+bool saf_join_store( const char *domain, const char *servername )
+{
+ char *key;
+ time_t expire;
+ bool ret = False;
+
+ if ( !domain || !servername ) {
+ DEBUG(2,("saf_join_store: Refusing to store empty domain or servername!\n"));
+ return False;
+ }
+
+ if ( (strlen(domain) == 0) || (strlen(servername) == 0) ) {
+ DEBUG(0,("saf_join_store: refusing to store 0 length domain or servername!\n"));
+ return False;
+ }
+
+ if ( !gencache_init() )
+ return False;
+
+ key = saf_join_key( domain );
+ expire = time( NULL ) + lp_parm_int(-1, "saf","join ttl", SAFJOIN_TTL);
+
+ DEBUG(10,("saf_join_store: domain = [%s], server = [%s], expire = [%u]\n",
+ domain, servername, (unsigned int)expire ));
+
+ ret = gencache_set( key, servername, expire );
+
+ SAFE_FREE( key );
+
+ return ret;
+}
+
bool saf_delete( const char *domain )
{
char *key;
if ( !gencache_init() )
return False;
+ key = saf_join_key(domain);
+ ret = gencache_del(key);
+ SAFE_FREE(key);
+
+ if (ret) {
+ DEBUG(10,("saf_delete[join]: domain = [%s]\n", domain ));
+ }
+
key = saf_key(domain);
ret = gencache_del(key);
+ SAFE_FREE(key);
if (ret) {
DEBUG(10,("saf_delete: domain = [%s]\n", domain ));
}
- SAFE_FREE( key );
-
return ret;
}
if ( !gencache_init() )
return False;
+ key = saf_join_key( domain );
+
+ ret = gencache_get( key, &server, &timeout );
+
+ SAFE_FREE( key );
+
+ if ( ret ) {
+ DEBUG(5,("saf_fetch[join]: Returning \"%s\" for \"%s\" domain\n",
+ server, domain ));
+ return server;
+ }
+
key = saf_key( domain );
ret = gencache_get( key, &server, &timeout );
if (!interpret_string_addr(&ss, lp_socket_address(),
AI_NUMERICHOST|AI_PASSIVE)) {
- zero_addr(&ss);
+ zero_sockaddr(&ss);
}
sock = open_socket_in(SOCK_DGRAM, 0, 3, &ss, True);
}
for ( j=i+1; j<count; j++ ) {
- if (addr_equal((struct sockaddr *)&iplist[i].ss, (struct sockaddr *)&iplist[j].ss) &&
+ if (sockaddr_equal((struct sockaddr *)&iplist[i].ss, (struct sockaddr *)&iplist[j].ss) &&
iplist[i].port == iplist[j].port) {
- zero_addr(&iplist[j].ss);
+ zero_sockaddr(&iplist[j].ss);
}
}
}
if (!interpret_string_addr(&ss, lp_socket_address(),
AI_NUMERICHOST|AI_PASSIVE)) {
- zero_addr(&ss);
+ zero_sockaddr(&ss);
}
sock = open_socket_in( SOCK_DGRAM, 0, 3, &ss, true );
/* the address we will be sending from */
if (!interpret_string_addr(&src_ss, lp_socket_address(),
AI_NUMERICHOST|AI_PASSIVE)) {
- zero_addr(&src_ss);
+ zero_sockaddr(&src_ss);
}
if (src_ss.ss_family != AF_INET) {
status = get_dc_list(domain, sitename, ip_list,
count, lookup_type, &ordered);
+ if (NT_STATUS_EQUAL(status, NT_STATUS_NO_LOGON_SERVERS)
+ && sitename) {
+ DEBUG(3,("get_sorted_dc_list: no server for name %s available"
+ " in site %s, fallback to all servers\n",
+ domain, sitename));
+ status = get_dc_list(domain, NULL, ip_list,
+ count, lookup_type, &ordered);
+ }
+
if (!NT_STATUS_IS_OK(status)) {
SAFE_FREE(*ip_list);
*count = 0;
#ifdef HAVE_ADS
*dc_ss = ads->ldap.ss;
#else
- zero_addr(dc_ss);
+ zero_sockaddr(dc_ss);
#endif
ads_destroy(&ads);
bool ret;
bool our_domain = False;
- zero_addr(&dc_ss);
+ zero_sockaddr(&dc_ss);
ret = False;
void common_free_enc_buffer(struct smb_trans_enc_state *es, char *buf)
{
+ uint16_t enc_ctx_num;
+
if (!common_encryption_on(es)) {
return;
}
+ if (!NT_STATUS_IS_OK(get_enc_ctx_num((const uint8_t *)buf,
+ &enc_ctx_num))) {
+ return;
+ }
+
if (es->smb_enc_type == SMB_TRANS_ENC_NTLM) {
SAFE_FREE(buf);
return;
}
void set_share_mode(struct share_mode_lock *lck, files_struct *fsp,
- uid_t uid, uint16 mid, uint16 op_type, bool initial_delete_on_close_allowed)
+ uid_t uid, uint16 mid, uint16 op_type)
{
struct share_mode_entry entry;
fill_share_mode_entry(&entry, fsp, uid, mid, op_type);
- if (initial_delete_on_close_allowed) {
- entry.flags |= SHARE_MODE_ALLOW_INITIAL_DELETE_ON_CLOSE;
- }
add_share_mode_entry(lck, &entry);
}
return NT_STATUS_OK;
}
-/****************************************************************************
- Do we have an open file handle that created this entry ?
-****************************************************************************/
-
-bool can_set_initial_delete_on_close(const struct share_mode_lock *lck)
-{
- int i;
-
- for (i=0; i<lck->num_share_modes; i++) {
- if (lck->share_modes[i].flags & SHARE_MODE_ALLOW_INITIAL_DELETE_ON_CLOSE) {
- return True;
- }
- }
- return False;
-}
-
/*************************************************************************
Return a talloced copy of a UNIX_USER_TOKEN. NULL on fail.
(Should this be in locking.c.... ?).
return True;
}
-/****************************************************************************
- Sets the allow initial delete on close flag for this share mode.
-****************************************************************************/
-
-bool set_allow_initial_delete_on_close(struct share_mode_lock *lck, files_struct *fsp, bool delete_on_close)
-{
- struct share_mode_entry entry, *e;
-
- /* Don't care about the pid owner being correct here - just a search. */
- fill_share_mode_entry(&entry, fsp, (uid_t)-1, 0, NO_OPLOCK);
-
- e = find_share_mode_entry(lck, &entry);
- if (e == NULL) {
- return False;
- }
-
- if (delete_on_close) {
- e->flags |= SHARE_MODE_ALLOW_INITIAL_DELETE_ON_CLOSE;
- } else {
- e->flags &= ~SHARE_MODE_ALLOW_INITIAL_DELETE_ON_CLOSE;
- }
- lck->modified = True;
- return True;
-}
-
bool set_sticky_write_time(struct file_id fileid, struct timespec write_time)
{
struct share_mode_lock *lck;
static int (*gpfs_set_lease_fn)(int fd, unsigned int leaseType);
static int (*gpfs_getacl_fn)(char *pathname, int flags, void *acl);
static int (*gpfs_putacl_fn)(char *pathname, int flags, void *acl);
+static int (*gpfs_get_realfilename_path_fn)(char *pathname, char *filenamep,
+ int *buflen);
bool set_gpfs_sharemode(files_struct *fsp, uint32 access_mask,
if (!gpfs_share_modes) {
return True;
}
-
+
if (gpfs_set_share_fn == NULL) {
return False;
}
if (leasetype == F_WRLCK) {
gpfs_type = GPFS_LEASE_WRITE;
}
-
+
/* we unconditionally set CAP_LEASE, rather than looking for
-1/EACCES as there is a bug in some versions of
libgpfs_gpl.so which results in a leaked fd on /dev/ss0
return gpfs_putacl_fn(pathname, flags, acl);
}
+int smbd_gpfs_get_realfilename_path(char *pathname, char *filenamep,
+ int *buflen)
+{
+ if (gpfs_get_realfilename_path_fn == NULL) {
+ errno = ENOSYS;
+ return -1;
+ }
+
+ return gpfs_get_realfilename_path_fn(pathname, filenamep, buflen);
+}
+
static bool init_gpfs_function_lib(void *plibhandle_pointer,
const char *libname,
void *pfn_pointer, const char *fn_name)
void **libhandle_pointer = (void **)plibhandle_pointer;
void **fn_pointer = (void **)pfn_pointer;
+ DEBUG(10, ("trying to load name %s from %s\n",
+ fn_name, libname));
+
if (*libhandle_pointer == NULL) {
*libhandle_pointer = dlopen(libname, RTLD_LAZY);
did_open_here = true;
init_gpfs_function(&gpfs_set_lease_fn, "gpfs_set_lease");
init_gpfs_function(&gpfs_getacl_fn, "gpfs_getacl");
init_gpfs_function(&gpfs_putacl_fn, "gpfs_putacl");
+ init_gpfs_function(&gpfs_get_realfilename_path_fn,
+ "gpfs_get_realfilename_path");
gpfs_share_modes = lp_parm_bool(-1, "gpfs", "sharemodes", True);
gpfs_leases = lp_parm_bool(-1, "gpfs", "leases", True);
return -1;
}
+int smbd_gpfs_get_realfilename_path(char *pathname, char *fileamep,
+ int *buflen)
+{
+ errno = ENOSYS;
+ return -1;
+}
+
void init_gpfs(void)
{
return;
#ifndef _ONEFS_H
#define _ONEFS_H
+#include "includes.h"
+
+#include <sys/isi_acl.h>
+
/* OneFS Module smb.conf parameters and defaults */
/**
ACL_FORMAT_ALWAYS /**< Always canonicalize */
};
-const struct enum_list enum_onefs_acl_wire_format[] = {
- {ACL_FORMAT_RAW, "No Format"},
- {ACL_FORMAT_WINDOWS_SD, "Format Windows SD"},
- {ACL_FORMAT_ALWAYS, "Always Format SD"},
- {-1, NULL}
-};
-
#define PARM_ONEFS_TYPE "onefs"
#define PARM_ACL_WIRE_FORMAT "acl wire format"
#define PARM_ACL_WIRE_FORMAT_DEFAULT ACL_FORMAT_WINDOWS_SD
#define PARM_CREATOR_OWNER_GETS_FULL_CONTROL "creator owner gets full control"
#define PARM_CREATOR_OWNER_GETS_FULL_CONTROL_DEFAULT true
+/*
+ * vfs interface handlers
+ */
+NTSTATUS onefs_create_file(vfs_handle_struct *handle,
+ struct smb_request *req,
+ uint16_t root_dir_fid,
+ const char *fname,
+ uint32_t create_file_flags,
+ uint32_t access_mask,
+ uint32_t share_access,
+ uint32_t create_disposition,
+ uint32_t create_options,
+ uint32_t file_attributes,
+ uint32_t oplock_request,
+ uint64_t allocation_size,
+ struct security_descriptor *sd,
+ struct ea_list *ea_list,
+ files_struct **result,
+ int *pinfo,
+ SMB_STRUCT_STAT *psbuf);
+
+NTSTATUS onefs_fget_nt_acl(vfs_handle_struct *handle, files_struct *fsp,
+ uint32 security_info, SEC_DESC **ppdesc);
+
+NTSTATUS onefs_get_nt_acl(vfs_handle_struct *handle, const char* name,
+ uint32 security_info, SEC_DESC **ppdesc);
+
+NTSTATUS onefs_fset_nt_acl(vfs_handle_struct *handle, files_struct *fsp,
+ uint32 security_info_sent, SEC_DESC *psd);
+
+
+/*
+ * Utility functions
+ */
+NTSTATUS onefs_setup_sd(uint32 security_info_sent, SEC_DESC *psd,
+ struct ifs_security_descriptor *sd);
+
+/*
+ * System Interfaces
+ */
+int onefs_sys_create_file(connection_struct *conn,
+ int base_fd,
+ const char *path,
+ uint32_t access_mask,
+ uint32_t open_access_mask,
+ uint32_t share_access,
+ uint32_t create_options,
+ int flags,
+ mode_t mode,
+ int oplock_request,
+ uint64_t id,
+ struct security_descriptor *sd,
+ uint32_t ntfs_flags,
+ int *granted_oplock);
+
+
+
#endif /* _ONEFS_H */
* along with this program; if not, see <http://www.gnu.org/licenses/>.
*/
-#include "includes.h"
+#include "onefs.h"
-#include <sys/isi_acl.h>
#include <isi_acl/isi_acl_util.h>
-#include <sys/isi_oplock.h>
#include <ifs/ifs_syscalls.h>
-#include "onefs.h"
+const struct enum_list enum_onefs_acl_wire_format[] = {
+ {ACL_FORMAT_RAW, "No Format"},
+ {ACL_FORMAT_WINDOWS_SD, "Format Windows SD"},
+ {ACL_FORMAT_ALWAYS, "Always Format SD"},
+ {-1, NULL}
+};
/**
* Turn SID into UID/GID and setup a struct ifs_identity
*/
static bool
-onefs_sid_to_identity(DOM_SID *sid, struct ifs_identity *id, bool is_group)
+onefs_sid_to_identity(const DOM_SID *sid, struct ifs_identity *id, bool is_group)
{
enum ifs_identity_type type = IFS_ID_TYPE_LAST+1;
uid_t uid = 0;
if (security_info & SACL_SECURITY_INFORMATION)
desired_access |= IFS_RTS_SACL_ACCESS;
- if ((fsp->fh->fd = ifs_createfile(-1,
- fsp->fsp_name,
- desired_access,
- 0, 0,
- OPLOCK_NONE,
- 0, NULL, 0,
- NULL, 0, NULL)) == -1) {
- DEBUG(0, ("Error opening file %s. errno=%d\n",
- fsp->fsp_name, errno));
+ if ((fsp->fh->fd = onefs_sys_create_file(handle->conn,
+ -1,
+ fsp->fsp_name,
+ desired_access,
+ desired_access,
+ 0,
+ 0,
+ 0,
+ 0,
+ INTERNAL_OPEN_ONLY,
+ 0,
+ NULL,
+ 0,
+ NULL)) == -1) {
+ DEBUG(0, ("Error opening file %s. errno=%d (%s)\n",
+ fsp->fsp_name, errno, strerror(errno)));
status = map_nt_error_from_unix(errno);
goto out;
}
}
/**
- * Isilon-specific function for setting an NTFS ACL on an open file.
+ * Isilon-specific function for setting up an ifs_security_descriptor, given a
+ * samba SEC_DESC.
*
- * @return NT_STATUS_UNSUCCESSFUL for userspace errors, NTSTATUS based off
- * errno on syscall errors
+ * @param[out] sd ifs_security_descriptor to fill in
+ *
+ * @return NTSTATUS_OK if successful
*/
-NTSTATUS
-onefs_fset_nt_acl(vfs_handle_struct *handle, files_struct *fsp,
- uint32 security_info_sent, SEC_DESC *psd)
+NTSTATUS onefs_setup_sd(uint32 security_info_sent, SEC_DESC *psd,
+ struct ifs_security_descriptor *sd)
{
- struct ifs_security_descriptor sd = {};
struct ifs_security_acl dacl, sacl, *daclp, *saclp;
struct ifs_identity owner, group, *ownerp, *groupp;
- int fd;
- bool fopened = false;
-
- DEBUG(5,("Setting SD on file %s.\n", fsp->fsp_name ));
ownerp = NULL;
groupp = NULL;
/* Setup ifs_security_descriptor */
DEBUG(5,("Setting up SD\n"));
- if (aclu_initialize_sd(&sd, psd->type, ownerp, groupp,
- (daclp ? &daclp : NULL), (saclp ? &saclp : NULL), false))
+ if (aclu_initialize_sd(sd, psd->type, ownerp, groupp,
+ (daclp ? &daclp : NULL), (saclp ? &saclp : NULL), false))
return NT_STATUS_UNSUCCESSFUL;
+ return NT_STATUS_OK;
+}
+
+/**
+ * Isilon-specific function for setting an NTFS ACL on an open file.
+ *
+ * @return NT_STATUS_UNSUCCESSFUL for userspace errors, NTSTATUS based off
+ * errno on syscall errors
+ */
+NTSTATUS
+onefs_fset_nt_acl(vfs_handle_struct *handle, files_struct *fsp,
+ uint32 security_info_sent, SEC_DESC *psd)
+{
+ struct ifs_security_descriptor sd = {};
+ int fd;
+ bool fopened = false;
+ NTSTATUS status;
+
+ DEBUG(5,("Setting SD on file %s.\n", fsp->fsp_name ));
+
+ status = onefs_setup_sd(security_info_sent, psd, &sd);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ DEBUG(3, ("SD initialization failure: %s", nt_errstr(status)));
+ return status;
+ }
+
fd = fsp->fh->fd;
if (fd == -1) {
enum ifs_ace_rights desired_access = 0;
if (security_info_sent & SACL_SECURITY_INFORMATION)
desired_access |= IFS_RTS_SACL_ACCESS;
- if ((fd = ifs_createfile(-1,
- fsp->fsp_name,
- desired_access,
- 0, 0,
- OPLOCK_NONE,
- 0, NULL, 0,
- NULL, 0, NULL)) == -1) {
- DEBUG(0, ("Error opening file %s. errno=%d\n",
- fsp->fsp_name, errno));
- return map_nt_error_from_unix(errno);
+ if ((fd = onefs_sys_create_file(handle->conn,
+ -1,
+ fsp->fsp_name,
+ desired_access,
+ desired_access,
+ 0,
+ 0,
+ 0,
+ 0,
+ INTERNAL_OPEN_ONLY,
+ 0,
+ NULL,
+ 0,
+ NULL)) == -1) {
+ DEBUG(0, ("Error opening file %s. errno=%d (%s)\n",
+ fsp->fsp_name, errno, strerror(errno)));
+ status = map_nt_error_from_unix(errno);
+ goto out;
}
fopened = true;
}
errno = 0;
if (ifs_set_security_descriptor(fd, security_info_sent, &sd)) {
DEBUG(0, ("Error setting security descriptor = %d\n", errno));
+ status = map_nt_error_from_unix(errno);
goto out;
}
DEBUG(5, ("Security descriptor set correctly!\n"));
+ status = NT_STATUS_OK;
/* FALLTHROUGH */
out:
close(fd);
aclu_free_sd(&sd, false);
- return errno ? map_nt_error_from_unix(errno) : NT_STATUS_OK;
+ return status;
}
--- /dev/null
+/*
+ * Unix SMB/CIFS implementation.
+ *
+ * This file began with some code from source3/smbd/open.c and modified it to
+ * work with ifs_createfile.
+ *
+ * ifs_createfile is a CIFS-specific syscall for opening/files and
+ * directories. It adds support for:
+ * - Full in-kernel access checks using a windows access_mask
+ * - Cluster-coherent share mode locks
+ * - Cluster-coherent oplocks
+ * - Streams
+ * - Setting security descriptors at create time
+ * - Setting dos_attributes at create time
+ *
+ * Copyright (C) Andrew Tridgell 1992-1998
+ * Copyright (C) Jeremy Allison 2001-2004
+ * Copyright (C) Volker Lendecke 2005
+ * Copyright (C) Tim Prouty, 2008
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "onefs.h"
+
+extern const struct generic_mapping file_generic_mapping;
+extern bool global_client_failed_oplock_break;
+
+struct deferred_open_record {
+ bool delayed_for_oplocks;
+ bool failed; /* added for onefs_oplocks */
+ struct file_id id;
+};
+
+static NTSTATUS onefs_create_file_unixpath(connection_struct *conn,
+ struct smb_request *req,
+ const char *fname,
+ uint32_t access_mask,
+ uint32_t share_access,
+ uint32_t create_disposition,
+ uint32_t create_options,
+ uint32_t file_attributes,
+ uint32_t oplock_request,
+ uint64_t allocation_size,
+ struct security_descriptor *sd,
+ struct ea_list *ea_list,
+
+ files_struct **result,
+ int *pinfo,
+ SMB_STRUCT_STAT *psbuf);
+
+/****************************************************************************
+ Open a file.
+****************************************************************************/
+
+static NTSTATUS onefs_open_file(files_struct *fsp,
+ connection_struct *conn,
+ struct smb_request *req,
+ const char *parent_dir,
+ const char *name,
+ const char *path,
+ SMB_STRUCT_STAT *psbuf,
+ int flags,
+ mode_t unx_mode,
+ uint32 access_mask,
+ uint32 open_access_mask,
+ int oplock_request,
+ uint64 id,
+ uint32 share_access,
+ uint32 create_options,
+ uint32_t new_dos_attributes,
+ struct security_descriptor *sd,
+ int *granted_oplock)
+{
+ NTSTATUS status = NT_STATUS_OK;
+ int accmode = (flags & O_ACCMODE);
+ int local_flags = flags;
+ bool file_existed = VALID_STAT(*psbuf);
+ const char *wild;
+
+ fsp->fh->fd = -1;
+ errno = EPERM;
+
+ /* Check permissions */
+
+ /*
+ * This code was changed after seeing a client open request
+ * containing the open mode of (DENY_WRITE/read-only) with
+ * the 'create if not exist' bit set. The previous code
+ * would fail to open the file read only on a read-only share
+ * as it was checking the flags parameter directly against O_RDONLY,
+ * this was failing as the flags parameter was set to O_RDONLY|O_CREAT.
+ * JRA.
+ */
+
+ if (!CAN_WRITE(conn)) {
+ /* It's a read-only share - fail if we wanted to write. */
+ if(accmode != O_RDONLY) {
+ DEBUG(3,("Permission denied opening %s\n", path));
+ return NT_STATUS_ACCESS_DENIED;
+ } else if(flags & O_CREAT) {
+ /* We don't want to write - but we must make sure that
+ O_CREAT doesn't create the file if we have write
+ access into the directory.
+ */
+ flags &= ~O_CREAT;
+ local_flags &= ~O_CREAT;
+ }
+ }
+
+ /*
+ * This little piece of insanity is inspired by the
+ * fact that an NT client can open a file for O_RDONLY,
+ * but set the create disposition to FILE_EXISTS_TRUNCATE.
+ * If the client *can* write to the file, then it expects to
+ * truncate the file, even though it is opening for readonly.
+ * Quicken uses this stupid trick in backup file creation...
+ * Thanks *greatly* to "David W. Chapman Jr." <dwcjr@inethouston.net>
+ * for helping track this one down. It didn't bite us in 2.0.x
+ * as we always opened files read-write in that release. JRA.
+ */
+
+ if ((accmode == O_RDONLY) && ((flags & O_TRUNC) == O_TRUNC)) {
+ DEBUG(10,("onefs_open_file: truncate requested on read-only "
+ "open for file %s\n", path));
+ local_flags = (flags & ~O_ACCMODE)|O_RDWR;
+ }
+
+#if defined(O_NONBLOCK) && defined(S_ISFIFO)
+ /*
+ * We would block on opening a FIFO with no one else on the
+ * other end. Do what we used to do and add O_NONBLOCK to the
+ * open flags. JRA.
+ */
+
+ if (file_existed && S_ISFIFO(psbuf->st_mode)) {
+ local_flags |= O_NONBLOCK;
+ }
+#endif
+
+ /* Don't create files with Microsoft wildcard characters. */
+ if (fsp->base_fsp) {
+ /*
+ * wildcard characters are allowed in stream names
+ * only test the basefilename
+ */
+ wild = fsp->base_fsp->fsp_name;
+ } else {
+ wild = path;
+ }
+ if ((local_flags & O_CREAT) && !file_existed &&
+ ms_has_wild(wild)) {
+ /*
+ * XXX: may need to remvoe this return...
+ *
+ * We dont think this check needs to exist. All it does is
+ * block creating files with Microsoft wildcards, which is
+ * fine if the creation originated from NFS or locally and
+ * then was copied via Samba.
+ */
+ DEBUG(1, ("onefs_open_file: creating file with wildcard: %s\n",
+ path));
+ return NT_STATUS_OBJECT_NAME_INVALID;
+ }
+
+ /* Actually do the open */
+
+#ifdef O_NOFOLLOW
+ /*
+ * Never follow symlinks on a POSIX client. The
+ * client should be doing this.
+ */
+
+ if (fsp->posix_open || !lp_symlinks(SNUM(conn))) {
+ flags |= O_NOFOLLOW;
+ }
+#endif
+ /* Don't request an oplock if oplocks are turned off for the
+ * share. */
+ if (!lp_oplocks(SNUM(conn)))
+ oplock_request = 0;
+
+ fsp->fh->fd = onefs_sys_create_file(conn,
+ -1,
+ path,
+ access_mask,
+ open_access_mask,
+ share_access,
+ create_options,
+ flags,
+ unx_mode,
+ oplock_request,
+ id,
+ sd,
+ new_dos_attributes,
+ granted_oplock);
+
+ if (fsp->fh->fd == -1) {
+ if (errno == EMFILE) {
+ static time_t last_warned = 0L;
+
+ if (time((time_t *) NULL) > last_warned) {
+ DEBUG(0, ("Too many open files, unable "
+ "to open more! smbd's max "
+ "open files = %d, also check "
+ "sysctl kern.maxfiles and "
+ "sysctl kern.maxfilesperproc\n",
+ lp_max_open_files()));
+ last_warned = time((time_t *) NULL);
+ }
+ }
+
+ status = map_nt_error_from_unix(errno);
+ DEBUG(3,("Error opening file %s (%s) (local_flags=%d) "
+ "(flags=%d)\n",
+ path,nt_errstr(status),local_flags,flags));
+ return status;
+ }
+
+ if ((local_flags & O_CREAT) && !file_existed) {
+
+ /* Inherit the ACL if required */
+ if (lp_inherit_perms(SNUM(conn))) {
+ inherit_access_posix_acl(conn, parent_dir, path,
+ unx_mode);
+ }
+
+ /* Change the owner if required. */
+ if (lp_inherit_owner(SNUM(conn))) {
+ change_file_owner_to_parent(conn, parent_dir,
+ fsp);
+ }
+
+ notify_fname(conn, NOTIFY_ACTION_ADDED,
+ FILE_NOTIFY_CHANGE_FILE_NAME, path);
+ }
+
+ if (!file_existed) {
+ int ret;
+
+ if (fsp->fh->fd == -1) {
+ ret = SMB_VFS_STAT(conn, path, psbuf);
+ } else {
+ ret = SMB_VFS_FSTAT(fsp, psbuf);
+ /* If we have an fd, this stat should succeed. */
+ if (ret == -1) {
+ DEBUG(0,("Error doing fstat on open file %s "
+ "(%s)\n", path,strerror(errno) ));
+ }
+ }
+
+ /* For a non-io open, this stat failing means file not found. JRA */
+ if (ret == -1) {
+ status = map_nt_error_from_unix(errno);
+ fd_close(fsp);
+ return status;
+ }
+ }
+
+ /*
+ * POSIX allows read-only opens of directories. We don't
+ * want to do this (we use a different code path for this)
+ * so catch a directory open and return an EISDIR. JRA.
+ */
+
+ if(S_ISDIR(psbuf->st_mode)) {
+ fd_close(fsp);
+ errno = EISDIR;
+ return NT_STATUS_FILE_IS_A_DIRECTORY;
+ }
+
+ fsp->mode = psbuf->st_mode;
+ fsp->file_id = vfs_file_id_from_sbuf(conn, psbuf);
+ fsp->vuid = req ? req->vuid : UID_FIELD_INVALID;
+ fsp->file_pid = req ? req->smbpid : 0;
+ fsp->can_lock = True;
+ fsp->can_read = (access_mask & (FILE_READ_DATA)) ? True : False;
+ if (!CAN_WRITE(conn)) {
+ fsp->can_write = False;
+ } else {
+ fsp->can_write = (access_mask & (FILE_WRITE_DATA | FILE_APPEND_DATA)) ?
+ True : False;
+ }
+ fsp->print_file = False;
+ fsp->modified = False;
+ fsp->sent_oplock_break = NO_BREAK_SENT;
+ fsp->is_directory = False;
+ if (conn->aio_write_behind_list &&
+ is_in_path(path, conn->aio_write_behind_list, conn->case_sensitive)) {
+ fsp->aio_write_behind = True;
+ }
+
+ string_set(&fsp->fsp_name, path);
+ fsp->wcp = NULL; /* Write cache pointer. */
+
+ DEBUG(2,("%s opened file %s read=%s write=%s (numopen=%d)\n",
+ conn->server_info->unix_name,
+ fsp->fsp_name,
+ BOOLSTR(fsp->can_read), BOOLSTR(fsp->can_write),
+ conn->num_files_open));
+
+ errno = 0;
+ return NT_STATUS_OK;
+}
+
+/****************************************************************************
+ Handle the 1 second delay in returning a SHARING_VIOLATION error.
+****************************************************************************/
+
+static void defer_open(struct share_mode_lock *lck,
+ struct timeval request_time,
+ struct timeval timeout,
+ struct smb_request *req,
+ struct deferred_open_record *state)
+{
+ int i;
+
+ /* Paranoia check */
+
+ for (i=0; i<lck->num_share_modes; i++) {
+ struct share_mode_entry *e = &lck->share_modes[i];
+
+ if (!is_deferred_open_entry(e)) {
+ continue;
+ }
+
+ if (procid_is_me(&e->pid) && (e->op_mid == req->mid)) {
+ DEBUG(0, ("Trying to defer an already deferred "
+ "request: mid=%d, exiting\n", req->mid));
+ exit_server("attempt to defer a deferred request");
+ }
+ }
+
+ /* End paranoia check */
+
+ DEBUG(10,("defer_open_sharing_error: time [%u.%06u] adding deferred "
+ "open entry for mid %u\n",
+ (unsigned int)request_time.tv_sec,
+ (unsigned int)request_time.tv_usec,
+ (unsigned int)req->mid));
+
+ if (!push_deferred_smb_message(req, request_time, timeout,
+ (char *)state, sizeof(*state))) {
+ exit_server("push_deferred_smb_message failed");
+ }
+ add_deferred_open(lck, req->mid, request_time, state->id);
+
+ /*
+ * Push the MID of this packet on the signing queue.
+ * We only do this once, the first time we push the packet
+ * onto the deferred open queue, as this has a side effect
+ * of incrementing the response sequence number.
+ */
+
+ srv_defer_sign_response(req->mid);
+}
+
+static void schedule_defer_open(struct share_mode_lock *lck,
+ struct timeval request_time,
+ struct smb_request *req)
+{
+ struct deferred_open_record state;
+
+ /* This is a relative time, added to the absolute
+ request_time value to get the absolute timeout time.
+ Note that if this is the second or greater time we enter
+ this codepath for this particular request mid then
+ request_time is left as the absolute time of the *first*
+ time this request mid was processed. This is what allows
+ the request to eventually time out. */
+
+ struct timeval timeout;
+
+ /* Normally the smbd we asked should respond within
+ * OPLOCK_BREAK_TIMEOUT seconds regardless of whether
+ * the client did, give twice the timeout as a safety
+ * measure here in case the other smbd is stuck
+ * somewhere else. */
+
+ timeout = timeval_set(OPLOCK_BREAK_TIMEOUT*2, 0);
+
+ /* Nothing actually uses state.delayed_for_oplocks
+ but it's handy to differentiate in debug messages
+ between a 30 second delay due to oplock break, and
+ a 1 second delay for share mode conflicts. */
+
+ state.delayed_for_oplocks = True;
+ state.failed = False;
+ state.id = lck->id;
+
+ if (!request_timed_out(request_time, timeout)) {
+ defer_open(lck, request_time, timeout, req, &state);
+ }
+}
+
+/****************************************************************************
+ Open a file with a share mode. Passed in an already created files_struct.
+****************************************************************************/
+NTSTATUS onefs_open_file_ntcreate(connection_struct *conn,
+ struct smb_request *req,
+ const char *fname,
+ uint32 access_mask,
+ uint32 share_access,
+ uint32 create_disposition,
+ uint32 create_options,
+ uint32 new_dos_attributes,
+ int oplock_request,
+ struct security_descriptor *sd,
+ files_struct *fsp,
+ int *pinfo,
+ SMB_STRUCT_STAT *psbuf)
+{
+ int flags=0;
+ int flags2=0;
+ bool file_existed = VALID_STAT(*psbuf);
+ bool def_acl = False;
+ bool posix_open = False;
+ bool new_file_created = False;
+ struct file_id id;
+ mode_t new_unx_mode = (mode_t)0;
+ mode_t unx_mode = (mode_t)0;
+ int info;
+ uint32 existing_dos_attributes = 0;
+ struct pending_message_list *pml = NULL;
+ struct timeval request_time = timeval_zero();
+ struct share_mode_lock *lck = NULL;
+ uint32 open_access_mask = access_mask;
+ NTSTATUS status;
+ int ret_flock;
+ char *parent_dir;
+ const char *newname;
+ int granted_oplock;
+ uint64 oplock_waiter;
+ uint32 createfile_attributes = 0;
+
+ ZERO_STRUCT(id);
+
+ if (conn->printer) {
+ /*
+ * Printers are handled completely differently.
+ * Most of the passed parameters are ignored.
+ */
+
+ if (pinfo) {
+ *pinfo = FILE_WAS_CREATED;
+ }
+
+ DEBUG(10, ("onefs_open_file_ntcreate: printer open fname=%s\n",
+ fname));
+
+ return print_fsp_open(req, conn, fname, req->vuid, fsp);
+ }
+
+ if (!parent_dirname_talloc(talloc_tos(), fname, &parent_dir,
+ &newname)) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ if (new_dos_attributes & FILE_FLAG_POSIX_SEMANTICS) {
+ posix_open = True;
+ unx_mode = (mode_t)(new_dos_attributes & ~FILE_FLAG_POSIX_SEMANTICS);
+ new_dos_attributes = 0;
+ } else {
+ /* We add aARCH to this as this mode is only used if the file is
+ * created new. */
+ unx_mode = unix_mode(conn, new_dos_attributes | aARCH, fname,
+ parent_dir);
+ }
+
+ DEBUG(10,("onefs_open_file_ntcreate: fname=%s, dos_attrs=0x%x "
+ "access_mask=0x%x share_access=0x%x "
+ "create_disposition = 0x%x create_options=0x%x "
+ "unix mode=0%o oplock_request=0x%x\n",
+ fname, new_dos_attributes, access_mask, share_access,
+ create_disposition, create_options, unx_mode,
+ oplock_request));
+
+ if ((req == NULL) && ((oplock_request & INTERNAL_OPEN_ONLY) == 0)) {
+ DEBUG(0, ("No smb request but not an internal only open!\n"));
+ return NT_STATUS_INTERNAL_ERROR;
+ }
+
+ /*
+ * Only non-internal opens can be deferred at all
+ */
+
+ if ((req != NULL)
+ && ((pml = get_open_deferred_message(req->mid)) != NULL)) {
+ struct deferred_open_record *state =
+ (struct deferred_open_record *)pml->private_data.data;
+
+ /* Remember the absolute time of the original
+ request with this mid. We'll use it later to
+ see if this has timed out. */
+
+ request_time = pml->request_time;
+
+ /* Remove the deferred open entry under lock. */
+ lck = get_share_mode_lock(talloc_tos(), state->id, NULL, NULL,
+ NULL);
+ if (lck == NULL) {
+ DEBUG(0, ("could not get share mode lock\n"));
+ } else {
+ del_deferred_open_entry(lck, req->mid);
+ TALLOC_FREE(lck);
+ }
+
+ /* Ensure we don't reprocess this message. */
+ remove_deferred_open_smb_message(req->mid);
+
+ /*
+ * When receiving a semlock_async_failure message, the
+ * deferred open will be marked as "failed". Returning
+ * INTERNAL_ERROR.
+ */
+ if (state->failed) {
+ DEBUG(0, ("onefs_open_file_ntcreate: "
+ "semlock_async_failure detected!\n"));
+ return NT_STATUS_INTERNAL_ERROR;
+ }
+ }
+
+ status = check_name(conn, fname);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (!posix_open) {
+ new_dos_attributes &= SAMBA_ATTRIBUTES_MASK;
+ if (file_existed) {
+ existing_dos_attributes = dos_mode(conn, fname, psbuf);
+ }
+ }
+
+ /* Setup dos_attributes to be set by ifs_createfile */
+ if (lp_store_dos_attributes(SNUM(conn))) {
+ createfile_attributes = (new_dos_attributes | aARCH) &
+ ~(FILE_ATTRIBUTE_NONINDEXED | FILE_ATTRIBUTE_COMPRESSED);
+ }
+
+ /* Ignore oplock requests if oplocks are disabled. */
+ if (!lp_oplocks(SNUM(conn)) || global_client_failed_oplock_break ||
+ IS_VETO_OPLOCK_PATH(conn, fname)) {
+ /* Mask off everything except the private Samba bits. */
+ oplock_request &= SAMBA_PRIVATE_OPLOCK_MASK;
+ }
+
+ /* this is for OS/2 long file names - say we don't support them */
+ if (!lp_posix_pathnames() && strstr(fname,".+,;=[].")) {
+ /* OS/2 Workplace shell fix may be main code stream in a later
+ * release. */
+ DEBUG(5,("onefs_open_file_ntcreate: OS/2 long filenames are "
+ "not supported.\n"));
+ if (use_nt_status()) {
+ return NT_STATUS_OBJECT_NAME_NOT_FOUND;
+ }
+ return NT_STATUS_DOS(ERRDOS, ERRcannotopen);
+ }
+
+ switch( create_disposition ) {
+ /*
+ * Currently we're using FILE_SUPERSEDE as the same as
+ * FILE_OVERWRITE_IF but they really are
+ * different. FILE_SUPERSEDE deletes an existing file
+ * (requiring delete access) then recreates it.
+ */
+ case FILE_SUPERSEDE:
+ /* If file exists replace/overwrite. If file doesn't
+ * exist create. */
+ /**
+ * @todo: Clear all file attributes?
+ * http://www.osronline.com/article.cfm?article=302
+ * create if not exist, trunc if exist
+ *
+ * If file exists replace/overwrite. If file doesn't
+ * exist create.
+ */
+ flags2 |= (O_CREAT | O_TRUNC);
+ break;
+
+ case FILE_OVERWRITE_IF:
+ /* If file exists replace/overwrite. If file doesn't
+ * exist create. */
+ flags2 |= (O_CREAT | O_TRUNC);
+ break;
+
+ case FILE_OPEN:
+ /* If file exists open. If file doesn't exist error. */
+ if (!file_existed) {
+ DEBUG(5,("onefs_open_file_ntcreate: FILE_OPEN "
+ "requested for file %s and file "
+ "doesn't exist.\n", fname ));
+ errno = ENOENT;
+ return NT_STATUS_OBJECT_NAME_NOT_FOUND;
+ }
+ break;
+
+ case FILE_OVERWRITE:
+ /* If file exists overwrite. If file doesn't exist
+ * error. */
+ if (!file_existed) {
+ DEBUG(5, ("onefs_open_file_ntcreate: "
+ "FILE_OVERWRITE requested for file "
+ "%s and file doesn't exist.\n",
+ fname));
+ errno = ENOENT;
+ return NT_STATUS_OBJECT_NAME_NOT_FOUND;
+ }
+ flags2 |= O_TRUNC;
+ break;
+
+ case FILE_CREATE:
+ /* If file exists error. If file doesn't exist
+ * create. */
+ if (file_existed) {
+ DEBUG(5, ("onefs_open_file_ntcreate: "
+ "FILE_CREATE requested for file %s "
+ "and file already exists.\n",
+ fname));
+ if (S_ISDIR(psbuf->st_mode)) {
+ errno = EISDIR;
+ } else {
+ errno = EEXIST;
+ }
+ return map_nt_error_from_unix(errno);
+ }
+ flags2 |= (O_CREAT|O_EXCL);
+ break;
+
+ case FILE_OPEN_IF:
+ /* If file exists open. If file doesn't exist
+ * create. */
+ flags2 |= O_CREAT;
+ break;
+
+ default:
+ return NT_STATUS_INVALID_PARAMETER;
+ }
+
+ /* Match attributes on file exists and overwrite. */
+ if (!posix_open && file_existed &&
+ ((create_disposition == FILE_OVERWRITE) ||
+ (create_disposition == FILE_OVERWRITE_IF))) {
+ if (!open_match_attributes(conn, fname,
+ existing_dos_attributes,
+ new_dos_attributes, psbuf->st_mode,
+ unx_mode, &new_unx_mode)) {
+ DEBUG(5, ("onefs_open_file_ntcreate: attributes "
+ "missmatch for file %s (%x %x) (0%o, 0%o)\n",
+ fname, existing_dos_attributes,
+ new_dos_attributes,
+ (unsigned int)psbuf->st_mode,
+ (unsigned int)unx_mode ));
+ errno = EACCES;
+ return NT_STATUS_ACCESS_DENIED;
+ }
+ }
+
+ /*
+ * OneFS understands MAXIMUM_ALLOWED_ACCESS, so only hack the
+ * access_mask, but leave the MAA for the actual open in
+ * open_access_mask.
+ */
+ open_access_mask = access_mask;
+ if (open_access_mask & MAXIMUM_ALLOWED_ACCESS) {
+ access_mask |= FILE_GENERIC_ALL;
+ }
+
+ /* Convert GENERIC bits to specific bits. */
+ se_map_generic(&access_mask, &file_generic_mapping);
+ se_map_generic(&open_access_mask, &file_generic_mapping);
+
+ if ((flags2 & O_TRUNC) || (oplock_request & FORCE_OPLOCK_BREAK_TO_NONE)) {
+ /* This will cause oplock breaks. */
+ open_access_mask |= FILE_WRITE_DATA;
+ }
+
+ DEBUG(10, ("onefs_open_file_ntcreate: fname=%s, after mapping "
+ "open_access_mask=%#x, access_mask=0x%x\n",
+ fname, open_access_mask, access_mask));
+
+ /*
+ * Note that we ignore the append flag as append does not
+ * mean the same thing under DOS and Unix.
+ */
+
+ if ((access_mask & (FILE_WRITE_DATA | FILE_APPEND_DATA)) ||
+ (oplock_request & FORCE_OPLOCK_BREAK_TO_NONE)) {
+
+ /*
+ * DENY_DOS opens are always underlying read-write on the
+ * file handle, no matter what the requested access mask
+ * says. Stock samba just sets the flags, but since
+ * ifs_createfile uses the access_mask, it must be updated as
+ * well. This allows BASE-DENY* to pass.
+ */
+ if (create_options & NTCREATEX_OPTIONS_PRIVATE_DENY_DOS) {
+
+ DEBUG(10,("onefs_open_file_ntcreate: deny_dos: "
+ "Adding O_RDWR to flags "
+ "(0x%x) and some READ bits to "
+ "open_access_mask (0x%x)\n",
+ flags, open_access_mask));
+
+ flags = O_RDWR;
+ open_access_mask |= (FILE_READ_ATTRIBUTES |
+ FILE_READ_DATA | FILE_READ_EA | FILE_EXECUTE);
+
+ } else if (access_mask & (FILE_READ_ATTRIBUTES |
+ FILE_READ_DATA |
+ FILE_READ_EA |
+ FILE_EXECUTE)) {
+ flags = O_RDWR;
+ } else {
+ flags = O_WRONLY;
+ }
+ } else {
+ flags = O_RDONLY;
+ }
+
+ /* Currently we only look at FILE_WRITE_THROUGH for create options. */
+#if defined(O_SYNC)
+ if ((create_options & FILE_WRITE_THROUGH) &&
+ lp_strict_sync(SNUM(conn))) {
+ flags2 |= O_SYNC;
+ }
+#endif /* O_SYNC */
+
+ if (posix_open && (access_mask & FILE_APPEND_DATA)) {
+ flags2 |= O_APPEND;
+ }
+
+ if (!posix_open && !CAN_WRITE(conn)) {
+ /*
+ * We should really return a permission denied error if either
+ * O_CREAT or O_TRUNC are set, but for compatibility with
+ * older versions of Samba we just AND them out.
+ */
+ flags2 &= ~(O_CREAT|O_TRUNC);
+
+ /**
+ * XXX: TODO
+ * Apparently this is necessary because we ship with
+ * lp_acl_check_permissions = no. It is set to no because our
+ * ifs_createfile does the access check correctly. This check
+ * was added in the last merge, and the question is why is it
+ * necessary? Check out Bug 25547 and Bug 14596. The key is
+ * to figure out what case this is covering, and do some
+ * testing to see if it's actually necessary. If it is, maybe
+ * it should go upstream in open.c.
+ */
+ if (!lp_acl_check_permissions(SNUM(conn)) &&
+ (access_mask & DELETE_ACCESS)) {
+ return map_nt_error_from_unix(EACCES);
+ }
+ }
+
+ /* Ensure we can't write on a read-only share or file. */
+ if (flags != O_RDONLY && file_existed &&
+ (!CAN_WRITE(conn) || IS_DOS_READONLY(existing_dos_attributes))) {
+ DEBUG(5, ("onefs_open_file_ntcreate: write access requested "
+ "for file %s on read only %s\n",
+ fname, !CAN_WRITE(conn) ? "share" : "file" ));
+ errno = EACCES;
+ return NT_STATUS_ACCESS_DENIED;
+ }
+
+ DEBUG(10, ("fsp = %p\n", fsp));
+
+ fsp->file_id = vfs_file_id_from_sbuf(conn, psbuf);
+ fsp->share_access = share_access;
+ fsp->fh->private_options = create_options;
+ fsp->access_mask = open_access_mask; /* We change this to the
+ * requested access_mask after
+ * the open is done. */
+ fsp->posix_open = posix_open;
+
+ /* Ensure no SAMBA_PRIVATE bits can be set. */
+ fsp->oplock_type = (oplock_request & ~SAMBA_PRIVATE_OPLOCK_MASK);
+
+ if (timeval_is_zero(&request_time)) {
+ request_time = fsp->open_time;
+ }
+
+ if (file_existed) {
+ struct timespec old_write_time = get_mtimespec(psbuf);
+ id = vfs_file_id_from_sbuf(conn, psbuf);
+
+ lck = get_share_mode_lock(talloc_tos(), id,
+ conn->connectpath,
+ fname, &old_write_time);
+
+ if (lck == NULL) {
+ DEBUG(0, ("Could not get share mode lock\n"));
+ return NT_STATUS_SHARING_VIOLATION;
+ }
+
+ if (lck->delete_on_close) {
+ /* DELETE_PENDING is not deferred for a second */
+ TALLOC_FREE(lck);
+ return NT_STATUS_DELETE_PENDING;
+ }
+ }
+
+ SMB_ASSERT(!file_existed || (lck != NULL));
+
+ /*
+ * Ensure we pay attention to default ACLs on directories. May be
+ * neccessary depending on ACL policies.
+ */
+ if ((flags2 & O_CREAT) && lp_inherit_acls(SNUM(conn)) &&
+ (def_acl = directory_has_default_acl(conn, parent_dir))) {
+ unx_mode = 0777;
+ }
+
+ DEBUG(4,("calling onefs_open_file with flags=0x%X flags2=0x%X "
+ "mode=0%o, access_mask = 0x%x, open_access_mask = 0x%x\n",
+ (unsigned int)flags, (unsigned int)flags2,
+ (unsigned int)unx_mode, (unsigned int)access_mask,
+ (unsigned int)open_access_mask));
+
+ oplock_waiter = 1; //ifs_oplock_wait_record(mid);
+
+ if (oplock_waiter == 0) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ /* Do the open. */
+ status = onefs_open_file(fsp,
+ conn,
+ req,
+ parent_dir,
+ newname,
+ fname,
+ psbuf,
+ flags|flags2,
+ unx_mode,
+ access_mask,
+ open_access_mask,
+ fsp->oplock_type,
+ oplock_waiter,
+ share_access,
+ create_options,
+ createfile_attributes,
+ sd,
+ &granted_oplock);
+
+ if (!NT_STATUS_IS_OK(status)) {
+
+ /* OneFS Oplock Handling */
+ if (errno == EINPROGRESS) {
+
+ if (lck == NULL) {
+
+ struct deferred_open_record state;
+ struct timespec old_write_time;
+
+ old_write_time = get_mtimespec(psbuf);
+
+ DEBUG(3, ("Someone created file %s with an "
+ "oplock after we looked: Retrying\n",
+ fname));
+ /*
+ * We hit the race that when we did the stat
+ * on the file it did not exist, and someone
+ * has created it in between the stat and the
+ * open_file() call. Just retry immediately.
+ */
+ id = vfs_file_id_from_sbuf(conn, psbuf);
+ if (!(lck = get_share_mode_lock(talloc_tos(),
+ id, conn->connectpath, fname,
+ &old_write_time))) {
+ /*
+ * Emergency exit
+ */
+ DEBUG(0, ("onefs_open_file_ntcreate: "
+ "Could not get share mode "
+ "lock for %s\n", fname));
+ status = NT_STATUS_SHARING_VIOLATION;
+ goto cleanup_destroy;
+ }
+
+ state.delayed_for_oplocks = False;
+ state.id = id;
+
+ if (req != NULL) {
+ defer_open(lck, request_time,
+ timeval_zero(), req, &state);
+ }
+ goto cleanup_destroy;
+ }
+ /* Waiting for an oplock */
+ SMB_ASSERT(req);
+ schedule_defer_open(lck, request_time, req);
+ goto cleanup;
+ }
+
+ /* Check for a sharing violation */
+ if ((errno == EAGAIN) || (errno == EWOULDBLOCK)) {
+ uint32 can_access_mask;
+ bool can_access = True;
+
+ /* Check if this can be done with the deny_dos and fcb
+ * calls. */
+
+ /* Try to find dup fsp if possible. */
+ if (create_options &
+ (NTCREATEX_OPTIONS_PRIVATE_DENY_DOS|
+ NTCREATEX_OPTIONS_PRIVATE_DENY_FCB)) {
+
+ if (req == NULL) {
+ DEBUG(0, ("DOS open without an SMB "
+ "request!\n"));
+ status = NT_STATUS_INTERNAL_ERROR;
+ goto cleanup_destroy;
+ }
+
+ /* Use the client requested access mask here,
+ * not the one we open with. */
+ status = fcb_or_dos_open(req,
+ conn,
+ fsp,
+ fname,
+ id,
+ req->smbpid,
+ req->vuid,
+ access_mask,
+ share_access,
+ create_options);
+
+ if (NT_STATUS_IS_OK(status)) {
+ TALLOC_FREE(lck);
+ if (pinfo) {
+ *pinfo = FILE_WAS_OPENED;
+ }
+ status = NT_STATUS_OK;
+ goto cleanup;
+ }
+ }
+
+ /*
+ * This next line is a subtlety we need for
+ * MS-Access. If a file open will fail due to share
+ * permissions and also for security (access) reasons,
+ * we need to return the access failed error, not the
+ * share error. We can't open the file due to kernel
+ * oplock deadlock (it's possible we failed above on
+ * the open_mode_check()) so use a userspace check.
+ */
+
+ if (flags & O_RDWR) {
+ can_access_mask = FILE_READ_DATA|FILE_WRITE_DATA;
+ } else if (flags & O_WRONLY) {
+ can_access_mask = FILE_WRITE_DATA;
+ } else {
+ can_access_mask = FILE_READ_DATA;
+ }
+
+ if (((can_access_mask & FILE_WRITE_DATA) && !CAN_WRITE(conn)) ||
+ !can_access_file_data(conn,fname,psbuf,can_access_mask)) {
+ can_access = False;
+ }
+
+ /*
+ * If we're returning a share violation, ensure we
+ * cope with the braindead 1 second delay.
+ */
+ if (!(oplock_request & INTERNAL_OPEN_ONLY) &&
+ lp_defer_sharing_violations()) {
+ struct timeval timeout;
+ struct deferred_open_record state;
+ int timeout_usecs;
+
+ /* this is a hack to speed up torture tests
+ in 'make test' */
+ timeout_usecs = lp_parm_int(SNUM(conn),
+ "smbd","sharedelay",
+ SHARING_VIOLATION_USEC_WAIT);
+
+ /* This is a relative time, added to the
+ absolute request_time value to get the
+ absolute timeout time. Note that if this
+ is the second or greater time we enter this
+ codepath for this particular request mid
+ then request_time is left as the absolute
+ time of the *first* time this request mid
+ was processed. This is what allows the
+ request to eventually time out. */
+
+ timeout = timeval_set(0, timeout_usecs);
+
+ /* Nothing actually uses
+ state.delayed_for_oplocks but it's handy to
+ differentiate in debug messages between a
+ 30 second delay due to oplock break, and a
+ 1 second delay for share mode conflicts. */
+
+ state.delayed_for_oplocks = False;
+ state.id = id;
+ state.failed = false;
+
+ if ((req != NULL)
+ && !request_timed_out(request_time,
+ timeout)) {
+ defer_open(lck, request_time, timeout,
+ req, &state);
+ }
+ }
+
+ if (can_access) {
+ /*
+ * We have detected a sharing violation here
+ * so return the correct error code
+ */
+ status = NT_STATUS_SHARING_VIOLATION;
+ } else {
+ status = NT_STATUS_ACCESS_DENIED;
+ }
+
+ goto cleanup_destroy;
+ }
+
+ /*
+ * Normal error, for example EACCES
+ */
+ cleanup_destroy:
+ //destroy_ifs_callback_record(oplock_waiter);
+ cleanup:
+ TALLOC_FREE(lck);
+ return status;
+ }
+
+ fsp->oplock_type = granted_oplock;
+
+ /* XXX uncomment for oplocks */
+ //ifs_set_oplock_callback(oplock_waiter, fsp);
+ //fsp->oplock_callback_id = oplock_waiter;
+
+ if (!file_existed) {
+ struct timespec old_write_time = get_mtimespec(psbuf);
+ /*
+ * Deal with the race condition where two smbd's detect the
+ * file doesn't exist and do the create at the same time. One
+ * of them will win and set a share mode, the other (ie. this
+ * one) should check if the requested share mode for this
+ * create is allowed.
+ */
+
+ /*
+ * Now the file exists and fsp is successfully opened,
+ * fsp->dev and fsp->inode are valid and should replace the
+ * dev=0,inode=0 from a non existent file. Spotted by
+ * Nadav Danieli <nadavd@exanet.com>. JRA.
+ */
+
+ id = fsp->file_id;
+
+ lck = get_share_mode_lock(talloc_tos(), id,
+ conn->connectpath,
+ fname, &old_write_time);
+
+ if (lck == NULL) {
+ DEBUG(0, ("onefs_open_file_ntcreate: Could not get "
+ "share mode lock for %s\n", fname));
+ fd_close(fsp);
+ return NT_STATUS_SHARING_VIOLATION;
+ }
+
+ if (lck->delete_on_close) {
+ status = NT_STATUS_DELETE_PENDING;
+ }
+
+ if (!NT_STATUS_IS_OK(status)) {
+ struct deferred_open_record state;
+
+ fd_close(fsp);
+
+ state.delayed_for_oplocks = False;
+ state.id = id;
+
+ /* Do it all over again immediately. In the second
+ * round we will find that the file existed and handle
+ * the DELETE_PENDING and FCB cases correctly. No need
+ * to duplicate the code here. Essentially this is a
+ * "goto top of this function", but don't tell
+ * anybody... */
+
+ if (req != NULL) {
+ defer_open(lck, request_time, timeval_zero(),
+ req, &state);
+ }
+ TALLOC_FREE(lck);
+ return status;
+ }
+
+ /*
+ * We exit this block with the share entry *locked*.....
+ */
+
+ }
+
+ SMB_ASSERT(lck != NULL);
+
+ /* note that we ignore failure for the following. It is
+ basically a hack for NFS, and NFS will never set one of
+ these only read them. Nobody but Samba can ever set a deny
+ mode and we have already checked our more authoritative
+ locking database for permission to set this deny mode. If
+ the kernel refuses the operations then the kernel is wrong.
+ note that GPFS supports it as well - jmcd */
+
+ if (fsp->fh->fd != -1) {
+ ret_flock = SMB_VFS_KERNEL_FLOCK(fsp, share_access);
+ if(ret_flock == -1 ){
+
+ TALLOC_FREE(lck);
+ fd_close(fsp);
+ return NT_STATUS_SHARING_VIOLATION;
+ }
+ }
+
+ /*
+ * At this point onwards, we can guarentee that the share entry
+ * is locked, whether we created the file or not, and that the
+ * deny mode is compatible with all current opens.
+ */
+
+ /* Record the options we were opened with. */
+ fsp->share_access = share_access;
+ fsp->fh->private_options = create_options;
+ /*
+ * According to Samba4, SEC_FILE_READ_ATTRIBUTE is always granted,
+ */
+ fsp->access_mask = access_mask | FILE_READ_ATTRIBUTES;
+
+ if (file_existed) {
+ /* stat opens on existing files don't get oplocks. */
+ if (is_stat_open(open_access_mask)) {
+ fsp->oplock_type = NO_OPLOCK;
+ }
+
+ if (!(flags2 & O_TRUNC)) {
+ info = FILE_WAS_OPENED;
+ } else {
+ info = FILE_WAS_OVERWRITTEN;
+ }
+ } else {
+ info = FILE_WAS_CREATED;
+ }
+
+ if (pinfo) {
+ *pinfo = info;
+ }
+
+ /*
+ * Setup the oplock info in both the shared memory and
+ * file structs.
+ */
+
+ if ((fsp->oplock_type != NO_OPLOCK) &&
+ (fsp->oplock_type != FAKE_LEVEL_II_OPLOCK)) {
+ if (!set_file_oplock(fsp, fsp->oplock_type)) {
+ /* Could not get the kernel oplock */
+ fsp->oplock_type = NO_OPLOCK;
+ }
+ }
+
+ if (info == FILE_WAS_OVERWRITTEN || info == FILE_WAS_CREATED ||
+ info == FILE_WAS_SUPERSEDED) {
+ new_file_created = True;
+ }
+
+ set_share_mode(lck, fsp, conn->server_info->utok.uid, 0,
+ fsp->oplock_type);
+
+ /* Handle strange delete on close create semantics. */
+ if (create_options & FILE_DELETE_ON_CLOSE) {
+ status = can_set_delete_on_close(fsp, True, new_dos_attributes);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ /* Remember to delete the mode we just added. */
+ del_share_mode(lck, fsp);
+ TALLOC_FREE(lck);
+ fd_close(fsp);
+ return status;
+ }
+ /* Note that here we set the *inital* delete on close flag,
+ not the regular one. The magic gets handled in close. */
+ fsp->initial_delete_on_close = True;
+ }
+
+ /*
+ * Take care of inherited ACLs on created files - if default ACL not
+ * selected.
+ * May be necessary depending on acl policies.
+ */
+ if (!posix_open && !file_existed && !def_acl && !(VALID_STAT(*psbuf)
+ && (psbuf->st_flags & SF_HASNTFSACL))) {
+
+ int saved_errno = errno; /* We might get ENOSYS in the next
+ * call.. */
+
+ if (SMB_VFS_FCHMOD_ACL(fsp, unx_mode) == -1 &&
+ errno == ENOSYS) {
+ errno = saved_errno; /* Ignore ENOSYS */
+ }
+
+ } else if (new_unx_mode) {
+
+ int ret = -1;
+
+ /* Attributes need changing. File already existed. */
+
+ {
+ int saved_errno = errno; /* We might get ENOSYS in the
+ * next call.. */
+ ret = SMB_VFS_FCHMOD_ACL(fsp, new_unx_mode);
+
+ if (ret == -1 && errno == ENOSYS) {
+ errno = saved_errno; /* Ignore ENOSYS */
+ } else {
+ DEBUG(5, ("onefs_open_file_ntcreate: reset "
+ "attributes of file %s to 0%o\n",
+ fname, (unsigned int)new_unx_mode));
+ ret = 0; /* Don't do the fchmod below. */
+ }
+ }
+
+ if ((ret == -1) &&
+ (SMB_VFS_FCHMOD(fsp, new_unx_mode) == -1))
+ DEBUG(5, ("onefs_open_file_ntcreate: failed to reset "
+ "attributes of file %s to 0%o\n",
+ fname, (unsigned int)new_unx_mode));
+ }
+
+ /* If this is a successful open, we must remove any deferred open
+ * records. */
+ if (req != NULL) {
+ del_deferred_open_entry(lck, req->mid);
+ }
+ TALLOC_FREE(lck);
+
+ return NT_STATUS_OK;
+}
+
+
+/****************************************************************************
+ Open a directory from an NT SMB call.
+****************************************************************************/
+static NTSTATUS onefs_open_directory(connection_struct *conn,
+ struct smb_request *req,
+ const char *fname,
+ uint32 access_mask,
+ uint32 share_access,
+ uint32 create_disposition,
+ uint32 create_options,
+ uint32 file_attributes,
+ struct security_descriptor *sd,
+ files_struct **result,
+ int *pinfo,
+ SMB_STRUCT_STAT *psbuf)
+{
+ files_struct *fsp = NULL;
+ struct share_mode_lock *lck = NULL;
+ NTSTATUS status;
+ struct timespec mtimespec;
+ int info = 0;
+ char *parent_dir;
+ const char *dirname;
+ bool posix_open = false;
+ uint32 create_flags = 0;
+ uint32 mode = lp_dir_mask(SNUM(conn));
+
+ DEBUG(5, ("onefs_open_directory: opening directory %s, "
+ "access_mask = 0x%x, "
+ "share_access = 0x%x create_options = 0x%x, "
+ "create_disposition = 0x%x, file_attributes = 0x%x\n",
+ fname, (unsigned int)access_mask, (unsigned int)share_access,
+ (unsigned int)create_options, (unsigned int)create_disposition,
+ (unsigned int)file_attributes));
+
+ if (!(file_attributes & FILE_FLAG_POSIX_SEMANTICS) &&
+ (conn->fs_capabilities & FILE_NAMED_STREAMS) &&
+ is_ntfs_stream_name(fname)) {
+ DEBUG(2, ("onefs_open_directory: %s is a stream name!\n", fname));
+ return NT_STATUS_NOT_A_DIRECTORY;
+ }
+
+ switch (create_disposition) {
+ case FILE_OPEN:
+ /* If directory exists open. If directory doesn't
+ * exist error. */
+ create_flags = 0;
+ info = FILE_WAS_OPENED;
+ break;
+ case FILE_CREATE:
+ /* If directory exists error. If directory doesn't
+ * exist create. */
+ create_flags = O_CREAT | O_EXCL;
+ info = FILE_WAS_CREATED;
+ break;
+ case FILE_OPEN_IF:
+ /* If directory exists open. If directory doesn't
+ * exist create. */
+
+ /* Note: in order to return whether the directory was
+ * opened or created, we first try to open and then try
+ * to create. */
+ create_flags = 0;
+ info = FILE_WAS_OPENED;
+ break;
+ case FILE_SUPERSEDE:
+ case FILE_OVERWRITE:
+ case FILE_OVERWRITE_IF:
+ default:
+ DEBUG(5, ("onefs_open_directory: invalid "
+ "create_disposition 0x%x for directory %s\n",
+ (unsigned int)create_disposition, fname));
+ return NT_STATUS_INVALID_PARAMETER;
+ }
+
+ /*
+ * Check for write access to the share. Done in mkdir_internal() in
+ * mainline samba.
+ */
+ if (!CAN_WRITE(conn) && (create_flags & O_CREAT)) {
+ return NT_STATUS_ACCESS_DENIED;
+ }
+
+ /* Get parent dirname */
+ if (!parent_dirname_talloc(talloc_tos(), fname, &parent_dir,
+ &dirname)) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ if (file_attributes & FILE_FLAG_POSIX_SEMANTICS) {
+ posix_open = true;
+ mode = (mode_t)(file_attributes & ~FILE_FLAG_POSIX_SEMANTICS);
+ file_attributes = 0;
+ } else {
+ mode = unix_mode(conn, aDIR, fname, parent_dir);
+ }
+
+ /*
+ * The NONINDEXED and COMPRESSED bits seem to always be cleared on
+ * directories, no matter if you specify that they should be set.
+ */
+ file_attributes &=
+ ~(FILE_ATTRIBUTE_NONINDEXED | FILE_ATTRIBUTE_COMPRESSED);
+
+ status = file_new(req, conn, &fsp);
+ if(!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ /*
+ * Actual open with retry magic to handle FILE_OPEN_IF which is
+ * unique because the kernel won't tell us if the file was opened or
+ * created.
+ */
+ retry_open:
+ fsp->fh->fd = onefs_sys_create_file(conn,
+ -1,
+ fname,
+ access_mask,
+ access_mask,
+ share_access,
+ create_options,
+ create_flags | O_DIRECTORY,
+ mode,
+ 0,
+ 0,
+ sd,
+ file_attributes,
+ NULL);
+
+ if (fsp->fh->fd == -1) {
+ DEBUG(3, ("Error opening %s. Errno=%d (%s).\n", fname, errno,
+ strerror(errno)));
+ SMB_ASSERT(errno != EINPROGRESS);
+
+ if (create_disposition == FILE_OPEN_IF) {
+ if (errno == ENOENT) {
+ /* Try again, creating it this time. */
+ create_flags = O_CREAT | O_EXCL;
+ info = FILE_WAS_CREATED;
+ goto retry_open;
+ } else if (errno == EEXIST) {
+ /* Uggh. Try again again. */
+ create_flags = 0;
+ info = FILE_WAS_OPENED;
+ goto retry_open;
+ }
+ }
+
+ /* Error cases below: */
+ file_free(req, fsp);
+
+ if ((errno == ENOENT) && (create_disposition == FILE_OPEN)) {
+ DEBUG(5,("onefs_open_directory: FILE_OPEN requested "
+ "for directory %s and it doesn't "
+ "exist.\n", fname ));
+ return NT_STATUS_OBJECT_NAME_NOT_FOUND;
+ } else if ((errno == EEXIST) &&
+ (create_disposition == FILE_CREATE)) {
+ DEBUG(5,("onefs_open_directory: FILE_CREATE "
+ "requested for directory %s and it "
+ "already exists.\n", fname ));
+ return NT_STATUS_OBJECT_NAME_COLLISION;
+ } else if ((errno == EAGAIN) || (errno == EWOULDBLOCK)) {
+ /* Catch sharing violations. */
+ return NT_STATUS_SHARING_VIOLATION;
+ }
+
+ return map_nt_error_from_unix(errno);
+ }
+
+ if (info == FILE_WAS_CREATED) {
+
+ /* Pulled from mkdir_internal() */
+ if (SMB_VFS_LSTAT(conn, fname, psbuf) == -1) {
+ DEBUG(2, ("Could not stat directory '%s' just "
+ "created: %s\n",fname, strerror(errno)));
+ return map_nt_error_from_unix(errno);
+ }
+
+ if (!S_ISDIR(psbuf->st_mode)) {
+ DEBUG(0, ("Directory just '%s' created is not a "
+ "directory\n", fname));
+ return NT_STATUS_ACCESS_DENIED;
+ }
+
+ if (!posix_open) {
+ /*
+ * Check if high bits should have been set, then (if
+ * bits are missing): add them. Consider bits
+ * automagically set by UNIX, i.e. SGID bit from
+ * parent dir.
+ */
+ if (mode & ~(S_IRWXU|S_IRWXG|S_IRWXO) &&
+ (mode & ~psbuf->st_mode)) {
+ SMB_VFS_CHMOD(conn, fname, (psbuf->st_mode |
+ (mode & ~psbuf->st_mode)));
+ }
+ }
+
+ /* Change the owner if required. */
+ if (lp_inherit_owner(SNUM(conn))) {
+ change_dir_owner_to_parent(conn, parent_dir, fname,
+ psbuf);
+ }
+
+ notify_fname(conn, NOTIFY_ACTION_ADDED,
+ FILE_NOTIFY_CHANGE_DIR_NAME, fname);
+ }
+
+ /* Stat the fd for Samba bookkeeping. */
+ if(SMB_VFS_FSTAT(fsp, psbuf) != 0) {
+ fd_close(fsp);
+ file_free(req, fsp);
+ return map_nt_error_from_unix(errno);
+ }
+
+ /* Setup the files_struct for it. */
+ fsp->mode = psbuf->st_mode;
+ fsp->file_id = vfs_file_id_from_sbuf(conn, psbuf);
+ fsp->vuid = req ? req->vuid : UID_FIELD_INVALID;
+ fsp->file_pid = req ? req->smbpid : 0;
+ fsp->can_lock = False;
+ fsp->can_read = False;
+ fsp->can_write = False;
+
+ fsp->share_access = share_access;
+ fsp->fh->private_options = create_options;
+ /*
+ * According to Samba4, SEC_FILE_READ_ATTRIBUTE is always granted,
+ */
+ fsp->access_mask = access_mask | FILE_READ_ATTRIBUTES;
+ fsp->print_file = False;
+ fsp->modified = False;
+ fsp->oplock_type = NO_OPLOCK;
+ fsp->sent_oplock_break = NO_BREAK_SENT;
+ fsp->is_directory = True;
+ fsp->posix_open = posix_open;
+
+ string_set(&fsp->fsp_name,fname);
+
+ mtimespec = get_mtimespec(psbuf);
+
+ /*
+ * Still set the samba share mode lock for correct delete-on-close
+ * semantics and to make smbstatus more useful.
+ */
+ lck = get_share_mode_lock(talloc_tos(), fsp->file_id,
+ conn->connectpath,
+ fname, &mtimespec);
+
+ if (lck == NULL) {
+ DEBUG(0, ("onefs_open_directory: Could not get share mode "
+ "lock for %s\n", fname));
+ fd_close(fsp);
+ file_free(req, fsp);
+ return NT_STATUS_SHARING_VIOLATION;
+ }
+
+ if (lck->delete_on_close) {
+ TALLOC_FREE(lck);
+ fd_close(fsp);
+ file_free(req, fsp);
+ return NT_STATUS_DELETE_PENDING;
+ }
+
+ set_share_mode(lck, fsp, conn->server_info->utok.uid, 0, NO_OPLOCK);
+
+ /*
+ * For directories the delete on close bit at open time seems
+ * always to be honored on close... See test 19 in Samba4 BASE-DELETE.
+ */
+ if (create_options & FILE_DELETE_ON_CLOSE) {
+ status = can_set_delete_on_close(fsp, True, 0);
+ if (!NT_STATUS_IS_OK(status) &&
+ !NT_STATUS_EQUAL(status, NT_STATUS_DIRECTORY_NOT_EMPTY)) {
+ TALLOC_FREE(lck);
+ fd_close(fsp);
+ file_free(req, fsp);
+ return status;
+ }
+
+ if (NT_STATUS_IS_OK(status)) {
+ /* Note that here we set the *inital* delete on close flag,
+ not the regular one. The magic gets handled in close. */
+ fsp->initial_delete_on_close = True;
+ }
+ }
+
+ TALLOC_FREE(lck);
+
+ if (pinfo) {
+ *pinfo = info;
+ }
+
+ *result = fsp;
+ return NT_STATUS_OK;
+}
+
+/*
+ * If a main file is opened for delete, all streams need to be checked for
+ * !FILE_SHARE_DELETE. Do this by opening with DELETE_ACCESS.
+ * If that works, delete them all by setting the delete on close and close.
+ */
+
+static NTSTATUS open_streams_for_delete(connection_struct *conn,
+ const char *fname)
+{
+ struct stream_struct *stream_info;
+ files_struct **streams;
+ int i;
+ unsigned int num_streams;
+ TALLOC_CTX *frame = talloc_stackframe();
+ NTSTATUS status;
+
+ status = SMB_VFS_STREAMINFO(conn, NULL, fname, talloc_tos(),
+ &num_streams, &stream_info);
+
+ if (NT_STATUS_EQUAL(status, NT_STATUS_NOT_IMPLEMENTED)
+ || NT_STATUS_EQUAL(status, NT_STATUS_OBJECT_NAME_NOT_FOUND)) {
+ DEBUG(10, ("no streams around\n"));
+ TALLOC_FREE(frame);
+ return NT_STATUS_OK;
+ }
+
+ if (!NT_STATUS_IS_OK(status)) {
+ DEBUG(10, ("SMB_VFS_STREAMINFO failed: %s\n",
+ nt_errstr(status)));
+ goto fail;
+ }
+
+ DEBUG(10, ("open_streams_for_delete found %d streams\n",
+ num_streams));
+
+ if (num_streams == 0) {
+ TALLOC_FREE(frame);
+ return NT_STATUS_OK;
+ }
+
+ streams = TALLOC_ARRAY(talloc_tos(), files_struct *, num_streams);
+ if (streams == NULL) {
+ DEBUG(0, ("talloc failed\n"));
+ status = NT_STATUS_NO_MEMORY;
+ goto fail;
+ }
+
+ for (i=0; i<num_streams; i++) {
+ char *streamname;
+
+ if (strequal(stream_info[i].name, "::$DATA")) {
+ streams[i] = NULL;
+ continue;
+ }
+
+ streamname = talloc_asprintf(talloc_tos(), "%s%s", fname,
+ stream_info[i].name);
+
+ if (streamname == NULL) {
+ DEBUG(0, ("talloc_aprintf failed\n"));
+ status = NT_STATUS_NO_MEMORY;
+ goto fail;
+ }
+
+ status = onefs_create_file_unixpath
+ (conn, /* conn */
+ NULL, /* req */
+ streamname, /* fname */
+ DELETE_ACCESS, /* access_mask */
+ FILE_SHARE_READ | FILE_SHARE_WRITE
+ | FILE_SHARE_DELETE, /* share_access */
+ FILE_OPEN, /* create_disposition*/
+ NTCREATEX_OPTIONS_PRIVATE_STREAM_DELETE, /* create_options */
+ FILE_ATTRIBUTE_NORMAL, /* file_attributes */
+ 0, /* oplock_request */
+ 0, /* allocation_size */
+ NULL, /* sd */
+ NULL, /* ea_list */
+ &streams[i], /* result */
+ NULL, /* pinfo */
+ NULL); /* psbuf */
+
+ TALLOC_FREE(streamname);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ DEBUG(10, ("Could not open stream %s: %s\n",
+ streamname, nt_errstr(status)));
+ break;
+ }
+ }
+
+ /*
+ * don't touch the variable "status" beyond this point :-)
+ */
+
+ for (i -= 1 ; i >= 0; i--) {
+ if (streams[i] == NULL) {
+ continue;
+ }
+
+ DEBUG(10, ("Closing stream # %d, %s\n", i,
+ streams[i]->fsp_name));
+ close_file(NULL, streams[i], NORMAL_CLOSE);
+ }
+
+ fail:
+ TALLOC_FREE(frame);
+ return status;
+}
+
+/*
+ * Wrapper around onefs_open_file_ntcreate and onefs_open_directory.
+ */
+static NTSTATUS onefs_create_file_unixpath(connection_struct *conn,
+ struct smb_request *req,
+ const char *fname,
+ uint32_t access_mask,
+ uint32_t share_access,
+ uint32_t create_disposition,
+ uint32_t create_options,
+ uint32_t file_attributes,
+ uint32_t oplock_request,
+ uint64_t allocation_size,
+ struct security_descriptor *sd,
+ struct ea_list *ea_list,
+ files_struct **result,
+ int *pinfo,
+ SMB_STRUCT_STAT *psbuf)
+{
+ SMB_STRUCT_STAT sbuf;
+ int info = FILE_WAS_OPENED;
+ files_struct *base_fsp = NULL;
+ files_struct *fsp = NULL;
+ NTSTATUS status;
+
+ DEBUG(10,("onefs_create_file_unixpath: access_mask = 0x%x "
+ "file_attributes = 0x%x, share_access = 0x%x, "
+ "create_disposition = 0x%x create_options = 0x%x "
+ "oplock_request = 0x%x ea_list = 0x%p, sd = 0x%p, "
+ "fname = %s\n",
+ (unsigned int)access_mask,
+ (unsigned int)file_attributes,
+ (unsigned int)share_access,
+ (unsigned int)create_disposition,
+ (unsigned int)create_options,
+ (unsigned int)oplock_request,
+ ea_list, sd, fname));
+
+ if (create_options & FILE_OPEN_BY_FILE_ID) {
+ status = NT_STATUS_NOT_SUPPORTED;
+ goto fail;
+ }
+
+ if (create_options & NTCREATEX_OPTIONS_INVALID_PARAM_MASK) {
+ status = NT_STATUS_INVALID_PARAMETER;
+ goto fail;
+ }
+
+ if (req == NULL) {
+ oplock_request |= INTERNAL_OPEN_ONLY;
+ }
+
+ if (psbuf != NULL) {
+ sbuf = *psbuf;
+ }
+ else {
+ if (SMB_VFS_STAT(conn, fname, &sbuf) == -1) {
+ SET_STAT_INVALID(sbuf);
+ }
+ }
+
+ if ((conn->fs_capabilities & FILE_NAMED_STREAMS)
+ && (access_mask & DELETE_ACCESS)
+ && !is_ntfs_stream_name(fname)) {
+ /*
+ * We can't open a file with DELETE access if any of the
+ * streams is open without FILE_SHARE_DELETE
+ */
+ status = open_streams_for_delete(conn, fname);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ goto fail;
+ }
+ }
+
+ if ((conn->fs_capabilities & FILE_NAMED_STREAMS)
+ && is_ntfs_stream_name(fname)
+ && (!(create_options & NTCREATEX_OPTIONS_PRIVATE_STREAM_DELETE))) {
+ char *base;
+ uint32 base_create_disposition;
+
+ if (create_options & FILE_DIRECTORY_FILE) {
+ status = NT_STATUS_NOT_A_DIRECTORY;
+ goto fail;
+ }
+
+ status = split_ntfs_stream_name(talloc_tos(), fname,
+ &base, NULL);
+ if (!NT_STATUS_IS_OK(status)) {
+ DEBUG(10, ("onefs_create_file_unixpath: "
+ "split_ntfs_stream_name failed: %s\n",
+ nt_errstr(status)));
+ goto fail;
+ }
+
+ SMB_ASSERT(!is_ntfs_stream_name(base)); /* paranoia.. */
+
+ switch (create_disposition) {
+ case FILE_OPEN:
+ base_create_disposition = FILE_OPEN;
+ break;
+ default:
+ base_create_disposition = FILE_OPEN_IF;
+ break;
+ }
+
+ status = onefs_create_file_unixpath(
+ conn, /* conn */
+ NULL, /* req */
+ base, /* fname */
+ 0, /* access_mask */
+ (FILE_SHARE_READ |
+ FILE_SHARE_WRITE |
+ FILE_SHARE_DELETE), /* share_access */
+ base_create_disposition, /* create_disposition*/
+ 0, /* create_options */
+ 0, /* file_attributes */
+ NO_OPLOCK, /* oplock_request */
+ 0, /* allocation_size */
+ NULL, /* sd */
+ NULL, /* ea_list */
+ &base_fsp, /* result */
+ NULL, /* pinfo */
+ NULL); /* psbuf */
+
+ if (!NT_STATUS_IS_OK(status)) {
+ DEBUG(10, ("onefs_create_file_unixpath for base %s "
+ "failed: %s\n", base, nt_errstr(status)));
+ goto fail;
+ }
+ /*
+ * we don't need to low level fd: This might conflict with
+ * OneFS streams.
+ */
+ fd_close(base_fsp);
+ }
+
+ /* Covert generic bits in the security descriptor. */
+ if (sd != NULL) {
+ security_acl_map_generic(sd->dacl, &file_generic_mapping);
+ security_acl_map_generic(sd->sacl, &file_generic_mapping);
+ }
+
+ /*
+ * If it's a request for a directory open, deal with it separately.
+ */
+
+ if (create_options & FILE_DIRECTORY_FILE) {
+
+ if (create_options & FILE_NON_DIRECTORY_FILE) {
+ status = NT_STATUS_INVALID_PARAMETER;
+ goto fail;
+ }
+
+ /* Can't open a temp directory. IFS kit test. */
+ if (!(file_attributes & FILE_FLAG_POSIX_SEMANTICS) &&
+ (file_attributes & FILE_ATTRIBUTE_TEMPORARY)) {
+ status = NT_STATUS_INVALID_PARAMETER;
+ goto fail;
+ }
+
+ /*
+ * We will get a create directory here if the Win32
+ * app specified a security descriptor in the
+ * CreateDirectory() call.
+ */
+
+ status = onefs_open_directory(
+ conn, /* conn */
+ req, /* req */
+ fname, /* fname */
+ access_mask, /* access_mask */
+ share_access, /* share_access */
+ create_disposition, /* create_disposition*/
+ create_options, /* create_options */
+ file_attributes, /* file_attributes */
+ sd, /* sd */
+ &fsp, /* result */
+ &info, /* pinfo */
+ &sbuf); /* psbuf */
+ } else {
+
+ /*
+ * Ordinary file case.
+ */
+
+ status = file_new(req, conn, &fsp);
+ if(!NT_STATUS_IS_OK(status)) {
+ goto fail;
+ }
+
+ /*
+ * We're opening the stream element of a base_fsp
+ * we already opened. Set up the base_fsp pointer.
+ */
+ if (base_fsp) {
+ fsp->base_fsp = base_fsp;
+ }
+
+ status = onefs_open_file_ntcreate(
+ conn, /* conn */
+ req, /* req */
+ fname, /* fname */
+ access_mask, /* access_mask */
+ share_access, /* share_access */
+ create_disposition, /* create_disposition*/
+ create_options, /* create_options */
+ file_attributes, /* file_attributes */
+ oplock_request, /* oplock_request */
+ sd, /* sd */
+ fsp, /* result */
+ &info, /* pinfo */
+ &sbuf); /* psbuf */
+
+ if(!NT_STATUS_IS_OK(status)) {
+ file_free(req, fsp);
+ fsp = NULL;
+ }
+
+ if (NT_STATUS_EQUAL(status, NT_STATUS_FILE_IS_A_DIRECTORY)) {
+
+ /* A stream open never opens a directory */
+
+ if (base_fsp) {
+ status = NT_STATUS_FILE_IS_A_DIRECTORY;
+ goto fail;
+ }
+
+ /*
+ * Fail the open if it was explicitly a non-directory
+ * file.
+ */
+
+ if (create_options & FILE_NON_DIRECTORY_FILE) {
+ status = NT_STATUS_FILE_IS_A_DIRECTORY;
+ goto fail;
+ }
+
+ create_options |= FILE_DIRECTORY_FILE;
+
+ status = onefs_open_directory(
+ conn, /* conn */
+ req, /* req */
+ fname, /* fname */
+ access_mask, /* access_mask */
+ share_access, /* share_access */
+ create_disposition, /* create_disposition*/
+ create_options, /* create_options */
+ file_attributes, /* file_attributes */
+ sd, /* sd */
+ &fsp, /* result */
+ &info, /* pinfo */
+ &sbuf); /* psbuf */
+ }
+ }
+
+ if (!NT_STATUS_IS_OK(status)) {
+ goto fail;
+ }
+
+ fsp->base_fsp = base_fsp;
+
+ SMB_ASSERT(fsp);
+
+ if ((ea_list != NULL) && (info == FILE_WAS_CREATED)) {
+ status = set_ea(conn, fsp, fname, ea_list);
+ if (!NT_STATUS_IS_OK(status)) {
+ goto fail;
+ }
+ }
+
+ if (!fsp->is_directory && S_ISDIR(sbuf.st_mode)) {
+ status = NT_STATUS_ACCESS_DENIED;
+ goto fail;
+ }
+
+ /* Save the requested allocation size. */
+ if ((info == FILE_WAS_CREATED) || (info == FILE_WAS_OVERWRITTEN)) {
+ if (allocation_size
+ && (allocation_size > sbuf.st_size)) {
+ fsp->initial_allocation_size = smb_roundup(
+ fsp->conn, allocation_size);
+ if (fsp->is_directory) {
+ /* Can't set allocation size on a directory. */
+ status = NT_STATUS_ACCESS_DENIED;
+ goto fail;
+ }
+ if (vfs_allocate_file_space(
+ fsp, fsp->initial_allocation_size) == -1) {
+ status = NT_STATUS_DISK_FULL;
+ goto fail;
+ }
+ } else {
+ fsp->initial_allocation_size = smb_roundup(
+ fsp->conn, (uint64_t)sbuf.st_size);
+ }
+ }
+
+ DEBUG(10, ("onefs_create_file_unixpath: info=%d\n", info));
+
+ *result = fsp;
+ if (pinfo != NULL) {
+ *pinfo = info;
+ }
+ if (psbuf != NULL) {
+ if ((fsp->fh == NULL) || (fsp->fh->fd == -1)) {
+ *psbuf = sbuf;
+ }
+ else {
+ SMB_VFS_FSTAT(fsp, psbuf);
+ }
+ }
+ return NT_STATUS_OK;
+
+ fail:
+ DEBUG(10, ("onefs_create_file_unixpath: %s\n", nt_errstr(status)));
+
+ if (fsp != NULL) {
+ if (base_fsp && fsp->base_fsp == base_fsp) {
+ /*
+ * The close_file below will close
+ * fsp->base_fsp.
+ */
+ base_fsp = NULL;
+ }
+ close_file(req, fsp, ERROR_CLOSE);
+ fsp = NULL;
+ }
+ if (base_fsp != NULL) {
+ close_file(req, base_fsp, ERROR_CLOSE);
+ base_fsp = NULL;
+ }
+ return status;
+}
+
+/**
+ * SMB_VFS_CREATE_FILE interface to onefs.
+ */
+NTSTATUS onefs_create_file(vfs_handle_struct *handle,
+ struct smb_request *req,
+ uint16_t root_dir_fid,
+ const char *fname,
+ uint32_t create_file_flags,
+ uint32_t access_mask,
+ uint32_t share_access,
+ uint32_t create_disposition,
+ uint32_t create_options,
+ uint32_t file_attributes,
+ uint32_t oplock_request,
+ uint64_t allocation_size,
+ struct security_descriptor *sd,
+ struct ea_list *ea_list,
+ files_struct **result,
+ int *pinfo,
+ SMB_STRUCT_STAT *psbuf)
+{
+ connection_struct *conn = handle->conn;
+ struct case_semantics_state *case_state = NULL;
+ SMB_STRUCT_STAT sbuf;
+ int info = FILE_WAS_OPENED;
+ files_struct *fsp = NULL;
+ NTSTATUS status;
+
+ DEBUG(10,("onefs_create_file: access_mask = 0x%x "
+ "file_attributes = 0x%x, share_access = 0x%x, "
+ "create_disposition = 0x%x create_options = 0x%x "
+ "oplock_request = 0x%x "
+ "root_dir_fid = 0x%x, ea_list = 0x%p, sd = 0x%p, "
+ "create_file_flags = 0x%x, fname = %s\n",
+ (unsigned int)access_mask,
+ (unsigned int)file_attributes,
+ (unsigned int)share_access,
+ (unsigned int)create_disposition,
+ (unsigned int)create_options,
+ (unsigned int)oplock_request,
+ (unsigned int)root_dir_fid,
+ ea_list, sd, create_file_flags, fname));
+
+ /* Get the file name if root_dir_fid was specified. */
+ if (root_dir_fid != 0) {
+ char *new_fname;
+
+ status = get_relative_fid_filename(conn, req, root_dir_fid,
+ fname, &new_fname);
+ if (!NT_STATUS_IS_OK(status)) {
+ goto fail;
+ }
+
+ fname = new_fname;
+ }
+
+ /* Resolve the file name if this was a DFS pathname. */
+ if ((req != NULL) && (req->flags2 & FLAGS2_DFS_PATHNAMES)) {
+ char *resolved_fname;
+
+ status = resolve_dfspath(talloc_tos(), conn, true, fname,
+ &resolved_fname);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ /*
+ * For PATH_NOT_COVERED we had
+ * reply_botherror(req, NT_STATUS_PATH_NOT_COVERED,
+ * ERRSRV, ERRbadpath);
+ * Need to fix in callers
+ */
+ goto fail;
+ }
+ fname = resolved_fname;
+ }
+
+ /* Check if POSIX semantics are wanted. */
+ if (file_attributes & FILE_FLAG_POSIX_SEMANTICS) {
+ case_state = set_posix_case_semantics(talloc_tos(), conn);
+ }
+
+ /* Convert dos path to unix path if it hasn't already been done. */
+ if (create_file_flags & CFF_DOS_PATH) {
+ char *converted_fname;
+
+ SET_STAT_INVALID(sbuf);
+
+ status = unix_convert(talloc_tos(), conn, fname, False,
+ &converted_fname, NULL, &sbuf);
+ if (!NT_STATUS_IS_OK(status)) {
+ goto fail;
+ }
+ fname = converted_fname;
+ } else {
+ if (psbuf != NULL) {
+ sbuf = *psbuf;
+ } else {
+ if (SMB_VFS_STAT(conn, fname, &sbuf) == -1) {
+ SET_STAT_INVALID(sbuf);
+ }
+ }
+
+ }
+
+ TALLOC_FREE(case_state);
+
+ /* All file access must go through check_name() */
+ status = check_name(conn, fname);
+ if (!NT_STATUS_IS_OK(status)) {
+ goto fail;
+ }
+
+ status = onefs_create_file_unixpath(
+ conn, /* conn */
+ req, /* req */
+ fname, /* fname */
+ access_mask, /* access_mask */
+ share_access, /* share_access */
+ create_disposition, /* create_disposition*/
+ create_options, /* create_options */
+ file_attributes, /* file_attributes */
+ oplock_request, /* oplock_request */
+ allocation_size, /* allocation_size */
+ sd, /* sd */
+ ea_list, /* ea_list */
+ &fsp, /* result */
+ &info, /* pinfo */
+ &sbuf); /* psbuf */
+
+ if (!NT_STATUS_IS_OK(status)) {
+ goto fail;
+ }
+
+ DEBUG(10, ("onefs_create_file: info=%d\n", info));
+
+ *result = fsp;
+ if (pinfo != NULL) {
+ *pinfo = info;
+ }
+ if (psbuf != NULL) {
+ *psbuf = sbuf;
+ }
+ return NT_STATUS_OK;
+
+ fail:
+ DEBUG(10, ("onefs_create_file: %s\n", nt_errstr(status)));
+
+ if (fsp != NULL) {
+ close_file(req, fsp, ERROR_CLOSE);
+ fsp = NULL;
+ }
+ return status;
+}
--- /dev/null
+/*
+ * Unix SMB/CIFS implementation.
+ * Support for OneFS system interfaces.
+ *
+ * Copyright (C) Tim Prouty, 2008
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "onefs.h"
+
+#include <ifs/ifs_syscalls.h>
+#include <isi_acl/isi_acl_util.h>
+
+/*
+ * Initialize the sm_lock struct before passing it to ifs_createfile.
+ */
+static void smlock_init(connection_struct *conn, struct sm_lock *sml,
+ bool isexe, uint32_t access_mask, uint32_t share_access,
+ uint32_t create_options)
+{
+ sml->sm_type.doc = false;
+ sml->sm_type.isexe = isexe;
+ sml->sm_type.statonly = is_stat_open(access_mask);
+ sml->sm_type.access_mask = access_mask;
+ sml->sm_type.share_access = share_access;
+
+ /*
+ * private_options was previously used for DENY_DOS/DENY_FCB checks in
+ * the kernel, but are now properly handled by fcb_or_dos_open. In
+ * these cases, ifs_createfile will return a sharing violation, which
+ * gives fcb_or_dos_open the chance to open a duplicate file handle.
+ */
+ sml->sm_type.private_options = 0;
+
+ /* 1 second delay is handled in onefs_open.c by deferring the open */
+ sml->sm_timeout = timeval_set(0, 0);
+}
+
+static void smlock_dump(int debuglevel, const struct sm_lock *sml)
+{
+ if (sml == NULL) {
+ DEBUG(debuglevel, ("sml == NULL\n"));
+ return;
+ }
+
+ DEBUG(debuglevel,
+ ("smlock: doc=%s, isexec=%s, statonly=%s, access_mask=0x%x, "
+ "share_access=0x%x, private_options=0x%x timeout=%d/%d\n",
+ sml->sm_type.doc ? "True" : "False",
+ sml->sm_type.isexe ? "True" : "False",
+ sml->sm_type.statonly ? "True" : "False",
+ sml->sm_type.access_mask,
+ sml->sm_type.share_access,
+ sml->sm_type.private_options,
+ (int)sml->sm_timeout.tv_sec,
+ (int)sml->sm_timeout.tv_usec));
+}
+
+/*
+ * Return string value of onefs oplock types.
+ */
+static const char *onefs_oplock_str(enum oplock_type onefs_oplock_type)
+{
+ switch (onefs_oplock_type) {
+ case OPLOCK_NONE:
+ return "OPLOCK_NONE";
+ case OPLOCK_EXCLUSIVE:
+ return "OPLOCK_EXCLUSIVE";
+ case OPLOCK_BATCH:
+ return "OPLOCK_BATCH";
+ case OPLOCK_SHARED:
+ return "OPLOCK_SHARED";
+ default:
+ break;
+ }
+ return "UNKNOWN";
+}
+
+/*
+ * Convert from onefs to samba oplock.
+ */
+static int onefs_to_samba_oplock(enum oplock_type onefs_oplock)
+{
+ switch (onefs_oplock) {
+ case OPLOCK_NONE:
+ return NO_OPLOCK;
+ case OPLOCK_EXCLUSIVE:
+ return EXCLUSIVE_OPLOCK;
+ case OPLOCK_BATCH:
+ return BATCH_OPLOCK;
+ case OPLOCK_SHARED:
+ return LEVEL_II_OPLOCK;
+ default:
+ DEBUG(0, ("unknown oplock type %d found\n", onefs_oplock));
+ break;
+ }
+ return NO_OPLOCK;
+}
+
+/*
+ * Convert from samba to onefs oplock.
+ */
+static enum oplock_type samba_to_onefs_oplock(int samba_oplock_type)
+{
+ if (BATCH_OPLOCK_TYPE(samba_oplock_type)) return OPLOCK_BATCH;
+ if (EXCLUSIVE_OPLOCK_TYPE(samba_oplock_type)) return OPLOCK_EXCLUSIVE;
+ if (LEVEL_II_OPLOCK_TYPE(samba_oplock_type)) return OPLOCK_SHARED;
+ return OPLOCK_NONE;
+}
+
+/**
+ * External interface to ifs_createfile
+ */
+int onefs_sys_create_file(connection_struct *conn,
+ int base_fd,
+ const char *path,
+ uint32_t access_mask,
+ uint32_t open_access_mask,
+ uint32_t share_access,
+ uint32_t create_options,
+ int flags,
+ mode_t mode,
+ int oplock_request,
+ uint64_t id,
+ struct security_descriptor *sd,
+ uint32_t dos_flags,
+ int *granted_oplock)
+{
+ struct sm_lock sml, *psml = NULL;
+ enum oplock_type onefs_oplock;
+ enum oplock_type onefs_granted_oplock = OPLOCK_NONE;
+ struct ifs_security_descriptor ifs_sd = {}, *pifs_sd = NULL;
+ int secinfo = 0;
+ int ret_fd = -1;
+ uint32_t onefs_dos_attributes;
+
+ /* Setup security descriptor and get secinfo. */
+ if (sd != NULL) {
+ NTSTATUS status;
+
+ secinfo = (get_sec_info(sd) & IFS_SEC_INFO_KNOWN_MASK);
+
+ status = onefs_setup_sd(secinfo, sd, &ifs_sd);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ DEBUG(1, ("SD initialization failure: %s",
+ nt_errstr(status)));
+ errno = EINVAL;
+ goto out;
+ }
+
+ pifs_sd = &ifs_sd;
+ }
+
+ onefs_oplock = samba_to_onefs_oplock(oplock_request);
+
+ /* Temporary until oplock work is added to vfs_onefs */
+ onefs_oplock = OPLOCK_NONE;
+
+ /* Convert samba dos flags to UF_DOS_* attributes. */
+ onefs_dos_attributes = dos_attributes_to_stat_dos_flags(dos_flags);
+
+ DEBUG(10,("onefs_sys_create_file: base_fd = %d, "
+ "open_access_mask = 0x%x, flags = 0x%x, mode = 0x%x, "
+ "desired_oplock = %s, id = 0x%x, secinfo = 0x%x, sd = %p, "
+ "dos_attributes = 0x%x, path = %s\n", base_fd,
+ (unsigned int)open_access_mask,
+ (unsigned int)flags,
+ (unsigned int)mode,
+ onefs_oplock_str(onefs_oplock),
+ (unsigned int)id,
+ (unsigned int)secinfo, sd,
+ (unsigned int)onefs_dos_attributes, path));
+
+ /* Initialize smlock struct for files/dirs but not internal opens */
+ if (!(oplock_request & INTERNAL_OPEN_ONLY)) {
+ smlock_init(conn, &sml, is_executable(path), access_mask,
+ share_access, create_options);
+ psml = &sml;
+ }
+
+ smlock_dump(10, psml);
+
+ ret_fd = ifs_createfile(base_fd, path,
+ (enum ifs_ace_rights)open_access_mask, flags & ~O_ACCMODE, mode,
+ onefs_oplock, id, psml, secinfo, pifs_sd, onefs_dos_attributes,
+ &onefs_granted_oplock);
+
+ DEBUG(10,("onefs_sys_create_file(%s): ret_fd = %d, "
+ "onefs_granted_oplock = %s\n",
+ ret_fd < 0 ? strerror(errno) : "success", ret_fd,
+ onefs_oplock_str(onefs_granted_oplock)));
+
+ if (granted_oplock) {
+ *granted_oplock = onefs_to_samba_oplock(onefs_granted_oplock);
+ }
+
+ out:
+ aclu_free_sd(pifs_sd, false);
+
+ return ret_fd;
+}
return result;
}
+static NTSTATUS vfswrap_create_file(vfs_handle_struct *handle,
+ struct smb_request *req,
+ uint16_t root_dir_fid,
+ const char *fname,
+ uint32_t create_file_flags,
+ uint32_t access_mask,
+ uint32_t share_access,
+ uint32_t create_disposition,
+ uint32_t create_options,
+ uint32_t file_attributes,
+ uint32_t oplock_request,
+ uint64_t allocation_size,
+ struct security_descriptor *sd,
+ struct ea_list *ea_list,
+ files_struct **result,
+ int *pinfo,
+ SMB_STRUCT_STAT *psbuf)
+{
+ return create_file_default(handle->conn, req, root_dir_fid, fname,
+ create_file_flags, access_mask, share_access,
+ create_disposition, create_options,
+ file_attributes, oplock_request,
+ allocation_size, sd, ea_list, result, pinfo,
+ psbuf);
+}
+
static int vfswrap_close(vfs_handle_struct *handle, files_struct *fsp)
{
int result;
return NT_STATUS_OK;
}
+static int vfswrap_get_real_filename(struct vfs_handle_struct *handle,
+ const char *path,
+ const char *name,
+ TALLOC_CTX *mem_ctx,
+ char **found_name)
+{
+ return get_real_filename(handle->conn, path, name, mem_ctx,
+ found_name);
+}
+
static NTSTATUS vfswrap_fget_nt_acl(vfs_handle_struct *handle,
files_struct *fsp,
uint32 security_info, SEC_DESC **ppdesc)
{SMB_VFS_OP(vfswrap_open), SMB_VFS_OP_OPEN,
SMB_VFS_LAYER_OPAQUE},
+ {SMB_VFS_OP(vfswrap_create_file), SMB_VFS_OP_CREATE_FILE,
+ SMB_VFS_LAYER_OPAQUE},
{SMB_VFS_OP(vfswrap_close), SMB_VFS_OP_CLOSE,
SMB_VFS_LAYER_OPAQUE},
{SMB_VFS_OP(vfswrap_read), SMB_VFS_OP_READ,
SMB_VFS_LAYER_OPAQUE},
{SMB_VFS_OP(vfswrap_streaminfo), SMB_VFS_OP_STREAMINFO,
SMB_VFS_LAYER_OPAQUE},
+ {SMB_VFS_OP(vfswrap_get_real_filename), SMB_VFS_OP_GET_REAL_FILENAME,
+ SMB_VFS_LAYER_OPAQUE},
/* NT ACL operations. */
SMB_STRUCT_DIR *dirp);
static int smb_full_audit_open(vfs_handle_struct *handle,
const char *fname, files_struct *fsp, int flags, mode_t mode);
+static NTSTATUS smb_full_audit_create_file(vfs_handle_struct *handle,
+ struct smb_request *req,
+ uint16_t root_dir_fid,
+ const char *fname,
+ uint32_t create_file_flags,
+ uint32_t access_mask,
+ uint32_t share_access,
+ uint32_t create_disposition,
+ uint32_t create_options,
+ uint32_t file_attributes,
+ uint32_t oplock_request,
+ uint64_t allocation_size,
+ struct security_descriptor *sd,
+ struct ea_list *ea_list,
+ files_struct **result,
+ int *pinfo,
+ SMB_STRUCT_STAT *psbuf);
static int smb_full_audit_close(vfs_handle_struct *handle, files_struct *fsp);
static ssize_t smb_full_audit_read(vfs_handle_struct *handle, files_struct *fsp,
void *data, size_t n);
{SMB_VFS_OP(smb_full_audit_open), SMB_VFS_OP_OPEN,
SMB_VFS_LAYER_LOGGER},
+ {SMB_VFS_OP(smb_full_audit_create_file),SMB_VFS_OP_CREATE_FILE,
+ SMB_VFS_LAYER_LOGGER},
{SMB_VFS_OP(smb_full_audit_close), SMB_VFS_OP_CLOSE,
SMB_VFS_LAYER_LOGGER},
{SMB_VFS_OP(smb_full_audit_read), SMB_VFS_OP_READ,
return result;
}
+static NTSTATUS smb_full_audit_create_file(vfs_handle_struct *handle,
+ struct smb_request *req,
+ uint16_t root_dir_fid,
+ const char *fname,
+ uint32_t create_file_flags,
+ uint32_t access_mask,
+ uint32_t share_access,
+ uint32_t create_disposition,
+ uint32_t create_options,
+ uint32_t file_attributes,
+ uint32_t oplock_request,
+ uint64_t allocation_size,
+ struct security_descriptor *sd,
+ struct ea_list *ea_list,
+ files_struct **result_fsp,
+ int *pinfo,
+ SMB_STRUCT_STAT *psbuf)
+{
+ NTSTATUS result;
+
+ result = SMB_VFS_NEXT_CREATE_FILE(
+ handle, /* handle */
+ req, /* req */
+ root_dir_fid, /* root_dir_fid */
+ fname, /* fname */
+ create_file_flags, /* create_file_flags */
+ access_mask, /* access_mask */
+ share_access, /* share_access */
+ create_disposition, /* create_disposition*/
+ create_options, /* create_options */
+ file_attributes, /* file_attributes */
+ oplock_request, /* oplock_request */
+ allocation_size, /* allocation_size */
+ sd, /* sd */
+ ea_list, /* ea_list */
+ result_fsp, /* result */
+ pinfo, /* pinfo */
+ psbuf); /* psbuf */
+
+ do_log(SMB_VFS_OP_CREATE_FILE, (NT_STATUS_IS_OK(result)), handle, "0x%x|%s",
+ access_mask, fname);
+
+ return result;
+}
+
static int smb_full_audit_close(vfs_handle_struct *handle, files_struct *fsp)
{
int result;
/*
Unix SMB/CIFS implementation.
Wrap gpfs calls in vfs functions.
-
+
Copyright (C) Christian Ambach <cambach1@de.ibm.com> 2006
-
+
Major code contributions by Chetan Shringarpure <chetan.sh@in.ibm.com>
and Gomati Mohanan <gomati.mohanan@in.ibm.com>
-
+
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
-
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-
*/
#include "includes.h"
int leasetype)
{
int ret;
-
+
START_PROFILE(syscall_linux_setlease);
-
+
if ( linux_set_lease_sighandler(fsp->fh->fd) == -1)
return -1;
ret = set_gpfs_lease(fsp->fh->fd,leasetype);
-
+
if ( ret < 0 ) {
/* This must have come from GPFS not being available */
/* or some other error, hence call the default */
return ret;
}
+static int vfs_gpfs_get_real_filename(struct vfs_handle_struct *handle,
+ const char *path,
+ const char *name,
+ TALLOC_CTX *mem_ctx,
+ char **found_name)
+{
+ int result;
+ char *full_path;
+ char real_pathname[PATH_MAX+1];
+ int buflen;
+
+ full_path = talloc_asprintf(talloc_tos(), "%s/%s", path, name);
+ if (full_path == NULL) {
+ errno = ENOMEM;
+ return -1;
+ }
+
+ buflen = sizeof(real_pathname) - 1;
+
+ result = smbd_gpfs_get_realfilename_path(full_path, real_pathname,
+ &buflen);
+
+ TALLOC_FREE(full_path);
+
+ if (result == -1) {
+ DEBUG(10, ("smbd_gpfs_get_realfilename_path returned %s\n",
+ strerror(errno)));
+ return -1;
+ }
+
+ /*
+ * GPFS does not necessarily null-terminate the returned path
+ * but instead returns the buffer length in buflen.
+ */
+
+ if (buflen < sizeof(real_pathname)) {
+ real_pathname[buflen] = '\0';
+ } else {
+ real_pathname[sizeof(real_pathname)-1] = '\0';
+ }
+
+ DEBUG(10, ("smbd_gpfs_get_realfilename_path: %s/%s -> %s\n",
+ path, name, real_pathname));
+
+ name = strrchr_m(real_pathname, '/');
+ if (name == NULL) {
+ errno = ENOENT;
+ return -1;
+ }
+
+ *found_name = talloc_strdup(mem_ctx, name+1);
+ if (*found_name == NULL) {
+ errno = ENOMEM;
+ return -1;
+ }
+ return 0;
+}
static void gpfs_dumpacl(int level, struct gpfs_acl *gacl)
{
gace->aceType = aceprop->aceType;
gace->aceFlags = aceprop->aceFlags;
gace->aceMask = aceprop->aceMask;
-
+
/*
* GPFS can't distinguish between WRITE and APPEND on
* files, so one being set without the other is an
* error. Sorry for the many ()'s :-)
*/
-
+
if (!fsp->is_directory
&&
((((gace->aceMask & ACE4_MASK_WRITE) == 0)
fsp->fsp_name));
gace->aceMask |= ACE4_MASK_WRITE|ACE4_MASK_APPEND;
}
-
+
gace->aceIFlags = (aceprop->flags&SMB_ACE4_ID_SPECIAL) ? ACE4_IFLAG_SPECIAL_ID : 0;
-
+
if (aceprop->flags&SMB_ACE4_ID_SPECIAL)
{
switch(aceprop->who.special_id)
errno = EINVAL;
goto done;
}
-
+
DEBUG(10, ("len: %d, level: %d, version: %d, nace: %d\n",
pacl->acl_len, pacl->acl_level, pacl->acl_version,
pacl->acl_nace));
}
SMB_ACL_T gpfsacl_sys_acl_get_file(vfs_handle_struct *handle,
-
const char *path_p,
SMB_ACL_TYPE_T type)
{
for (i=0; i<pacl->count; i++) {
const struct smb_acl_entry *ace = &pacl->acl[i];
struct gpfs_ace_v1 *g_ace = &result->ace_v1[i];
-
+
DEBUG(10, ("Converting type %d perm %x\n",
(int)ace->a_type, (int)ace->a_perm));
}
int gpfsacl_sys_acl_set_file(vfs_handle_struct *handle,
-
const char *name,
SMB_ACL_TYPE_T type,
SMB_ACL_T theacl)
}
int gpfsacl_sys_acl_delete_def_file(vfs_handle_struct *handle,
-
const char *path)
{
errno = ENOTSUP;
uint32_t posix_mask = 0x01;
uint32_t posix_bit;
uint32_t nfs4_bits;
-
+
for(i=0; i<3; i++) {
nfs4_bits = posix_nfs4map[i];
posix_bit = rwx & posix_mask;
-
+
if (aceType==SMB_ACE4_ACCESS_ALLOWED_ACE_TYPE) {
if (posix_bit)
aceMask |= nfs4_bits;
else
aceMask &= ~nfs4_bits;
} /* other ace types are unexpected */
-
+
posix_mask <<= 1;
}
-
+
return aceMask;
}
int i;
files_struct fake_fsp; /* TODO: rationalize parametrization */
SMB4ACE_T *smbace;
-
+
DEBUG(10, ("gpfsacl_emu_chmod invoked for %s mode %o\n", path, mode));
-
+
result = gpfs_get_nfs4_acl(path, &pacl);
if (result)
return result;
-
+
if (mode & ~(S_IRWXU | S_IRWXG | S_IRWXO)) {
DEBUG(2, ("WARNING: cutting extra mode bits %o on %s\n", mode, path));
}
-
+
for (smbace=smb_first_ace4(pacl); smbace!=NULL; smbace = smb_next_ace4(smbace)) {
SMB_ACE4PROP_T *ace = smb_get_ace4(smbace);
uint32_t specid = ace->who.special_id;
-
+
if (ace->flags&SMB_ACE4_ID_SPECIAL &&
ace->aceType<=SMB_ACE4_ACCESS_DENIED_ACE_TYPE &&
specid <= SMB_ACE4_WHO_EVERYONE) {
-
+
uint32_t newMask;
-
+
if (ace->aceType==SMB_ACE4_ACCESS_ALLOWED_ACE_TYPE)
haveAllowEntry[specid] = True;
-
+
/* mode >> 6 for @owner, mode >> 3 for @group,
* mode >> 0 for @everyone */
newMask = gpfsacl_mask_filter(ace->aceType, ace->aceMask,
*/
for(i = SMB_ACE4_WHO_OWNER; i<=SMB_ACE4_WHO_EVERYONE; i++) {
SMB_ACE4PROP_T ace;
-
+
if (haveAllowEntry[i]==True)
continue;
-
+
ZERO_STRUCT(ace);
ace.aceType = SMB_ACE4_ACCESS_ALLOWED_ACE_TYPE;
ace.flags |= SMB_ACE4_ID_SPECIAL;
ace.who.special_id = i;
-
+
if (i==SMB_ACE4_WHO_GROUP) /* not sure it's necessary... */
ace.aceFlags |= SMB_ACE4_IDENTIFIER_GROUP;
-
+
ace.aceMask = gpfsacl_mask_filter(ace.aceType, ace.aceMask,
mode >> ((SMB_ACE4_WHO_EVERYONE - i) * 3));
-
+
/* don't add unnecessary aces */
if (!ace.aceMask)
continue;
-
+
/* we add it to the END - as windows expects allow aces */
smb_add_ace4(pacl, &ace);
DEBUG(10, ("Added ALLOW ace for %s, mode=%o, id=%d, aceMask=%x\n",
path, mode, i, ace.aceMask));
}
-
+
/* don't add complementary DENY ACEs here */
ZERO_STRUCT(fake_fsp);
fake_fsp.fsp_name = (char *)path; /* no file_new is needed here */
-
+
/* put the acl */
if (gpfsacl_process_smbacl(&fake_fsp, pacl) == False)
return -1;
{
SMB_STRUCT_STAT st;
int rc;
-
+
if (SMB_VFS_NEXT_STAT(handle, path, &st) != 0) {
return -1;
}
-
+
/* avoid chmod() if possible, to preserve acls */
if ((st.st_mode & ~S_IFMT) == mode) {
return 0;
{
SMB_STRUCT_STAT st;
int rc;
-
+
if (SMB_VFS_NEXT_FSTAT(handle, fsp, &st) != 0) {
return -1;
}
/* VFS operations structure */
static vfs_op_tuple gpfs_op_tuples[] = {
-
+
{ SMB_VFS_OP(vfs_gpfs_kernel_flock),
SMB_VFS_OP_KERNEL_FLOCK,
SMB_VFS_LAYER_OPAQUE },
-
+
{ SMB_VFS_OP(vfs_gpfs_setlease),
SMB_VFS_OP_LINUX_SETLEASE,
SMB_VFS_LAYER_OPAQUE },
-
+
+ { SMB_VFS_OP(vfs_gpfs_get_real_filename),
+ SMB_VFS_OP_GET_REAL_FILENAME,
+ SMB_VFS_LAYER_OPAQUE },
+
{ SMB_VFS_OP(gpfsacl_fget_nt_acl),
SMB_VFS_OP_FGET_NT_ACL,
SMB_VFS_LAYER_TRANSPARENT },
-
+
{ SMB_VFS_OP(gpfsacl_get_nt_acl),
SMB_VFS_OP_GET_NT_ACL,
SMB_VFS_LAYER_TRANSPARENT },
-
+
{ SMB_VFS_OP(gpfsacl_fset_nt_acl),
SMB_VFS_OP_FSET_NT_ACL,
SMB_VFS_LAYER_TRANSPARENT },
-
+
{ SMB_VFS_OP(gpfsacl_sys_acl_get_file),
SMB_VFS_OP_SYS_ACL_GET_FILE,
SMB_VFS_LAYER_TRANSPARENT },
-
+
{ SMB_VFS_OP(gpfsacl_sys_acl_get_fd),
SMB_VFS_OP_SYS_ACL_GET_FD,
SMB_VFS_LAYER_TRANSPARENT },
-
+
{ SMB_VFS_OP(gpfsacl_sys_acl_set_file),
SMB_VFS_OP_SYS_ACL_SET_FILE,
SMB_VFS_LAYER_TRANSPARENT },
-
+
{ SMB_VFS_OP(gpfsacl_sys_acl_set_fd),
SMB_VFS_OP_SYS_ACL_SET_FD,
SMB_VFS_LAYER_TRANSPARENT },
-
+
{ SMB_VFS_OP(gpfsacl_sys_acl_delete_def_file),
SMB_VFS_OP_SYS_ACL_DELETE_DEF_FILE,
SMB_VFS_LAYER_TRANSPARENT },
-
+
{ SMB_VFS_OP(vfs_gpfs_chmod),
SMB_VFS_OP_CHMOD,
SMB_VFS_LAYER_TRANSPARENT },
-
+
{ SMB_VFS_OP(vfs_gpfs_fchmod),
SMB_VFS_OP_FCHMOD,
SMB_VFS_LAYER_TRANSPARENT },
NTSTATUS vfs_gpfs_init(void)
{
init_gpfs();
-
+
return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "gpfs",
gpfs_op_tuples);
}
/*
+ * Unix SMB/CIFS implementation.
* Support for OneFS
*
* Copyright (C) Tim Prouty, 2008
*/
#include "includes.h"
+#include "onefs.h"
#undef DBGC_CLASS
#define DBGC_CLASS DBGC_VFS
-NTSTATUS onefs_fget_nt_acl(vfs_handle_struct *handle, files_struct *fsp,
- uint32 security_info, SEC_DESC **ppdesc);
-
-NTSTATUS onefs_get_nt_acl(vfs_handle_struct *handle, const char* name,
- uint32 security_info, SEC_DESC **ppdesc);
+static int onefs_mkdir(vfs_handle_struct *handle, const char *path,
+ mode_t mode)
+{
+ DEBUG(0, ("SMB_VFS_MKDIR should never be called in vfs_onefs"));
+ return SMB_VFS_NEXT_MKDIR(handle, path, mode);
+}
-NTSTATUS onefs_fset_nt_acl(vfs_handle_struct *handle, files_struct *fsp,
- uint32 security_info_sent, SEC_DESC *psd);
+static int onefs_open(vfs_handle_struct *handle, const char *fname,
+ files_struct *fsp, int flags, mode_t mode)
+{
+ DEBUG(0, ("SMB_VFS_OPEN should never be called in vfs_onefs"));
+ return SMB_VFS_NEXT_OPEN(handle, fname, fsp, flags, mode);
+}
static vfs_op_tuple onefs_ops[] = {
+ {SMB_VFS_OP(onefs_mkdir), SMB_VFS_OP_MKDIR,
+ SMB_VFS_LAYER_OPAQUE},
+ {SMB_VFS_OP(onefs_open), SMB_VFS_OP_OPEN,
+ SMB_VFS_LAYER_OPAQUE},
+ {SMB_VFS_OP(onefs_create_file), SMB_VFS_OP_CREATE_FILE,
+ SMB_VFS_LAYER_OPAQUE},
{SMB_VFS_OP(onefs_fget_nt_acl), SMB_VFS_OP_FGET_NT_ACL,
SMB_VFS_LAYER_OPAQUE},
{SMB_VFS_OP(onefs_get_nt_acl), SMB_VFS_OP_GET_NT_ACL,
static int preallocate_space(int fd, SMB_OFF_T size)
{
+ int err;
#ifndef HAVE_GPFS
lock_type fl = {0};
- int err;
if (size <= 0) {
return 0;
#include "libwbclient.h"
-/** @brief Convert a binary GUID to a character string
- *
- * @param guid Binary Guid
- * @param **guid_string Resulting character string
- *
- * @return #wbcErr
- **/
-
+/* Convert a binary GUID to a character string */
wbcErr wbcGuidToString(const struct wbcGuid *guid,
char **guid_string)
{
return wbc_status;
}
-/** @brief Convert a character string to a binary GUID
- *
- * @param *str Character string
- * @param guid Resulting binary GUID
- *
- * @return #wbcErr
- **/
-
+/* @brief Convert a character string to a binary GUID */
wbcErr wbcStringToGuid(const char *str,
struct wbcGuid *guid)
{
#include "libwbclient.h"
-/** @brief Convert a Windows SID to a Unix uid, allocating an uid if needed
- *
- * @param *sid Pointer to the domain SID to be resolved
- * @param *puid Pointer to the resolved uid_t value
- *
- * @return #wbcErr
- *
- **/
-
+/* Convert a Windows SID to a Unix uid, allocating an uid if needed */
wbcErr wbcSidToUid(const struct wbcDomainSid *sid, uid_t *puid)
{
struct winbindd_request request;
return wbc_status;
}
-/** @brief Convert a Windows SID to a Unix uid if there already is a mapping
- *
- * @param *sid Pointer to the domain SID to be resolved
- * @param *puid Pointer to the resolved uid_t value
- *
- * @return #wbcErr
- *
- **/
-
+/* Convert a Windows SID to a Unix uid if there already is a mapping */
wbcErr wbcQuerySidToUid(const struct wbcDomainSid *sid,
uid_t *puid)
{
return WBC_ERR_NOT_IMPLEMENTED;
}
-/** @brief Convert a Unix uid to a Windows SID, allocating a SID if needed
- *
- * @param uid Unix uid to be resolved
- * @param *sid Pointer to the resolved domain SID
- *
- * @return #wbcErr
- *
- **/
-
+/* Convert a Unix uid to a Windows SID, allocating a SID if needed */
wbcErr wbcUidToSid(uid_t uid, struct wbcDomainSid *sid)
{
wbcErr wbc_status = WBC_ERR_UNKNOWN_FAILURE;
return wbc_status;
}
-/** @brief Convert a Unix uid to a Windows SID if there already is a mapping
- *
- * @param uid Unix uid to be resolved
- * @param *sid Pointer to the resolved domain SID
- *
- * @return #wbcErr
- *
- **/
-
+/* Convert a Unix uid to a Windows SID if there already is a mapping */
wbcErr wbcQueryUidToSid(uid_t uid,
struct wbcDomainSid *sid)
{
return wbc_status;
}
-/** @brief Convert a Windows SID to a Unix gid if there already is a mapping
- *
- * @param *sid Pointer to the domain SID to be resolved
- * @param *pgid Pointer to the resolved gid_t value
- *
- * @return #wbcErr
- *
- **/
+/* Convert a Windows SID to a Unix gid if there already is a mapping */
wbcErr wbcQuerySidToGid(const struct wbcDomainSid *sid,
gid_t *pgid)
return WBC_ERR_NOT_IMPLEMENTED;
}
-/** @brief Convert a Unix gid to a Windows SID, allocating a SID if needed
- *
- * @param gid Unix gid to be resolved
- * @param *sid Pointer to the resolved domain SID
- *
- * @return #wbcErr
- *
- **/
-
+/* Convert a Unix gid to a Windows SID, allocating a SID if needed */
wbcErr wbcGidToSid(gid_t gid, struct wbcDomainSid *sid)
{
struct winbindd_request request;
return wbc_status;
}
-/** @brief Convert a Unix gid to a Windows SID if there already is a mapping
- *
- * @param gid Unix gid to be resolved
- * @param *sid Pointer to the resolved domain SID
- *
- * @return #wbcErr
- *
- **/
-
+/* Convert a Unix gid to a Windows SID if there already is a mapping */
wbcErr wbcQueryGidToSid(gid_t gid,
struct wbcDomainSid *sid)
{
return WBC_ERR_NOT_IMPLEMENTED;
}
-/** @brief Obtain a new uid from Winbind
- *
- * @param *puid *pointer to the allocated uid
- *
- * @return #wbcErr
- **/
-
+/* Obtain a new uid from Winbind */
wbcErr wbcAllocateUid(uid_t *puid)
{
struct winbindd_request request;
return wbc_status;
}
-/** @brief Obtain a new gid from Winbind
- *
- * @param *pgid Pointer to the allocated gid
- *
- * @return #wbcErr
- **/
-
+/* Obtain a new gid from Winbind */
wbcErr wbcAllocateGid(gid_t *pgid)
{
struct winbindd_request request;
#define _ID_TYPE_UID 1
#define _ID_TYPE_GID 2
-/** @brief Set an user id mapping
- *
- * @param uid Uid of the desired mapping.
- * @param *sid Pointer to the sid of the diresired mapping.
- *
- * @return #wbcErr
- **/
+/* Set an user id mapping */
wbcErr wbcSetUidMapping(uid_t uid, const struct wbcDomainSid *sid)
{
struct winbindd_request request;
return wbc_status;
}
-/** @brief Set a group id mapping
- *
- * @param gid Gid of the desired mapping.
- * @param *sid Pointer to the sid of the diresired mapping.
- *
- * @return #wbcErr
- **/
+/* Set a group id mapping */
wbcErr wbcSetGidMapping(gid_t gid, const struct wbcDomainSid *sid)
{
struct winbindd_request request;
return wbc_status;
}
-/** @brief Remove a user id mapping
- *
- * @param uid Uid of the mapping to remove.
- * @param *sid Pointer to the sid of the mapping to remove.
- *
- * @return #wbcErr
- **/
+/* Remove a user id mapping */
wbcErr wbcRemoveUidMapping(uid_t uid, const struct wbcDomainSid *sid)
{
struct winbindd_request request;
return wbc_status;
}
-/** @brief Remove a group id mapping
- *
- * @param gid Gid of the mapping to remove.
- * @param *sid Pointer to the sid of the mapping to remove.
- *
- * @return #wbcErr
- **/
+/* Remove a group id mapping */
wbcErr wbcRemoveGidMapping(gid_t gid, const struct wbcDomainSid *sid)
{
struct winbindd_request request;
return wbc_status;
}
-/** @brief Set the highwater mark for allocated uids.
- *
- * @param uid_hwm The new uid highwater mark value
- *
- * @return #wbcErr
- **/
+/* Set the highwater mark for allocated uids. */
wbcErr wbcSetUidHwm(uid_t uid_hwm)
{
struct winbindd_request request;
return wbc_status;
}
-/** @brief Set the highwater mark for allocated gids.
- *
- * @param gid_hwm The new gid highwater mark value
- *
- * @return #wbcErr
- **/
+/* Set the highwater mark for allocated gids. */
wbcErr wbcSetGidHwm(gid_t gid_hwm)
{
struct winbindd_request request;
#include "libwbclient.h"
-/** @brief Authenticate a username/password pair
- *
- * @param username Name of user to authenticate
- * @param password Clear text password os user
- *
- * @return #wbcErr
- **/
-
+/* Authenticate a username/password pair */
wbcErr wbcAuthenticateUser(const char *username,
const char *password)
{
return wbc_status;
}
-/** @brief Authenticate with more detailed information
- *
- * @param params Input parameters, WBC_AUTH_USER_LEVEL_HASH
- * is not supported yet
- * @param info Output details on WBC_ERR_SUCCESS
- * @param error Output details on WBC_ERR_AUTH_ERROR
- *
- * @return #wbcErr
- **/
-
+/* Authenticate with more detailed information */
wbcErr wbcAuthenticateUserEx(const struct wbcAuthUserParams *params,
struct wbcAuthUserInfo **info,
struct wbcAuthErrorInfo **error)
return wbc_status;
}
-/** @brief Trigger a verification of the trust credentials of a specific domain
- *
- * @param *domain The name of the domain, only NULL for the default domain is
- * supported yet. Other values than NULL will result in
- * WBC_ERR_NOT_IMPLEMENTED.
- * @param error Output details on WBC_ERR_AUTH_ERROR
- *
- * @return #wbcErr
- *
- **/
+/* Trigger a verification of the trust credentials of a specific domain */
wbcErr wbcCheckTrustCredentials(const char *domain,
struct wbcAuthErrorInfo **error)
{
return wbc_status;
}
-/** @brief Trigger an extended logoff notification to Winbind for a specific user
- *
- * @param params A wbcLogoffUserParams structure
- * @param error User output details on error
- *
- * @return #wbcErr
- *
- **/
-
+/* Trigger an extended logoff notification to Winbind for a specific user */
wbcErr wbcLogoffUserEx(const struct wbcLogoffUserParams *params,
struct wbcAuthErrorInfo **error)
{
return wbc_status;
}
-/** @brief Trigger a logoff notification to Winbind for a specific user
- *
- * @param username Name of user to remove from Winbind's list of
- * logged on users.
- * @param uid Uid assigned to the username
- * @param ccfilename Absolute path to the Krb5 credentials cache to
- * be removed
- *
- * @return #wbcErr
- *
- **/
-
+/* Trigger a logoff notification to Winbind for a specific user */
wbcErr wbcLogoffUser(const char *username,
uid_t uid,
const char *ccfilename)
return wbc_status;
}
-/** @brief Change a password for a user with more detailed information upon
- * failure
- * @param params Input parameters
- * @param error User output details on WBC_ERR_PWD_CHANGE_FAILED
- * @param reject_reason New password reject reason on WBC_ERR_PWD_CHANGE_FAILED
- * @param policy Password policy output details on WBC_ERR_PWD_CHANGE_FAILED
- *
- * @return #wbcErr
- **/
-
+/* Change a password for a user with more detailed information upon failure */
wbcErr wbcChangeUserPasswordEx(const struct wbcChangePasswordParams *params,
struct wbcAuthErrorInfo **error,
enum wbcPasswordChangeRejectReason *reject_reason,
return wbc_status;
}
-/** @brief Change a password for a user
- *
- * @param username Name of user to authenticate
- * @param old_password Old clear text password of user
- * @param new_password New clear text password of user
- *
- * @return #wbcErr
- **/
-
+/* Change a password for a user */
wbcErr wbcChangeUserPassword(const char *username,
const char *old_password,
const char *new_password)
return wbc_status;
}
-/** @brief Logon a User
- *
- * @param[in] params Pointer to a wbcLogonUserParams structure
- * @param[out] info Pointer to a pointer to a wbcLogonUserInfo structure
- * @param[out] error Pointer to a pointer to a wbcAuthErrorInfo structure
- * @param[out] policy Pointer to a pointer to a wbcUserPasswordPolicyInfo structure
- *
- * @return #wbcErr
- *
- **/
-
+/* Logon a User */
wbcErr wbcLogonUser(const struct wbcLogonUserParams *params,
struct wbcLogonUserInfo **info,
struct wbcAuthErrorInfo **error,
return wbc_status;
}
-/** @brief Authenticate a user with cached credentials
- *
- * @param *params Pointer to a wbcCredentialCacheParams structure
- * @param **info Pointer to a pointer to a wbcCredentialCacheInfo structure
- * @param **error Pointer to a pointer to a wbcAuthErrorInfo structure
- *
- * @return #wbcErr
- **/
+/* Authenticate a user with cached credentials */
wbcErr wbcCredentialCache(struct wbcCredentialCacheParams *params,
struct wbcCredentialCacheInfo **info,
struct wbcAuthErrorInfo **error)
return grp;
}
-/** @brief Fill in a struct passwd* for a domain user based
- * on username
- *
- * @param *name Username to lookup
- * @param **pwd Pointer to resulting struct passwd* from the query.
- *
- * @return #wbcErr
- **/
-
+/* Fill in a struct passwd* for a domain user based on username */
wbcErr wbcGetpwnam(const char *name, struct passwd **pwd)
{
wbcErr wbc_status = WBC_ERR_UNKNOWN_FAILURE;
return wbc_status;
}
-/** @brief Fill in a struct passwd* for a domain user based
- * on uid
- *
- * @param uid Uid to lookup
- * @param **pwd Pointer to resulting struct passwd* from the query.
- *
- * @return #wbcErr
- **/
-
+/* Fill in a struct passwd* for a domain user based on uid */
wbcErr wbcGetpwuid(uid_t uid, struct passwd **pwd)
{
wbcErr wbc_status = WBC_ERR_UNKNOWN_FAILURE;
return wbc_status;
}
-/** @brief Fill in a struct passwd* for a domain user based
- * on username
- *
- * @param *name Username to lookup
- * @param **grp Pointer to resulting struct group* from the query.
- *
- * @return #wbcErr
- **/
-
+/* Fill in a struct passwd* for a domain user based on username */
wbcErr wbcGetgrnam(const char *name, struct group **grp)
{
wbcErr wbc_status = WBC_ERR_UNKNOWN_FAILURE;
return wbc_status;
}
-/** @brief Fill in a struct passwd* for a domain user based
- * on uid
- *
- * @param gid Uid to lookup
- * @param **grp Pointer to resulting struct group* from the query.
- *
- * @return #wbcErr
- **/
-
+/* Fill in a struct passwd* for a domain user based on uid */
wbcErr wbcGetgrgid(gid_t gid, struct group **grp)
{
wbcErr wbc_status = WBC_ERR_UNKNOWN_FAILURE;
*/
static struct winbindd_response pw_response;
-/** @brief Reset the passwd iterator
- *
- * @return #wbcErr
- **/
-
+/* Reset the passwd iterator */
wbcErr wbcSetpwent(void)
{
wbcErr wbc_status = WBC_ERR_UNKNOWN_FAILURE;
return wbc_status;
}
-/** @brief Close the passwd iterator
- *
- * @return #wbcErr
- **/
-
+/* Close the passwd iterator */
wbcErr wbcEndpwent(void)
{
wbcErr wbc_status = WBC_ERR_UNKNOWN_FAILURE;
return wbc_status;
}
-/** @brief Return the next struct passwd* entry from the pwent iterator
- *
- * @param **pwd Pointer to resulting struct passwd* from the query.
- *
- * @return #wbcErr
- **/
-
+/* Return the next struct passwd* entry from the pwent iterator */
wbcErr wbcGetpwent(struct passwd **pwd)
{
wbcErr wbc_status = WBC_ERR_UNKNOWN_FAILURE;
*/
static struct winbindd_response gr_response;
-/** @brief Reset the group iterator
- *
- * @return #wbcErr
- **/
-
+/* Reset the group iterator */
wbcErr wbcSetgrent(void)
{
wbcErr wbc_status = WBC_ERR_UNKNOWN_FAILURE;
return wbc_status;
}
-/** @brief Close the group iterator
- *
- * @return #wbcErr
- **/
-
+/* Close the group iterator */
wbcErr wbcEndgrent(void)
{
wbcErr wbc_status = WBC_ERR_UNKNOWN_FAILURE;
return wbc_status;
}
-/** @brief Return the next struct group* entry from the pwent iterator
- *
- * @param **grp Pointer to resulting struct group* from the query.
- *
- * @return #wbcErr
- **/
-
+/* Return the next struct group* entry from the pwent iterator */
wbcErr wbcGetgrent(struct group **grp)
{
wbcErr wbc_status = WBC_ERR_UNKNOWN_FAILURE;
return wbc_status;
}
-/** @brief Return the next struct group* entry from the pwent iterator
- *
- * This is similar to #wbcGetgrent, just that the member list is empty
- *
- * @param **grp Pointer to resulting struct group* from the query.
- *
- * @return #wbcErr
- **/
-
+/* Return the next struct group* entry from the pwent iterator */
wbcErr wbcGetgrlist(struct group **grp)
{
wbcErr wbc_status = WBC_ERR_UNKNOWN_FAILURE;
return wbc_status;
}
-/** @brief Return the unix group array belonging to the given user
- *
- * @param *account The given user name
- * @param *num_groups Number of elements returned in the groups array
- * @param **_groups Pointer to resulting gid_t array.
- *
- * @return #wbcErr
- **/
+/* Return the unix group array belonging to the given user */
wbcErr wbcGetGroups(const char *account,
uint32_t *num_groups,
gid_t **_groups)
#include "libwbclient.h"
-/** @brief Convert a binary SID to a character string
- *
- * @param sid Binary Security Identifier
- * @param **sid_string Resulting character string
- *
- * @return #wbcErr
- **/
-
+/* Convert a binary SID to a character string */
wbcErr wbcSidToString(const struct wbcDomainSid *sid,
char **sid_string)
{
uint32_t id_auth;
int i;
char *tmp = NULL;
- TALLOC_CTX *ctx = NULL;
if (!sid) {
wbc_status = WBC_ERR_INVALID_SID;
BAIL_ON_WBC_ERROR(wbc_status);
}
- ctx = talloc_init("wbcSidToString");
- BAIL_ON_PTR_ERROR(ctx, wbc_status);
-
id_auth = sid->id_auth[5] +
(sid->id_auth[4] << 8) +
(sid->id_auth[3] << 16) +
(sid->id_auth[2] << 24);
- tmp = talloc_asprintf(ctx, "S-%d-%d", sid->sid_rev_num, id_auth);
+ tmp = talloc_asprintf(NULL, "S-%d-%d", sid->sid_rev_num, id_auth);
BAIL_ON_PTR_ERROR(tmp, wbc_status);
for (i=0; i<sid->num_auths; i++) {
tmp = tmp2;
}
- *sid_string=talloc_strdup(NULL, tmp);
- BAIL_ON_PTR_ERROR((*sid_string), wbc_status);
+ *sid_string = tmp;
+ tmp = NULL;
wbc_status = WBC_ERR_SUCCESS;
done:
- talloc_free(ctx);
+ talloc_free(tmp);
return wbc_status;
}
-/** @brief Convert a character string to a binary SID
- *
- * @param *str Character string in the form of S-...
- * @param sid Resulting binary SID
- *
- * @return #wbcErr
- **/
-
+/* Convert a character string to a binary SID */
wbcErr wbcStringToSid(const char *str,
struct wbcDomainSid *sid)
{
}
-/** @brief Convert a domain and name to SID
- *
- * @param domain Domain name (possibly "")
- * @param name User or group name
- * @param *sid Pointer to the resolved domain SID
- * @param *name_type Pointer to the SID type
- *
- * @return #wbcErr
- *
- **/
-
+/* Convert a domain and name to SID */
wbcErr wbcLookupName(const char *domain,
const char *name,
struct wbcDomainSid *sid,
return wbc_status;
}
-/** @brief Convert a SID to a domain and name
- *
- * @param *sid Pointer to the domain SID to be resolved
- * @param pdomain Resolved Domain name (possibly "")
- * @param pname Resolved User or group name
- * @param *pname_type Pointer to the resolved SID type
- *
- * @return #wbcErr
- *
- **/
-
+/* Convert a SID to a domain and name */
wbcErr wbcLookupSid(const struct wbcDomainSid *sid,
char **pdomain,
char **pname,
return wbc_status;
}
-/** @brief Translate a collection of RIDs within a domain to names
- *
- **/
+/* Translate a collection of RIDs within a domain to names */
wbcErr wbcLookupRids(struct wbcDomainSid *dom_sid,
int num_rids,
return wbc_status;
}
-/** @brief Get the groups a user belongs to
- *
- **/
-
+/* Get the groups a user belongs to */
wbcErr wbcLookupUserSids(const struct wbcDomainSid *user_sid,
bool domain_groups_only,
uint32_t *num_sids,
return wbc_status;
}
-/** @brief Lists Users
- *
- **/
-
+/* Lists Users */
wbcErr wbcListUsers(const char *domain_name,
uint32_t *_num_users,
const char ***_users)
return wbc_status;
}
-/** @brief Lists Groups
- *
- **/
-
+/* Lists Groups */
wbcErr wbcListGroups(const char *domain_name,
uint32_t *_num_groups,
const char ***_groups)
}
-/** @brief Lookup the current status of a trusted domain
- *
- * @param domain Domain to query
- * @param *dinfo Pointer to returned domain_info struct
- *
- * @return #wbcErr
- *
- **/
-
-
+/* Lookup the current status of a trusted domain */
wbcErr wbcDomainInfo(const char *domain, struct wbcDomainInfo **dinfo)
{
struct winbindd_request request;
}
-/** @brief Resolve a NetbiosName via WINS
- *
- * @param name Name to resolve
- * @param *ip Pointer to the ip address string
- *
- * @return #wbcErr
- *
- **/
+/* Resolve a NetbiosName via WINS */
wbcErr wbcResolveWinsByName(const char *name, char **ip)
{
struct winbindd_request request;
return wbc_status;
}
-/** @brief Resolve an IP address via WINS into a NetbiosName
- *
- * @param ip The ip address string
- * @param *name Pointer to the name
- *
- * @return #wbcErr
- *
- **/
+/* Resolve an IP address via WINS into a NetbiosName */
wbcErr wbcResolveWinsByIP(const char *ip, char **name)
{
struct winbindd_request request;
return wbc_status;
}
-/** @brief Enumerate the domain trusts known by Winbind
- *
- * @param **domains Pointer to the allocated domain list array
- * @param *num_domains Pointer to number of domains returned
- *
- * @return #wbcErr
- *
- **/
+/* Enumerate the domain trusts known by Winbind */
wbcErr wbcListTrusts(struct wbcDomainInfo **domains, size_t *num_domains)
{
struct winbindd_response response;
return wbc_status;
}
-/** @brief Enumerate the domain trusts known by Winbind
- *
- * @param domain Name of the domain to query for a DC
- * @param flags Bit flags used to control the domain location query
- * @param *dc_info Pointer to the returned domain controller information
- *
- * @return #wbcErr
- *
- **/
-
-
-
+/* Enumerate the domain trusts known by Winbind */
wbcErr wbcLookupDomainController(const char *domain,
uint32_t flags,
struct wbcDomainControllerInfo **dc_info)
return wbc_status;
}
-/** @brief Get extended domain controller information
- *
- * @param domain Name of the domain to query for a DC
- * @param guid Guid of the domain to query for a DC
- * @param site Site of the domain to query for a DC
- * @param flags Bit flags used to control the domain location query
- * @param *dc_info Pointer to the returned extended domain controller information
- *
- * @return #wbcErr
- *
- **/
-
+/* Get extended domain controller information */
wbcErr wbcLookupDomainControllerEx(const char *domain,
struct wbcGuid *guid,
const char *site,
return wbc_status;
}
-/** @brief Initialize a named blob and add to list of blobs
- *
- * @param[in,out] num_blobs Pointer to the number of blobs
- * @param[in,out] blobs Pointer to an array of blobs
- * @param[in] name Name of the new named blob
- * @param[in] flags Flags of the new named blob
- * @param[in] data Blob data of new blob
- * @param[in] length Blob data length of new blob
- *
- * @return #wbcErr
- *
- **/
-
+/* Initialize a named blob and add to list of blobs */
wbcErr wbcAddNamedBlob(size_t *num_blobs,
struct wbcNamedBlob **blobs,
const char *name,
return "unknown wbcErr value";
}
-/** @brief Free library allocated memory
- *
- * @param *p Pointer to free
- *
- * @return void
- **/
-
+/* Free library allocated memory */
void wbcFreeMemory(void *p)
{
if (p)
const char *client_site_name;
};
-/*
+/**********************************************************
* Memory Management
- */
+ **********************************************************/
+/**
+ * @brief Free library allocated memory
+ *
+ * @param *p Pointer to free
+ *
+ * @return void
+ **/
void wbcFreeMemory(void*);
* Utility functions for dealing with SIDs
*/
+/**
+ * @brief Convert a binary SID to a character string
+ *
+ * @param sid Binary Security Identifier
+ * @param **sid_string Resulting character string
+ *
+ * @return #wbcErr
+ **/
wbcErr wbcSidToString(const struct wbcDomainSid *sid,
char **sid_string);
+/**
+ * @brief Convert a character string to a binary SID
+ *
+ * @param *str Character string in the form of S-...
+ * @param sid Resulting binary SID
+ *
+ * @return #wbcErr
+ **/
wbcErr wbcStringToSid(const char *sid_string,
struct wbcDomainSid *sid);
* Utility functions for dealing with GUIDs
*/
+/**
+ * @brief Convert a binary GUID to a character string
+ *
+ * @param guid Binary Guid
+ * @param **guid_string Resulting character string
+ *
+ * @return #wbcErr
+ **/
wbcErr wbcGuidToString(const struct wbcGuid *guid,
char **guid_string);
+/**
+ * @brief Convert a character string to a binary GUID
+ *
+ * @param *str Character string
+ * @param guid Resulting binary GUID
+ *
+ * @return #wbcErr
+ **/
wbcErr wbcStringToGuid(const char *guid_string,
struct wbcGuid *guid);
+/**
+ * @brief Ping winbindd to see if the daemon is running
+ *
+ * @return #wbcErr
+ **/
wbcErr wbcPing(void);
wbcErr wbcLibraryDetails(struct wbcLibraryDetails **details);
wbcErr wbcInterfaceDetails(struct wbcInterfaceDetails **details);
-/*
+/**********************************************************
* Name/SID conversion
- */
+ **********************************************************/
+/**
+ * @brief Convert a domain and name to SID
+ *
+ * @param domain Domain name (possibly "")
+ * @param name User or group name
+ * @param *sid Pointer to the resolved domain SID
+ * @param *name_type Pointer to the SID type
+ *
+ * @return #wbcErr
+ **/
wbcErr wbcLookupName(const char *dom_name,
const char *name,
struct wbcDomainSid *sid,
enum wbcSidType *name_type);
+/**
+ * @brief Convert a SID to a domain and name
+ *
+ * @param *sid Pointer to the domain SID to be resolved
+ * @param pdomain Resolved Domain name (possibly "")
+ * @param pname Resolved User or group name
+ * @param *pname_type Pointer to the resolved SID type
+ *
+ * @return #wbcErr
+ **/
wbcErr wbcLookupSid(const struct wbcDomainSid *sid,
char **domain,
char **name,
enum wbcSidType *name_type);
+/**
+ * @brief Translate a collection of RIDs within a domain to names
+ */
wbcErr wbcLookupRids(struct wbcDomainSid *dom_sid,
int num_rids,
uint32_t *rids,
const char ***names,
enum wbcSidType **types);
+/*
+ * @brief Get the groups a user belongs to
+ **/
wbcErr wbcLookupUserSids(const struct wbcDomainSid *user_sid,
bool domain_groups_only,
uint32_t *num_sids,
struct wbcDomainSid **sids);
+/**
+ * @brief Lists Users
+ **/
wbcErr wbcListUsers(const char *domain_name,
uint32_t *num_users,
const char ***users);
+/**
+ * @brief Lists Groups
+ **/
wbcErr wbcListGroups(const char *domain_name,
uint32_t *num_groups,
const char ***groups);
char **pfullname,
enum wbcSidType *pname_type);
-/*
+/**********************************************************
* SID/uid/gid Mappings
- */
+ **********************************************************/
+/**
+ * @brief Convert a Windows SID to a Unix uid, allocating an uid if needed
+ *
+ * @param *sid Pointer to the domain SID to be resolved
+ * @param *puid Pointer to the resolved uid_t value
+ *
+ * @return #wbcErr
+ *
+ **/
wbcErr wbcSidToUid(const struct wbcDomainSid *sid,
uid_t *puid);
+/**
+ * @brief Convert a Windows SID to a Unix uid if there already is a mapping
+ *
+ * @param *sid Pointer to the domain SID to be resolved
+ * @param *puid Pointer to the resolved uid_t value
+ *
+ * @return #wbcErr
+ *
+ **/
wbcErr wbcQuerySidToUid(const struct wbcDomainSid *sid,
uid_t *puid);
+/**
+ * @brief Convert a Unix uid to a Windows SID, allocating a SID if needed
+ *
+ * @param uid Unix uid to be resolved
+ * @param *sid Pointer to the resolved domain SID
+ *
+ * @return #wbcErr
+ *
+ **/
wbcErr wbcUidToSid(uid_t uid,
struct wbcDomainSid *sid);
+/**
+ * @brief Convert a Unix uid to a Windows SID if there already is a mapping
+ *
+ * @param uid Unix uid to be resolved
+ * @param *sid Pointer to the resolved domain SID
+ *
+ * @return #wbcErr
+ *
+ **/
wbcErr wbcQueryUidToSid(uid_t uid,
struct wbcDomainSid *sid);
+/**
+ * @brief Convert a Windows SID to a Unix gid, allocating a gid if needed
+ *
+ * @param *sid Pointer to the domain SID to be resolved
+ * @param *pgid Pointer to the resolved gid_t value
+ *
+ * @return #wbcErr
+ *
+ **/
wbcErr wbcSidToGid(const struct wbcDomainSid *sid,
gid_t *pgid);
+/**
+ * @brief Convert a Windows SID to a Unix gid if there already is a mapping
+ *
+ * @param *sid Pointer to the domain SID to be resolved
+ * @param *pgid Pointer to the resolved gid_t value
+ *
+ * @return #wbcErr
+ *
+ **/
wbcErr wbcQuerySidToGid(const struct wbcDomainSid *sid,
gid_t *pgid);
+/**
+ * @brief Convert a Unix gid to a Windows SID, allocating a SID if needed
+ *
+ * @param gid Unix gid to be resolved
+ * @param *sid Pointer to the resolved domain SID
+ *
+ * @return #wbcErr
+ *
+ **/
wbcErr wbcGidToSid(gid_t gid,
struct wbcDomainSid *sid);
+/**
+ * @brief Convert a Unix gid to a Windows SID if there already is a mapping
+ *
+ * @param gid Unix gid to be resolved
+ * @param *sid Pointer to the resolved domain SID
+ *
+ * @return #wbcErr
+ *
+ **/
wbcErr wbcQueryGidToSid(gid_t gid,
struct wbcDomainSid *sid);
+/**
+ * @brief Obtain a new uid from Winbind
+ *
+ * @param *puid *pointer to the allocated uid
+ *
+ * @return #wbcErr
+ **/
wbcErr wbcAllocateUid(uid_t *puid);
+/**
+ * @brief Obtain a new gid from Winbind
+ *
+ * @param *pgid Pointer to the allocated gid
+ *
+ * @return #wbcErr
+ **/
wbcErr wbcAllocateGid(gid_t *pgid);
+/**
+ * @brief Set an user id mapping
+ *
+ * @param uid Uid of the desired mapping.
+ * @param *sid Pointer to the sid of the diresired mapping.
+ *
+ * @return #wbcErr
+ **/
wbcErr wbcSetUidMapping(uid_t uid, const struct wbcDomainSid *sid);
+/**
+ * @brief Set a group id mapping
+ *
+ * @param gid Gid of the desired mapping.
+ * @param *sid Pointer to the sid of the diresired mapping.
+ *
+ * @return #wbcErr
+ **/
wbcErr wbcSetGidMapping(gid_t gid, const struct wbcDomainSid *sid);
+/**
+ * @brief Remove a user id mapping
+ *
+ * @param uid Uid of the mapping to remove.
+ * @param *sid Pointer to the sid of the mapping to remove.
+ *
+ * @return #wbcErr
+ **/
wbcErr wbcRemoveUidMapping(uid_t uid, const struct wbcDomainSid *sid);
+/**
+ * @brief Remove a group id mapping
+ *
+ * @param gid Gid of the mapping to remove.
+ * @param *sid Pointer to the sid of the mapping to remove.
+ *
+ * @return #wbcErr
+ **/
wbcErr wbcRemoveGidMapping(gid_t gid, const struct wbcDomainSid *sid);
+/**
+ * @brief Set the highwater mark for allocated uids.
+ *
+ * @param uid_hwm The new uid highwater mark value
+ *
+ * @return #wbcErr
+ **/
wbcErr wbcSetUidHwm(uid_t uid_hwm);
+/**
+ * @brief Set the highwater mark for allocated gids.
+ *
+ * @param gid_hwm The new gid highwater mark value
+ *
+ * @return #wbcErr
+ **/
wbcErr wbcSetGidHwm(gid_t gid_hwm);
-/*
+/**********************************************************
* NSS Lookup User/Group details
- */
+ **********************************************************/
+/**
+ * @brief Fill in a struct passwd* for a domain user based
+ * on username
+ *
+ * @param *name Username to lookup
+ * @param **pwd Pointer to resulting struct passwd* from the query.
+ *
+ * @return #wbcErr
+ **/
wbcErr wbcGetpwnam(const char *name, struct passwd **pwd);
+/**
+ * @brief Fill in a struct passwd* for a domain user based
+ * on uid
+ *
+ * @param uid Uid to lookup
+ * @param **pwd Pointer to resulting struct passwd* from the query.
+ *
+ * @return #wbcErr
+ **/
wbcErr wbcGetpwuid(uid_t uid, struct passwd **pwd);
+/**
+ * @brief Fill in a struct passwd* for a domain user based
+ * on username
+ *
+ * @param *name Username to lookup
+ * @param **grp Pointer to resulting struct group* from the query.
+ *
+ * @return #wbcErr
+ **/
wbcErr wbcGetgrnam(const char *name, struct group **grp);
+/**
+ * @brief Fill in a struct passwd* for a domain user based
+ * on uid
+ *
+ * @param gid Uid to lookup
+ * @param **grp Pointer to resulting struct group* from the query.
+ *
+ * @return #wbcErr
+ **/
wbcErr wbcGetgrgid(gid_t gid, struct group **grp);
+/**
+ * @brief Reset the passwd iterator
+ *
+ * @return #wbcErr
+ **/
wbcErr wbcSetpwent(void);
+/**
+ * @brief Close the passwd iterator
+ *
+ * @return #wbcErr
+ **/
wbcErr wbcEndpwent(void);
+/**
+ * @brief Return the next struct passwd* entry from the pwent iterator
+ *
+ * @param **pwd Pointer to resulting struct passwd* from the query.
+ *
+ * @return #wbcErr
+ **/
wbcErr wbcGetpwent(struct passwd **pwd);
+/**
+ * @brief Reset the group iterator
+ *
+ * @return #wbcErr
+ **/
wbcErr wbcSetgrent(void);
+/**
+ * @brief Close the group iterator
+ *
+ * @return #wbcErr
+ **/
wbcErr wbcEndgrent(void);
+/**
+ * @brief Return the next struct group* entry from the pwent iterator
+ *
+ * @param **grp Pointer to resulting struct group* from the query.
+ *
+ * @return #wbcErr
+ **/
wbcErr wbcGetgrent(struct group **grp);
+/**
+ * @brief Return the next struct group* entry from the pwent iterator
+ *
+ * This is similar to #wbcGetgrent, just that the member list is empty
+ *
+ * @param **grp Pointer to resulting struct group* from the query.
+ *
+ * @return #wbcErr
+ **/
wbcErr wbcGetgrlist(struct group **grp);
+/**
+ * @brief Return the unix group array belonging to the given user
+ *
+ * @param *account The given user name
+ * @param *num_groups Number of elements returned in the groups array
+ * @param **_groups Pointer to resulting gid_t array.
+ *
+ * @return #wbcErr
+ **/
wbcErr wbcGetGroups(const char *account,
uint32_t *num_groups,
gid_t **_groups);
-/*
+/**********************************************************
* Lookup Domain information
- */
+ **********************************************************/
+/**
+ * @brief Lookup the current status of a trusted domain
+ *
+ * @param domain Domain to query
+ * @param *dinfo Pointer to returned domain_info struct
+ *
+ * @return #wbcErr
+ **/
wbcErr wbcDomainInfo(const char *domain,
struct wbcDomainInfo **info);
+/**
+ * @brief Enumerate the domain trusts known by Winbind
+ *
+ * @param **domains Pointer to the allocated domain list array
+ * @param *num_domains Pointer to number of domains returned
+ *
+ * @return #wbcErr
+ **/
wbcErr wbcListTrusts(struct wbcDomainInfo **domains,
size_t *num_domains);
#define WBC_LOOKUP_DC_RETURN_DNS_NAME 0x40000000
#define WBC_LOOKUP_DC_RETURN_FLAT_NAME 0x80000000
+/**
+ * @brief Enumerate the domain trusts known by Winbind
+ *
+ * @param domain Name of the domain to query for a DC
+ * @param flags Bit flags used to control the domain location query
+ * @param *dc_info Pointer to the returned domain controller information
+ *
+ * @return #wbcErr
+ **/
wbcErr wbcLookupDomainController(const char *domain,
uint32_t flags,
struct wbcDomainControllerInfo **dc_info);
+/**
+ * @brief Get extended domain controller information
+ *
+ * @param domain Name of the domain to query for a DC
+ * @param guid Guid of the domain to query for a DC
+ * @param site Site of the domain to query for a DC
+ * @param flags Bit flags used to control the domain location query
+ * @param *dc_info Pointer to the returned extended domain controller information
+ *
+ * @return #wbcErr
+ **/
wbcErr wbcLookupDomainControllerEx(const char *domain,
struct wbcGuid *guid,
const char *site,
uint32_t flags,
struct wbcDomainControllerInfoEx **dc_info);
-/*
+/**********************************************************
* Athenticate functions
- */
+ **********************************************************/
+/**
+ * @brief Authenticate a username/password pair
+ *
+ * @param username Name of user to authenticate
+ * @param password Clear text password os user
+ *
+ * @return #wbcErr
+ **/
wbcErr wbcAuthenticateUser(const char *username,
const char *password);
+/**
+ * @brief Authenticate with more detailed information
+ *
+ * @param params Input parameters, WBC_AUTH_USER_LEVEL_HASH
+ * is not supported yet
+ * @param info Output details on WBC_ERR_SUCCESS
+ * @param error Output details on WBC_ERR_AUTH_ERROR
+ *
+ * @return #wbcErr
+ **/
wbcErr wbcAuthenticateUserEx(const struct wbcAuthUserParams *params,
struct wbcAuthUserInfo **info,
struct wbcAuthErrorInfo **error);
+/**
+ * @brief Logon a User
+ *
+ * @param[in] params Pointer to a wbcLogonUserParams structure
+ * @param[out] info Pointer to a pointer to a wbcLogonUserInfo structure
+ * @param[out] error Pointer to a pointer to a wbcAuthErrorInfo structure
+ * @param[out] policy Pointer to a pointer to a wbcUserPasswordPolicyInfo structure
+ *
+ * @return #wbcErr
+ **/
wbcErr wbcLogonUser(const struct wbcLogonUserParams *params,
struct wbcLogonUserInfo **info,
struct wbcAuthErrorInfo **error,
struct wbcUserPasswordPolicyInfo **policy);
+/**
+ * @brief Trigger a logoff notification to Winbind for a specific user
+ *
+ * @param username Name of user to remove from Winbind's list of
+ * logged on users.
+ * @param uid Uid assigned to the username
+ * @param ccfilename Absolute path to the Krb5 credentials cache to
+ * be removed
+ *
+ * @return #wbcErr
+ **/
wbcErr wbcLogoffUser(const char *username,
uid_t uid,
const char *ccfilename);
+/**
+ * @brief Trigger an extended logoff notification to Winbind for a specific user
+ *
+ * @param params A wbcLogoffUserParams structure
+ * @param error User output details on error
+ *
+ * @return #wbcErr
+ **/
wbcErr wbcLogoffUserEx(const struct wbcLogoffUserParams *params,
struct wbcAuthErrorInfo **error);
+/**
+ * @brief Change a password for a user
+ *
+ * @param username Name of user to authenticate
+ * @param old_password Old clear text password of user
+ * @param new_password New clear text password of user
+ *
+ * @return #wbcErr
+ **/
wbcErr wbcChangeUserPassword(const char *username,
const char *old_password,
const char *new_password);
+/**
+ * @brief Change a password for a user with more detailed information upon
+ * failure
+ *
+ * @param params Input parameters
+ * @param error User output details on WBC_ERR_PWD_CHANGE_FAILED
+ * @param reject_reason New password reject reason on WBC_ERR_PWD_CHANGE_FAILED
+ * @param policy Password policy output details on WBC_ERR_PWD_CHANGE_FAILED
+ *
+ * @return #wbcErr
+ **/
wbcErr wbcChangeUserPasswordEx(const struct wbcChangePasswordParams *params,
struct wbcAuthErrorInfo **error,
enum wbcPasswordChangeRejectReason *reject_reason,
struct wbcUserPasswordPolicyInfo **policy);
+/**
+ * @brief Authenticate a user with cached credentials
+ *
+ * @param *params Pointer to a wbcCredentialCacheParams structure
+ * @param **info Pointer to a pointer to a wbcCredentialCacheInfo structure
+ * @param **error Pointer to a pointer to a wbcAuthErrorInfo structure
+ *
+ * @return #wbcErr
+ **/
wbcErr wbcCredentialCache(struct wbcCredentialCacheParams *params,
struct wbcCredentialCacheInfo **info,
struct wbcAuthErrorInfo **error);
-/*
+/**********************************************************
* Resolve functions
- */
+ **********************************************************/
+
+/**
+ * @brief Resolve a NetbiosName via WINS
+ *
+ * @param name Name to resolve
+ * @param *ip Pointer to the ip address string
+ *
+ * @return #wbcErr
+ **/
wbcErr wbcResolveWinsByName(const char *name, char **ip);
+
+/**
+ * @brief Resolve an IP address via WINS into a NetbiosName
+ *
+ * @param ip The ip address string
+ * @param *name Pointer to the name
+ *
+ * @return #wbcErr
+ *
+ **/
wbcErr wbcResolveWinsByIP(const char *ip, char **name);
-/*
+/**********************************************************
* Trusted domain functions
- */
+ **********************************************************/
+
+/**
+ * @brief Trigger a verification of the trust credentials of a specific domain
+ *
+ * @param *domain The name of the domain, only NULL for the default domain is
+ * supported yet. Other values than NULL will result in
+ * WBC_ERR_NOT_IMPLEMENTED.
+ * @param error Output details on WBC_ERR_AUTH_ERROR
+ *
+ * @return #wbcErr
+ **/
wbcErr wbcCheckTrustCredentials(const char *domain,
struct wbcAuthErrorInfo **error);
-/*
+
+/**********************************************************
* Helper functions
- */
+ **********************************************************/
+
+/**
+ * @brief Initialize a named blob and add to list of blobs
+ *
+ * @param[in,out] num_blobs Pointer to the number of blobs
+ * @param[in,out] blobs Pointer to an array of blobs
+ * @param[in] name Name of the new named blob
+ * @param[in] flags Flags of the new named blob
+ * @param[in] data Blob data of new blob
+ * @param[in] length Blob data length of new blob
+ *
+ * @return #wbcErr
+ **/
wbcErr wbcAddNamedBlob(size_t *num_blobs,
struct wbcNamedBlob **blobs,
const char *name,
return "PAM_CONV_ERR";
case PAM_AUTHTOK_ERR:
return "PAM_AUTHTOK_ERR";
- case PAM_AUTHTOK_RECOVERY_ERR:
- return "PAM_AUTHTOK_RECOVERY_ERR";
+ case PAM_AUTHTOK_RECOVER_ERR:
+ return "PAM_AUTHTOK_RECOVER_ERR";
case PAM_AUTHTOK_LOCK_BUSY:
return "PAM_AUTHTOK_LOCK_BUSY";
case PAM_AUTHTOK_DISABLE_AGING:
return false;
/* Because atoi() can return 0 on invalid input, which would be a valid
- * UID/GID we must use strtol() and do error checking */
- *id = strtol(tmp, &endptr, 10);
+ * UID/GID we must use strtoul() and do error checking */
+ *id = strtoul(tmp, &endptr, 10);
if (endptr[0] != '\0')
return false;
bool bHideUnReadable;
bool bHideUnWriteableFiles;
bool bBrowseable;
+ bool bAccessBasedShareEnum;
bool bAvailable;
bool bRead_only;
bool bNo_set_dir;
False, /* bHideUnReadable */
False, /* bHideUnWriteableFiles */
True, /* bBrowseable */
+ False, /* bAccessBasedShareEnum */
True, /* bAvailable */
True, /* bRead_only */
True, /* bNo_set_dir */
static void set_default_server_announce_type(void);
static void set_allowed_client_auth(void);
+static void *lp_local_ptr(struct service *service, void *ptr);
+
static const struct enum_list enum_protocol[] = {
{PROTOCOL_NT1, "NT1"},
{PROTOCOL_LANMAN2, "LANMAN2"},
.enum_list = NULL,
.flags = FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT,
},
+ {
+ .label = "access based share enum",
+ .type = P_BOOL,
+ .p_class = P_LOCAL,
+ .ptr = &sDefault.bAccessBasedShareEnum,
+ .special = NULL,
+ .enum_list = NULL,
+ .flags = FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE
+ },
{
.label = "browsable",
.type = P_BOOL,
}
/**
- * Free the allocated data for one parameter for a given share.
+ * Common part of freeing allocated data for one parameter.
*/
-static void free_parameter(int snum, struct parm_struct parm)
+static void free_one_parameter_common(void *parm_ptr,
+ struct parm_struct parm)
+{
+ if ((parm.type == P_STRING) ||
+ (parm.type == P_USTRING))
+ {
+ string_free((char**)parm_ptr);
+ } else if (parm.type == P_LIST) {
+ TALLOC_FREE(*((char***)parm_ptr));
+ }
+}
+
+/**
+ * Free the allocated data for one parameter for a share
+ * given as a service struct.
+ */
+static void free_one_parameter(struct service *service,
+ struct parm_struct parm)
+{
+ void *parm_ptr;
+
+ if (parm.p_class != P_LOCAL) {
+ return;
+ }
+
+ parm_ptr = lp_local_ptr(service, parm.ptr);
+
+ free_one_parameter_common(parm_ptr, parm);
+}
+
+/**
+ * Free the allocated parameter data of a share given
+ * as a service struct.
+ */
+static void free_parameters(struct service *service)
+{
+ uint32_t i;
+
+ for (i=0; parm_table[i].label; i++) {
+ free_one_parameter(service, parm_table[i]);
+ }
+}
+
+/**
+ * Free the allocated data for one parameter for a given share
+ * specified by an snum.
+ */
+static void free_one_parameter_by_snum(int snum, struct parm_struct parm)
{
void *parm_ptr;
} else if (parm.p_class != P_LOCAL) {
return;
} else {
- parm_ptr = lp_local_ptr(snum, parm.ptr);
+ parm_ptr = lp_local_ptr_by_snum(snum, parm.ptr);
}
- if ((parm.type == P_STRING) ||
- (parm.type == P_USTRING))
- {
- string_free((char**)parm_ptr);
- } else if (parm.type == P_LIST) {
- TALLOC_FREE(*((char***)parm_ptr));
- }
+ free_one_parameter_common(parm_ptr, parm);
}
/**
- * Free the allocated parameter data for a share.
+ * Free the allocated parameter data for a share specified
+ * by an snum.
*/
-static void free_parameters(int snum)
+static void free_parameters_by_snum(int snum)
{
uint32_t i;
for (i=0; parm_table[i].label; i++) {
- free_parameter(snum, parm_table[i]);
+ free_one_parameter_by_snum(snum, parm_table[i]);
}
}
*/
static void free_global_parameters(void)
{
- free_parameters(GLOBAL_SECTION_SNUM);
+ free_parameters_by_snum(GLOBAL_SECTION_SNUM);
}
/***************************************************************************
FN_GLOBAL_STRING(lp_remote_browse_sync, &Globals.szRemoteBrowseSync)
FN_GLOBAL_LIST(lp_wins_server_list, &Globals.szWINSservers)
FN_GLOBAL_LIST(lp_interfaces, &Globals.szInterfaces)
-FN_GLOBAL_STRING(lp_socket_address, &Globals.szSocketAddress)
FN_GLOBAL_STRING(lp_nis_home_map_name, &Globals.szNISHomeMapName)
static FN_GLOBAL_STRING(lp_announce_version, &Globals.szAnnounceVersion)
FN_GLOBAL_LIST(lp_netbios_aliases, &Globals.szNetbiosAliases)
FN_LOCAL_BOOL(lp_hideunreadable, bHideUnReadable)
FN_LOCAL_BOOL(lp_hideunwriteable_files, bHideUnWriteableFiles)
FN_LOCAL_BOOL(lp_browseable, bBrowseable)
+FN_LOCAL_BOOL(lp_access_based_share_enum, bAccessBasedShareEnum)
FN_LOCAL_BOOL(lp_readonly, bRead_only)
FN_LOCAL_BOOL(lp_no_set_dir, bNo_set_dir)
FN_LOCAL_BOOL(lp_guest_ok, bGuest_ok)
DEBUG(5, ("free_service: Freeing service %s\n",
pservice->szService));
- free_parameters(getservicebyname(pservice->szService, NULL));
+ free_parameters(pservice);
string_free(&pservice->szService);
bitmap_free(pservice->copymap);
/* set the browseable flag from the global default */
ServicePtrs[i]->bBrowseable = sDefault.bBrowseable;
+ ServicePtrs[i]->bAccessBasedShareEnum = sDefault.bAccessBasedShareEnum;
ServicePtrs[i]->autoloaded = True;
bitmap_set(pservice->copymap, i);
}
+/***************************************************************************
+ Return the local pointer to a parameter given a service struct and the
+ pointer into the default structure.
+***************************************************************************/
+
+static void *lp_local_ptr(struct service *service, void *ptr)
+{
+ return (void *)(((char *)service) + PTR_DIFF(ptr, &sDefault));
+}
+
/***************************************************************************
Return the local pointer to a parameter given the service number and the
pointer into the default structure.
***************************************************************************/
-void *lp_local_ptr(int snum, void *ptr)
+void *lp_local_ptr_by_snum(int snum, void *ptr)
{
- return (void *)(((char *)ServicePtrs[snum]) + PTR_DIFF(ptr, &sDefault));
+ return lp_local_ptr(ServicePtrs[snum], ptr);
}
/***************************************************************************
pszParmName));
return (True);
}
- parm_ptr = lp_local_ptr(snum, def_ptr);
+ parm_ptr = lp_local_ptr_by_snum(snum, def_ptr);
}
if (snum >= 0) {
}
return MIN(Globals.iminreceivefile, BUFFER_SIZE);
}
+
+/*******************************************************************
+ If socket address is an empty character string, it is necessary to
+ define it as "0.0.0.0".
+********************************************************************/
+
+const char *lp_socket_address(void)
+{
+ char *sock_addr = Globals.szSocketAddress;
+
+ if (sock_addr[0] == '\0'){
+ string_set(&Globals.szSocketAddress, "0.0.0.0");
+ }
+ return Globals.szSocketAddress;
+}
newname_lower,
true,
true);
- if (rename_script) {
+ if (!rename_script) {
return NT_STATUS_NO_MEMORY;
}
rename_script = realloc_string_sub2(rename_script,
goto error_exit;
}
- status = open_file_ntcreate(conn, NULL, filepath, &stat_buf,
- FILE_GENERIC_READ,
- FILE_SHARE_READ|FILE_SHARE_WRITE,
- FILE_OPEN,
- 0,
- FILE_ATTRIBUTE_NORMAL,
- INTERNAL_OPEN_ONLY,
- NULL, &fsp);
+ status = SMB_VFS_CREATE_FILE(
+ conn, /* conn */
+ NULL, /* req */
+ 0, /* root_dir_fid */
+ filepath, /* fname */
+ 0, /* create_file_flags */
+ FILE_GENERIC_READ, /* access_mask */
+ FILE_SHARE_READ | FILE_SHARE_WRITE, /* share_access */
+ FILE_OPEN, /* create_disposition*/
+ 0, /* create_options */
+ FILE_ATTRIBUTE_NORMAL, /* file_attributes */
+ INTERNAL_OPEN_ONLY, /* oplock_request */
+ 0, /* allocation_size */
+ NULL, /* sd */
+ NULL, /* ea_list */
+ &fsp, /* result */
+ NULL, /* pinfo */
+ &stat_buf); /* psbuf */
if (!NT_STATUS_IS_OK(status)) {
/* Old file not found, so by definition new file is in fact newer */
goto error_exit;
}
- status = open_file_ntcreate(conn, NULL, filepath, &stat_buf,
- FILE_GENERIC_READ,
- FILE_SHARE_READ|FILE_SHARE_WRITE,
- FILE_OPEN,
- 0,
- FILE_ATTRIBUTE_NORMAL,
- INTERNAL_OPEN_ONLY,
- NULL, &fsp);
+ status = SMB_VFS_CREATE_FILE(
+ conn, /* conn */
+ NULL, /* req */
+ 0, /* root_dir_fid */
+ filepath, /* fname */
+ 0, /* create_file_flags */
+ FILE_GENERIC_READ, /* access_mask */
+ FILE_SHARE_READ | FILE_SHARE_WRITE, /* share_access */
+ FILE_OPEN, /* create_disposition*/
+ 0, /* create_options */
+ FILE_ATTRIBUTE_NORMAL, /* file_attributes */
+ INTERNAL_OPEN_ONLY, /* oplock_request */
+ 0, /* allocation_size */
+ NULL, /* sd */
+ NULL, /* ea_list */
+ &fsp, /* result */
+ NULL, /* pinfo */
+ &stat_buf); /* psbuf */
if (!NT_STATUS_IS_OK(status)) {
/* New file not found, this shouldn't occur if the caller did its job */
goto error_exit;
}
- status = open_file_ntcreate(conn, NULL, driverpath, &st,
- FILE_GENERIC_READ,
- FILE_SHARE_READ|FILE_SHARE_WRITE,
- FILE_OPEN,
- 0,
- FILE_ATTRIBUTE_NORMAL,
- INTERNAL_OPEN_ONLY,
- NULL, &fsp);
+ status = SMB_VFS_CREATE_FILE(
+ conn, /* conn */
+ NULL, /* req */
+ 0, /* root_dir_fid */
+ driverpath, /* fname */
+ 0, /* create_file_flags */
+ FILE_GENERIC_READ, /* access_mask */
+ FILE_SHARE_READ | FILE_SHARE_WRITE, /* share_access */
+ FILE_OPEN, /* create_disposition*/
+ 0, /* create_options */
+ FILE_ATTRIBUTE_NORMAL, /* file_attributes */
+ INTERNAL_OPEN_ONLY, /* oplock_request */
+ 0, /* allocation_size */
+ NULL, /* sd */
+ NULL, /* ea_list */
+ &fsp, /* result */
+ NULL, /* pinfo */
+ &st); /* psbuf */
if (!NT_STATUS_IS_OK(status)) {
DEBUG(3,("get_correct_cversion: Can't open file [%s], errno = %d\n",
uint32_t tmp;
TDB_DATA ret;
struct tdb_print_db *pdb = get_print_db_byname(sharename);
-
+
DEBUG(10,("print_job_find: looking up job %u for share %s\n",
(unsigned int)jobid, sharename ));
DEBUG(10,("print_job_find: failed to find jobid %u.\n", (unsigned int)jobid ));
return NULL;
}
-
+
if ( pjob.nt_devmode ) {
free_nt_devicemode( &pjob.nt_devmode );
}
-
+
ZERO_STRUCT( pjob );
-
+
if ( unpack_pjob( ret.dptr, ret.dsize, &pjob ) == -1 ) {
DEBUG(10,("print_job_find: failed to unpack jobid %u.\n", (unsigned int)jobid ));
SAFE_FREE(ret.dptr);
return NULL;
}
-
+
SAFE_FREE(ret.dptr);
DEBUG(10,("print_job_find: returning system job %d for jobid %u.\n",
****************************************************************************/
void start_background_queue(void)
{
+ /* Use local variables for this as we don't
+ * need to save the parent side of this, just
+ * ensure it closes when the process exits.
+ */
+ int pause_pipe[2];
+
DEBUG(3,("start_background_queue: Starting background LPQ thread\n"));
+
+ if (pipe(pause_pipe) == -1) {
+ DEBUG(5,("start_background_queue: cannot create pipe. %s\n", strerror(errno) ));
+ exit(1);
+ }
+
background_lpq_updater_pid = sys_fork();
if (background_lpq_updater_pid == -1) {
/* Child. */
DEBUG(5,("start_background_queue: background LPQ thread started\n"));
+ close(pause_pipe[0]);
+ pause_pipe[0] = -1;
+
if (!reinit_after_fork(smbd_messaging_context(), true)) {
DEBUG(0,("reinit_after_fork() failed\n"));
smb_panic("reinit_after_fork() failed");
messaging_register(smbd_messaging_context(), NULL,
MSG_PRINTER_UPDATE, print_queue_receive);
-
+
DEBUG(5,("start_background_queue: background LPQ thread waiting for messages\n"));
while (1) {
- pause();
-
+ fd_set pause_fds;
+ int pause_select;
+
+ FD_ZERO(&pause_fds);
+ FD_SET(pause_pipe[1], &pause_fds);
+ pause_select = sys_select(pause_pipe[1]+1, &pause_fds, NULL, NULL, NULL);
+ /* If pause_pipe[0] is closed it means the parent smbd
+ * and children exited or aborted. */
+ if (pause_select == 1) {
+ exit_server_cleanly(NULL);
+ }
+
/* check for some essential signals first */
-
+
if (got_sig_term) {
exit_server_cleanly(NULL);
}
reload_services(False);
reload_after_sighup = 0;
}
-
+
/* now check for messages */
-
+
DEBUG(10,("start_background_queue: background LPQ thread got a message\n"));
message_dispatch(smbd_messaging_context());
0);
}
}
+
+ close(pause_pipe[1]);
}
/****************************************************************************
auth->user_name = talloc_strdup(auth, cli->user_name);
auth->domain = talloc_strdup(auth, cli->domain);
+ auth->user_session_key = data_blob_talloc(auth,
+ cli->user_session_key.data,
+ cli->user_session_key.length);
if ((auth->user_name == NULL) || (auth->domain == NULL)) {
TALLOC_FREE(result);
cli->auth->a_u.kerberos_auth->session_key.length);
break;
case PIPE_AUTH_TYPE_NONE:
+ *session_key = data_blob_talloc(mem_ctx,
+ cli->auth->user_session_key.data,
+ cli->auth->user_session_key.length);
+ break;
default:
return NT_STATUS_NO_USER_SESSION_KEY;
}
void init_samr_user_info18(struct samr_UserInfo18 *r,
const uint8 lm_pwd[16],
- const uint8 nt_pwd[16])
+ const uint8 nt_pwd[16],
+ uint8_t password_expired)
{
DEBUG(5, ("init_samr_user_info18\n"));
memcpy(r->lm_pwd.hash, lm_pwd, sizeof(r->lm_pwd.hash)) ? true : false;
r->nt_pwd_active =
memcpy(r->nt_pwd.hash, nt_pwd, sizeof(r->nt_pwd.hash)) ? true : false;
+ r->password_expired = password_expired;
}
/*******************************************************************
uint16_t logon_count,
uint16_t country_code,
uint16_t code_page,
- uint8_t nt_password_set,
uint8_t lm_password_set,
+ uint8_t nt_password_set,
uint8_t password_expired)
{
r->last_logon = last_logon;
r->logon_count = logon_count;
r->country_code = country_code;
r->code_page = code_page;
- r->nt_password_set = nt_password_set;
r->lm_password_set = lm_password_set;
+ r->nt_password_set = nt_password_set;
r->password_expired = password_expired;
}
uint16_t logon_count,
uint16_t country_code,
uint16_t code_page,
- uint8_t nt_password_set,
uint8_t lm_password_set,
+ uint8_t nt_password_set,
uint8_t password_expired,
struct samr_CryptPassword *pwd_buf)
{
logon_count,
country_code,
code_page,
- nt_password_set,
lm_password_set,
+ nt_password_set,
password_expired);
r->password = *pwd_buf;
uint16_t logon_count,
uint16_t country_code,
uint16_t code_page,
- uint8_t nt_password_set,
uint8_t lm_password_set,
+ uint8_t nt_password_set,
uint8_t password_expired,
struct samr_CryptPasswordEx *pwd_buf)
{
logon_count,
country_code,
code_page,
- nt_password_set,
lm_password_set,
+ nt_password_set,
password_expired);
r->password = *pwd_buf;
/****************************************************************
****************************************************************/
-WERROR _netr_NETRSERVERGETTRUSTINFO(pipes_struct *p,
- struct netr_NETRSERVERGETTRUSTINFO *r)
+NTSTATUS _netr_ServerGetTrustInfo(pipes_struct *p,
+ struct netr_ServerGetTrustInfo *r)
{
p->rng_fault_state = true;
- return WERR_NOT_SUPPORTED;
+ return NT_STATUS_NOT_IMPLEMENTED;
}
return NT_STATUS_INVALID_HANDLE;
status = access_check_samr_function(acc_granted,
- SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS,
+ 0, /* Don't know the acc_bits yet */
"_samr_LookupRids");
if (!NT_STATUS_IS_OK(status)) {
return status;
return NT_STATUS_ACCOUNT_DISABLED;
}
- init_samr_user_info18(r, pdb_get_lanman_passwd(smbpass),
- pdb_get_nt_passwd(smbpass));
+ init_samr_user_info18(r,
+ pdb_get_lanman_passwd(smbpass),
+ pdb_get_nt_passwd(smbpass),
+ 0 /* FIXME */);
TALLOC_FREE(smbpass);
pdb_get_logon_count(pw),
0, /* country_code */
0, /* code_page */
- 0, /* nt_password_set */
0, /* lm_password_set */
+ 0, /* nt_password_set */
password_expired);
return NT_STATUS_OK;
return NT_STATUS_INVALID_HANDLE;
status = access_check_samr_function(info->acc_granted,
- SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT,
+ SAMR_USER_ACCESS_GET_ATTRIBUTES,
"_samr_QueryUserInfo");
if (!NT_STATUS_IS_OK(status)) {
return status;
set_user_info_18
********************************************************************/
-static bool set_user_info_18(struct samr_UserInfo18 *id18,
- struct samu *pwd)
+static NTSTATUS set_user_info_18(struct samr_UserInfo18 *id18,
+ TALLOC_CTX *mem_ctx,
+ DATA_BLOB *session_key,
+ struct samu *pwd)
{
if (id18 == NULL) {
DEBUG(2, ("set_user_info_18: id18 is NULL\n"));
- return False;
+ return NT_STATUS_INVALID_PARAMETER;
}
- if (!pdb_set_lanman_passwd (pwd, id18->lm_pwd.hash, PDB_CHANGED)) {
- return False;
+ if (id18->nt_pwd_active || id18->lm_pwd_active) {
+ if (!session_key->length) {
+ return NT_STATUS_NO_USER_SESSION_KEY;
+ }
}
- if (!pdb_set_nt_passwd (pwd, id18->nt_pwd.hash, PDB_CHANGED)) {
- return False;
+
+ if (id18->nt_pwd_active) {
+
+ DATA_BLOB in, out;
+
+ in = data_blob_const(id18->nt_pwd.hash, 16);
+ out = data_blob_talloc_zero(mem_ctx, 16);
+
+ sess_crypt_blob(&out, &in, session_key, false);
+
+ if (!pdb_set_nt_passwd(pwd, out.data, PDB_CHANGED)) {
+ return NT_STATUS_ACCESS_DENIED;
+ }
+
+ pdb_set_pass_last_set_time(pwd, time(NULL), PDB_CHANGED);
}
- if (!pdb_set_pass_last_set_time (pwd, time(NULL), PDB_CHANGED)) {
- return False;
+
+ if (id18->lm_pwd_active) {
+
+ DATA_BLOB in, out;
+
+ in = data_blob_const(id18->lm_pwd.hash, 16);
+ out = data_blob_talloc_zero(mem_ctx, 16);
+
+ sess_crypt_blob(&out, &in, session_key, false);
+
+ if (!pdb_set_lanman_passwd(pwd, out.data, PDB_CHANGED)) {
+ return NT_STATUS_ACCESS_DENIED;
+ }
+
+ pdb_set_pass_last_set_time(pwd, time(NULL), PDB_CHANGED);
}
- if(!NT_STATUS_IS_OK(pdb_update_sam_account(pwd))) {
- return False;
- }
+ if (id18->password_expired) {
+ pdb_set_pass_last_set_time(pwd, 0, PDB_CHANGED);
+ } else {
+ /* FIXME */
+ pdb_set_pass_last_set_time(pwd, time(NULL), PDB_CHANGED);
+ }
- return True;
+ return pdb_update_sam_account(pwd);
}
/*******************************************************************
return NT_STATUS_ACCESS_DENIED;
}
- if ((id23->info.fields_present & SAMR_FIELD_PASSWORD) ||
- (id23->info.fields_present & SAMR_FIELD_PASSWORD2)) {
+ if ((id23->info.fields_present & SAMR_FIELD_NT_PASSWORD_PRESENT) ||
+ (id23->info.fields_present & SAMR_FIELD_LM_PASSWORD_PRESENT)) {
DEBUG(5, ("Attempting administrator password change (level 23) for user %s\n",
pdb_get_username(pwd)));
case 18:
/* Used by AS/U JRA. */
- if (!set_user_info_18(&info->info18, pwd)) {
- status = NT_STATUS_ACCESS_DENIED;
- }
+ status = set_user_info_18(&info->info18,
+ p->mem_ctx,
+ &p->server_info->user_session_key,
+ pwd);
break;
case 20:
return (net_name[strlen(net_name) - 1] == '$') ? True : False;
}
+/*******************************************************************
+ Verify user is allowed to view share, access based enumeration
+********************************************************************/
+static bool is_enumeration_allowed(pipes_struct *p,
+ int snum)
+{
+ if (!lp_access_based_share_enum(snum))
+ return true;
+
+ return share_access_check(p->server_info->ptok, lp_servicename(snum),
+ FILE_READ_DATA);
+}
+
/*******************************************************************
Fill in a share info structure.
********************************************************************/
TALLOC_CTX *ctx = p->mem_ctx;
int i = 0;
int valid_share_count = 0;
+ bool *allowed = 0;
union srvsvc_NetShareCtr ctr;
uint32_t resume_handle = resume_handle_p ? *resume_handle_p : 0;
num_services = lp_numservices();
unbecome_root();
- /* Count the number of entries. */
- for (snum = 0; snum < num_services; snum++) {
- if (lp_browseable(snum) && lp_snum_ok(snum) && (all_shares || !is_hidden_share(snum)) ) {
- DEBUG(10, ("counting service %s\n", lp_servicename(snum)));
- num_entries++;
- } else {
- DEBUG(10, ("NOT counting service %s\n", lp_servicename(snum)));
- }
- }
+ allowed = TALLOC_ZERO_ARRAY(ctx, bool, num_services);
+ W_ERROR_HAVE_NO_MEMORY(allowed);
+
+ /* Count the number of entries. */
+ for (snum = 0; snum < num_services; snum++) {
+ if (lp_browseable(snum) && lp_snum_ok(snum) &&
+ is_enumeration_allowed(p, snum) &&
+ (all_shares || !is_hidden_share(snum)) ) {
+ DEBUG(10, ("counting service %s\n", lp_servicename(snum)));
+ allowed[snum] = true;
+ num_entries++;
+ } else {
+ DEBUG(10, ("NOT counting service %s\n", lp_servicename(snum)));
+ }
+ }
if (!num_entries || (resume_handle >= num_entries)) {
return WERR_OK;
W_ERROR_HAVE_NO_MEMORY(ctr.ctr0->array);
for (snum = 0; snum < num_services; snum++) {
- if (lp_browseable(snum) && lp_snum_ok(snum) && (all_shares || !is_hidden_share(snum)) &&
+ if (allowed[snum] &&
(resume_handle <= (i + valid_share_count++)) ) {
init_srv_share_info_0(p, &ctr.ctr0->array[i++], snum);
}
W_ERROR_HAVE_NO_MEMORY(ctr.ctr1->array);
for (snum = 0; snum < num_services; snum++) {
- if (lp_browseable(snum) && lp_snum_ok(snum) && (all_shares || !is_hidden_share(snum)) &&
+ if (allowed[snum] &&
(resume_handle <= (i + valid_share_count++)) ) {
init_srv_share_info_1(p, &ctr.ctr1->array[i++], snum);
}
W_ERROR_HAVE_NO_MEMORY(ctr.ctr2->array);
for (snum = 0; snum < num_services; snum++) {
- if (lp_browseable(snum) && lp_snum_ok(snum) && (all_shares || !is_hidden_share(snum)) &&
+ if (allowed[snum] &&
(resume_handle <= (i + valid_share_count++)) ) {
init_srv_share_info_2(p, &ctr.ctr2->array[i++], snum);
}
W_ERROR_HAVE_NO_MEMORY(ctr.ctr501->array);
for (snum = 0; snum < num_services; snum++) {
- if (lp_browseable(snum) && lp_snum_ok(snum) && (all_shares || !is_hidden_share(snum)) &&
+ if (allowed[snum] &&
(resume_handle <= (i + valid_share_count++)) ) {
init_srv_share_info_501(p, &ctr.ctr501->array[i++], snum);
}
W_ERROR_HAVE_NO_MEMORY(ctr.ctr502->array);
for (snum = 0; snum < num_services; snum++) {
- if (lp_browseable(snum) && lp_snum_ok(snum) && (all_shares || !is_hidden_share(snum)) &&
+ if (allowed[snum] &&
(resume_handle <= (i + valid_share_count++)) ) {
init_srv_share_info_502(p, &ctr.ctr502->array[i++], snum);
}
W_ERROR_HAVE_NO_MEMORY(ctr.ctr1004->array);
for (snum = 0; snum < num_services; snum++) {
- if (lp_browseable(snum) && lp_snum_ok(snum) && (all_shares || !is_hidden_share(snum)) &&
+ if (allowed[snum] &&
(resume_handle <= (i + valid_share_count++)) ) {
init_srv_share_info_1004(p, &ctr.ctr1004->array[i++], snum);
}
W_ERROR_HAVE_NO_MEMORY(ctr.ctr1005->array);
for (snum = 0; snum < num_services; snum++) {
- if (lp_browseable(snum) && lp_snum_ok(snum) && (all_shares || !is_hidden_share(snum)) &&
+ if (allowed[snum] &&
(resume_handle <= (i + valid_share_count++)) ) {
init_srv_share_info_1005(p, &ctr.ctr1005->array[i++], snum);
}
W_ERROR_HAVE_NO_MEMORY(ctr.ctr1006->array);
for (snum = 0; snum < num_services; snum++) {
- if (lp_browseable(snum) && lp_snum_ok(snum) && (all_shares || !is_hidden_share(snum)) &&
+ if (allowed[snum] &&
(resume_handle <= (i + valid_share_count++)) ) {
init_srv_share_info_1006(p, &ctr.ctr1006->array[i++], snum);
}
W_ERROR_HAVE_NO_MEMORY(ctr.ctr1007->array);
for (snum = 0; snum < num_services; snum++) {
- if (lp_browseable(snum) && lp_snum_ok(snum) && (all_shares || !is_hidden_share(snum)) &&
+ if (allowed[snum] &&
(resume_handle <= (i + valid_share_count++)) ) {
init_srv_share_info_1007(p, &ctr.ctr1007->array[i++], snum);
}
W_ERROR_HAVE_NO_MEMORY(ctr.ctr1501->array);
for (snum = 0; snum < num_services; snum++) {
- if (lp_browseable(snum) && lp_snum_ok(snum) && (all_shares || !is_hidden_share(snum)) &&
+ if (allowed[snum] &&
(resume_handle <= (i + valid_share_count++)) ) {
init_srv_share_info_1501(p, &ctr.ctr1501->array[i++], snum);
}
goto error_exit;
}
- nt_status = create_file(
+ nt_status = SMB_VFS_CREATE_FILE(
conn, /* conn */
NULL, /* req */
0, /* root_dir_fid */
r->in.file, /* fname */
+ CFF_DOS_PATH, /* create_file_flags */
FILE_READ_ATTRIBUTES, /* access_mask */
FILE_SHARE_READ|FILE_SHARE_WRITE, /* share_access */
FILE_OPEN, /* create_disposition*/
goto error_exit;
}
- nt_status = create_file(
+ nt_status = SMB_VFS_CREATE_FILE(
conn, /* conn */
NULL, /* req */
0, /* root_dir_fid */
r->in.file, /* fname */
+ CFF_DOS_PATH, /* create_file_flags */
FILE_WRITE_ATTRIBUTES, /* access_mask */
FILE_SHARE_READ|FILE_SHARE_WRITE, /* share_access */
FILE_OPEN, /* create_disposition*/
printf("Sequence No:\t%llu\n", (unsigned long long)info13->sequence_num);
printf("Domain Create Time:\t%s\n",
http_timestring(talloc_tos(), nt_time_to_unix(info13->domain_create_time)));
- printf("Unknown1:\t%d\n", info13->unknown1);
- printf("Unknown2:\t%d\n", info13->unknown2);
-
+ printf("Sequence No at last promotion:\t%llu\n",
+ (unsigned long long)info13->modified_count_at_last_promotion);
}
static void display_sam_info_1(struct samr_DispEntryGeneral *r)
printf("Account: %s\n", r->account_name.string);
}
+/****************************************************************************
+ ****************************************************************************/
+
+static NTSTATUS get_domain_handle(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ const char *sam,
+ struct policy_handle *connect_pol,
+ uint32_t access_mask,
+ struct dom_sid *_domain_sid,
+ struct policy_handle *domain_pol)
+{
+
+ if (StrCaseCmp(sam, "domain") == 0) {
+ return rpccli_samr_OpenDomain(cli, mem_ctx,
+ connect_pol,
+ access_mask,
+ _domain_sid,
+ domain_pol);
+ } else if (StrCaseCmp(sam, "builtin") == 0) {
+ return rpccli_samr_OpenDomain(cli, mem_ctx,
+ connect_pol,
+ access_mask,
+ CONST_DISCARD(struct dom_sid2 *, &global_sid_Builtin),
+ domain_pol);
+ }
+
+ return NT_STATUS_INVALID_PARAMETER;
+}
+
/**********************************************************************
* Query user information
*/
if (!NT_STATUS_IS_OK(result))
goto done;
- if (StrCaseCmp(argv[1], "domain")==0)
- result = rpccli_samr_OpenDomain(cli, mem_ctx,
- &connect_pol,
- access_mask,
- &domain_sid, &domain_pol);
- else if (StrCaseCmp(argv[1], "builtin")==0)
- result = rpccli_samr_OpenDomain(cli, mem_ctx,
- &connect_pol,
- access_mask,
- CONST_DISCARD(struct dom_sid2 *, &global_sid_Builtin),
- &domain_pol);
- else {
- printf("Usage: %s builtin|domain sid1 sid2 ...\n", argv[0]);
- return NT_STATUS_INVALID_PARAMETER;
- }
+ result = get_domain_handle(cli, mem_ctx, argv[1],
+ &connect_pol,
+ access_mask,
+ &domain_sid,
+ &domain_pol);
if (!NT_STATUS_IS_OK(result))
goto done;
/* Get domain policy handle */
- if (StrCaseCmp(argv[1], "domain")==0)
- result = rpccli_samr_OpenDomain(cli, mem_ctx,
- &connect_pol,
- access_mask,
- &domain_sid,
- &domain_pol);
- else if (StrCaseCmp(argv[1], "builtin")==0)
- result = rpccli_samr_OpenDomain(cli, mem_ctx,
- &connect_pol,
- access_mask,
- CONST_DISCARD(struct dom_sid2 *, &global_sid_Builtin),
- &domain_pol);
- else
- return NT_STATUS_OK;
+ result = get_domain_handle(cli, mem_ctx, argv[1],
+ &connect_pol,
+ access_mask,
+ &domain_sid,
+ &domain_pol);
if (!NT_STATUS_IS_OK(result))
goto done;
/* Open handle on domain */
- if (StrCaseCmp(argv[1], "domain")==0)
- result = rpccli_samr_OpenDomain(cli, mem_ctx,
- &connect_pol,
- MAXIMUM_ALLOWED_ACCESS,
- &domain_sid,
- &domain_pol);
- else if (StrCaseCmp(argv[1], "builtin")==0)
- result = rpccli_samr_OpenDomain(cli, mem_ctx,
- &connect_pol,
- MAXIMUM_ALLOWED_ACCESS,
- CONST_DISCARD(struct dom_sid2 *, &global_sid_Builtin),
- &domain_pol);
- else
- return NT_STATUS_OK;
+ result = get_domain_handle(cli, mem_ctx, argv[1],
+ &connect_pol,
+ MAXIMUM_ALLOWED_ACCESS,
+ &domain_sid,
+ &domain_pol);
if (!NT_STATUS_IS_OK(result))
goto done;
/* Open handle on domain */
- if (strequal(argv[1], "domain")) {
-
- result = rpccli_samr_OpenDomain(cli, mem_ctx,
- &connect_pol,
- SEC_FLAG_MAXIMUM_ALLOWED,
- &domain_sid,
- &domain_pol);
-
- } else if (strequal(argv[1], "builtin")) {
-
- result = rpccli_samr_OpenDomain(cli, mem_ctx,
- &connect_pol,
- SEC_FLAG_MAXIMUM_ALLOWED,
- CONST_DISCARD(struct dom_sid2 *, &global_sid_Builtin),
- &domain_pol);
-
- } else {
- return NT_STATUS_OK;
- }
+ result = get_domain_handle(cli, mem_ctx, argv[1],
+ &connect_pol,
+ SEC_FLAG_MAXIMUM_ALLOWED,
+ &domain_sid,
+ &domain_pol);
if (!NT_STATUS_IS_OK(result)) {
goto done;
/* Open handle on domain */
- if (StrCaseCmp(argv[1], "domain")==0)
- result = rpccli_samr_OpenDomain(cli, mem_ctx,
- &connect_pol,
- MAXIMUM_ALLOWED_ACCESS,
- &domain_sid,
- &domain_pol);
- else if (StrCaseCmp(argv[1], "builtin")==0)
- result = rpccli_samr_OpenDomain(cli, mem_ctx,
- &connect_pol,
- MAXIMUM_ALLOWED_ACCESS,
- CONST_DISCARD(struct dom_sid2 *, &global_sid_Builtin),
- &domain_pol);
- else
- return NT_STATUS_INVALID_PARAMETER;
+ result = get_domain_handle(cli, mem_ctx, argv[1],
+ &connect_pol,
+ MAXIMUM_ALLOWED_ACCESS,
+ &domain_sid,
+ &domain_pol);
if (!NT_STATUS_IS_OK(result))
goto done;
if (!NT_STATUS_IS_OK(result))
goto done;
- if (StrCaseCmp(argv[1], "domain")==0)
- result = rpccli_samr_OpenDomain(cli, mem_ctx,
- &connect_pol,
- MAXIMUM_ALLOWED_ACCESS,
- &domain_sid,
- &domain_pol);
- else if (StrCaseCmp(argv[1], "builtin")==0)
- result = rpccli_samr_OpenDomain(cli, mem_ctx,
- &connect_pol,
- MAXIMUM_ALLOWED_ACCESS,
- CONST_DISCARD(struct dom_sid2 *, &global_sid_Builtin),
- &domain_pol);
- else
- return NT_STATUS_OK;
+ result = get_domain_handle(cli, mem_ctx, argv[1],
+ &connect_pol,
+ MAXIMUM_ALLOWED_ACCESS,
+ &domain_sid,
+ &domain_pol);
if (!NT_STATUS_IS_OK(result))
goto done;
if (!NT_STATUS_IS_OK(result))
goto done;
- if (StrCaseCmp(argv[1], "domain")==0)
- result = rpccli_samr_OpenDomain(cli, mem_ctx,
- &connect_pol,
- MAXIMUM_ALLOWED_ACCESS,
- &domain_sid,
- &domain_pol);
- else if (StrCaseCmp(argv[1], "builtin")==0)
- result = rpccli_samr_OpenDomain(cli, mem_ctx,
- &connect_pol,
- MAXIMUM_ALLOWED_ACCESS,
- CONST_DISCARD(struct dom_sid2 *, &global_sid_Builtin),
- &domain_pol);
- else
- return NT_STATUS_OK;
+ result = get_domain_handle(cli, mem_ctx, argv[1],
+ &connect_pol,
+ MAXIMUM_ALLOWED_ACCESS,
+ &domain_sid,
+ &domain_pol);
if (!NT_STATUS_IS_OK(result))
goto done;
return result;
}
+static NTSTATUS cmd_samr_setuserinfo_int(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ int argc, const char **argv,
+ int opcode)
+{
+ POLICY_HND connect_pol, domain_pol, user_pol;
+ NTSTATUS status = NT_STATUS_UNSUCCESSFUL;
+ const char *user, *param;
+ uint32_t access_mask = MAXIMUM_ALLOWED_ACCESS;
+ uint32_t level;
+ uint32_t user_rid;
+ union samr_UserInfo info;
+ struct samr_CryptPassword pwd_buf;
+ struct samr_CryptPasswordEx pwd_buf_ex;
+ uint8_t nt_hash[16];
+ uint8_t lm_hash[16];
+ DATA_BLOB session_key;
+ uint8_t password_expired = 0;
+
+ if (argc < 4) {
+ printf("Usage: %s username level password [password_expired]\n",
+ argv[0]);
+ return NT_STATUS_INVALID_PARAMETER;
+ }
+
+ user = argv[1];
+ level = atoi(argv[2]);
+ param = argv[3];
+
+ if (argc >= 5) {
+ password_expired = atoi(argv[4]);
+ }
+
+ status = cli_get_session_key(mem_ctx, cli, &session_key);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ init_samr_CryptPassword(param, &session_key, &pwd_buf);
+ init_samr_CryptPasswordEx(param, &session_key, &pwd_buf_ex);
+ nt_lm_owf_gen(param, nt_hash, lm_hash);
+
+ switch (level) {
+ case 18:
+ {
+ DATA_BLOB in,out;
+ in = data_blob_const(nt_hash, 16);
+ out = data_blob_talloc_zero(mem_ctx, 16);
+ sess_crypt_blob(&out, &in, &session_key, true);
+ memcpy(nt_hash, out.data, out.length);
+ }
+ {
+ DATA_BLOB in,out;
+ in = data_blob_const(lm_hash, 16);
+ out = data_blob_talloc_zero(mem_ctx, 16);
+ sess_crypt_blob(&out, &in, &session_key, true);
+ memcpy(lm_hash, out.data, out.length);
+ }
+
+ init_samr_user_info18(&info.info18,
+ lm_hash,
+ nt_hash,
+ password_expired);
+ break;
+ case 21:
+ ZERO_STRUCT(info.info21);
+
+ info.info21.fields_present = SAMR_FIELD_NT_PASSWORD_PRESENT |
+ SAMR_FIELD_LM_PASSWORD_PRESENT;
+ if (argc >= 5) {
+ info.info21.fields_present |= SAMR_FIELD_EXPIRED_FLAG;
+ info.info21.password_expired = password_expired;
+ }
+
+ info.info21.lm_password_set = true;
+ info.info21.lm_owf_password.length = 16;
+ info.info21.lm_owf_password.size = 16;
+
+ info.info21.nt_password_set = true;
+ info.info21.nt_owf_password.length = 16;
+ info.info21.nt_owf_password.size = 16;
+
+ {
+ DATA_BLOB in,out;
+ in = data_blob_const(nt_hash, 16);
+ out = data_blob_talloc_zero(mem_ctx, 16);
+ sess_crypt_blob(&out, &in, &session_key, true);
+ info.info21.nt_owf_password.array =
+ (uint16_t *)talloc_memdup(mem_ctx, out.data, 16);
+ }
+ {
+ DATA_BLOB in,out;
+ in = data_blob_const(lm_hash, 16);
+ out = data_blob_talloc_zero(mem_ctx, 16);
+ sess_crypt_blob(&out, &in, &session_key, true);
+ info.info21.lm_owf_password.array =
+ (uint16_t *)talloc_memdup(mem_ctx, out.data, 16);
+ }
+
+ break;
+ case 23:
+ ZERO_STRUCT(info.info23);
+
+ info.info23.info.fields_present = SAMR_FIELD_NT_PASSWORD_PRESENT |
+ SAMR_FIELD_LM_PASSWORD_PRESENT;
+ if (argc >= 5) {
+ info.info23.info.fields_present |= SAMR_FIELD_EXPIRED_FLAG;
+ info.info23.info.password_expired = password_expired;
+ }
+
+ info.info23.password = pwd_buf;
+
+ break;
+ case 24:
+ init_samr_user_info24(&info.info24,
+ &pwd_buf,
+ password_expired);
+ break;
+ case 25:
+ ZERO_STRUCT(info.info25);
+
+ info.info25.info.fields_present = SAMR_FIELD_NT_PASSWORD_PRESENT |
+ SAMR_FIELD_LM_PASSWORD_PRESENT;
+ if (argc >= 5) {
+ info.info25.info.fields_present |= SAMR_FIELD_EXPIRED_FLAG;
+ info.info25.info.password_expired = password_expired;
+ }
+
+ info.info25.password = pwd_buf_ex;
+
+ break;
+ case 26:
+ init_samr_user_info26(&info.info26,
+ &pwd_buf_ex,
+ password_expired);
+ break;
+ default:
+ return NT_STATUS_INVALID_INFO_CLASS;
+ }
+
+ /* Get sam policy handle */
+
+ status = rpccli_try_samr_connects(cli, mem_ctx,
+ MAXIMUM_ALLOWED_ACCESS,
+ &connect_pol);
+
+ if (!NT_STATUS_IS_OK(status))
+ goto done;
+
+ /* Get domain policy handle */
+
+ status = rpccli_samr_OpenDomain(cli, mem_ctx,
+ &connect_pol,
+ access_mask,
+ &domain_sid,
+ &domain_pol);
+
+ if (!NT_STATUS_IS_OK(status))
+ goto done;
+
+ user_rid = strtol(user, NULL, 0);
+ if (user_rid) {
+ status = rpccli_samr_OpenUser(cli, mem_ctx,
+ &domain_pol,
+ access_mask,
+ user_rid,
+ &user_pol);
+ }
+
+ if (NT_STATUS_EQUAL(status, NT_STATUS_NO_SUCH_USER) ||
+ (user_rid == 0)) {
+
+ /* Probably this was a user name, try lookupnames */
+ struct samr_Ids rids, types;
+ struct lsa_String lsa_acct_name;
+
+ init_lsa_String(&lsa_acct_name, user);
+
+ status = rpccli_samr_LookupNames(cli, mem_ctx,
+ &domain_pol,
+ 1,
+ &lsa_acct_name,
+ &rids,
+ &types);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ status = rpccli_samr_OpenUser(cli, mem_ctx,
+ &domain_pol,
+ access_mask,
+ rids.ids[0],
+ &user_pol);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+ }
+
+ switch (opcode) {
+ case NDR_SAMR_SETUSERINFO:
+ status = rpccli_samr_SetUserInfo(cli, mem_ctx,
+ &user_pol,
+ level,
+ &info);
+ break;
+ case NDR_SAMR_SETUSERINFO2:
+ status = rpccli_samr_SetUserInfo2(cli, mem_ctx,
+ &user_pol,
+ level,
+ &info);
+ break;
+ default:
+ return NT_STATUS_INVALID_PARAMETER;
+ }
+
+ done:
+ return status;
+}
+
+static NTSTATUS cmd_samr_setuserinfo(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ int argc, const char **argv)
+{
+ return cmd_samr_setuserinfo_int(cli, mem_ctx, argc, argv,
+ NDR_SAMR_SETUSERINFO);
+}
+
+static NTSTATUS cmd_samr_setuserinfo2(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ int argc, const char **argv)
+{
+ return cmd_samr_setuserinfo_int(cli, mem_ctx, argc, argv,
+ NDR_SAMR_SETUSERINFO2);
+}
+
static NTSTATUS cmd_samr_get_dispinfo_idx(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
int argc, const char **argv)
{ "chgpasswd2", RPC_RTYPE_NTSTATUS, cmd_samr_chgpasswd2, NULL, &ndr_table_samr.syntax_id, NULL, "Change user password", "" },
{ "chgpasswd3", RPC_RTYPE_NTSTATUS, cmd_samr_chgpasswd3, NULL, &ndr_table_samr.syntax_id, NULL, "Change user password", "" },
{ "getdispinfoidx", RPC_RTYPE_NTSTATUS, cmd_samr_get_dispinfo_idx, NULL, &ndr_table_samr.syntax_id, NULL, "Get Display Information Index", "" },
+ { "setuserinfo", RPC_RTYPE_NTSTATUS, cmd_samr_setuserinfo, NULL, &ndr_table_samr.syntax_id, NULL, "Set user info", "" },
+ { "setuserinfo2", RPC_RTYPE_NTSTATUS, cmd_samr_setuserinfo2, NULL, &ndr_table_samr.syntax_id, NULL, "Set user info2", "" },
{ NULL }
};
/****************************************************************************
****************************************************************************/
+extern struct user_auth_info *rpcclient_auth_info;
+
static WERROR cmd_spoolss_printercmp(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx, int argc,
const char **argv)
nt_status = cli_full_connection(&cli_server2, global_myname(), servername2,
NULL, 0,
"IPC$", "IPC",
- get_cmdline_auth_info_username(),
+ get_cmdline_auth_info_username(rpcclient_auth_info),
lp_workgroup(),
- get_cmdline_auth_info_password(),
- get_cmdline_auth_info_use_kerberos() ? CLI_FULL_CONNECTION_USE_KERBEROS : 0,
- get_cmdline_auth_info_signing_state(), NULL);
+ get_cmdline_auth_info_password(rpcclient_auth_info),
+ get_cmdline_auth_info_use_kerberos(rpcclient_auth_info) ? CLI_FULL_CONNECTION_USE_KERBEROS : 0,
+ get_cmdline_auth_info_signing_state(rpcclient_auth_info), NULL);
if ( !NT_STATUS_IS_OK(nt_status) )
return WERR_GENERAL_FAILURE;
static enum pipe_auth_level pipe_default_auth_level = PIPE_AUTH_LEVEL_NONE;
static unsigned int timeout = 0;
+struct user_auth_info *rpcclient_auth_info;
+
/* List to hold groups of commands.
*
* Commands are defined in a list of arrays: arrays are easy to
* @param cmd Command to run, as a single string.
**/
static NTSTATUS do_cmd(struct cli_state *cli,
+ struct user_auth_info *auth_info,
struct cmd_set *cmd_entry,
int argc, char **argv)
{
cli, cmd_entry->interface,
pipe_default_auth_level,
lp_workgroup(),
- get_cmdline_auth_info_username(),
- get_cmdline_auth_info_password(),
+ get_cmdline_auth_info_username(auth_info),
+ get_cmdline_auth_info_password(auth_info),
&cmd_entry->rpc_pipe);
break;
case PIPE_AUTH_TYPE_NTLMSSP:
cli, cmd_entry->interface,
pipe_default_auth_level,
lp_workgroup(),
- get_cmdline_auth_info_username(),
- get_cmdline_auth_info_password(),
+ get_cmdline_auth_info_username(auth_info),
+ get_cmdline_auth_info_password(auth_info),
&cmd_entry->rpc_pipe);
break;
case PIPE_AUTH_TYPE_SCHANNEL:
*
* @returns The NTSTATUS from running the command.
**/
-static NTSTATUS process_cmd(struct cli_state *cli, char *cmd)
+static NTSTATUS process_cmd(struct user_auth_info *auth_info,
+ struct cli_state *cli, char *cmd)
{
struct cmd_list *temp_list;
NTSTATUS result = NT_STATUS_OK;
goto out_free;
}
- result = do_cmd(cli, temp_set, argc, argv);
+ result = do_cmd(cli, auth_info, temp_set,
+ argc, argv);
goto out_free;
}
load_case_tables();
- zero_addr(&server_ss);
+ zero_sockaddr(&server_ss);
setlinebuf(stdout);
facilities. See lib/debug.c */
setup_logging("rpcclient", True);
+ rpcclient_auth_info = user_auth_info_init(frame);
+ if (rpcclient_auth_info == NULL) {
+ exit(1);
+ }
+ popt_common_set_auth_info(rpcclient_auth_info);
+
/* Parse options */
pc = poptGetContext("rpcclient", argc, (const char **) argv,
* from stdin if necessary
*/
- if (get_cmdline_auth_info_use_machine_account() &&
- !set_cmdline_auth_info_machine_account_creds()) {
+ if (get_cmdline_auth_info_use_machine_account(rpcclient_auth_info) &&
+ !set_cmdline_auth_info_machine_account_creds(rpcclient_auth_info)) {
result = 1;
goto done;
}
- if (!get_cmdline_auth_info_got_pass()) {
+ if (!get_cmdline_auth_info_got_pass(rpcclient_auth_info)) {
char *pass = getpass("Password:");
if (pass) {
- set_cmdline_auth_info_password(pass);
+ set_cmdline_auth_info_password(rpcclient_auth_info, pass);
}
}
server += 2;
}
- if (get_cmdline_auth_info_use_kerberos()) {
+ if (get_cmdline_auth_info_use_kerberos(rpcclient_auth_info)) {
flags |= CLI_FULL_CONNECTION_USE_KERBEROS |
CLI_FULL_CONNECTION_FALLBACK_AFTER_KERBEROS;
}
nt_status = cli_full_connection(&cli, global_myname(), server,
opt_ipaddr ? &server_ss : NULL, opt_port,
"IPC$", "IPC",
- get_cmdline_auth_info_username(),
+ get_cmdline_auth_info_username(rpcclient_auth_info),
lp_workgroup(),
- get_cmdline_auth_info_password(),
+ get_cmdline_auth_info_password(rpcclient_auth_info),
flags,
- get_cmdline_auth_info_signing_state(),NULL);
+ get_cmdline_auth_info_signing_state(rpcclient_auth_info),
+ NULL);
if (!NT_STATUS_IS_OK(nt_status)) {
DEBUG(0,("Cannot connect to server. Error was %s\n", nt_errstr(nt_status)));
goto done;
}
- if (get_cmdline_auth_info_smb_encrypt()) {
+ if (get_cmdline_auth_info_smb_encrypt(rpcclient_auth_info)) {
nt_status = cli_cm_force_encryption(cli,
- get_cmdline_auth_info_username(),
- get_cmdline_auth_info_password(),
+ get_cmdline_auth_info_username(rpcclient_auth_info),
+ get_cmdline_auth_info_password(rpcclient_auth_info),
lp_workgroup(),
"IPC$");
if (!NT_STATUS_IS_OK(nt_status)) {
result = 0;
while((cmd=next_command(&p)) != NULL) {
- NTSTATUS cmd_result = process_cmd(cli, cmd);
+ NTSTATUS cmd_result = process_cmd(rpcclient_auth_info, cli, cmd);
SAFE_FREE(cmd);
result = NT_STATUS_IS_ERR(cmd_result);
}
break;
if (line[0] != '\n')
- process_cmd(cli, line);
+ process_cmd(rpcclient_auth_info, cli, line);
SAFE_FREE(line);
}
pythonmods:: $(PYTHON_PYS) $(PYTHON_SO)
-all:: bin/samba4 bin/regpatch4 bin/regdiff4 bin/regshell4 bin/regtree4 bin/smbclient4
+all:: bin/samba4 bin/regpatch4 bin/regdiff4 bin/regshell4 bin/regtree4 bin/smbclient4 pythonmods setup
torture:: bin/smbtorture4
everything:: $(patsubst %,%4,$(BINARIES))
+setup:
+ @ln -sf ../source4/setup setup
SELFTEST4 = $(LD_LIBPATH_OVERRIDE) $(PERL) $(selftestdir)/selftest.pl --prefix=st4 \
--builddir=$(builddir) --srcdir=$(samba4srcdir) \
fsp, NT_STATUS_OK);
}
+ status = fd_close(fsp);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ DEBUG(0, ("Could not close dir! fname=%s, fd=%d, err=%d=%s\n",
+ fsp->fsp_name, fsp->fh->fd, errno, strerror(errno)));
+ }
+
/*
* Do the code common to files and directories.
*/
Convert dos attributes (FILE_ATTRIBUTE_*) to dos stat flags (UF_*)
****************************************************************************/
-static int dos_attributes_to_stat_dos_flags(uint32_t dosmode)
+int dos_attributes_to_stat_dos_flags(uint32_t dosmode)
{
uint32_t dos_stat_flags = 0;
#include "includes.h"
-static bool scan_directory(connection_struct *conn, const char *path,
- char *name, char **found_name);
static NTSTATUS build_stream_path(TALLOC_CTX *mem_ctx,
connection_struct *conn,
const char *orig_path,
*/
if (name_has_wildcard ||
- !scan_directory(conn, dirpath,
- start, &found_name)) {
+ (SMB_VFS_GET_REAL_FILENAME(
+ conn, dirpath, start,
+ talloc_tos(), &found_name) == -1)) {
char *unmangled;
if (end) {
If the name looks like a mangled name then try via the mangling functions
****************************************************************************/
-static bool scan_directory(connection_struct *conn, const char *path,
- char *name, char **found_name)
+int get_real_filename(connection_struct *conn, const char *path,
+ const char *name, TALLOC_CTX *mem_ctx,
+ char **found_name)
{
struct smb_Dir *cur_dir;
const char *dname;
bool mangled;
char *unmangled_name = NULL;
long curpos;
- TALLOC_CTX *ctx = talloc_tos();
mangled = mangle_is_mangled(name, conn->params);
*/
if (!mangled && !(conn->fs_capabilities & FILE_CASE_SENSITIVE_SEARCH)) {
errno = ENOENT;
- return False;
+ return -1;
}
/*
*/
if (mangled && !conn->case_sensitive) {
- mangled = !mangle_lookup_name_from_8_3(ctx,
- name,
- &unmangled_name,
- conn->params);
+ mangled = !mangle_lookup_name_from_8_3(talloc_tos(), name,
+ &unmangled_name,
+ conn->params);
if (!mangled) {
/* Name is now unmangled. */
name = unmangled_name;
if (!(cur_dir = OpenDir(talloc_tos(), conn, path, NULL, 0))) {
DEBUG(3,("scan dir didn't open dir [%s]\n",path));
TALLOC_FREE(unmangled_name);
- return(False);
+ return -1;
}
/* now scan for matching names */
if ((mangled && mangled_equal(name,dname,conn->params)) ||
fname_equal(name, dname, conn->case_sensitive)) {
/* we've found the file, change it's name and return */
- *found_name = talloc_strdup(ctx,dname);
+ *found_name = talloc_strdup(mem_ctx, dname);
TALLOC_FREE(unmangled_name);
TALLOC_FREE(cur_dir);
if (!*found_name) {
errno = ENOMEM;
- return False;
+ return -1;
}
- return(True);
+ return 0;
}
}
TALLOC_FREE(unmangled_name);
TALLOC_FREE(cur_dir);
errno = ENOENT;
- return False;
+ return -1;
}
static NTSTATUS build_stream_path(TALLOC_CTX *mem_ctx,
? BATCH_OPLOCK : 0;
}
- status = create_file(conn, req, root_dir_fid, fname,
- access_mask, share_access, create_disposition,
- create_options, file_attributes, oplock_request,
- allocation_size, NULL, NULL, &fsp, &info, &sbuf);
+ status = SMB_VFS_CREATE_FILE(
+ conn, /* conn */
+ req, /* req */
+ root_dir_fid, /* root_dir_fid */
+ fname, /* fname */
+ CFF_DOS_PATH, /* create_file_flags */
+ access_mask, /* access_mask */
+ share_access, /* share_access */
+ create_disposition, /* create_disposition*/
+ create_options, /* create_options */
+ file_attributes, /* file_attributes */
+ oplock_request, /* oplock_request */
+ allocation_size, /* allocation_size */
+ NULL, /* sd */
+ NULL, /* ea_list */
+ &fsp, /* result */
+ &info, /* pinfo */
+ &sbuf); /* psbuf */
if (!NT_STATUS_IS_OK(status)) {
if (open_was_deferred(req->mid)) {
? BATCH_OPLOCK : 0;
}
- status = create_file(conn, req, root_dir_fid, fname,
- access_mask, share_access, create_disposition,
- create_options, file_attributes, oplock_request,
- allocation_size, sd, ea_list, &fsp, &info, &sbuf);
+ status = SMB_VFS_CREATE_FILE(
+ conn, /* conn */
+ req, /* req */
+ root_dir_fid, /* root_dir_fid */
+ fname, /* fname */
+ CFF_DOS_PATH, /* create_file_flags */
+ access_mask, /* access_mask */
+ share_access, /* share_access */
+ create_disposition, /* create_disposition*/
+ create_options, /* create_options */
+ file_attributes, /* file_attributes */
+ oplock_request, /* oplock_request */
+ allocation_size, /* allocation_size */
+ sd, /* sd */
+ ea_list, /* ea_list */
+ &fsp, /* result */
+ &info, /* pinfo */
+ &sbuf); /* psbuf */
if(!NT_STATUS_IS_OK(status)) {
if (open_was_deferred(req->mid)) {
DEBUG(10,("copy_internals: doing file copy %s to %s\n",
oldname, newname));
- status = open_file_ntcreate(conn, req, oldname, &sbuf1,
- FILE_READ_DATA, /* Read-only. */
- FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE,
- FILE_OPEN,
- 0, /* No create options. */
- FILE_ATTRIBUTE_NORMAL,
- NO_OPLOCK,
- &info, &fsp1);
+ status = SMB_VFS_CREATE_FILE(
+ conn, /* conn */
+ req, /* req */
+ 0, /* root_dir_fid */
+ oldname, /* fname */
+ 0, /* create_file_flags */
+ FILE_READ_DATA, /* access_mask */
+ (FILE_SHARE_READ | FILE_SHARE_WRITE | /* share_access */
+ FILE_SHARE_DELETE),
+ FILE_OPEN, /* create_disposition*/
+ 0, /* create_options */
+ FILE_ATTRIBUTE_NORMAL, /* file_attributes */
+ NO_OPLOCK, /* oplock_request */
+ 0, /* allocation_size */
+ NULL, /* sd */
+ NULL, /* ea_list */
+ &fsp1, /* result */
+ &info, /* pinfo */
+ &sbuf1); /* psbuf */
if (!NT_STATUS_IS_OK(status)) {
return status;
}
- status = open_file_ntcreate(conn, req, newname, &sbuf2,
- FILE_WRITE_DATA, /* Read-only. */
- FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE,
- FILE_CREATE,
- 0, /* No create options. */
- fattr,
- NO_OPLOCK,
- &info, &fsp2);
+ status = SMB_VFS_CREATE_FILE(
+ conn, /* conn */
+ req, /* req */
+ 0, /* root_dir_fid */
+ newname, /* fname */
+ 0, /* create_file_flags */
+ FILE_WRITE_DATA, /* access_mask */
+ (FILE_SHARE_READ | FILE_SHARE_WRITE | /* share_access */
+ FILE_SHARE_DELETE),
+ FILE_CREATE, /* create_disposition*/
+ 0, /* create_options */
+ fattr, /* file_attributes */
+ NO_OPLOCK, /* oplock_request */
+ 0, /* allocation_size */
+ NULL, /* sd */
+ NULL, /* ea_list */
+ &fsp2, /* result */
+ &info, /* pinfo */
+ &sbuf2); /* psbuf */
if (!NT_STATUS_IS_OK(status)) {
close_file(NULL, fsp1, ERROR_CLOSE);
struct file_id id;
};
+static NTSTATUS create_file_unixpath(connection_struct *conn,
+ struct smb_request *req,
+ const char *fname,
+ uint32_t access_mask,
+ uint32_t share_access,
+ uint32_t create_disposition,
+ uint32_t create_options,
+ uint32_t file_attributes,
+ uint32_t oplock_request,
+ uint64_t allocation_size,
+ struct security_descriptor *sd,
+ struct ea_list *ea_list,
+
+ files_struct **result,
+ int *pinfo,
+ SMB_STRUCT_STAT *psbuf);
+
/****************************************************************************
SMB1 file varient of se_access_check. Never test FILE_READ_ATTRIBUTES.
****************************************************************************/
Do this by fd if possible.
****************************************************************************/
-static void change_file_owner_to_parent(connection_struct *conn,
+void change_file_owner_to_parent(connection_struct *conn,
const char *inherit_from_dir,
files_struct *fsp)
{
(unsigned int)parent_st.st_uid ));
}
-static NTSTATUS change_dir_owner_to_parent(connection_struct *conn,
+NTSTATUS change_dir_owner_to_parent(connection_struct *conn,
const char *inherit_from_dir,
const char *fname,
SMB_STRUCT_STAT *psbuf)
Return True if the filename is one of the special executable types.
********************************************************************/
-static bool is_executable(const char *fname)
+bool is_executable(const char *fname)
{
if ((fname = strrchr_m(fname,'.'))) {
if (strequal(fname,".com") ||
}
#endif
-static bool is_stat_open(uint32 access_mask)
+bool is_stat_open(uint32 access_mask)
{
return (access_mask &&
((access_mask & ~(SYNCHRONIZE_ACCESS| FILE_READ_ATTRIBUTES|
return True;
}
-static bool request_timed_out(struct timeval request_time,
- struct timeval timeout)
+bool request_timed_out(struct timeval request_time,
+ struct timeval timeout)
{
struct timeval now, end_time;
GetTimeOfDay(&now);
On overwrite open ensure that the attributes match.
****************************************************************************/
-static bool open_match_attributes(connection_struct *conn,
- const char *path,
- uint32 old_dos_attr,
- uint32 new_dos_attr,
- mode_t existing_unx_mode,
- mode_t new_unx_mode,
- mode_t *returned_unx_mode)
+bool open_match_attributes(connection_struct *conn,
+ const char *path,
+ uint32 old_dos_attr,
+ uint32 new_dos_attr,
+ mode_t existing_unx_mode,
+ mode_t new_unx_mode,
+ mode_t *returned_unx_mode)
{
uint32 noarch_old_dos_attr, noarch_new_dos_attr;
Try and find a duplicated file handle.
****************************************************************************/
-static NTSTATUS fcb_or_dos_open(struct smb_request *req,
+NTSTATUS fcb_or_dos_open(struct smb_request *req,
connection_struct *conn,
files_struct *fsp_to_dup_into,
const char *fname,
uint32 access_mask;
uint32 share_mode;
uint32 create_disposition;
- uint32 create_options = 0;
+ uint32 create_options = FILE_NON_DIRECTORY_FILE;
DEBUG(10,("map_open_params_to_ntcreate: fname = %s, deny_mode = 0x%x, "
"open_func = 0x%x\n",
Open a file with a share mode. Passed in an already created files_struct *.
****************************************************************************/
-static NTSTATUS open_file_ntcreate_internal(connection_struct *conn,
+static NTSTATUS open_file_ntcreate(connection_struct *conn,
struct smb_request *req,
const char *fname,
SMB_STRUCT_STAT *psbuf,
}
set_share_mode(lck, fsp, conn->server_info->utok.uid, 0,
- fsp->oplock_type, new_file_created);
+ fsp->oplock_type);
/* Handle strange delete on close create semantics. */
- if ((create_options & FILE_DELETE_ON_CLOSE)
- && (((conn->fs_capabilities & FILE_NAMED_STREAMS)
- && is_ntfs_stream_name(fname))
- || can_set_initial_delete_on_close(lck))) {
+ if (create_options & FILE_DELETE_ON_CLOSE) {
+
status = can_set_delete_on_close(fsp, True, new_dos_attributes);
if (!NT_STATUS_IS_OK(status)) {
return NT_STATUS_OK;
}
-/****************************************************************************
- Open a file with a share mode.
-****************************************************************************/
-
-NTSTATUS open_file_ntcreate(connection_struct *conn,
- struct smb_request *req,
- const char *fname,
- SMB_STRUCT_STAT *psbuf,
- uint32 access_mask, /* access bits (FILE_READ_DATA etc.) */
- uint32 share_access, /* share constants (FILE_SHARE_READ etc) */
- uint32 create_disposition, /* FILE_OPEN_IF etc. */
- uint32 create_options, /* options such as delete on close. */
- uint32 new_dos_attributes, /* attributes used for new file. */
- int oplock_request, /* internal Samba oplock codes. */
- /* Information (FILE_EXISTS etc.) */
- int *pinfo,
- files_struct **result)
-{
- NTSTATUS status;
- files_struct *fsp = NULL;
-
- *result = NULL;
-
- status = file_new(req, conn, &fsp);
- if(!NT_STATUS_IS_OK(status)) {
- return status;
- }
-
- status = open_file_ntcreate_internal(conn,
- req,
- fname,
- psbuf,
- access_mask,
- share_access,
- create_disposition,
- create_options,
- new_dos_attributes,
- oplock_request,
- pinfo,
- fsp);
-
- if(!NT_STATUS_IS_OK(status)) {
- file_free(req, fsp);
- return status;
- }
-
- *result = fsp;
- return status;
-}
/****************************************************************************
Open a file for for write to ensure that we can fchmod it.
return status;
}
- /* note! we must use a non-zero desired access or we don't get
- a real file descriptor. Oh what a twisted web we weave. */
- status = open_file(fsp, conn, NULL, NULL, NULL, fname, psbuf, O_WRONLY,
- 0, FILE_WRITE_DATA, FILE_WRITE_DATA);
+ status = SMB_VFS_CREATE_FILE(
+ conn, /* conn */
+ NULL, /* req */
+ 0, /* root_dir_fid */
+ fname, /* fname */
+ 0, /* create_file_flags */
+ FILE_WRITE_DATA, /* access_mask */
+ (FILE_SHARE_READ | FILE_SHARE_WRITE | /* share_access */
+ FILE_SHARE_DELETE),
+ FILE_OPEN, /* create_disposition*/
+ 0, /* create_options */
+ 0, /* file_attributes */
+ 0, /* oplock_request */
+ 0, /* allocation_size */
+ NULL, /* sd */
+ NULL, /* ea_list */
+ &fsp, /* result */
+ NULL, /* pinfo */
+ psbuf); /* psbuf */
/*
* This is not a user visible file open.
Open a directory from an NT SMB call.
****************************************************************************/
-NTSTATUS open_directory(connection_struct *conn,
- struct smb_request *req,
- const char *fname,
- SMB_STRUCT_STAT *psbuf,
- uint32 access_mask,
- uint32 share_access,
- uint32 create_disposition,
- uint32 create_options,
- uint32 file_attributes,
- int *pinfo,
- files_struct **result)
+static NTSTATUS open_directory(connection_struct *conn,
+ struct smb_request *req,
+ const char *fname,
+ SMB_STRUCT_STAT *psbuf,
+ uint32 access_mask,
+ uint32 share_access,
+ uint32 create_disposition,
+ uint32 create_options,
+ uint32 file_attributes,
+ int *pinfo,
+ files_struct **result)
{
files_struct *fsp = NULL;
bool dir_existed = VALID_STAT(*psbuf) ? True : False;
return status;
}
- set_share_mode(lck, fsp, conn->server_info->utok.uid, 0, NO_OPLOCK,
- True);
+ set_share_mode(lck, fsp, conn->server_info->utok.uid, 0, NO_OPLOCK);
/* For directories the delete on close bit at open time seems
always to be honored on close... See test 19 in Samba4 BASE-DELETE. */
SET_STAT_INVALID(sbuf);
- status = open_directory(conn, req, directory, &sbuf,
- FILE_READ_ATTRIBUTES, /* Just a stat open */
- FILE_SHARE_NONE, /* Ignored for stat opens */
- FILE_CREATE,
- 0,
- FILE_ATTRIBUTE_DIRECTORY,
- NULL,
- &fsp);
+ status = SMB_VFS_CREATE_FILE(
+ conn, /* conn */
+ req, /* req */
+ 0, /* root_dir_fid */
+ directory, /* fname */
+ 0, /* create_file_flags */
+ FILE_READ_ATTRIBUTES, /* access_mask */
+ FILE_SHARE_NONE, /* share_access */
+ FILE_CREATE, /* create_disposition*/
+ FILE_DIRECTORY_FILE, /* create_options */
+ FILE_ATTRIBUTE_DIRECTORY, /* file_attributes */
+ 0, /* oplock_request */
+ 0, /* allocation_size */
+ NULL, /* sd */
+ NULL, /* ea_list */
+ &fsp, /* result */
+ NULL, /* pinfo */
+ &sbuf); /* psbuf */
if (NT_STATUS_IS_OK(status)) {
close_file(req, fsp, NORMAL_CLOSE);
/****************************************************************************
Save case semantics.
****************************************************************************/
-static struct case_semantics_state *set_posix_case_semantics(TALLOC_CTX *mem_ctx,
- connection_struct *conn)
+struct case_semantics_state *set_posix_case_semantics(TALLOC_CTX *mem_ctx,
+ connection_struct *conn)
{
struct case_semantics_state *result;
* Wrapper around open_file_ntcreate and open_directory
*/
-NTSTATUS create_file_unixpath(connection_struct *conn,
- struct smb_request *req,
- const char *fname,
- uint32_t access_mask,
- uint32_t share_access,
- uint32_t create_disposition,
- uint32_t create_options,
- uint32_t file_attributes,
- uint32_t oplock_request,
- uint64_t allocation_size,
- struct security_descriptor *sd,
- struct ea_list *ea_list,
-
- files_struct **result,
- int *pinfo,
- SMB_STRUCT_STAT *psbuf)
+static NTSTATUS create_file_unixpath(connection_struct *conn,
+ struct smb_request *req,
+ const char *fname,
+ uint32_t access_mask,
+ uint32_t share_access,
+ uint32_t create_disposition,
+ uint32_t create_options,
+ uint32_t file_attributes,
+ uint32_t oplock_request,
+ uint64_t allocation_size,
+ struct security_descriptor *sd,
+ struct ea_list *ea_list,
+
+ files_struct **result,
+ int *pinfo,
+ SMB_STRUCT_STAT *psbuf)
{
SMB_STRUCT_STAT sbuf;
int info = FILE_WAS_OPENED;
}
/* Can't open a temp directory. IFS kit test. */
- if (file_attributes & FILE_ATTRIBUTE_TEMPORARY) {
+ if (!(file_attributes & FILE_FLAG_POSIX_SEMANTICS) &&
+ (file_attributes & FILE_ATTRIBUTE_TEMPORARY)) {
status = NT_STATUS_INVALID_PARAMETER;
goto fail;
}
* Ordinary file case.
*/
- if (base_fsp) {
- /*
- * We're opening the stream element of a base_fsp
- * we already opened. We need to initialize
- * the fsp first, and set up the base_fsp pointer.
- */
- status = file_new(req, conn, &fsp);
- if(!NT_STATUS_IS_OK(status)) {
- goto fail;
- }
+ status = file_new(req, conn, &fsp);
+ if(!NT_STATUS_IS_OK(status)) {
+ goto fail;
+ }
+ /*
+ * We're opening the stream element of a base_fsp
+ * we already opened. Set up the base_fsp pointer.
+ */
+ if (base_fsp) {
fsp->base_fsp = base_fsp;
+ }
- status = open_file_ntcreate_internal(conn,
- req,
- fname,
- &sbuf,
- access_mask,
- share_access,
- create_disposition,
- create_options,
- file_attributes,
- oplock_request,
- &info,
- fsp);
-
- if(!NT_STATUS_IS_OK(status)) {
- file_free(req, fsp);
- fsp = NULL;
- }
- } else {
- status = open_file_ntcreate(
- conn, req, fname, &sbuf, access_mask, share_access,
- create_disposition, create_options, file_attributes,
- oplock_request, &info, &fsp);
+ status = open_file_ntcreate(conn,
+ req,
+ fname,
+ &sbuf,
+ access_mask,
+ share_access,
+ create_disposition,
+ create_options,
+ file_attributes,
+ oplock_request,
+ &info,
+ fsp);
+
+ if(!NT_STATUS_IS_OK(status)) {
+ file_free(req, fsp);
+ fsp = NULL;
}
if (NT_STATUS_EQUAL(status, NT_STATUS_FILE_IS_A_DIRECTORY)) {
if ((sd != NULL) && (info == FILE_WAS_CREATED)
&& lp_nt_acl_support(SNUM(conn))) {
- uint32_t sec_info_sent = ALL_SECURITY_INFORMATION;
+ uint32_t sec_info_sent;
uint32_t saved_access_mask = fsp->access_mask;
- if (sd->owner_sid == NULL) {
- sec_info_sent &= ~OWNER_SECURITY_INFORMATION;
- }
- if (sd->group_sid == NULL) {
- sec_info_sent &= ~GROUP_SECURITY_INFORMATION;
- }
- if (sd->sacl == NULL) {
- sec_info_sent &= ~SACL_SECURITY_INFORMATION;
- }
- if (sd->dacl == NULL) {
- sec_info_sent &= ~DACL_SECURITY_INFORMATION;
- }
+ sec_info_sent = get_sec_info(sd);
fsp->access_mask = FILE_GENERIC_ALL;
return status;
}
-NTSTATUS create_file(connection_struct *conn,
- struct smb_request *req,
- uint16_t root_dir_fid,
- const char *fname,
- uint32_t access_mask,
- uint32_t share_access,
- uint32_t create_disposition,
- uint32_t create_options,
- uint32_t file_attributes,
- uint32_t oplock_request,
- uint64_t allocation_size,
- struct security_descriptor *sd,
- struct ea_list *ea_list,
-
- files_struct **result,
- int *pinfo,
- SMB_STRUCT_STAT *psbuf)
+/*
+ * Calculate the full path name given a relative fid.
+ */
+NTSTATUS get_relative_fid_filename(connection_struct *conn,
+ struct smb_request *req,
+ uint16_t root_dir_fid,
+ const char *fname, char **new_fname)
+{
+ files_struct *dir_fsp;
+ char *parent_fname = NULL;
+
+ if (root_dir_fid == 0 || !fname || !new_fname) {
+ return NT_STATUS_INTERNAL_ERROR;
+ }
+
+ dir_fsp = file_fsp(req, root_dir_fid);
+
+ if (dir_fsp == NULL) {
+ return NT_STATUS_INVALID_HANDLE;
+ }
+
+ if (!dir_fsp->is_directory) {
+
+ /*
+ * Check to see if this is a mac fork of some kind.
+ */
+
+ if ((conn->fs_capabilities & FILE_NAMED_STREAMS) &&
+ is_ntfs_stream_name(fname)) {
+ return NT_STATUS_OBJECT_PATH_NOT_FOUND;
+ }
+
+ /*
+ we need to handle the case when we get a
+ relative open relative to a file and the
+ pathname is blank - this is a reopen!
+ (hint from demyn plantenberg)
+ */
+
+ return NT_STATUS_INVALID_HANDLE;
+ }
+
+ if (ISDOT(dir_fsp->fsp_name)) {
+ /*
+ * We're at the toplevel dir, the final file name
+ * must not contain ./, as this is filtered out
+ * normally by srvstr_get_path and unix_convert
+ * explicitly rejects paths containing ./.
+ */
+ parent_fname = talloc_strdup(talloc_tos(), "");
+ if (parent_fname == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+ } else {
+ size_t dir_name_len = strlen(dir_fsp->fsp_name);
+
+ /*
+ * Copy in the base directory name.
+ */
+
+ parent_fname = TALLOC_ARRAY(talloc_tos(), char,
+ dir_name_len+2);
+ if (parent_fname == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+ memcpy(parent_fname, dir_fsp->fsp_name,
+ dir_name_len+1);
+
+ /*
+ * Ensure it ends in a '/'.
+ * We used TALLOC_SIZE +2 to add space for the '/'.
+ */
+
+ if(dir_name_len
+ && (parent_fname[dir_name_len-1] != '\\')
+ && (parent_fname[dir_name_len-1] != '/')) {
+ parent_fname[dir_name_len] = '/';
+ parent_fname[dir_name_len+1] = '\0';
+ }
+ }
+
+ *new_fname = talloc_asprintf(talloc_tos(), "%s%s", parent_fname,
+ fname);
+ if (*new_fname == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS create_file_default(connection_struct *conn,
+ struct smb_request *req,
+ uint16_t root_dir_fid,
+ const char *fname,
+ uint32_t create_file_flags,
+ uint32_t access_mask,
+ uint32_t share_access,
+ uint32_t create_disposition,
+ uint32_t create_options,
+ uint32_t file_attributes,
+ uint32_t oplock_request,
+ uint64_t allocation_size,
+ struct security_descriptor *sd,
+ struct ea_list *ea_list,
+
+ files_struct **result,
+ int *pinfo,
+ SMB_STRUCT_STAT *psbuf)
{
struct case_semantics_state *case_state = NULL;
SMB_STRUCT_STAT sbuf;
"create_disposition = 0x%x create_options = 0x%x "
"oplock_request = 0x%x "
"root_dir_fid = 0x%x, ea_list = 0x%p, sd = 0x%p, "
- "fname = %s\n",
+ "create_file_flags = 0x%x, fname = %s\n",
(unsigned int)access_mask,
(unsigned int)file_attributes,
(unsigned int)share_access,
(unsigned int)create_options,
(unsigned int)oplock_request,
(unsigned int)root_dir_fid,
- ea_list, sd, fname));
+ ea_list, sd, create_file_flags, fname));
/*
- * Get the file name.
+ * Calculate the filename from the root_dir_if if necessary.
*/
if (root_dir_fid != 0) {
- /*
- * This filename is relative to a directory fid.
- */
- char *parent_fname = NULL;
- files_struct *dir_fsp = file_fsp(req, root_dir_fid);
-
- if (dir_fsp == NULL) {
- status = NT_STATUS_INVALID_HANDLE;
- goto fail;
- }
-
- if (!dir_fsp->is_directory) {
+ char *new_fname;
- /*
- * Check to see if this is a mac fork of some kind.
- */
-
- if ((conn->fs_capabilities & FILE_NAMED_STREAMS) &&
- is_ntfs_stream_name(fname)) {
- status = NT_STATUS_OBJECT_PATH_NOT_FOUND;
- goto fail;
- }
-
- /*
- we need to handle the case when we get a
- relative open relative to a file and the
- pathname is blank - this is a reopen!
- (hint from demyn plantenberg)
- */
-
- status = NT_STATUS_INVALID_HANDLE;
+ status = get_relative_fid_filename(conn, req, root_dir_fid,
+ fname, &new_fname);
+ if (!NT_STATUS_IS_OK(status)) {
goto fail;
}
- if (ISDOT(dir_fsp->fsp_name)) {
- /*
- * We're at the toplevel dir, the final file name
- * must not contain ./, as this is filtered out
- * normally by srvstr_get_path and unix_convert
- * explicitly rejects paths containing ./.
- */
- parent_fname = talloc_strdup(talloc_tos(), "");
- if (parent_fname == NULL) {
- status = NT_STATUS_NO_MEMORY;
- goto fail;
- }
- } else {
- size_t dir_name_len = strlen(dir_fsp->fsp_name);
-
- /*
- * Copy in the base directory name.
- */
-
- parent_fname = TALLOC_ARRAY(talloc_tos(), char,
- dir_name_len+2);
- if (parent_fname == NULL) {
- status = NT_STATUS_NO_MEMORY;
- goto fail;
- }
- memcpy(parent_fname, dir_fsp->fsp_name,
- dir_name_len+1);
-
- /*
- * Ensure it ends in a '/'.
- * We used TALLOC_SIZE +2 to add space for the '/'.
- */
-
- if(dir_name_len
- && (parent_fname[dir_name_len-1] != '\\')
- && (parent_fname[dir_name_len-1] != '/')) {
- parent_fname[dir_name_len] = '/';
- parent_fname[dir_name_len+1] = '\0';
- }
- }
-
- fname = talloc_asprintf(talloc_tos(), "%s%s", parent_fname,
- fname);
- if (fname == NULL) {
- status = NT_STATUS_NO_MEMORY;
- goto fail;
- }
+ fname = new_fname;
}
/*
if (file_attributes & FILE_FLAG_POSIX_SEMANTICS) {
case_state = set_posix_case_semantics(talloc_tos(), conn);
- file_attributes &= ~FILE_FLAG_POSIX_SEMANTICS;
}
- {
+ if (create_file_flags & CFF_DOS_PATH) {
char *converted_fname;
SET_STAT_INVALID(sbuf);
goto fail;
}
fname = converted_fname;
+ } else {
+ if (psbuf != NULL) {
+ sbuf = *psbuf;
+ } else {
+ if (SMB_VFS_STAT(conn, fname, &sbuf) == -1) {
+ SET_STAT_INVALID(sbuf);
+ }
+ }
+
}
TALLOC_FREE(case_state);
const char *fname = NULL;
char *pipe_name = NULL;
files_struct *fsp;
- int size=0,fmode=0,mtime=0,rmode=0;
TALLOC_CTX *ctx = talloc_tos();
NTSTATUS status;
SSVAL(req->outbuf,smb_vwv9,2);
SSVAL(req->outbuf,smb_vwv10,0xc700);
- if (rmode == 2) {
- DEBUG(4,("Resetting open result to open from create.\n"));
- rmode = 1;
- }
-
- SSVAL(req->outbuf,smb_vwv2, fsp->fnum);
- SSVAL(req->outbuf,smb_vwv3,fmode);
- srv_put_dos_date3((char *)req->outbuf,smb_vwv4,mtime);
- SIVAL(req->outbuf,smb_vwv6,size);
- SSVAL(req->outbuf,smb_vwv8,rmode);
- SSVAL(req->outbuf,smb_vwv11,0x0001);
+ SSVAL(req->outbuf, smb_vwv2, fsp->fnum);
+ SSVAL(req->outbuf, smb_vwv3, 0); /* fmode */
+ srv_put_dos_date3((char *)req->outbuf, smb_vwv4, 0); /* mtime */
+ SIVAL(req->outbuf, smb_vwv6, 0); /* size */
+ SSVAL(req->outbuf, smb_vwv8, 0); /* rmode */
+ SSVAL(req->outbuf, smb_vwv11, 0x0001);
chain_reply(req);
return;
return NT_STATUS_NO_MEMORY;
}
- status = open_directory(fsp->conn,
- NULL,
- parent_name,
- &sbuf,
- FILE_READ_ATTRIBUTES, /* Just a stat open */
- FILE_SHARE_NONE, /* Ignored for stat opens */
- FILE_OPEN,
- 0,
- INTERNAL_OPEN_ONLY,
- &info,
- &parent_fsp);
+ status = SMB_VFS_CREATE_FILE(
+ fsp->conn, /* conn */
+ NULL, /* req */
+ 0, /* root_dir_fid */
+ parent_name, /* fname */
+ 0, /* create_file_flags */
+ FILE_READ_ATTRIBUTES, /* access_mask */
+ FILE_SHARE_NONE, /* share_access */
+ FILE_OPEN, /* create_disposition*/
+ FILE_DIRECTORY_FILE, /* create_options */
+ 0, /* file_attributes */
+ INTERNAL_OPEN_ONLY, /* oplock_request */
+ 0, /* allocation_size */
+ NULL, /* sd */
+ NULL, /* ea_list */
+ &parent_fsp, /* result */
+ &info, /* pinfo */
+ &sbuf); /* psbuf */
if (!NT_STATUS_IS_OK(status)) {
return status;
return;
}
- status = create_file(conn, /* conn */
- req, /* req */
- 0, /* root_dir_fid */
- fname, /* fname */
- access_mask, /* access_mask */
- share_mode, /* share_access */
- create_disposition, /* create_disposition*/
- create_options, /* create_options */
- dos_attr, /* file_attributes */
- oplock_request, /* oplock_request */
- 0, /* allocation_size */
- NULL, /* sd */
- NULL, /* ea_list */
- &fsp, /* result */
- &info, /* pinfo */
- &sbuf); /* psbuf */
+ status = SMB_VFS_CREATE_FILE(
+ conn, /* conn */
+ req, /* req */
+ 0, /* root_dir_fid */
+ fname, /* fname */
+ CFF_DOS_PATH, /* create_file_flags */
+ access_mask, /* access_mask */
+ share_mode, /* share_access */
+ create_disposition, /* create_disposition*/
+ create_options, /* create_options */
+ dos_attr, /* file_attributes */
+ oplock_request, /* oplock_request */
+ 0, /* allocation_size */
+ NULL, /* sd */
+ NULL, /* ea_list */
+ &fsp, /* result */
+ &info, /* pinfo */
+ &sbuf); /* psbuf */
if (!NT_STATUS_IS_OK(status)) {
if (open_was_deferred(req->mid)) {
return;
}
- status = create_file(conn, /* conn */
- req, /* req */
- 0, /* root_dir_fid */
- fname, /* fname */
- access_mask, /* access_mask */
- share_mode, /* share_access */
- create_disposition, /* create_disposition*/
- create_options, /* create_options */
- smb_attr, /* file_attributes */
- oplock_request, /* oplock_request */
- 0, /* allocation_size */
- NULL, /* sd */
- NULL, /* ea_list */
- &fsp, /* result */
- &smb_action, /* pinfo */
- &sbuf); /* psbuf */
+ status = SMB_VFS_CREATE_FILE(
+ conn, /* conn */
+ req, /* req */
+ 0, /* root_dir_fid */
+ fname, /* fname */
+ CFF_DOS_PATH, /* create_file_flags */
+ access_mask, /* access_mask */
+ share_mode, /* share_access */
+ create_disposition, /* create_disposition*/
+ create_options, /* create_options */
+ smb_attr, /* file_attributes */
+ oplock_request, /* oplock_request */
+ 0, /* allocation_size */
+ NULL, /* sd */
+ NULL, /* ea_list */
+ &fsp, /* result */
+ &smb_action, /* pinfo */
+ &sbuf); /* psbuf */
if (!NT_STATUS_IS_OK(status)) {
END_PROFILE(SMBopenX);
create_disposition = FILE_OVERWRITE_IF;
}
- status = create_file(conn, /* conn */
- req, /* req */
- 0, /* root_dir_fid */
- fname, /* fname */
- access_mask, /* access_mask */
- share_mode, /* share_access */
- create_disposition, /* create_disposition*/
- create_options, /* create_options */
- fattr, /* file_attributes */
- oplock_request, /* oplock_request */
- 0, /* allocation_size */
- NULL, /* sd */
- NULL, /* ea_list */
- &fsp, /* result */
- NULL, /* pinfo */
- &sbuf); /* psbuf */
+ status = SMB_VFS_CREATE_FILE(
+ conn, /* conn */
+ req, /* req */
+ 0, /* root_dir_fid */
+ fname, /* fname */
+ CFF_DOS_PATH, /* create_file_flags */
+ access_mask, /* access_mask */
+ share_mode, /* share_access */
+ create_disposition, /* create_disposition*/
+ create_options, /* create_options */
+ fattr, /* file_attributes */
+ oplock_request, /* oplock_request */
+ 0, /* allocation_size */
+ NULL, /* sd */
+ NULL, /* ea_list */
+ &fsp, /* result */
+ NULL, /* pinfo */
+ &sbuf); /* psbuf */
if (!NT_STATUS_IS_OK(status)) {
END_PROFILE(SMBcreate);
SMB_VFS_STAT(conn,fname,&sbuf);
/* We should fail if file does not exist. */
- status = open_file_ntcreate(conn, req, fname, &sbuf,
- FILE_GENERIC_READ | FILE_GENERIC_WRITE,
- FILE_SHARE_READ|FILE_SHARE_WRITE,
- FILE_OPEN,
- 0,
- fattr,
- oplock_request,
- NULL, &fsp);
+ status = SMB_VFS_CREATE_FILE(
+ conn, /* conn */
+ req, /* req */
+ 0, /* root_dir_fid */
+ fname, /* fname */
+ 0, /* create_file_flags */
+ FILE_GENERIC_READ | FILE_GENERIC_WRITE, /* access_mask */
+ FILE_SHARE_READ | FILE_SHARE_WRITE, /* share_access */
+ FILE_OPEN, /* create_disposition*/
+ 0, /* create_options */
+ fattr, /* file_attributes */
+ oplock_request, /* oplock_request */
+ 0, /* allocation_size */
+ NULL, /* sd */
+ NULL, /* ea_list */
+ &fsp, /* result */
+ NULL, /* pinfo */
+ &sbuf); /* psbuf */
/* close fd from smb_mkstemp() */
close(tmpfd);
/* On open checks the open itself will check the share mode, so
don't do it here as we'll get it wrong. */
- status = create_file_unixpath
+ status = SMB_VFS_CREATE_FILE
(conn, /* conn */
req, /* req */
+ 0, /* root_dir_fid */
fname, /* fname */
+ 0, /* create_file_flags */
DELETE_ACCESS, /* access_mask */
FILE_SHARE_NONE, /* share_access */
FILE_OPEN, /* create_disposition*/
&sbuf); /* psbuf */
if (!NT_STATUS_IS_OK(status)) {
- DEBUG(10, ("create_file_unixpath failed: %s\n",
+ DEBUG(10, ("SMB_VFS_CREATEFILE failed: %s\n",
nt_errstr(status)));
return status;
}
* depends on these semantics. JRA.
*/
- set_allow_initial_delete_on_close(lck, fsp, True);
-
if (create_options & FILE_DELETE_ON_CLOSE) {
status = can_set_delete_on_close(fsp, True, 0);
struct smb_Dir *dir_hnd = NULL;
const char *dname;
long offset = 0;
+ int create_options = 0;
ZERO_STRUCT(sbuf1);
ZERO_STRUCT(sbuf2);
ZERO_STRUCT(sbuf1);
SMB_VFS_STAT(conn, directory, &sbuf1);
- status = S_ISDIR(sbuf1.st_mode) ?
- open_directory(conn, req, directory, &sbuf1,
- access_mask,
- FILE_SHARE_READ|FILE_SHARE_WRITE,
- FILE_OPEN, 0, 0, NULL,
- &fsp)
- : open_file_ntcreate(conn, req, directory, &sbuf1,
- access_mask,
- FILE_SHARE_READ|FILE_SHARE_WRITE,
- FILE_OPEN, 0, 0, 0, NULL,
- &fsp);
+ if (S_ISDIR(sbuf1.st_mode)) {
+ create_options |= FILE_DIRECTORY_FILE;
+ }
+
+ status = SMB_VFS_CREATE_FILE(
+ conn, /* conn */
+ req, /* req */
+ 0, /* root_dir_fid */
+ directory, /* fname */
+ 0, /* create_file_flags */
+ access_mask, /* access_mask */
+ (FILE_SHARE_READ | /* share_access */
+ FILE_SHARE_WRITE),
+ FILE_OPEN, /* create_disposition*/
+ create_options, /* create_options */
+ 0, /* file_attributes */
+ 0, /* oplock_request */
+ 0, /* allocation_size */
+ NULL, /* sd */
+ NULL, /* ea_list */
+ &fsp, /* result */
+ NULL, /* pinfo */
+ &sbuf1); /* psbuf */
if (!NT_STATUS_IS_OK(status)) {
DEBUG(3, ("Could not open rename source %s: %s\n",
ZERO_STRUCT(sbuf1);
SMB_VFS_STAT(conn, fname, &sbuf1);
- status = S_ISDIR(sbuf1.st_mode) ?
- open_directory(conn, req, fname, &sbuf1,
- access_mask,
- FILE_SHARE_READ|FILE_SHARE_WRITE,
- FILE_OPEN, 0, 0, NULL,
- &fsp)
- : open_file_ntcreate(conn, req, fname, &sbuf1,
- access_mask,
- FILE_SHARE_READ|FILE_SHARE_WRITE,
- FILE_OPEN, 0, 0, 0, NULL,
- &fsp);
+ create_options = 0;
+
+ if (S_ISDIR(sbuf1.st_mode)) {
+ create_options |= FILE_DIRECTORY_FILE;
+ }
+
+ status = SMB_VFS_CREATE_FILE(
+ conn, /* conn */
+ req, /* req */
+ 0, /* root_dir_fid */
+ fname, /* fname */
+ 0, /* create_file_flags */
+ access_mask, /* access_mask */
+ (FILE_SHARE_READ | /* share_access */
+ FILE_SHARE_WRITE),
+ FILE_OPEN, /* create_disposition*/
+ create_options, /* create_options */
+ 0, /* file_attributes */
+ 0, /* oplock_request */
+ 0, /* allocation_size */
+ NULL, /* sd */
+ NULL, /* ea_list */
+ &fsp, /* result */
+ NULL, /* pinfo */
+ &sbuf1); /* psbuf */
if (!NT_STATUS_IS_OK(status)) {
- DEBUG(3,("rename_internals: open_file_ntcreate "
+ DEBUG(3,("rename_internals: SMB_VFS_CREATE_FILE "
"returned %s rename %s -> %s\n",
nt_errstr(status), directory, newname));
break;
}
}
- status = open_file_ntcreate(conn, NULL, src, &src_sbuf,
- FILE_GENERIC_READ,
- FILE_SHARE_READ|FILE_SHARE_WRITE,
- FILE_OPEN,
- 0,
- FILE_ATTRIBUTE_NORMAL,
- INTERNAL_OPEN_ONLY,
- NULL, &fsp1);
+ status = SMB_VFS_CREATE_FILE(
+ conn, /* conn */
+ NULL, /* req */
+ 0, /* root_dir_fid */
+ src, /* fname */
+ 0, /* create_file_flags */
+ FILE_GENERIC_READ, /* access_mask */
+ FILE_SHARE_READ | FILE_SHARE_WRITE, /* share_access */
+ FILE_OPEN, /* create_disposition*/
+ 0, /* create_options */
+ FILE_ATTRIBUTE_NORMAL, /* file_attributes */
+ INTERNAL_OPEN_ONLY, /* oplock_request */
+ 0, /* allocation_size */
+ NULL, /* sd */
+ NULL, /* ea_list */
+ &fsp1, /* result */
+ NULL, /* pinfo */
+ &src_sbuf); /* psbuf */
if (!NT_STATUS_IS_OK(status)) {
TALLOC_FREE(dest);
ZERO_STRUCTP(&sbuf2);
}
- status = open_file_ntcreate(conn, NULL, dest, &sbuf2,
- FILE_GENERIC_WRITE,
- FILE_SHARE_READ|FILE_SHARE_WRITE,
- new_create_disposition,
- 0,
- dosattrs,
- INTERNAL_OPEN_ONLY,
- NULL, &fsp2);
+ status = SMB_VFS_CREATE_FILE(
+ conn, /* conn */
+ NULL, /* req */
+ 0, /* root_dir_fid */
+ dest, /* fname */
+ 0, /* create_file_flags */
+ FILE_GENERIC_WRITE, /* access_mask */
+ FILE_SHARE_READ | FILE_SHARE_WRITE, /* share_access */
+ new_create_disposition, /* create_disposition*/
+ 0, /* create_options */
+ dosattrs, /* file_attributes */
+ INTERNAL_OPEN_ONLY, /* oplock_request */
+ 0, /* allocation_size */
+ NULL, /* sd */
+ NULL, /* ea_list */
+ &fsp2, /* result */
+ NULL, /* pinfo */
+ &sbuf2); /* psbuf */
TALLOC_FREE(dest);
char *sock_tok;
const char *sock_ptr;
- if (sock_addr[0] == '\0' ||
- strequal(sock_addr, "0.0.0.0") ||
- strequal(sock_addr, "::")) {
+ if (strequal(sock_addr, "0.0.0.0") ||
+ strequal(sock_addr, "::")) {
#if HAVE_IPV6
sock_addr = "::,0.0.0.0";
#else
DEBUG(3,("reply_spnego_auth: network "
"misconfiguration, client sent us a "
"krb5 ticket and kerberos security "
- "not enabled"));
+ "not enabled\n"));
reply_nterror(req, nt_status_squash(
NT_STATUS_LOGON_FAILURE));
SAFE_FREE(kerb_mech);
*/
bool user_ok_token(const char *username, const char *domain,
- struct nt_user_token *token, int snum)
+ const struct nt_user_token *token, int snum)
{
if (lp_invalid_users(snum) != NULL) {
if (token_contains_name_in_list(username, domain,
bool is_share_read_only_for_token(const char *username,
const char *domain,
- struct nt_user_token *token,
+ const struct nt_user_token *token,
connection_struct *conn)
{
int snum = SNUM(conn);
return;
}
- status = create_file(conn, /* conn */
- req, /* req */
- 0, /* root_dir_fid */
- fname, /* fname */
- access_mask, /* access_mask */
- share_mode, /* share_access */
- create_disposition, /* create_disposition*/
- create_options, /* create_options */
- open_attr, /* file_attributes */
- oplock_request, /* oplock_request */
- open_size, /* allocation_size */
- NULL, /* sd */
- ea_list, /* ea_list */
- &fsp, /* result */
- &smb_action, /* pinfo */
- &sbuf); /* psbuf */
+ status = SMB_VFS_CREATE_FILE(
+ conn, /* conn */
+ req, /* req */
+ 0, /* root_dir_fid */
+ fname, /* fname */
+ CFF_DOS_PATH, /* create_file_flags */
+ access_mask, /* access_mask */
+ share_mode, /* share_access */
+ create_disposition, /* create_disposition*/
+ create_options, /* create_options */
+ open_attr, /* file_attributes */
+ oplock_request, /* oplock_request */
+ open_size, /* allocation_size */
+ NULL, /* sd */
+ ea_list, /* ea_list */
+ &fsp, /* result */
+ &smb_action, /* pinfo */
+ &sbuf); /* psbuf */
if (!NT_STATUS_IS_OK(status)) {
if (open_was_deferred(req->mid)) {
{
if (mask[0] == '.' && mask[1] == 0)
return False;
- if (conn->case_sensitive)
- return strcmp(str,mask)==0;
- if (StrCaseCmp(str,mask) != 0) {
- return False;
- }
if (dptr_has_wild(conn->dirptr)) {
return False;
}
- return True;
+ if (conn->case_sensitive)
+ return strcmp(str,mask)==0;
+ else
+ return StrCaseCmp(str,mask) == 0;
}
/****************************************************************************
return NT_STATUS_OK;
}
- status = open_file_ntcreate(conn, req, fname, psbuf,
- FILE_WRITE_ATTRIBUTES,
- FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE,
- FILE_OPEN,
- 0,
- FILE_ATTRIBUTE_NORMAL,
- FORCE_OPLOCK_BREAK_TO_NONE,
- NULL, &new_fsp);
-
+ status = SMB_VFS_CREATE_FILE(
+ conn, /* conn */
+ req, /* req */
+ 0, /* root_dir_fid */
+ fname, /* fname */
+ 0, /* create_file_flags */
+ FILE_WRITE_ATTRIBUTES, /* access_mask */
+ (FILE_SHARE_READ | FILE_SHARE_WRITE | /* share_access */
+ FILE_SHARE_DELETE),
+ FILE_OPEN, /* create_disposition*/
+ 0, /* create_options */
+ FILE_ATTRIBUTE_NORMAL, /* file_attributes */
+ FORCE_OPLOCK_BREAK_TO_NONE, /* oplock_request */
+ 0, /* allocation_size */
+ NULL, /* sd */
+ NULL, /* ea_list */
+ &new_fsp, /* result */
+ NULL, /* pinfo */
+ psbuf); /* psbuf */
+
if (!NT_STATUS_IS_OK(status)) {
/* NB. We check for open_was_deferred in the caller. */
return status;
/* Pathname or stat or directory file. */
- status = open_file_ntcreate(conn, req, fname, psbuf,
- FILE_WRITE_DATA,
- FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE,
- FILE_OPEN,
- 0,
- FILE_ATTRIBUTE_NORMAL,
- FORCE_OPLOCK_BREAK_TO_NONE,
- NULL, &new_fsp);
+ status = SMB_VFS_CREATE_FILE(
+ conn, /* conn */
+ req, /* req */
+ 0, /* root_dir_fid */
+ fname, /* fname */
+ 0, /* create_file_flags */
+ FILE_WRITE_DATA, /* access_mask */
+ (FILE_SHARE_READ | FILE_SHARE_WRITE | /* share_access */
+ FILE_SHARE_DELETE),
+ FILE_OPEN, /* create_disposition*/
+ 0, /* create_options */
+ FILE_ATTRIBUTE_NORMAL, /* file_attributes */
+ FORCE_OPLOCK_BREAK_TO_NONE, /* oplock_request */
+ 0, /* allocation_size */
+ NULL, /* sd */
+ NULL, /* ea_list */
+ &new_fsp, /* result */
+ NULL, /* pinfo */
+ psbuf); /* psbuf */
if (!NT_STATUS_IS_OK(status)) {
/* NB. We check for open_was_deferred in the caller. */
DEBUG(10,("smb_posix_mkdir: file %s, mode 0%o\n",
fname, (unsigned int)unixmode ));
- status = open_directory(conn, req,
- fname,
- psbuf,
- FILE_READ_ATTRIBUTES, /* Just a stat open */
- FILE_SHARE_NONE, /* Ignored for stat opens */
- FILE_CREATE,
- 0,
- mod_unixmode,
- &info,
- &fsp);
+ status = SMB_VFS_CREATE_FILE(
+ conn, /* conn */
+ req, /* req */
+ 0, /* root_dir_fid */
+ fname, /* fname */
+ 0, /* create_file_flags */
+ FILE_READ_ATTRIBUTES, /* access_mask */
+ FILE_SHARE_NONE, /* share_access */
+ FILE_CREATE, /* create_disposition*/
+ FILE_DIRECTORY_FILE, /* create_options */
+ mod_unixmode, /* file_attributes */
+ 0, /* oplock_request */
+ 0, /* allocation_size */
+ NULL, /* sd */
+ NULL, /* ea_list */
+ &fsp, /* result */
+ &info, /* pinfo */
+ psbuf); /* psbuf */
if (NT_STATUS_IS_OK(status)) {
close_file(req, fsp, NORMAL_CLOSE);
(unsigned int)wire_open_mode,
(unsigned int)unixmode ));
- status = open_file_ntcreate(conn, req,
- fname,
- psbuf,
- access_mask,
- FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE,
- create_disp,
- 0, /* no create options yet. */
- mod_unixmode,
- oplock_request,
- &info,
- &fsp);
+ status = SMB_VFS_CREATE_FILE(
+ conn, /* conn */
+ req, /* req */
+ 0, /* root_dir_fid */
+ fname, /* fname */
+ 0, /* create_file_flags */
+ access_mask, /* access_mask */
+ (FILE_SHARE_READ | FILE_SHARE_WRITE | /* share_access */
+ FILE_SHARE_DELETE),
+ create_disp, /* create_disposition*/
+ 0, /* create_options */
+ mod_unixmode, /* file_attributes */
+ oplock_request, /* oplock_request */
+ 0, /* allocation_size */
+ NULL, /* sd */
+ NULL, /* ea_list */
+ &fsp, /* result */
+ &info, /* pinfo */
+ psbuf); /* psbuf */
if (!NT_STATUS_IS_OK(status)) {
return status;
uint16 flags = 0;
char del = 1;
int info = 0;
+ int create_options = 0;
int i;
struct share_mode_lock *lck = NULL;
fname));
if (VALID_STAT_OF_DIR(*psbuf)) {
- status = open_directory(conn, req,
- fname,
- psbuf,
- DELETE_ACCESS,
- FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE,
- FILE_OPEN,
- 0,
- FILE_FLAG_POSIX_SEMANTICS|0777,
- &info,
- &fsp);
- } else {
-
- status = open_file_ntcreate(conn, req,
- fname,
- psbuf,
- DELETE_ACCESS,
- FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE,
- FILE_OPEN,
- 0,
- FILE_FLAG_POSIX_SEMANTICS|0777,
- 0, /* No oplock, but break existing ones. */
- &info,
- &fsp);
- }
+ create_options |= FILE_DIRECTORY_FILE;
+ }
+
+ status = SMB_VFS_CREATE_FILE(
+ conn, /* conn */
+ req, /* req */
+ 0, /* root_dir_fid */
+ fname, /* fname */
+ 0, /* create_file_flags */
+ DELETE_ACCESS, /* access_mask */
+ (FILE_SHARE_READ | FILE_SHARE_WRITE | /* share_access */
+ FILE_SHARE_DELETE),
+ FILE_OPEN, /* create_disposition*/
+ create_options, /* create_options */
+ FILE_FLAG_POSIX_SEMANTICS|0777, /* file_attributes */
+ 0, /* oplock_request */
+ 0, /* allocation_size */
+ NULL, /* sd */
+ NULL, /* ea_list */
+ &fsp, /* result */
+ &info, /* pinfo */
+ psbuf); /* psbuf */
if (!NT_STATUS_IS_OK(status)) {
return status;
later code can then mess with.
********************************************************************/
-static bool check_user_ok(connection_struct *conn, uint16_t vuid,
- struct auth_serversupplied_info *server_info,
- int snum)
+static bool check_user_ok(connection_struct *conn,
+ uint16_t vuid,
+ const struct auth_serversupplied_info *server_info,
+ int snum)
{
+ bool valid_vuid = (vuid != UID_FIELD_INVALID);
unsigned int i;
- struct vuid_cache_entry *ent = NULL;
bool readonly_share;
bool admin_user;
- for (i=0; i<VUID_CACHE_SIZE; i++) {
- ent = &conn->vuid_cache.array[i];
- if (ent->vuid == vuid) {
- conn->server_info = ent->server_info;
- conn->read_only = ent->read_only;
- conn->admin_user = ent->admin_user;
- return(True);
+ if (valid_vuid) {
+ struct vuid_cache_entry *ent;
+
+ for (i=0; i<VUID_CACHE_SIZE; i++) {
+ ent = &conn->vuid_cache.array[i];
+ if (ent->vuid == vuid) {
+ conn->server_info = ent->server_info;
+ conn->read_only = ent->read_only;
+ conn->admin_user = ent->admin_user;
+ return(True);
+ }
}
}
pdb_get_domain(server_info->sam_account),
NULL, server_info->ptok, lp_admin_users(snum));
- ent = &conn->vuid_cache.array[conn->vuid_cache.next_entry];
+ if (valid_vuid) {
+ struct vuid_cache_entry *ent =
+ &conn->vuid_cache.array[conn->vuid_cache.next_entry];
- conn->vuid_cache.next_entry =
- (conn->vuid_cache.next_entry + 1) % VUID_CACHE_SIZE;
+ conn->vuid_cache.next_entry =
+ (conn->vuid_cache.next_entry + 1) % VUID_CACHE_SIZE;
- TALLOC_FREE(ent->server_info);
+ TALLOC_FREE(ent->server_info);
- /*
- * If force_user was set, all server_info's are based on the same
- * username-based faked one.
- */
+ /*
+ * If force_user was set, all server_info's are based on the same
+ * username-based faked one.
+ */
- ent->server_info = copy_serverinfo(
- conn, conn->force_user ? conn->server_info : server_info);
+ ent->server_info = copy_serverinfo(
+ conn, conn->force_user ? conn->server_info : server_info);
- if (ent->server_info == NULL) {
- ent->vuid = UID_FIELD_INVALID;
- return false;
- }
+ if (ent->server_info == NULL) {
+ ent->vuid = UID_FIELD_INVALID;
+ return false;
+ }
- ent->vuid = vuid;
- ent->read_only = readonly_share;
- ent->admin_user = admin_user;
+ ent->vuid = vuid;
+ ent->read_only = readonly_share;
+ ent->admin_user = admin_user;
+ conn->server_info = ent->server_info;
+ }
- conn->read_only = ent->read_only;
- conn->admin_user = ent->admin_user;
- conn->server_info = ent->server_info;
+ conn->read_only = readonly_share;
+ conn->admin_user = admin_user;
return(True);
}
bool change_to_user(connection_struct *conn, uint16 vuid)
{
+ const struct auth_serversupplied_info *server_info = NULL;
user_struct *vuser = get_valid_user_struct(vuid);
int snum;
gid_t gid;
snum = SNUM(conn);
- if ((vuser) && !check_user_ok(conn, vuid, vuser->server_info, snum)) {
+ server_info = vuser ? vuser->server_info : conn->server_info;
+
+ if (!check_user_ok(conn, vuid, server_info, snum)) {
DEBUG(2,("change_to_user: SMB user %s (unix user %s, vuid %d) "
"not permitted access to share %s.\n",
- vuser->server_info->sanitized_username,
- vuser->server_info->unix_name, vuid,
+ server_info->sanitized_username,
+ server_info->unix_name, vuid,
lp_servicename(snum)));
- return False;
+ return false;
}
/*
server_n = server;
- zero_addr(&ss);
+ zero_sockaddr(&ss);
slprintf(myname,sizeof(myname), "lock-%lu-%u", (unsigned long)getpid(), count++);
make_nmb_name(&called , server, 0x20);
again:
- zero_addr(&ss);
+ zero_sockaddr(&ss);
/* have to open a new connection */
if (!(c=cli_initialise())) {
server_n = server;
- zero_addr(&ss);
+ zero_sockaddr(&ss);
make_nmb_name(&calling, "masktest", 0x0);
make_nmb_name(&called , server, 0x20);
again:
- zero_addr(&ss);
+ zero_sockaddr(&ss);
/* have to open a new connection */
if (!(c=cli_initialise())) {
make_nmb_name(&calling, myname, 0x0);
make_nmb_name(&called , host, 0x20);
- zero_addr(&ss);
+ zero_sockaddr(&ss);
if (!(c = cli_initialise())) {
printf("Failed initialize cli_struct to connect with %s\n", host);
};
- zero_addr(&c->opt_dest_ip);
+ zero_sockaddr(&c->opt_dest_ip);
load_case_tables();
tried_closest_dc = true; /* avoid loop */
- if (!ads->config.tried_closest_dc) {
+ if (!ads_closest_dc(ads)) {
namecache_delete(ads->server.realm, 0x1C);
namecache_delete(ads->server.workgroup, 0x1C);
notime, notime, notime,
NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, ¶meters,
- 0, 0, ACB_DOMTRUST, SAMR_FIELD_ACCT_FLAGS,
+ 0, 0, ACB_DOMTRUST,
+ SAMR_FIELD_ACCT_FLAGS | SAMR_FIELD_NT_PASSWORD_PRESENT,
hours,
0, 0, 0, 0, 0, 0, 0,
&crypt_pwd);
if (!cli_set_secdesc(cli, fnum, sd)) {
printf("ERROR: secdesc set failed: %s\n", cli_errstr(cli));
+ cli_close(cli, fnum);
+ return EXIT_FAILED;
}
cli_close(cli, fnum);
/*****************************************************
Return a connection to a server.
*******************************************************/
-static struct cli_state *connect_one(const char *server, const char *share)
+static struct cli_state *connect_one(struct user_auth_info *auth_info,
+ const char *server, const char *share)
{
struct cli_state *c = NULL;
struct sockaddr_storage ss;
NTSTATUS nt_status;
uint32_t flags = 0;
- zero_addr(&ss);
+ zero_sockaddr(&ss);
- if (get_cmdline_auth_info_use_kerberos()) {
+ if (get_cmdline_auth_info_use_kerberos(auth_info)) {
flags |= CLI_FULL_CONNECTION_USE_KERBEROS |
CLI_FULL_CONNECTION_FALLBACK_AFTER_KERBEROS;
}
- if (get_cmdline_auth_info_use_machine_account() &&
- !set_cmdline_auth_info_machine_account_creds()) {
+ if (get_cmdline_auth_info_use_machine_account(auth_info) &&
+ !set_cmdline_auth_info_machine_account_creds(auth_info)) {
return NULL;
}
- if (!get_cmdline_auth_info_got_pass()) {
+ if (!get_cmdline_auth_info_got_pass(auth_info)) {
char *pass = getpass("Password: ");
if (pass) {
- set_cmdline_auth_info_password(pass);
+ set_cmdline_auth_info_password(auth_info, pass);
}
}
nt_status = cli_full_connection(&c, global_myname(), server,
&ss, 0,
share, "?????",
- get_cmdline_auth_info_username(),
+ get_cmdline_auth_info_username(auth_info),
lp_workgroup(),
- get_cmdline_auth_info_password(),
+ get_cmdline_auth_info_password(auth_info),
flags,
- get_cmdline_auth_info_signing_state(),
+ get_cmdline_auth_info_signing_state(auth_info),
NULL);
if (!NT_STATUS_IS_OK(nt_status)) {
DEBUG(0,("cli_full_connection failed! (%s)\n", nt_errstr(nt_status)));
return NULL;
}
- if (get_cmdline_auth_info_smb_encrypt()) {
+ if (get_cmdline_auth_info_smb_encrypt(auth_info)) {
nt_status = cli_cm_force_encryption(c,
- get_cmdline_auth_info_username(),
- get_cmdline_auth_info_password(),
+ get_cmdline_auth_info_username(auth_info),
+ get_cmdline_auth_info_password(auth_info),
lp_workgroup(),
share);
if (!NT_STATUS_IS_OK(nt_status)) {
TALLOC_CTX *frame = talloc_stackframe();
const char *owner_username = "";
char *server;
+ struct user_auth_info *auth_info;
load_case_tables();
lp_load(get_dyn_CONFIGFILE(),True,False,False,True);
load_interfaces();
+ auth_info = user_auth_info_init(frame);
+ if (auth_info == NULL) {
+ exit(1);
+ }
+ popt_common_set_auth_info(auth_info);
+
pc = poptGetContext("smbcacls", argc, argv, long_options, 0);
poptSetOtherOptionHelp(pc, "//server1/share1 filename\nACLs look like: "
share++;
if (!test_args) {
- cli = connect_one(server, share);
+ cli = connect_one(auth_info, server, share);
if (!cli) {
exit(EXIT_FAILED);
}
static struct rpc_pipe_client *global_pipe_hnd;
static POLICY_HND pol;
static bool got_policy_hnd;
+static struct user_auth_info *smbcquotas_auth_info;
static struct cli_state *connect_one(const char *share);
NTSTATUS nt_status;
uint32_t flags = 0;
- zero_addr(&ss);
+ zero_sockaddr(&ss);
- if (get_cmdline_auth_info_use_machine_account() &&
- !set_cmdline_auth_info_machine_account_creds()) {
+ if (get_cmdline_auth_info_use_machine_account(smbcquotas_auth_info) &&
+ !set_cmdline_auth_info_machine_account_creds(smbcquotas_auth_info)) {
return NULL;
}
- if (get_cmdline_auth_info_use_kerberos()) {
+ if (get_cmdline_auth_info_use_kerberos(smbcquotas_auth_info)) {
flags |= CLI_FULL_CONNECTION_USE_KERBEROS |
CLI_FULL_CONNECTION_FALLBACK_AFTER_KERBEROS;
}
- if (!get_cmdline_auth_info_got_pass()) {
+ if (!get_cmdline_auth_info_got_pass(smbcquotas_auth_info)) {
char *pass = getpass("Password: ");
if (pass) {
- set_cmdline_auth_info_password(pass);
+ set_cmdline_auth_info_password(smbcquotas_auth_info, pass);
}
}
nt_status = cli_full_connection(&c, global_myname(), server,
&ss, 0,
share, "?????",
- get_cmdline_auth_info_username(),
+ get_cmdline_auth_info_username(smbcquotas_auth_info),
lp_workgroup(),
- get_cmdline_auth_info_password(),
+ get_cmdline_auth_info_password(smbcquotas_auth_info),
flags,
- get_cmdline_auth_info_signing_state(),
+ get_cmdline_auth_info_signing_state(smbcquotas_auth_info),
NULL);
if (!NT_STATUS_IS_OK(nt_status)) {
DEBUG(0,("cli_full_connection failed! (%s)\n", nt_errstr(nt_status)));
return NULL;
}
- if (get_cmdline_auth_info_smb_encrypt()) {
+ if (get_cmdline_auth_info_smb_encrypt(smbcquotas_auth_info)) {
nt_status = cli_cm_force_encryption(c,
- get_cmdline_auth_info_username(),
- get_cmdline_auth_info_password(),
+ get_cmdline_auth_info_username(smbcquotas_auth_info),
+ get_cmdline_auth_info_password(smbcquotas_auth_info),
lp_workgroup(),
share);
if (!NT_STATUS_IS_OK(nt_status)) {
lp_load(get_dyn_CONFIGFILE(),True,False,False,True);
load_interfaces();
+ smbcquotas_auth_info = user_auth_info_init(frame);
+ if (smbcquotas_auth_info == NULL) {
+ exit(1);
+ }
+ popt_common_set_auth_info(smbcquotas_auth_info);
+
pc = poptGetContext("smbcquotas", argc, argv, long_options, 0);
poptSetOtherOptionHelp(pc, "//server1/share1");
todo = USER_QUOTA;
if (!fix_user) {
- username_str = talloc_strdup(frame, get_cmdline_auth_info_username());
+ username_str = talloc_strdup(
+ frame, get_cmdline_auth_info_username(smbcquotas_auth_info));
if (!username_str) {
exit(EXIT_PARSE_ERROR);
}
/* start listening on port 445 locally */
- zero_addr(&my_ss);
+ zero_sockaddr(&my_ss);
s = open_socket_in(SOCK_STREAM, 445, 0, &my_ss, True);
if (s == -1) {
int main(int argc,char *argv[])
{
TALLOC_CTX *frame = talloc_stackframe();
- struct user_auth_info local_auth_info;
+ struct user_auth_info *auth_info;
struct poptOption long_options[] = {
POPT_AUTOHELP
{ "broadcast", 'b', POPT_ARG_VAL, &use_bcast, True, "Use broadcast instead of using the master browser" },
setup_logging(argv[0],True);
+ auth_info = user_auth_info_init(frame);
+ if (auth_info == NULL) {
+ exit(1);
+ }
+ popt_common_set_auth_info(auth_info);
+
pc = poptGetContext("smbtree", argc, (const char **)argv, long_options,
POPT_CONTEXT_KEEP_FIRST);
while(poptGetNextOpt(pc) != -1);
/* Parse command line args */
- if (get_cmdline_auth_info_use_machine_account() &&
- !set_cmdline_auth_info_machine_account_creds()) {
+ if (get_cmdline_auth_info_use_machine_account(auth_info) &&
+ !set_cmdline_auth_info_machine_account_creds(auth_info)) {
TALLOC_FREE(frame);
return 1;
}
- if (!get_cmdline_auth_info_got_pass()) {
+ if (!get_cmdline_auth_info_got_pass(auth_info)) {
char *pass = getpass("Password: ");
if (pass) {
- set_cmdline_auth_info_password(pass);
+ set_cmdline_auth_info_password(auth_info, pass);
}
}
/* Now do our stuff */
- if (!get_cmdline_auth_info_copy(&local_auth_info)) {
- return 1;
- }
-
- if (!print_tree(&local_auth_info)) {
+ if (!print_tree(auth_info)) {
TALLOC_FREE(frame);
return 1;
}
TALLOC_CTX *ctx = talloc_stackframe();
if (parm->p_class == P_LOCAL && snum >= 0) {
- ptr = lp_local_ptr(snum, ptr);
+ ptr = lp_local_ptr_by_snum(snum, ptr);
}
printf("<tr><td>%s</td><td>", get_parm_translated(ctx,
void *ptr = parm->ptr;
if (parm->p_class == P_LOCAL && snum >= 0) {
- ptr = lp_local_ptr(snum, ptr);
+ ptr = lp_local_ptr_by_snum(snum, ptr);
}
switch (parm->type) {
Copyright (C) Andrew Tridgell 2002
Copyright (C) Jelmer Vernooij 2003
Copyright (C) Volker Lendecke 2004
-
+
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
-
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
DEBUG(0, ("winbindd status:\n"));
/* Print client state information */
-
+
DEBUG(0, ("\t%d clients currently active\n", winbindd_num_clients()));
-
+
if (DEBUGLEVEL >= 2 && winbindd_num_clients()) {
DEBUG(2, ("\tclient list:\n"));
for(tmp = winbindd_client_list(); tmp; tmp = tmp->next) {
}
idmap_close();
-
+
trustdom_cache_shutdown();
#if 0
exit(0);
}
-static bool do_sigterm;
+static SIG_ATOMIC_T do_sigterm = 0;
static void termination_handler(int signum)
{
- do_sigterm = True;
+ do_sigterm = 1;
sys_select_signal(signum);
}
-static bool do_sigusr2;
+static SIG_ATOMIC_T do_sigusr2 = 0;
static void sigusr2_handler(int signum)
{
- do_sigusr2 = True;
+ do_sigusr2 = 1;
sys_select_signal(SIGUSR2);
}
-static bool do_sighup;
+static SIG_ATOMIC_T do_sighup = 0;
static void sighup_handler(int signum)
{
- do_sighup = True;
+ do_sighup = 1;
sys_select_signal(SIGHUP);
}
-static bool do_sigchld;
+static SIG_ATOMIC_T do_sigchld = 0;
static void sigchld_handler(int signum)
{
- do_sigchld = True;
+ do_sigchld = 1;
sys_select_signal(SIGCHLD);
}
struct server_id server_id,
DATA_BLOB *data)
{
- do_sigterm = True;
+ do_sigterm = 1;
}
void (*fn)(struct winbindd_cli_state *state);
const char *winbindd_cmd_name;
} dispatch_table[] = {
-
+
/* User functions */
{ WINBINDD_GETPWNAM, winbindd_getpwnam, "GETPWNAM" },
struct winbindd_cli_state *state;
socklen_t len;
int sock;
-
+
/* Accept connection */
-
+
len = sizeof(sunaddr);
do {
if (sock == -1)
return;
-
+
DEBUG(6,("accepted socket %d\n", sock));
-
+
/* Create new connection structure */
-
+
if ((state = TALLOC_ZERO_P(NULL, struct winbindd_cli_state)) == NULL) {
close(sock);
return;
}
-
+
state->sock = sock;
state->last_access = time(NULL);
request_len_recv, state);
/* Add to connection list */
-
+
winbindd_add_client(state);
}
char c = 0;
/* It's a dead client - hold a funeral */
-
+
if (state == NULL) {
return;
}
write(state->sock, &c, sizeof(c));
/* Close socket */
-
+
close(state->sock);
-
+
/* Free any getent state */
-
+
free_getent_state(state->getpwent_state);
free_getent_state(state->getgrent_state);
-
+
/* We may have some extra data that was not freed if the client was
killed unexpectedly */
TALLOC_FREE(state->mem_ctx);
remove_fd_event(&state->fd_event);
-
+
/* Remove from list and free */
-
+
winbindd_remove_client(state);
TALLOC_FREE(state);
}
flush_caches();
reload_services_file(lfile);
- do_sighup = False;
+ do_sighup = 0;
}
}
}
/* Call select */
-
+
selret = sys_select(maxfd + 1, &r_fds, &w_fds, NULL, &timeout);
if (selret == 0) {
/* new, non-privileged connection */
new_connection(listen_sock, False);
}
-
+
if (FD_ISSET(listen_priv_sock, &r_fds)) {
while (winbindd_num_clients() >
WINBINDD_MAX_SIMULTANEOUS_CLIENTS - 1) {
if (do_sigusr2) {
print_winbindd_status();
- do_sigusr2 = False;
+ do_sigusr2 = 0;
}
if (do_sigchld) {
pid_t pid;
- do_sigchld = False;
+ do_sigchld = 0;
while ((pid = sys_waitpid(-1, NULL, WNOHANG)) > 0) {
winbind_child_died(pid);
BlockSignals(False, SIGCHLD);
/* Setup signal handlers */
-
+
CatchSignal(SIGINT, termination_handler); /* Exit on these sigs */
CatchSignal(SIGQUIT, termination_handler);
CatchSignal(SIGTERM, termination_handler);
messaging_register(winbind_messaging_context(), NULL,
MSG_DEBUG,
winbind_msg_debug);
-
+
netsamlogon_cache_init(); /* Non-critical */
-
+
/* clear the cached list of trusted domains */
wcache_tdc_clear();
-
+
if (!init_domain_list()) {
DEBUG(0,("unable to initialize domain list\n"));
exit(1);
Copyright (C) Volker Lendecke 2005
Copyright (C) Gerald Carter 2006
-
+
The helpers always consist of three functions:
* A request setup function that takes the necessary parameters together
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
-
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/* Try again using the forest root */
struct winbindd_domain *root_domain = find_root_domain();
struct winbindd_request request;
-
+
if ( !root_domain ) {
DEBUG(5,("lookupsid_recv: unable to determine forest root\n"));
cont(s->caller_private_data, False, NULL, NULL, SID_NAME_UNKNOWN);
do_async_domain(mem_ctx, domain, &request, listent_recv,
(void *)cont, private_data);
}
-
+
enum winbindd_result winbindd_dual_list_users(struct winbindd_domain *domain,
struct winbindd_cli_state *state)
{
methods = domain->methods;
status = methods->query_user_list(domain, state->mem_ctx,
&num_entries, &info);
-
+
if (!NT_STATUS_IS_OK(status))
return WINBINDD_ERROR;
+1 for the ',' between group names */
extra_data = (char *)SMB_REALLOC(extra_data,
(sizeof(fstring) + 1) * num_entries);
-
+
if (!extra_data) {
DEBUG(0,("failed to enlarge buffer!\n"));
return WINBINDD_ERROR;
/* Pack user list into extra data fields */
for (i = 0; i < num_entries; i++) {
fstring acct_name, name;
-
+
if (info[i].acct_name == NULL)
fstrcpy(acct_name, "");
else
fstrcpy(acct_name, info[i].acct_name);
-
+
fill_domain_username(name, domain->name, acct_name, True);
/* Append to extra data */
memcpy(&extra_data[extra_data_len], name, strlen(name));
(char *)state->response.extra_data.data));
state->response.length += len+1;
}
-
+
return WINBINDD_OK;
}
static void gettoken_recvaliases(void *private_data, bool success,
const DOM_SID *aliases,
size_t num_aliases);
-
+
void winbindd_gettoken_async(TALLOC_CTX *mem_ctx, const DOM_SID *user_sid,
void (*cont)(void *private_data, bool success,
struct gettoken_state *state =
talloc_get_type_abort(private_data, struct gettoken_state);
char *sids_str;
-
+
if (!success) {
DEBUG(10, ("Could not get domain groups\n"));
state->cont(state->private_data, False, NULL, 0);
/* Make sure there's no duplicates in the list */
for (i=0; i<*num; i++)
- if (addr_equal((struct sockaddr *)&(*dcs)[i].ss, (struct sockaddr *)pss))
+ if (sockaddr_equal((struct sockaddr *)&(*dcs)[i].ss, (struct sockaddr *)pss))
return False;
*dcs = TALLOC_REALLOC_ARRAY(mem_ctx, *dcs, struct dc_name_ip, (*num)+1);
/* Get info for the domain */
- if ((domain = find_domain_from_name(name_domain)) == NULL) {
+ if ((domain = find_domain_from_name_noinit(name_domain)) == NULL) {
DEBUG(3, ("could not get domain sid for domain %s\n",
name_domain));
request_error(state);
};
static void getgrsid_sid2gid_recv(void *private_data, bool success, gid_t gid)
- {
+{
struct getgrsid_state *s =
(struct getgrsid_state *)private_data;
struct winbindd_domain *domain;
s->state->response.extra_data.data = gr_mem;
request_ok(s->state);
- }
+}
static void getgrsid_lookupsid_recv( void *private_data, bool success,
const char *dom_name, const char *name,
void winbind_check_sigterm(bool in_parent);
int main(int argc, char **argv, char **envp);
+/* The following definitions come from winbindd/winbindd_reqtrans.c */
+
+struct async_req *wb_req_read_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ int fd, size_t max_extra_data);
+NTSTATUS wb_req_read_recv(struct async_req *req, TALLOC_CTX *mem_ctx,
+ struct winbindd_request **preq);
+struct async_req *wb_req_write_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev, int fd,
+ struct winbindd_request *wb_req);
+NTSTATUS wb_req_write_recv(struct async_req *req);
+
+struct async_req *wb_resp_read_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev, int fd);
+NTSTATUS wb_resp_read_recv(struct async_req *req, TALLOC_CTX *mem_ctx,
+ struct winbindd_response **presp);
+struct async_req *wb_resp_write_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev, int fd,
+ struct winbindd_response *wb_resp);
+NTSTATUS wb_resp_write_recv(struct async_req *req);
+
+struct async_req *wb_trans_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ int fd,
+ struct winbindd_request *wb_req,
+ struct timeval timeout,
+ size_t reply_max_extra_data);
+NTSTATUS wb_trans_recv(struct async_req *req, TALLOC_CTX *mem_ctx,
+ struct winbindd_response **presp);
+
/* The following definitions come from winbindd/winbindd_ads.c */
--- /dev/null
+/*
+ Unix SMB/CIFS implementation.
+
+ Async transfer of winbindd_request and _response structs
+
+ Copyright (C) Volker Lendecke 2008
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "includes.h"
+#include "winbindd.h"
+
+#undef DBGC_CLASS
+#define DBGC_CLASS DBGC_WINBIND
+
+struct req_read_state {
+ struct winbindd_request *wb_req;
+ struct event_context *ev;
+ size_t max_extra_data;
+ int fd;
+};
+
+static void wb_req_read_len(struct async_req *subreq);
+static void wb_req_read_main(struct async_req *subreq);
+static void wb_req_read_extra(struct async_req *subreq);
+
+struct async_req *wb_req_read_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ int fd, size_t max_extra_data)
+{
+ struct async_req *result, *subreq;
+ struct req_read_state *state;
+
+ result = async_req_new(mem_ctx, ev);
+ if (result == NULL) {
+ return NULL;
+ }
+
+ state = talloc(result, struct req_read_state);
+ if (state == NULL) {
+ goto nomem;
+ }
+ result->private_data = state;
+
+ state->fd = fd;
+ state->ev = ev;
+ state->max_extra_data = max_extra_data;
+ state->wb_req = talloc(state, struct winbindd_request);
+ if (state->wb_req == NULL) {
+ goto nomem;
+ }
+
+ subreq = recvall_send(state, ev, state->fd, &(state->wb_req->length),
+ sizeof(state->wb_req->length), 0);
+ if (subreq == NULL) {
+ goto nomem;
+ }
+
+ subreq->async.fn = wb_req_read_len;
+ subreq->async.priv = result;
+ return result;
+
+ nomem:
+ TALLOC_FREE(result);
+ return NULL;
+}
+
+static void wb_req_read_len(struct async_req *subreq)
+{
+ struct async_req *req = talloc_get_type_abort(
+ subreq->async.priv, struct async_req);
+ struct req_read_state *state = talloc_get_type_abort(
+ req->private_data, struct req_read_state);
+ NTSTATUS status;
+
+ status = recvall_recv(subreq);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ async_req_error(req, status);
+ return;
+ }
+
+ if (state->wb_req->length != sizeof(struct winbindd_request)) {
+ DEBUG(0, ("wb_req_read_len: Invalid request size received: "
+ "%d (expected %d)\n", (int)state->wb_req->length,
+ (int)sizeof(struct winbindd_request)));
+ async_req_error(req, NT_STATUS_INVALID_BUFFER_SIZE);
+ return;
+ }
+
+ subreq = recvall_send(
+ req, state->ev, state->fd, (uint32 *)(state->wb_req)+1,
+ sizeof(struct winbindd_request) - sizeof(uint32), 0);
+ if (async_req_nomem(subreq, req)) {
+ return;
+ }
+
+ subreq->async.fn = wb_req_read_main;
+ subreq->async.priv = req;
+}
+
+static void wb_req_read_main(struct async_req *subreq)
+{
+ struct async_req *req = talloc_get_type_abort(
+ subreq->async.priv, struct async_req);
+ struct req_read_state *state = talloc_get_type_abort(
+ req->private_data, struct req_read_state);
+ NTSTATUS status;
+
+ status = recvall_recv(subreq);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ async_req_error(req, status);
+ return;
+ }
+
+ if ((state->max_extra_data != 0)
+ && (state->wb_req->extra_len > state->max_extra_data)) {
+ DEBUG(3, ("Got request with %d bytes extra data on "
+ "unprivileged socket\n",
+ (int)state->wb_req->extra_len));
+ async_req_error(req, NT_STATUS_INVALID_BUFFER_SIZE);
+ return;
+ }
+
+ if (state->wb_req->extra_len == 0) {
+ async_req_done(req);
+ return;
+ }
+
+ state->wb_req->extra_data.data = TALLOC_ARRAY(
+ state->wb_req, char, state->wb_req->extra_len + 1);
+ if (async_req_nomem(state->wb_req->extra_data.data, req)) {
+ return;
+ }
+
+ state->wb_req->extra_data.data[state->wb_req->extra_len] = 0;
+
+ subreq = recvall_send(
+ req, state->ev, state->fd, state->wb_req->extra_data.data,
+ state->wb_req->extra_len, 0);
+ if (async_req_nomem(subreq, req)) {
+ return;
+ }
+
+ subreq->async.fn = wb_req_read_extra;
+ subreq->async.priv = req;
+}
+
+static void wb_req_read_extra(struct async_req *subreq)
+{
+ struct async_req *req = talloc_get_type_abort(
+ subreq->async.priv, struct async_req);
+ NTSTATUS status;
+
+ status = recvall_recv(subreq);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ async_req_error(req, status);
+ return;
+ }
+ async_req_done(req);
+}
+
+
+NTSTATUS wb_req_read_recv(struct async_req *req, TALLOC_CTX *mem_ctx,
+ struct winbindd_request **preq)
+{
+ struct req_read_state *state = talloc_get_type_abort(
+ req->private_data, struct req_read_state);
+ NTSTATUS status;
+
+ if (async_req_is_error(req, &status)) {
+ return status;
+ }
+ *preq = talloc_move(mem_ctx, &state->wb_req);
+ return NT_STATUS_OK;
+}
+
+struct req_write_state {
+ struct winbindd_request *wb_req;
+ struct event_context *ev;
+ int fd;
+};
+
+static void wb_req_write_main(struct async_req *subreq);
+static void wb_req_write_extra(struct async_req *subreq);
+
+struct async_req *wb_req_write_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev, int fd,
+ struct winbindd_request *wb_req)
+{
+ struct async_req *result, *subreq;
+ struct req_write_state *state;
+
+ result = async_req_new(mem_ctx, ev);
+ if (result == NULL) {
+ return NULL;
+ }
+
+ state = talloc(result, struct req_write_state);
+ if (state == NULL) {
+ goto nomem;
+ }
+ result->private_data = state;
+
+ state->fd = fd;
+ state->ev = ev;
+ state->wb_req = wb_req;
+
+ subreq = sendall_send(state, state->ev, state->fd, state->wb_req,
+ sizeof(struct winbindd_request), 0);
+ if (subreq == NULL) {
+ goto nomem;
+ }
+
+ subreq->async.fn = wb_req_write_main;
+ subreq->async.priv = result;
+ return result;
+
+ nomem:
+ TALLOC_FREE(result);
+ return NULL;
+}
+
+static void wb_req_write_main(struct async_req *subreq)
+{
+ struct async_req *req = talloc_get_type_abort(
+ subreq->async.priv, struct async_req);
+ struct req_write_state *state = talloc_get_type_abort(
+ req->private_data, struct req_write_state);
+ NTSTATUS status;
+
+ status = sendall_recv(subreq);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ async_req_error(req, status);
+ return;
+ }
+
+ if (state->wb_req->extra_len == 0) {
+ async_req_done(req);
+ return;
+ }
+
+ subreq = sendall_send(state, state->ev, state->fd,
+ state->wb_req->extra_data.data,
+ state->wb_req->extra_len, 0);
+ if (async_req_nomem(subreq, req)) {
+ return;
+ }
+
+ subreq->async.fn = wb_req_write_extra;
+ subreq->async.priv = req;
+}
+
+static void wb_req_write_extra(struct async_req *subreq)
+{
+ struct async_req *req = talloc_get_type_abort(
+ subreq->async.priv, struct async_req);
+ NTSTATUS status;
+
+ status = sendall_recv(subreq);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ async_req_error(req, status);
+ return;
+ }
+
+ async_req_done(req);
+}
+
+NTSTATUS wb_req_write_recv(struct async_req *req)
+{
+ return async_req_simple_recv(req);
+}
+
+struct resp_read_state {
+ struct winbindd_response *wb_resp;
+ struct event_context *ev;
+ size_t max_extra_data;
+ int fd;
+};
+
+static void wb_resp_read_len(struct async_req *subreq);
+static void wb_resp_read_main(struct async_req *subreq);
+static void wb_resp_read_extra(struct async_req *subreq);
+
+struct async_req *wb_resp_read_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev, int fd)
+{
+ struct async_req *result, *subreq;
+ struct resp_read_state *state;
+
+ result = async_req_new(mem_ctx, ev);
+ if (result == NULL) {
+ return NULL;
+ }
+
+ state = talloc(result, struct resp_read_state);
+ if (state == NULL) {
+ goto nomem;
+ }
+ result->private_data = state;
+
+ state->fd = fd;
+ state->ev = ev;
+ state->wb_resp = talloc(state, struct winbindd_response);
+ if (state->wb_resp == NULL) {
+ goto nomem;
+ }
+
+ subreq = recvall_send(state, ev, state->fd, &(state->wb_resp->length),
+ sizeof(state->wb_resp->length), 0);
+ if (subreq == NULL) {
+ goto nomem;
+ }
+
+ subreq->async.fn = wb_resp_read_len;
+ subreq->async.priv = result;
+ return result;
+
+ nomem:
+ TALLOC_FREE(result);
+ return NULL;
+}
+
+static void wb_resp_read_len(struct async_req *subreq)
+{
+ struct async_req *req = talloc_get_type_abort(
+ subreq->async.priv, struct async_req);
+ struct resp_read_state *state = talloc_get_type_abort(
+ req->private_data, struct resp_read_state);
+ NTSTATUS status;
+
+ status = recvall_recv(subreq);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ async_req_error(req, status);
+ return;
+ }
+
+ if (state->wb_resp->length < sizeof(struct winbindd_response)) {
+ DEBUG(0, ("wb_resp_read_len: Invalid response size received: "
+ "%d (expected at least%d)\n",
+ (int)state->wb_resp->length,
+ (int)sizeof(struct winbindd_response)));
+ async_req_error(req, NT_STATUS_INVALID_BUFFER_SIZE);
+ return;
+ }
+
+ subreq = recvall_send(
+ req, state->ev, state->fd, (uint32 *)(state->wb_resp)+1,
+ sizeof(struct winbindd_response) - sizeof(uint32), 0);
+ if (async_req_nomem(subreq, req)) {
+ return;
+ }
+
+ subreq->async.fn = wb_resp_read_main;
+ subreq->async.priv = req;
+}
+
+static void wb_resp_read_main(struct async_req *subreq)
+{
+ struct async_req *req = talloc_get_type_abort(
+ subreq->async.priv, struct async_req);
+ struct resp_read_state *state = talloc_get_type_abort(
+ req->private_data, struct resp_read_state);
+ NTSTATUS status;
+ size_t extra_len;
+
+ status = recvall_recv(subreq);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ async_req_error(req, status);
+ return;
+ }
+
+ extra_len = state->wb_resp->length - sizeof(struct winbindd_response);
+ if (extra_len == 0) {
+ async_req_done(req);
+ return;
+ }
+
+ state->wb_resp->extra_data.data = TALLOC_ARRAY(
+ state->wb_resp, char, extra_len+1);
+ if (async_req_nomem(state->wb_resp->extra_data.data, req)) {
+ return;
+ }
+ ((char *)state->wb_resp->extra_data.data)[extra_len] = 0;
+
+ subreq = recvall_send(
+ req, state->ev, state->fd, state->wb_resp->extra_data.data,
+ extra_len, 0);
+ if (async_req_nomem(subreq, req)) {
+ return;
+ }
+
+ subreq->async.fn = wb_resp_read_extra;
+ subreq->async.priv = req;
+}
+
+static void wb_resp_read_extra(struct async_req *subreq)
+{
+ struct async_req *req = talloc_get_type_abort(
+ subreq->async.priv, struct async_req);
+ NTSTATUS status;
+
+ status = recvall_recv(subreq);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ async_req_error(req, status);
+ return;
+ }
+ async_req_done(req);
+}
+
+
+NTSTATUS wb_resp_read_recv(struct async_req *req, TALLOC_CTX *mem_ctx,
+ struct winbindd_response **presp)
+{
+ struct resp_read_state *state = talloc_get_type_abort(
+ req->private_data, struct resp_read_state);
+ NTSTATUS status;
+
+ if (async_req_is_error(req, &status)) {
+ return status;
+ }
+ *presp = talloc_move(mem_ctx, &state->wb_resp);
+ return NT_STATUS_OK;
+}
+
+struct resp_write_state {
+ struct winbindd_response *wb_resp;
+ struct event_context *ev;
+ int fd;
+};
+
+static void wb_resp_write_main(struct async_req *subreq);
+static void wb_resp_write_extra(struct async_req *subreq);
+
+struct async_req *wb_resp_write_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev, int fd,
+ struct winbindd_response *wb_resp)
+{
+ struct async_req *result, *subreq;
+ struct resp_write_state *state;
+
+ result = async_req_new(mem_ctx, ev);
+ if (result == NULL) {
+ return NULL;
+ }
+
+ state = talloc(result, struct resp_write_state);
+ if (state == NULL) {
+ goto nomem;
+ }
+ result->private_data = state;
+
+ state->fd = fd;
+ state->ev = ev;
+ state->wb_resp = wb_resp;
+
+ subreq = sendall_send(state, state->ev, state->fd, state->wb_resp,
+ sizeof(struct winbindd_response), 0);
+ if (subreq == NULL) {
+ goto nomem;
+ }
+
+ subreq->async.fn = wb_resp_write_main;
+ subreq->async.priv = result;
+ return result;
+
+ nomem:
+ TALLOC_FREE(result);
+ return NULL;
+}
+
+static void wb_resp_write_main(struct async_req *subreq)
+{
+ struct async_req *req = talloc_get_type_abort(
+ subreq->async.priv, struct async_req);
+ struct resp_write_state *state = talloc_get_type_abort(
+ req->private_data, struct resp_write_state);
+ NTSTATUS status;
+
+ status = sendall_recv(subreq);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ async_req_error(req, status);
+ return;
+ }
+
+ if (state->wb_resp->length == sizeof(struct winbindd_response)) {
+ async_req_done(req);
+ return;
+ }
+
+ subreq = sendall_send(
+ state, state->ev, state->fd,
+ state->wb_resp->extra_data.data,
+ state->wb_resp->length - sizeof(struct winbindd_response), 0);
+ if (async_req_nomem(subreq, req)) {
+ return;
+ }
+
+ subreq->async.fn = wb_resp_write_extra;
+ subreq->async.priv = req;
+}
+
+static void wb_resp_write_extra(struct async_req *subreq)
+{
+ struct async_req *req = talloc_get_type_abort(
+ subreq->async.priv, struct async_req);
+ NTSTATUS status;
+
+ status = sendall_recv(subreq);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ async_req_error(req, status);
+ return;
+ }
+
+ async_req_done(req);
+}
+
+NTSTATUS wb_resp_write_recv(struct async_req *req)
+{
+ return async_req_simple_recv(req);
+}
+
+struct wb_trans_state {
+ struct event_context *ev;
+ struct timed_event *te;
+ int fd;
+ struct winbindd_response *wb_resp;
+ size_t reply_max_extra_data;
+};
+
+static void wb_trans_timeout(struct event_context *ev, struct timed_event *te,
+ const struct timeval *now, void *priv);
+static void wb_trans_sent(struct async_req *req);
+static void wb_trans_received(struct async_req *req);
+
+struct async_req *wb_trans_send(TALLOC_CTX *mem_ctx,
+ struct event_context *ev,
+ int fd,
+ struct winbindd_request *wb_req,
+ struct timeval timeout,
+ size_t reply_max_extra_data)
+{
+ struct async_req *result, *subreq;
+ struct wb_trans_state *state;
+
+ result = async_req_new(mem_ctx, ev);
+ if (result == NULL) {
+ return NULL;
+ }
+
+ state = talloc(result, struct wb_trans_state);
+ if (state == NULL) {
+ goto nomem;
+ }
+ result->private_data = state;
+
+ state->ev = ev;
+ state->fd = fd;
+ state->reply_max_extra_data = reply_max_extra_data;
+
+ state->te = event_add_timed(
+ ev, state,
+ timeval_current_ofs(timeout.tv_sec, timeout.tv_usec),
+ "wb_trans_timeout", wb_trans_timeout, result);
+ if (state->te == NULL) {
+ goto nomem;
+ }
+
+ subreq = wb_req_write_send(state, state->ev, state->fd, wb_req);
+ if (subreq == NULL) {
+ goto nomem;
+ }
+ subreq->async.fn = wb_trans_sent;
+ subreq->async.priv = result;
+
+ return result;
+
+ nomem:
+ TALLOC_FREE(result);
+ return NULL;
+}
+
+static void wb_trans_timeout(struct event_context *ev, struct timed_event *te,
+ const struct timeval *now, void *priv)
+{
+ struct async_req *req = talloc_get_type_abort(
+ priv, struct async_req);
+ struct wb_trans_state *state = talloc_get_type_abort(
+ req->private_data, struct wb_trans_state);
+
+ TALLOC_FREE(state->te);
+ async_req_error(req, NT_STATUS_IO_TIMEOUT);
+}
+
+static void wb_trans_sent(struct async_req *subreq)
+{
+ struct async_req *req = talloc_get_type_abort(
+ subreq->async.priv, struct async_req);
+ struct wb_trans_state *state = talloc_get_type_abort(
+ req->private_data, struct wb_trans_state);
+ NTSTATUS status;
+
+ status = wb_req_write_recv(subreq);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ async_req_error(req, status);
+ return;
+ }
+
+ subreq = wb_resp_read_send(state, state->ev, state->fd);
+ if (async_req_nomem(subreq, req)) {
+ return;
+ }
+
+ subreq->async.fn = wb_trans_received;
+ subreq->async.priv = req;
+};
+
+static void wb_trans_received(struct async_req *subreq)
+{
+ struct async_req *req = talloc_get_type_abort(
+ subreq->async.priv, struct async_req);
+ struct wb_trans_state *state = talloc_get_type_abort(
+ req->private_data, struct wb_trans_state);
+ NTSTATUS status;
+
+ TALLOC_FREE(state->te);
+
+ status = wb_resp_read_recv(subreq, state, &state->wb_resp);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ async_req_error(req, status);
+ return;
+ }
+
+ async_req_done(req);
+}
+
+NTSTATUS wb_trans_recv(struct async_req *req, TALLOC_CTX *mem_ctx,
+ struct winbindd_response **presp)
+{
+ struct wb_trans_state *state = talloc_get_type_abort(
+ req->private_data, struct wb_trans_state);
+ NTSTATUS status;
+
+ if (async_req_is_error(req, &status)) {
+ return status;
+ }
+ *presp = talloc_move(mem_ctx, &state->wb_resp);
+ return NT_STATUS_OK;
+}
+
+struct wb_trans_queue_state {
+ struct wb_trans_queue_state *prev, *next;
+ struct wb_trans_queue *queue;
+ struct winbindd_request *req;
+};
+
+struct wb_trans_queue {
+ int fd;
+ struct timeval timeout;
+ size_t max_resp_extra_data;
+ struct wb_trans_queue_state *queued_requests;
+};
/* Get info for the domain */
- domain = find_domain_from_name(domname);
+ domain = find_domain_from_name_noinit(domname);
if (domain == NULL) {
DEBUG(7, ("could not find domain entry for domain %s. "
struct ldb_message *msg,
struct ldb_message *msg_domain_ref,
const char *logon_workstation,
- const char *name_for_logs);
+ const char *name_for_logs,
+ bool allow_domain_trust);
struct auth_session_info *system_session(TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx);
NTSTATUS authsam_make_server_info(TALLOC_CTX *mem_ctx, struct ldb_context *sam_ctx,
const char *netbios_name,
msgs[0],
msgs_domain_ref[0],
user_info->workstation_name,
- user_info->mapped.account_name);
+ user_info->mapped.account_name,
+ false);
return nt_status;
}
struct ldb_message *msg,
struct ldb_message *msg_domain_ref,
const char *logon_workstation,
- const char *name_for_logs)
+ const char *name_for_logs,
+ bool allow_domain_trust)
{
uint16_t acct_flags;
const char *workstation_list;
return NT_STATUS_INVALID_LOGON_HOURS;
}
- if (acct_flags & ACB_DOMTRUST) {
- DEBUG(2,("sam_account_ok: Domain trust account %s denied by server\n", name_for_logs));
- return NT_STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT;
+ if (!allow_domain_trust) {
+ if (acct_flags & ACB_DOMTRUST) {
+ DEBUG(2,("sam_account_ok: Domain trust account %s denied by server\n", name_for_logs));
+ return NT_STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT;
+ }
}
-
if (!(logon_parameters & MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT)) {
if (acct_flags & ACB_SVRTRUST) {
DEBUG(2,("sam_account_ok: Server trust account %s denied by server\n", name_for_logs));
}
}
+static int kludge_acl_extended(struct ldb_module *module, struct ldb_request *req)
+{
+ enum security_user_level user_type;
+
+ /* allow everybody to read the sequence number */
+ if (strcmp(req->op.extended.oid,
+ LDB_EXTENDED_SEQUENCE_NUMBER) == 0) {
+ return ldb_next_request(module, req);
+ }
+
+ user_type = what_is_user(module);
+
+ switch (user_type) {
+ case SECURITY_SYSTEM:
+ case SECURITY_ADMINISTRATOR:
+ return ldb_next_request(module, req);
+ default:
+ ldb_asprintf_errstring(module->ldb,
+ "kludge_acl_change: "
+ "attempted database modify not permitted. "
+ "User %s is not SYSTEM or an administrator",
+ user_name(req, module));
+ return LDB_ERR_INSUFFICIENT_ACCESS_RIGHTS;
+ }
+}
+
static int kludge_acl_init(struct ldb_module *module)
{
int ret, i;
.modify = kludge_acl_change,
.del = kludge_acl_change,
.rename = kludge_acl_change,
- .extended = kludge_acl_change,
+ .extended = kludge_acl_extended,
.init_context = kludge_acl_init
};
ntAttr = ldb_msg_find_element(req->op.mod.message, "unicodePwd");
lmAttr = ldb_msg_find_element(req->op.mod.message, "dBCSPwd");
- if ((!sambaAttr) && (!ntAttr) && (!lmAttr)) {
+ if ((!sambaAttr) && (!clearTextPasswordAttr) && (!ntAttr) && (!lmAttr)) {
return ldb_next_request(module, req);
}
rpc_server/common/common.h: dcerpc_server/common.h
libcli/auth/credentials.h: domain_credentials.h
../lib/util/charset/charset.h: charset.h
-libcli/ldap/ldap.h: ldap.h
+libcli/ldap/ldap.h: ldap-util.h
../lib/torture/torture.h: torture.h
libcli/libcli.h: client.h
librpc/gen_ndr/nbt.h: gen_ndr/nbt.h
}
}
+ /* we allow all kinds of trusts here */
nt_status = authsam_account_ok(tmp_ctx,
private->samdb,
MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT | MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT,
private->msg,
private->realm_ref_msg,
workstation,
- name);
+ name, true);
free(name);
if (NT_STATUS_IS_OK(nt_status))
before calling, the out blob must be initialised to be the same size
as the in blob
*/
-static void sess_crypt_blob(DATA_BLOB *out, const DATA_BLOB *in, const DATA_BLOB *session_key,
+void sess_crypt_blob(DATA_BLOB *out, const DATA_BLOB *in, const DATA_BLOB *session_key,
bool forward)
{
int i, k;
broadcast name resolution method - recv side
*/
NTSTATUS resolve_name_bcast_recv(struct composite_context *c,
- TALLOC_CTX *mem_ctx, const char **reply_addr)
+ TALLOC_CTX *mem_ctx,
+ struct socket_address ***addrs)
{
- NTSTATUS status = resolve_name_nbtlist_recv(c, mem_ctx, reply_addr);
+ NTSTATUS status = resolve_name_nbtlist_recv(c, mem_ctx, addrs);
if (NT_STATUS_EQUAL(status, NT_STATUS_IO_TIMEOUT)) {
/* this makes much more sense for a bcast name resolution
timeout */
struct interface *ifaces,
uint16_t nbt_port,
int nbt_timeout,
- const char **reply_addr)
+ struct socket_address ***addrs)
{
struct resolve_bcast_data *data = talloc(mem_ctx, struct resolve_bcast_data);
struct composite_context *c;
data->nbt_timeout = nbt_timeout;
c = resolve_name_bcast_send(mem_ctx, NULL, data, name);
- return resolve_name_bcast_recv(c, mem_ctx, reply_addr);
+ return resolve_name_bcast_recv(c, mem_ctx, addrs);
}
bool resolve_context_add_bcast_method(struct resolve_context *ctx, struct interface *ifaces, uint16_t nbt_port, int nbt_timeout)
#include "lib/events/events.h"
#include "system/network.h"
#include "system/filesys.h"
+#include "lib/socket/socket.h"
#include "libcli/composite/composite.h"
#include "librpc/gen_ndr/ndr_nbt.h"
#include "libcli/resolve/resolve.h"
struct host_state {
struct nbt_name name;
- const char *reply_addr;
+ struct socket_address **addrs;
pid_t child;
int child_fd;
struct fd_event *fde;
struct host_state *state = talloc_get_type(c->private_data, struct host_state);
char address[128];
int ret;
- pid_t child = state->child;
int status;
/* if we get any event from the child then we know that we
return;
}
- state->reply_addr = talloc_strdup(state, address);
- if (composite_nomem(state->reply_addr, c)) return;
+ state->addrs = talloc_array(state, struct socket_address *, 2);
+ if (composite_nomem(state->addrs, c)) return;
+
+ state->addrs[0] = socket_address_from_strings(state->addrs,
+ "ipv4",
+ address,
+ 0);
+ if (composite_nomem(state->addrs[0], c)) return;
+ state->addrs[1] = NULL;
composite_done(c);
}
gethostbyname name resolution method - recv side
*/
NTSTATUS resolve_name_host_recv(struct composite_context *c,
- TALLOC_CTX *mem_ctx, const char **reply_addr)
+ TALLOC_CTX *mem_ctx,
+ struct socket_address ***addrs)
{
NTSTATUS status;
if (NT_STATUS_IS_OK(status)) {
struct host_state *state = talloc_get_type(c->private_data, struct host_state);
- *reply_addr = talloc_steal(mem_ctx, state->reply_addr);
+ *addrs = talloc_steal(mem_ctx, state->addrs);
}
talloc_free(c);
*/
NTSTATUS resolve_name_host(struct nbt_name *name,
TALLOC_CTX *mem_ctx,
- const char **reply_addr)
+ struct socket_address ***addrs)
{
struct composite_context *c = resolve_name_host_send(mem_ctx, NULL, NULL, name);
- return resolve_name_host_recv(c, mem_ctx, reply_addr);
+ return resolve_name_host_recv(c, mem_ctx, addrs);
}
bool resolve_context_add_host_method(struct resolve_context *ctx)
#include "includes.h"
#include "libcli/composite/composite.h"
#include "system/network.h"
+#include "lib/socket/socket.h"
#include "lib/socket/netif.h"
#include "librpc/gen_ndr/ndr_nbt.h"
#include "../libcli/nbt/libnbt.h"
int num_queries;
struct nbt_name_request **queries;
struct nbt_name_query *io_queries;
- const char *reply_addr;
+ struct socket_address **addrs;
struct interface *ifaces;
};
talloc_free(state->nbtsock);
if (!composite_is_ok(c)) return;
- if (state->io_queries[i].out.num_addrs < 1) {
+ if (q->out.num_addrs < 1) {
composite_error(c, NT_STATUS_UNEXPECTED_NETWORK_ERROR);
return;
}
- /* favor a local address if possible */
- state->reply_addr = NULL;
- for (i=0;i<q->out.num_addrs;i++) {
- if (iface_is_local(state->ifaces, q->out.reply_addrs[i])) {
- state->reply_addr = talloc_steal(state,
- q->out.reply_addrs[i]);
- break;
- }
- }
+ state->addrs = talloc_array(state, struct socket_address *,
+ q->out.num_addrs + 1);
+ if (composite_nomem(state->addrs, c)) return;
- if (state->reply_addr == NULL) {
- state->reply_addr = talloc_steal(state,
- q->out.reply_addrs[0]);
+ for (i=0;i<q->out.num_addrs;i++) {
+ state->addrs[i] = socket_address_from_strings(state->addrs,
+ "ipv4",
+ q->out.reply_addrs[i],
+ 0);
+ if (composite_nomem(state->addrs[i], c)) return;
}
+ state->addrs[i] = NULL;
composite_done(c);
}
nbt list of addresses name resolution method - recv side
*/
NTSTATUS resolve_name_nbtlist_recv(struct composite_context *c,
- TALLOC_CTX *mem_ctx, const char **reply_addr)
+ TALLOC_CTX *mem_ctx,
+ struct socket_address ***addrs)
{
NTSTATUS status;
if (NT_STATUS_IS_OK(status)) {
struct nbtlist_state *state = talloc_get_type(c->private_data, struct nbtlist_state);
- *reply_addr = talloc_steal(mem_ctx, state->reply_addr);
+ *addrs = talloc_steal(mem_ctx, state->addrs);
}
talloc_free(c);
uint16_t nbt_port,
int nbt_timeout,
bool broadcast, bool wins_lookup,
- const char **reply_addr)
+ struct socket_address ***addrs)
{
struct composite_context *c = resolve_name_nbtlist_send(mem_ctx, NULL,
name, address_list,
ifaces, nbt_port,
nbt_timeout,
broadcast, wins_lookup);
- return resolve_name_nbtlist_recv(c, mem_ctx, reply_addr);
+ return resolve_name_nbtlist_recv(c, mem_ctx, addrs);
}
#include "libcli/resolve/resolve.h"
#include "librpc/gen_ndr/ndr_nbt.h"
#include "system/network.h"
+#include "lib/socket/socket.h"
#include "../lib/util/dlinklist.h"
struct resolve_state {
struct resolve_method *method;
struct nbt_name name;
struct composite_context *creq;
- const char *reply_addr;
+ struct socket_address **addrs;
};
static struct composite_context *setup_next_method(struct composite_context *c);
struct resolve_state *state = talloc_get_type(c->private_data, struct resolve_state);
const struct resolve_method *method = state->method;
- c->status = method->recv_fn(creq, state, &state->reply_addr);
+ c->status = method->recv_fn(creq, state, &state->addrs);
if (!NT_STATUS_IS_OK(c->status)) {
state->method = state->method->next;
/*
general name resolution - async send
*/
-struct composite_context *resolve_name_send(struct resolve_context *ctx,
- struct nbt_name *name,
- struct event_context *event_ctx)
+struct composite_context *resolve_name_all_send(struct resolve_context *ctx,
+ struct nbt_name *name,
+ struct event_context *event_ctx)
{
struct composite_context *c;
struct resolve_state *state;
if (is_ipaddress(state->name.name) ||
strcasecmp(state->name.name, "localhost") == 0) {
struct in_addr ip = interpret_addr2(state->name.name);
- state->reply_addr = talloc_strdup(state, inet_ntoa(ip));
- if (composite_nomem(state->reply_addr, c)) return c;
+
+ state->addrs = talloc_array(state, struct socket_address *, 2);
+ if (composite_nomem(state->addrs, c)) return c;
+ state->addrs[0] = socket_address_from_strings(state->addrs, "ipv4",
+ inet_ntoa(ip), 0);
+ if (composite_nomem(state->addrs[0], c)) return c;
+ state->addrs[1] = NULL;
composite_done(c);
return c;
}
/*
general name resolution method - recv side
*/
-NTSTATUS resolve_name_recv(struct composite_context *c,
- TALLOC_CTX *mem_ctx, const char **reply_addr)
+NTSTATUS resolve_name_all_recv(struct composite_context *c,
+ TALLOC_CTX *mem_ctx,
+ struct socket_address ***addrs)
{
NTSTATUS status;
if (NT_STATUS_IS_OK(status)) {
struct resolve_state *state = talloc_get_type(c->private_data, struct resolve_state);
- *reply_addr = talloc_steal(mem_ctx, state->reply_addr);
+ *addrs = talloc_steal(mem_ctx, state->addrs);
}
talloc_free(c);
/*
general name resolution - sync call
*/
-NTSTATUS resolve_name(struct resolve_context *ctx, struct nbt_name *name, TALLOC_CTX *mem_ctx, const char **reply_addr, struct event_context *ev)
+NTSTATUS resolve_all_name(struct resolve_context *ctx,
+ struct nbt_name *name,
+ TALLOC_CTX *mem_ctx,
+ struct socket_address ***addrs,
+ struct event_context *ev)
+{
+ struct composite_context *c = resolve_name_all_send(ctx, name, ev);
+ return resolve_name_all_recv(c, mem_ctx, addrs);
+}
+
+struct composite_context *resolve_name_send(struct resolve_context *ctx,
+ struct nbt_name *name,
+ struct event_context *event_ctx)
+{
+ return resolve_name_all_send(ctx, name, event_ctx);
+}
+
+NTSTATUS resolve_name_recv(struct composite_context *c,
+ TALLOC_CTX *mem_ctx,
+ const char **reply_addr)
+{
+ NTSTATUS status;
+ struct socket_address **addrs = NULL;
+
+ status = resolve_name_all_recv(c, mem_ctx, &addrs);
+
+ if (NT_STATUS_IS_OK(status)) {
+ *reply_addr = talloc_steal(mem_ctx, addrs[0]->addr);
+ talloc_free(addrs);
+ }
+
+ return status;
+}
+
+/*
+ general name resolution - sync call
+ */
+NTSTATUS resolve_name(struct resolve_context *ctx,
+ struct nbt_name *name,
+ TALLOC_CTX *mem_ctx,
+ const char **reply_addr,
+ struct event_context *ev)
{
- struct composite_context *c = resolve_name_send(ctx, name, ev);
+ struct composite_context *c = resolve_name_send(ctx, name, ev);
return resolve_name_recv(c, mem_ctx, reply_addr);
}
#ifndef __RESOLVE_H__
#define __RESOLVE_H__
+struct socket_address;
+
#include "../libcli/nbt/libnbt.h"
-typedef struct composite_context *(*resolve_name_send_fn)(TALLOC_CTX *mem_ctx, struct event_context *, void *privdata, struct nbt_name *);
-typedef NTSTATUS (*resolve_name_recv_fn)(struct composite_context *, TALLOC_CTX *, const char **);
+typedef struct composite_context *(*resolve_name_send_fn)(TALLOC_CTX *mem_ctx,
+ struct event_context *,
+ void *privdata,
+ struct nbt_name *);
+typedef NTSTATUS (*resolve_name_recv_fn)(struct composite_context *creq,
+ TALLOC_CTX *mem_ctx,
+ struct socket_address ***addrs);
#include "libcli/resolve/proto.h"
struct interface;
#include "libcli/resolve/lp_proto.h"
torture_comment(tctx, "Testing async resolve of '%s' for %d seconds\n",
host, timelimit);
while (timeval_elapsed(&tv) < timelimit) {
- const char *s;
+ struct socket_address **s;
struct composite_context *c = resolve_name_host_send(mem_ctx, ev, NULL, &n);
torture_assert(tctx, c != NULL, "resolve_name_host_send");
torture_assert_ntstatus_ok(tctx, resolve_name_host_recv(c, mem_ctx, &s),
#include "../libcli/nbt/libnbt.h"
#include "libcli/resolve/resolve.h"
#include "param/param.h"
+#include "lib/socket/socket.h"
#include "lib/socket/netif.h"
struct resolve_wins_data {
wins name resolution method - recv side
*/
NTSTATUS resolve_name_wins_recv(struct composite_context *c,
- TALLOC_CTX *mem_ctx, const char **reply_addr)
+ TALLOC_CTX *mem_ctx,
+ struct socket_address ***addrs)
{
- return resolve_name_nbtlist_recv(c, mem_ctx, reply_addr);
+ return resolve_name_nbtlist_recv(c, mem_ctx, addrs);
}
/*
struct interface *ifaces,
uint16_t nbt_port,
int nbt_timeout,
- const char **reply_addr)
+ struct socket_address ***addrs)
{
struct composite_context *c;
struct resolve_wins_data *wins_data = talloc(mem_ctx, struct resolve_wins_data);
wins_data->nbt_port = nbt_port;
wins_data->nbt_timeout = nbt_timeout;
c = resolve_name_wins_send(mem_ctx, NULL, wins_data, name);
- return resolve_name_wins_recv(c, mem_ctx, reply_addr);
+ return resolve_name_wins_recv(c, mem_ctx, addrs);
}
bool resolve_context_add_wins_method(struct resolve_context *ctx, const char **address_list, struct interface *ifaces, uint16_t nbt_port, int nbt_timeout)
return NULL;
}
- ret->sub_auths = talloc_array(ret, uint32_t, num_sub_auths);
- if (!ret->sub_auths) {
- return NULL;
- }
-
ret->sid_rev_num = rev;
ret->id_auth[0] = 0;
ret->id_auth[1] = 0;
return NULL;
}
- ret->sub_auths = talloc_array(ret, uint32_t, dom_sid->num_auths);
- if (!ret->sub_auths) {
- return NULL;
- }
-
ret->sid_rev_num = dom_sid->sid_rev_num;
ret->id_auth[0] = dom_sid->id_auth[0];
ret->id_auth[1] = dom_sid->id_auth[1];
/*
add a rid to a domain dom_sid to make a full dom_sid. This function
- returns a new sid in the suppplied memory context
+ returns a new sid in the supplied memory context
*/
struct dom_sid *dom_sid_add_rid(TALLOC_CTX *mem_ctx,
const struct dom_sid *domain_sid,
*sid = *domain_sid;
- sid->sub_auths = talloc_array(sid, uint32_t, sid->num_auths+1);
- if (!sid->sub_auths) {
- return NULL;
- }
- memcpy(sid->sub_auths, domain_sid->sub_auths, sid->num_auths*sizeof(uint32_t));
sid->sub_auths[sid->num_auths] = rid;
sid->num_auths++;
return false;
}
ace->trustee = *sid;
- talloc_steal(mem_ctx, sid->sub_auths);
talloc_free(sid);
return true;
goto failed;
}
- /* remapping array in trustee dom_sid from old acl to new acl */
-
- for (i = 0; i < oacl->num_aces; i++) {
- nacl->aces[i].trustee.sub_auths =
- (uint32_t *)talloc_memdup(nacl->aces, nacl->aces[i].trustee.sub_auths,
- sizeof(uint32_t) * nacl->aces[i].trustee.num_auths);
-
- if ((nacl->aces[i].trustee.sub_auths == NULL) && (nacl->aces[i].trustee.num_auths > 0)) {
- goto failed;
- }
- }
-
nacl->revision = oacl->revision;
nacl->size = oacl->size;
nacl->num_aces = oacl->num_aces;
}
acl->aces[acl->num_aces] = *ace;
- acl->aces[acl->num_aces].trustee.sub_auths =
- (uint32_t *)talloc_memdup(acl->aces,
- acl->aces[acl->num_aces].trustee.sub_auths,
- sizeof(uint32_t) *
- acl->aces[acl->num_aces].trustee.num_auths);
- if (acl->aces[acl->num_aces].trustee.sub_auths == NULL) {
- return NT_STATUS_NO_MEMORY;
- }
switch (acl->aces[acl->num_aces].type) {
case SEC_ACE_TYPE_ACCESS_ALLOWED_OBJECT:
/* prepare samr_SetUserInfo2 level 25 */
ZERO_STRUCT(u_info);
u_info.info25.info = *r->samr_handle.in.info21;
- u_info.info25.info.fields_present |= SAMR_FIELD_PASSWORD;
+ u_info.info25.info.fields_present |= SAMR_FIELD_NT_PASSWORD_PRESENT;
encode_pw_buffer(u_info.info25.password.data, r->samr_handle.in.newpassword, STR_UNICODE);
status = dcerpc_fetch_session_key(r->samr_handle.in.dcerpc_pipe, &session_key);
/* prepare samr_SetUserInfo2 level 23 */
ZERO_STRUCT(u_info);
u_info.info23.info = *r->samr_handle.in.info21;
- u_info.info23.info.fields_present |= SAMR_FIELD_PASSWORD;
+ u_info.info23.info.fields_present |= SAMR_FIELD_NT_PASSWORD_PRESENT;
encode_pw_buffer(u_info.info23.password.data, r->samr_handle.in.newpassword, STR_UNICODE);
status = dcerpc_fetch_session_key(r->samr_handle.in.dcerpc_pipe, &session_key);
NDR_SECURITY_OBJ_FILES = $(gen_ndrsrcdir)/ndr_security.o \
../librpc/ndr/ndr_sec_helper.o \
- $(gen_ndrsrcdir)/ndr_dom_sid.o \
- $(ndrsrcdir)/ndr_dom_sid.o
+ $(gen_ndrsrcdir)/ndr_dom_sid.o
-PUBLIC_HEADERS += $(addprefix $(gen_ndrsrcdir)/, security.h dom_sid.h)
+PUBLIC_HEADERS += $(addprefix $(gen_ndrsrcdir)/, security.h)
[SUBSYSTEM::NDR_AUDIOSRV]
RPC_NDR_UNIXINFO_OBJ_FILES = $(gen_ndrsrcdir)/ndr_unixinfo_c.o
+[SUBSYSTEM::RPC_NDR_BROWSER]
+PUBLIC_DEPENDENCIES = dcerpc NDR_BROWSER
+
+RPC_NDR_BROWSER_OBJ_FILES = $(gen_ndrsrcdir)/ndr_browser_c.o
+
[SUBSYSTEM::RPC_NDR_IRPC]
PUBLIC_DEPENDENCIES = dcerpc NDR_IRPC
python_drsuapi_OBJ_FILES = $(gen_ndrsrcdir)/py_drsuapi.o
-[PYTHON::python_dcerpc_dom_sid]
-LIBRARY_REALNAME = samba/dcerpc/dom_sid.$(SHLIBEXT)
-PRIVATE_DEPENDENCIES = PYTALLOC python_dcerpc_misc python_dcerpc
-
-python_dcerpc_dom_sid_OBJ_FILES = $(gen_ndrsrcdir)/py_dom_sid.o
-
[PYTHON::python_dcerpc_security]
LIBRARY_REALNAME = samba/dcerpc/security.$(SHLIBEXT)
-PRIVATE_DEPENDENCIES = PYTALLOC python_dcerpc_misc python_dcerpc_dom_sid python_dcerpc
+PRIVATE_DEPENDENCIES = PYTALLOC python_dcerpc_misc python_dcerpc
python_dcerpc_security_OBJ_FILES = $(gen_ndrsrcdir)/py_security.o
-/*
- use the same structure for dom_sid2 as dom_sid. A dom_sid2 is really
- just a dom sid, but with the sub_auths represented as a conformant
- array. As with all in-structure conformant arrays, the array length
- is placed before the start of the structure. That's what gives rise
- to the extra num_auths elemenent. We don't want the Samba code to
- have to bother with such esoteric NDR details, so its easier to just
- define it as a dom_sid and use pidl magic to make it all work. It
- just means you need to mark a sid as a "dom_sid2" in the IDL when you
- know it is of the conformant array variety
-*/
-cpp_quote("#define dom_sid2 dom_sid")
-
-/* same struct as dom_sid but inside a 28 bytes fixed buffer in NDR */
-cpp_quote("#define dom_sid28 dom_sid")
-
-/* same struct as dom_sid but in a variable byte buffer, which is maybe empty in NDR */
-cpp_quote("#define dom_sid0 dom_sid")
-
[
pointer_default(unique)
]
interface dom_sid
{
- /* a domain SID. Note that unlike Samba3 this contains a pointer,
- so you can't copy them using assignment */
- typedef [public,gensize,noprint,noejs,nosize] struct {
- uint8 sid_rev_num; /**< SID revision number */
- [range(0,15)] int8 num_auths; /**< Number of sub-authorities */
- uint8 id_auth[6]; /**< Identifier Authority */
- uint32 sub_auths[num_auths];
- } dom_sid;
-
/* id used to identify a endpoint, possibly in a cluster */
typedef [public] struct {
hyper id;
uint32 id2;
uint32 node;
} server_id;
-
}
-
IRPC_FLAG_REPLY = 0x0001
} irpc_flags;
- typedef [public,noejs] struct {
+ typedef [public] struct {
GUID uuid;
uint32 if_version;
uint32 callnum;
[out,unique] astring *dcname
);
- typedef [noejs] struct {
+ typedef struct {
ipv4address addr;
} nbtd_proxy_wins_addr;
- [noejs] void nbtd_proxy_wins_challenge(
+ void nbtd_proxy_wins_challenge(
[in] nbt_name name,
[in,out] uint32 num_addrs,
[in,out] nbtd_proxy_wins_addr addrs[num_addrs]
);
- [noejs] void nbtd_proxy_wins_release_demand(
+ void nbtd_proxy_wins_release_demand(
[in] nbt_name name,
[in] uint32 num_addrs,
[in] nbtd_proxy_wins_addr addrs[num_addrs]
+++ /dev/null
-/*
- Unix SMB/CIFS implementation.
-
- fast routines for getting the wire size of security objects
-
- Copyright (C) Andrew Tridgell 2003
- Copyright (C) Stefan Metzmacher 2006-2008
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-
-#include "includes.h"
-#include "librpc/gen_ndr/ndr_security.h"
-#include "libcli/security/security.h"
-
-/*
- return the wire size of a dom_sid
-*/
-size_t ndr_size_dom_sid(const struct dom_sid *sid, int flags)
-{
- if (!sid) return 0;
- return 8 + 4*sid->num_auths;
-}
-
-size_t ndr_size_dom_sid28(const struct dom_sid *sid, int flags)
-{
- struct dom_sid zero_sid;
-
- if (!sid) return 0;
-
- ZERO_STRUCT(zero_sid);
-
- if (memcmp(&zero_sid, sid, sizeof(zero_sid)) == 0) {
- return 0;
- }
-
- return 8 + 4*sid->num_auths;
-}
-
-size_t ndr_size_dom_sid0(const struct dom_sid *sid, int flags)
-{
- return ndr_size_dom_sid28(sid, flags);
-}
-
-/*
- print a dom_sid
-*/
-void ndr_print_dom_sid(struct ndr_print *ndr, const char *name, const struct dom_sid *sid)
-{
- ndr->print(ndr, "%-25s: %s", name, dom_sid_string(ndr, sid));
-}
-
-void ndr_print_dom_sid2(struct ndr_print *ndr, const char *name, const struct dom_sid *sid)
-{
- ndr_print_dom_sid(ndr, name, sid);
-}
-
-void ndr_print_dom_sid28(struct ndr_print *ndr, const char *name, const struct dom_sid *sid)
-{
- ndr_print_dom_sid(ndr, name, sid);
-}
-
-void ndr_print_dom_sid0(struct ndr_print *ndr, const char *name, const struct dom_sid *sid)
-{
- ndr_print_dom_sid(ndr, name, sid);
-}
-
-
-/*
- parse a dom_sid2 - this is a dom_sid but with an extra copy of the num_auths field
-*/
-enum ndr_err_code ndr_pull_dom_sid2(struct ndr_pull *ndr, int ndr_flags, struct dom_sid *sid)
-{
- uint32_t num_auths;
- if (!(ndr_flags & NDR_SCALARS)) {
- return NDR_ERR_SUCCESS;
- }
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &num_auths));
- NDR_CHECK(ndr_pull_dom_sid(ndr, ndr_flags, sid));
- if (sid->num_auths != num_auths) {
- return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE,
- "Bad array size %u should exceed %u",
- num_auths, sid->num_auths);
- }
- return NDR_ERR_SUCCESS;
-}
-
-/*
- parse a dom_sid2 - this is a dom_sid but with an extra copy of the num_auths field
-*/
-enum ndr_err_code ndr_push_dom_sid2(struct ndr_push *ndr, int ndr_flags, const struct dom_sid *sid)
-{
- if (!(ndr_flags & NDR_SCALARS)) {
- return NDR_ERR_SUCCESS;
- }
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sid->num_auths));
- return ndr_push_dom_sid(ndr, ndr_flags, sid);
-}
-
-/*
- parse a dom_sid28 - this is a dom_sid in a fixed 28 byte buffer, so we need to ensure there are only upto 5 sub_auth
-*/
-enum ndr_err_code ndr_pull_dom_sid28(struct ndr_pull *ndr, int ndr_flags, struct dom_sid *sid)
-{
- enum ndr_err_code status;
- struct ndr_pull *subndr;
-
- if (!(ndr_flags & NDR_SCALARS)) {
- return NDR_ERR_SUCCESS;
- }
-
- subndr = talloc_zero(ndr, struct ndr_pull);
- NDR_ERR_HAVE_NO_MEMORY(subndr);
- subndr->flags = ndr->flags;
- subndr->current_mem_ctx = ndr->current_mem_ctx;
-
- subndr->data = ndr->data + ndr->offset;
- subndr->data_size = 28;
- subndr->offset = 0;
-
- NDR_CHECK(ndr_pull_advance(ndr, 28));
-
- status = ndr_pull_dom_sid(subndr, ndr_flags, sid);
- if (!NDR_ERR_CODE_IS_SUCCESS(status)) {
- /* handle a w2k bug which send random data in the buffer */
- ZERO_STRUCTP(sid);
- } else if (sid->num_auths == 0 && sid->sub_auths) {
- talloc_free(sid->sub_auths);
- sid->sub_auths = NULL;
- }
-
- return NDR_ERR_SUCCESS;
-}
-
-/*
- push a dom_sid28 - this is a dom_sid in a 28 byte fixed buffer
-*/
-enum ndr_err_code ndr_push_dom_sid28(struct ndr_push *ndr, int ndr_flags, const struct dom_sid *sid)
-{
- uint32_t old_offset;
- uint32_t padding;
-
- if (!(ndr_flags & NDR_SCALARS)) {
- return NDR_ERR_SUCCESS;
- }
-
- if (sid->num_auths > 5) {
- return ndr_push_error(ndr, NDR_ERR_RANGE,
- "dom_sid28 allows only upto 5 sub auth [%u]",
- sid->num_auths);
- }
-
- old_offset = ndr->offset;
- NDR_CHECK(ndr_push_dom_sid(ndr, ndr_flags, sid));
-
- padding = 28 - (ndr->offset - old_offset);
-
- if (padding > 0) {
- NDR_CHECK(ndr_push_zero(ndr, padding));
- }
-
- return NDR_ERR_SUCCESS;
-}
-
-/*
- parse a dom_sid0 - this is a dom_sid in a variable byte buffer, which is maybe empty
-*/
-enum ndr_err_code ndr_pull_dom_sid0(struct ndr_pull *ndr, int ndr_flags, struct dom_sid *sid)
-{
- if (!(ndr_flags & NDR_SCALARS)) {
- return NDR_ERR_SUCCESS;
- }
-
- if (ndr->data_size == ndr->offset) {
- ZERO_STRUCTP(sid);
- return NDR_ERR_SUCCESS;
- }
-
- return ndr_pull_dom_sid(ndr, ndr_flags, sid);
-}
-
-/*
- push a dom_sid0 - this is a dom_sid in a variable byte buffer, which is maybe empty
-*/
-enum ndr_err_code ndr_push_dom_sid0(struct ndr_push *ndr, int ndr_flags, const struct dom_sid *sid)
-{
- struct dom_sid zero_sid;
-
- if (!(ndr_flags & NDR_SCALARS)) {
- return NDR_ERR_SUCCESS;
- }
-
- if (!sid) {
- return NDR_ERR_SUCCESS;
- }
-
- ZERO_STRUCT(zero_sid);
-
- if (memcmp(&zero_sid, sid, sizeof(zero_sid)) == 0) {
- return NDR_ERR_SUCCESS;
- }
-
- return ndr_push_dom_sid(ndr, ndr_flags, sid);
-}
-
--- /dev/null
+/*
+ Unix SMB/CIFS implementation.
+ Samba utility functions
+ Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2008
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+#include "libcli/security/security.h"
+
+static PyObject *py_dom_sid_eq(PyObject *self, PyObject *args)
+{
+ struct dom_sid *this = py_talloc_get_ptr(self), *other;
+ PyObject *py_other;
+
+ if (!PyArg_ParseTuple(args, "O", &py_other))
+ return NULL;
+
+ other = py_talloc_get_type(py_other, struct dom_sid);
+ if (other == NULL)
+ return Py_False;
+
+ return dom_sid_equal(this, other)?Py_True:Py_False;
+}
+
+static PyObject *py_dom_sid_str(PyObject *self)
+{
+ struct dom_sid *this = py_talloc_get_ptr(self);
+ char *str = dom_sid_string(NULL, this);
+ PyObject *ret = PyString_FromString(str);
+ talloc_free(str);
+ return ret;
+}
+
+static PyObject *py_dom_sid_repr(PyObject *self)
+{
+ struct dom_sid *this = py_talloc_get_ptr(self);
+ char *str = dom_sid_string(NULL, this);
+ PyObject *ret = PyString_FromFormat("dom_sid('%s')", str);
+ talloc_free(str);
+ return ret;
+}
+
+#define PY_DOM_SID_REPR py_dom_sid_repr
+
+#define PY_DOM_SID_EXTRA_METHODS \
+ { "__eq__", (PyCFunction)py_dom_sid_eq, METH_VARARGS, "S.__eq__(x) -> S == x" }, \
+ { "__str__", (PyCFunction)py_dom_sid_str, METH_NOARGS, "S.__str__() -> str(S)" }, \
--- /dev/null
+Here are some pointers to the needed ntp version.
+
+https://support.ntp.org/bugs/show_bug.cgi?id=1028
+
+The patch against ntp-dev-4.2.5p125
+https://support.ntp.org/bugs/attachment.cgi?id=457
+
--- /dev/null
+Only in ntp-samba: autom4te.cache
+Only in ntp-samba: config.h
+Only in ntp-samba: config.log
+Only in ntp-samba: config.status
+Only in ntp-samba/ElectricFence: .deps
+Only in ntp-samba/ElectricFence: Makefile
+Only in ntp-samba: .gcc-warning
+Only in ntp-samba/include/isc: Makefile
+Only in ntp-samba/include: Makefile
+diff -ur ntp-dev-4.2.5p125/include/ntp_config.h ntp-samba/include/ntp_config.h
+--- ntp-dev-4.2.5p125/include/ntp_config.h 2008-07-17 07:20:58.000000000 +1000
++++ ntp-samba/include/ntp_config.h 2008-08-28 21:59:06.000000000 +1000
+@@ -92,6 +92,7 @@
+ int requested_key;
+ int revoke;
+ queue *trusted_key_list;
++ char *ntp_signd_socket;
+ };
+
+ struct filegen_node {
+diff -ur ntp-dev-4.2.5p125/include/ntpd.h ntp-samba/include/ntpd.h
+--- ntp-dev-4.2.5p125/include/ntpd.h 2008-05-18 21:11:28.000000000 +1000
++++ ntp-samba/include/ntpd.h 2008-08-28 21:59:06.000000000 +1000
+@@ -259,6 +259,8 @@
+ extern int config_priority;
+ #endif
+
++extern char const *ntp_signd_socket;
++
+ /* ntp_control.c */
+ extern int num_ctl_traps;
+ extern keyid_t ctl_auth_keyid; /* keyid used for authenticating write requests */
+@@ -471,3 +473,15 @@
+ extern struct refclock *refclock_conf[]; /* refclock configuration table */
+ extern u_char num_refclock_conf;
+ #endif
++
++/* ntp_signd.c */
++#ifdef HAVE_NTP_SIGND
++extern void
++send_via_ntp_signd(
++ struct recvbuf *rbufp, /* receive packet pointer */
++ int xmode,
++ keyid_t xkeyid,
++ int flags,
++ struct pkt *xpkt
++ );
++#endif
+diff -ur ntp-dev-4.2.5p125/include/ntp.h ntp-samba/include/ntp.h
+--- ntp-dev-4.2.5p125/include/ntp.h 2008-08-10 22:37:56.000000000 +1000
++++ ntp-samba/include/ntp.h 2008-08-28 21:59:06.000000000 +1000
+@@ -447,6 +447,7 @@
+ #ifdef OPENSSL
+ #define FLAG_ASSOC 0x4000 /* autokey request */
+ #endif /* OPENSSL */
++#define FLAG_ADKEY 0x00010000 /* Authenticated (or wants reply to be authenticated) using AD authentication */
+
+ /*
+ * Definitions for the clear() routine. We use memset() to clear
+Only in ntp-samba/include: ntp.h.orig
+Only in ntp-samba: libtool
+Only in ntp-samba: Makefile
+diff -ur ntp-dev-4.2.5p125/ntpd/Makefile.am ntp-samba/ntpd/Makefile.am
+--- ntp-dev-4.2.5p125/ntpd/Makefile.am 2008-05-18 21:11:29.000000000 +1000
++++ ntp-samba/ntpd/Makefile.am 2008-08-28 21:59:06.000000000 +1000
+@@ -65,7 +65,7 @@
+ ntp_crypto.c ntp_filegen.c \
+ ntp_intres.c ntp_loopfilter.c ntp_monitor.c ntp_peer.c \
+ ntp_proto.c ntp_refclock.c ntp_request.c \
+- ntp_restrict.c ntp_timer.c ntp_util.c \
++ ntp_restrict.c ntp_timer.c ntp_util.c ntp_signd.c \
+ ppsapi_timepps.h \
+ refclock_acts.c refclock_arbiter.c refclock_arc.c refclock_as2201.c \
+ refclock_atom.c refclock_bancomm.c refclock_chronolog.c \
+diff -ur ntp-dev-4.2.5p125/ntpd/ntp_config.c ntp-samba/ntpd/ntp_config.c
+--- ntp-dev-4.2.5p125/ntpd/ntp_config.c 2008-08-10 22:37:54.000000000 +1000
++++ ntp-samba/ntpd/ntp_config.c 2008-08-28 22:03:52.000000000 +1000
+@@ -148,6 +148,7 @@
+ #endif
+
+ const char *config_file;
++const char *ntp_signd_socket;
+ #ifdef HAVE_NETINFO
+ struct netinfo_config_state *config_netinfo = NULL;
+ int check_netinfo = 1;
+@@ -276,6 +277,11 @@
+ my_config.auth.crypto_cmd_list = NULL;
+ my_config.auth.keys = NULL;
+ my_config.auth.keysdir = NULL;
++#ifdef NTP_SIGND_PATH
++ my_config.auth.ntp_signd_socket = NTP_SIGND_PATH;
++#else
++ my_config.auth.ntp_signd_socket = NULL;
++#endif
+ my_config.auth.requested_key = 0;
+ my_config.auth.revoke = 0;
+ my_config.auth.trusted_key_list = NULL;
+@@ -795,6 +801,7 @@
+ { "crypto", T_Crypto, NO_ARG },
+ { "keys", T_Keys, SINGLE_ARG },
+ { "keysdir", T_Keysdir, SINGLE_ARG },
++ { "ntpsigndsocket", T_NtpSignDsocket, SINGLE_ARG },
+ { "requestkey", T_Requestkey, NO_ARG },
+ { "revoke", T_Revoke, NO_ARG },
+ { "trustedkey", T_Trustedkey, NO_ARG },
+@@ -1000,6 +1007,10 @@
+ if (my_config.auth.keysdir)
+ keysdir = my_config.auth.keysdir;
+
++ /* ntp_signd_socket Command */
++ if (my_config.auth.ntp_signd_socket)
++ ntp_signd_socket = my_config.auth.ntp_signd_socket;
++
+ #ifdef OPENSSL
+ if (cryptosw) {
+ crypto_setup();
+Only in ntp-samba/ntpd: ntp_config.c~
+Only in ntp-samba/ntpd: ntp_config.c.orig
+diff -ur ntp-dev-4.2.5p125/ntpd/ntp_parser.y ntp-samba/ntpd/ntp_parser.y
+--- ntp-dev-4.2.5p125/ntpd/ntp_parser.y 2008-07-17 07:21:06.000000000 +1000
++++ ntp-samba/ntpd/ntp_parser.y 2008-08-28 21:59:06.000000000 +1000
+@@ -155,6 +155,7 @@
+ %token T_Novolley
+ %token T_Ntp
+ %token T_Ntpport
++%token T_NtpSignDsocket
+ %token T_Orphan
+ %token T_Panic
+ %token T_Peer
+@@ -432,6 +433,8 @@
+ { my_config.auth.requested_key = $2; }
+ | T_Trustedkey integer_list
+ { my_config.auth.trusted_key_list = $2; }
++ | T_NtpSignDsocket T_String
++ { my_config.auth.ntp_signd_socket = $2; }
+ ;
+
+ crypto_command_line
+diff -ur ntp-dev-4.2.5p125/ntpd/ntp_proto.c ntp-samba/ntpd/ntp_proto.c
+--- ntp-dev-4.2.5p125/ntpd/ntp_proto.c 2008-07-17 07:21:02.000000000 +1000
++++ ntp-samba/ntpd/ntp_proto.c 2008-08-28 21:59:06.000000000 +1000
+@@ -128,7 +128,7 @@
+ static void clock_combine (struct peer **, int);
+ static void peer_xmit (struct peer *);
+ static void fast_xmit (struct recvbuf *, int, keyid_t,
+- char *);
++ char *, int);
+ static void clock_update (struct peer *);
+ static int default_get_precision (void);
+ static int peer_unfit (struct peer *);
+@@ -311,6 +311,7 @@
+ int authlen; /* offset of MAC field */
+ int is_authentic = 0; /* cryptosum ok */
+ int retcode = AM_NOMATCH; /* match code */
++ int flags = 0; /* flags with details about the authentication */
+ keyid_t skeyid = 0; /* key IDs */
+ u_int32 opcode = 0; /* extension field opcode */
+ struct sockaddr_storage *dstadr_sin; /* active runway */
+@@ -324,6 +325,8 @@
+ keyid_t pkeyid = 0, tkeyid = 0; /* key IDs */
+ #endif /* OPENSSL */
+
++ static unsigned char zero_key[16];
++
+ /*
+ * Monitor the packet and get restrictions. Note that the packet
+ * length for control and private mode packets must be checked
+@@ -480,9 +483,9 @@
+ return; /* rate exceeded */
+
+ if (hismode == MODE_CLIENT)
+- fast_xmit(rbufp, MODE_SERVER, skeyid, "RATE");
++ fast_xmit(rbufp, MODE_SERVER, skeyid, "RATE", 0);
+ else
+- fast_xmit(rbufp, MODE_ACTIVE, skeyid, "RATE");
++ fast_xmit(rbufp, MODE_ACTIVE, skeyid, "RATE", 0);
+ return; /* rate exceeded */
+ }
+
+@@ -535,6 +538,7 @@
+ * is zero, acceptable outcomes of y are NONE and OK. If x is
+ * one, the only acceptable outcome of y is OK.
+ */
++
+ if (has_mac == 0) {
+ is_authentic = AUTH_NONE; /* not required */
+ #ifdef DEBUG
+@@ -555,6 +559,25 @@
+ stoa(&rbufp->recv_srcadr), hismode, skeyid,
+ authlen + has_mac, is_authentic);
+ #endif
++
++ /* If the signature is 20 bytes long, the last 16 of
++ * which are zero, then this is a Microsoft client
++ * wanting AD-style authentication of the server's
++ * reply.
++ *
++ * This is described in Microsoft's WSPP docs, in MS-SNTP:
++ * http://msdn.microsoft.com/en-us/library/cc212930.aspx
++ */
++ } else if (has_mac == MAX_MAC_LEN
++ && (retcode == AM_FXMIT || retcode == AM_NEWPASS)
++ && (memcmp(zero_key, (char *)pkt + authlen + 4, MAX_MAC_LEN - 4) == 0)) {
++
++ /* Don't try to verify the zeros, just set a
++ * flag and otherwise pretend we never saw the signature */
++ is_authentic = AUTH_NONE;
++
++ flags = FLAG_ADKEY;
++
+ } else {
+ #ifdef OPENSSL
+ /*
+@@ -696,9 +719,9 @@
+ if (AUTH(restrict_mask & RES_DONTTRUST,
+ is_authentic)) {
+ fast_xmit(rbufp, MODE_SERVER, skeyid,
+- NULL);
++ NULL, flags);
+ } else if (is_authentic == AUTH_ERROR) {
+- fast_xmit(rbufp, MODE_SERVER, 0, NULL);
++ fast_xmit(rbufp, MODE_SERVER, 0, NULL, 0);
+ sys_badauth++;
+ } else {
+ sys_restricted++;
+@@ -733,7 +756,7 @@
+ * crypto-NAK, as that would not be useful.
+ */
+ if (AUTH(restrict_mask & RES_DONTTRUST, is_authentic))
+- fast_xmit(rbufp, MODE_SERVER, skeyid, NULL);
++ fast_xmit(rbufp, MODE_SERVER, skeyid, NULL, 0);
+ return; /* hooray */
+
+ /*
+@@ -888,7 +911,7 @@
+ is_authentic)) {
+ #ifdef OPENSSL
+ if (crypto_flags && skeyid > NTP_MAXKEY)
+- fast_xmit(rbufp, MODE_ACTIVE, 0, NULL);
++ fast_xmit(rbufp, MODE_ACTIVE, 0, NULL, 0);
+ #endif /* OPENSSL */
+ sys_restricted++;
+ return; /* access denied */
+@@ -904,7 +927,7 @@
+ * This is for drat broken Windows clients. See
+ * Microsoft KB 875424 for preferred workaround.
+ */
+- fast_xmit(rbufp, MODE_PASSIVE, skeyid, NULL);
++ fast_xmit(rbufp, MODE_PASSIVE, skeyid, NULL, flags);
+ #else /* WINTIME */
+ sys_restricted++;
+ #endif /* WINTIME */
+@@ -938,6 +961,7 @@
+ }
+ break;
+
++
+ /*
+ * Process regular packet. Nothing special.
+ */
+@@ -1090,7 +1114,7 @@
+ peer->flash |= TEST5; /* bad auth */
+ peer->badauth++;
+ if (hismode == MODE_ACTIVE || hismode == MODE_PASSIVE)
+- fast_xmit(rbufp, MODE_ACTIVE, 0, NULL);
++ fast_xmit(rbufp, MODE_ACTIVE, 0, NULL, 0);
+ if (peer->flags & FLAG_PREEMPT) {
+ unpeer(peer);
+ return;
+@@ -3159,7 +3183,8 @@
+ struct recvbuf *rbufp, /* receive packet pointer */
+ int xmode, /* receive mode */
+ keyid_t xkeyid, /* transmit key ID */
+- char *mask /* kiss code */
++ char *mask, /* kiss code */
++ int flags /* Flags to indicate signing behaviour */
+ )
+ {
+ struct pkt xpkt; /* transmit packet structure */
+@@ -3220,6 +3245,19 @@
+ HTONL_FP(&rbufp->recv_time, &xpkt.rec);
+ }
+
++ if (flags & FLAG_ADKEY) {
++#ifdef HAVE_NTP_SIGND
++ get_systime(&xmt_tx);
++ if (mask == NULL) {
++ HTONL_FP(&xmt_tx, &xpkt.xmt);
++ }
++ send_via_ntp_signd(rbufp, xmode, xkeyid, flags, &xpkt);
++#endif
++ /* If we don't have the support, drop the packet on the floor.
++ An all zero sig is compleatly bogus anyway */
++ return;
++ }
++
+ /*
+ * If the received packet contains a MAC, the transmitted packet
+ * is authenticated and contains a MAC. If not, the transmitted
+@@ -3252,7 +3290,7 @@
+ * source-destination-key ID combination.
+ */
+ #ifdef OPENSSL
+- if (xkeyid > NTP_MAXKEY) {
++ if (!(flags & FLAG_ADKEY) && (xkeyid > NTP_MAXKEY)) {
+ keyid_t cookie;
+
+ /*
+@@ -3284,8 +3322,10 @@
+ if (mask == NULL) {
+ HTONL_FP(&xmt_tx, &xpkt.xmt);
+ }
++
+ authlen = authencrypt(xkeyid, (u_int32 *)&xpkt, sendlen);
+ sendlen += authlen;
++
+ #ifdef OPENSSL
+ if (xkeyid > NTP_MAXKEY)
+ authtrust(xkeyid, 0);
+Only in ntp-samba/ntpd: ntp_signd.c
+Only in ntp-dev-4.2.5p125/ntpdc: nl.pl
+Only in ntp-samba/scripts: calc_tickadj
+Only in ntp-samba/scripts: checktime
+Only in ntp-samba/scripts: freq_adj
+Only in ntp-samba/scripts: html2man
+Only in ntp-samba/scripts: Makefile
+Only in ntp-samba/scripts: mkver
+Only in ntp-samba/scripts: ntpsweep
+Only in ntp-samba/scripts: ntptrace
+Only in ntp-samba/scripts: ntpver
+Only in ntp-samba/scripts: ntp-wait
+Only in ntp-samba/scripts: plot_summary
+Only in ntp-samba/scripts: summary
+Only in ntp-samba: stamp-h1
+--- /dev/null 2008-08-25 07:28:22.036002925 +1000
++++ ntp-samba/ntpd/ntp_signd.c 2008-08-28 21:59:06.000000000 +1000
+@@ -0,0 +1,242 @@
++/* Copyright 2008, Red Hat, Inc.
++ Copyright 2008, Andrew Tridgell.
++ Licenced under the same terms as NTP itself.
++ */
++#ifdef HAVE_CONFIG_H
++#include <config.h>
++#endif
++
++#ifdef HAVE_NTP_SIGND
++
++#include "ntpd.h"
++#include "ntp_io.h"
++#include "ntp_stdlib.h"
++#include "ntp_unixtime.h"
++#include "ntp_control.h"
++#include "ntp_string.h"
++
++#include <stdio.h>
++#include <stddef.h>
++#ifdef HAVE_LIBSCF_H
++#include <libscf.h>
++#include <unistd.h>
++#endif /* HAVE_LIBSCF_H */
++
++#include <sys/un.h>
++
++/* socket routines by tridge - from junkcode.samba.org */
++
++/*
++ connect to a unix domain socket
++*/
++static int
++ux_socket_connect(const char *name)
++{
++ int fd;
++ struct sockaddr_un addr;
++ if (!name) {
++ return -1;
++ }
++
++ memset(&addr, 0, sizeof(addr));
++ addr.sun_family = AF_UNIX;
++ strncpy(addr.sun_path, name, sizeof(addr.sun_path));
++
++ fd = socket(AF_UNIX, SOCK_STREAM, 0);
++ if (fd == -1) {
++ return -1;
++ }
++
++ if (connect(fd, (struct sockaddr *)&addr, sizeof(addr)) == -1) {
++ close(fd);
++ return -1;
++ }
++
++ return fd;
++}
++
++
++/*
++ keep writing until its all sent
++*/
++static int
++write_all(int fd, const void *buf, size_t len)
++{
++ size_t total = 0;
++ while (len) {
++ int n = write(fd, buf, len);
++ if (n <= 0) return total;
++ buf = n + (char *)buf;
++ len -= n;
++ total += n;
++ }
++ return total;
++}
++
++/*
++ keep reading until its all read
++*/
++static int
++read_all(int fd, void *buf, size_t len)
++{
++ size_t total = 0;
++ while (len) {
++ int n = read(fd, buf, len);
++ if (n <= 0) return total;
++ buf = n + (char *)buf;
++ len -= n;
++ total += n;
++ }
++ return total;
++}
++
++/*
++ send a packet in length prefix format
++*/
++static int
++send_packet(int fd, const char *buf, uint32_t len)
++{
++ uint32_t net_len = htonl(len);
++ if (write_all(fd, &net_len, sizeof(net_len)) != sizeof(net_len)) return -1;
++ if (write_all(fd, buf, len) != len) return -1;
++ return 0;
++}
++
++/*
++ receive a packet in length prefix format
++*/
++static int
++recv_packet(int fd, char **buf, uint32_t *len)
++{
++ if (read_all(fd, len, sizeof(*len)) != sizeof(*len)) return -1;
++ *len = ntohl(*len);
++ (*buf) = malloc(*len);
++ if (!*buf) {
++ return -1;
++ }
++ if (read_all(fd, *buf, *len) != *len) {
++ free(*buf);
++ return -1;
++ }
++ return 0;
++}
++
++void
++send_via_ntp_signd(
++ struct recvbuf *rbufp, /* receive packet pointer */
++ int xmode,
++ keyid_t xkeyid,
++ int flags,
++ struct pkt *xpkt
++ )
++{
++
++ /* We are here because it was detected that the client
++ * sent an all-zero signature, and we therefore know
++ * it's windows trying to talk to an AD server
++ *
++ * Because we don't want to dive into Samba's secrets
++ * database just to find the long-term kerberos key
++ * that is re-used as the NTP key, we instead hand the
++ * packet over to Samba to sign, and return to us.
++ *
++ * The signing method Samba will use is described by
++ * Microsoft in MS-SNTP, found here:
++ * http://msdn.microsoft.com/en-us/library/cc212930.aspx
++ */
++
++ int fd, sendlen;
++ struct samba_key_in {
++ uint32_t version;
++ uint32_t op;
++ uint32_t packet_id;
++ uint32_t key_id_le;
++ struct pkt pkt;
++ } samba_pkt;
++
++ struct samba_key_out {
++ uint32_t version;
++ uint32_t op;
++ uint32_t packet_id;
++ struct pkt pkt;
++ } samba_reply;
++
++ char full_socket[256];
++
++ char *reply = NULL;
++ uint32_t reply_len;
++
++ memset(&samba_pkt, 0, sizeof(samba_pkt));
++ samba_pkt.op = 0; /* Sign message */
++ /* This will be echoed into the reply - a different
++ * impelementation might want multiple packets
++ * awaiting signing */
++
++ samba_pkt.packet_id = 1;
++
++ /* Swap the byte order back - it's actually little
++ * endian on the wire, but it was read above as
++ * network byte order */
++ samba_pkt.key_id_le = htonl(xkeyid);
++ samba_pkt.pkt = *xpkt;
++
++ snprintf(full_socket, sizeof(full_socket), "%s/socket", ntp_signd_socket);
++
++ fd = ux_socket_connect(full_socket);
++ /* Only continue with this if we can talk to Samba */
++ if (fd != -1) {
++ /* Send old packet to Samba, expect response */
++ /* Packet to Samba is quite simple:
++ All values BIG endian except key ID as noted
++ [packet size as BE] - 4 bytes
++ [protocol version (0)] - 4 bytes
++ [packet ID] - 4 bytes
++ [operation (sign message=0)] - 4 bytes
++ [key id] - LITTLE endian (as on wire) - 4 bytes
++ [message to sign] - as marshalled, without signature
++ */
++
++ if (send_packet(fd, (char *)&samba_pkt, offsetof(struct samba_key_in, pkt) + LEN_PKT_NOMAC) != 0) {
++ /* Huh? could not talk to Samba... */
++ close(fd);
++ return;
++ }
++
++ if (recv_packet(fd, &reply, &reply_len) != 0) {
++ if (reply) {
++ free(reply);
++ }
++ close(fd);
++ return;
++ }
++ /* Return packet is also simple:
++ [packet size] - network byte order - 4 bytes
++ [protocol version (0)] network byte order - - 4 bytes
++ [operation (signed success=3, failure=4)] network byte order - - 4 byte
++ (optional) [signed message] - as provided before, with signature appended
++ */
++
++ if (reply_len <= sizeof(samba_reply)) {
++ memcpy(&samba_reply, reply, reply_len);
++ if (ntohl(samba_reply.op) == 3 && reply_len > offsetof(struct samba_key_out, pkt)) {
++ sendlen = reply_len - offsetof(struct samba_key_out, pkt);
++ xpkt = &samba_reply.pkt;
++ sendpkt(&rbufp->recv_srcadr, rbufp->dstadr, 0, xpkt, sendlen);
++#ifdef DEBUG
++ if (debug)
++ printf(
++ "transmit ntp_signd packet: at %ld %s->%s mode %d keyid %08x len %d\n",
++ current_time, ntoa(&rbufp->dstadr->sin),
++ ntoa(&rbufp->recv_srcadr), xmode, xkeyid, sendlen);
++#endif
++ }
++ }
++
++ if (reply) {
++ free(reply);
++ }
++ close(fd);
++
++ }
++}
++#endif
void *parms;
};
-#define SETUP_PID private->tree->session->pid = req->smbpid
+#define CHECK_UPSTREAM_OPEN do { \
+ if (! private->transport->socket->sock) { \
+ req->async_states->state|=NTVFS_ASYNC_STATE_CLOSE; \
+ return NT_STATUS_CONNECTION_DISCONNECTED; \
+ } \
+} while(0)
+
+#define SETUP_PID do { \
+ private->tree->session->pid = req->smbpid; \
+ CHECK_UPSTREAM_OPEN; \
+} while(0)
#define SETUP_FILE_HERE(f) do { \
f = ntvfs_handle_get_backend_data(io->generic.in.file.ntvfs, ntvfs); \
/* a set of flags to control handling of request structures */
#define NTVFS_ASYNC_STATE_ASYNC (1<<1) /* the backend will answer this one later */
#define NTVFS_ASYNC_STATE_MAY_ASYNC (1<<2) /* the backend is allowed to answer async */
+#define NTVFS_ASYNC_STATE_CLOSE (1<<3) /* the backend session should be closed */
/* the ntvfs_async_state structure allows backend functions to
delay replying to requests. To use this, the front end must
lp_do_global_parameter(lp_ctx, "ntvfs handler", "unixuid default");
lp_do_global_parameter(lp_ctx, "max connections", "-1");
- lp_do_global_parameter(lp_ctx, "dcerpc endpoint servers", "epmapper srvsvc wkssvc rpcecho samr netlogon lsarpc spoolss drsuapi winreg dssetup unixinfo");
+ lp_do_global_parameter(lp_ctx, "dcerpc endpoint servers", "epmapper srvsvc wkssvc rpcecho samr netlogon lsarpc spoolss drsuapi winreg dssetup unixinfo browser");
lp_do_global_parameter(lp_ctx, "server services", "smb rpc nbt wrepl ldap cldap kdc drepl winbind ntp_signd");
lp_do_global_parameter(lp_ctx, "ntptr providor", "simple_ldb");
lp_do_global_parameter(lp_ctx, "auth methods:domain controller", "anonymous sam_ignoredomain");
#ifndef _SECRETS_H
#define _SECRETS_H
-/* structure for storing machine account password
- (ie. when samba server is member of a domain */
-struct machine_acct_pass {
- uint8_t hash[16];
- time_t mod_time;
-};
-
#define SECRETS_PRIMARY_DOMAIN_DN "cn=Primary Domains"
#define SECRETS_PRINCIPALS_DN "cn=Principals"
#define SECRETS_PRIMARY_DOMAIN_FILTER "(&(flatname=%s)(objectclass=primaryDomain))"
--- /dev/null
+/*
+ Unix SMB/CIFS implementation.
+
+ endpoint server for the browser pipe
+
+ Copyright (C) Stefan Metzmacher 2008
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "includes.h"
+#include "rpc_server/dcerpc_server.h"
+#include "librpc/gen_ndr/ndr_browser.h"
+#include "rpc_server/common/common.h"
+
+
+/*
+ BrowserrServerEnum
+*/
+static void dcesrv_BrowserrServerEnum(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+ struct BrowserrServerEnum *r)
+{
+ DCESRV_FAULT_VOID(DCERPC_FAULT_OP_RNG_ERROR);
+}
+
+
+/*
+ BrowserrDebugCall
+*/
+static void dcesrv_BrowserrDebugCall(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+ struct BrowserrDebugCall *r)
+{
+ DCESRV_FAULT_VOID(DCERPC_FAULT_OP_RNG_ERROR);
+}
+
+
+/*
+ BrowserrQueryOtherDomains
+*/
+static WERROR dcesrv_BrowserrQueryOtherDomains(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+ struct BrowserrQueryOtherDomains *r)
+{
+ struct BrowserrSrvInfo100Ctr *ctr100;
+
+ switch (r->in.info->level) {
+ case 100:
+ if (!r->in.info->info.info100) {
+ return WERR_INVALID_PARAM;
+ }
+
+ ctr100 = talloc(mem_ctx, struct BrowserrSrvInfo100Ctr);
+ W_ERROR_HAVE_NO_MEMORY(ctr100);
+
+ ctr100->entries_read = 0;
+ ctr100->entries = talloc_zero_array(ctr100, struct srvsvc_NetSrvInfo100,
+ ctr100->entries_read);
+ W_ERROR_HAVE_NO_MEMORY(ctr100->entries);
+
+ r->out.info->info.info100 = ctr100;
+ *r->out.total_entries = ctr100->entries_read;
+ return WERR_OK;
+ default:
+ return WERR_UNKNOWN_LEVEL;
+ }
+
+ return WERR_INVALID_PARAM;
+}
+
+
+/*
+ BrowserrResetNetlogonState
+*/
+static void dcesrv_BrowserrResetNetlogonState(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+ struct BrowserrResetNetlogonState *r)
+{
+ DCESRV_FAULT_VOID(DCERPC_FAULT_OP_RNG_ERROR);
+}
+
+
+/*
+ BrowserrDebugTrace
+*/
+static void dcesrv_BrowserrDebugTrace(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+ struct BrowserrDebugTrace *r)
+{
+ DCESRV_FAULT_VOID(DCERPC_FAULT_OP_RNG_ERROR);
+}
+
+
+/*
+ BrowserrQueryStatistics
+*/
+static void dcesrv_BrowserrQueryStatistics(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+ struct BrowserrQueryStatistics *r)
+{
+ DCESRV_FAULT_VOID(DCERPC_FAULT_OP_RNG_ERROR);
+}
+
+
+/*
+ BrowserResetStatistics
+*/
+static void dcesrv_BrowserResetStatistics(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+ struct BrowserResetStatistics *r)
+{
+ DCESRV_FAULT_VOID(DCERPC_FAULT_OP_RNG_ERROR);
+}
+
+
+/*
+ NetrBrowserStatisticsClear
+*/
+static void dcesrv_NetrBrowserStatisticsClear(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+ struct NetrBrowserStatisticsClear *r)
+{
+ DCESRV_FAULT_VOID(DCERPC_FAULT_OP_RNG_ERROR);
+}
+
+
+/*
+ NetrBrowserStatisticsGet
+*/
+static void dcesrv_NetrBrowserStatisticsGet(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+ struct NetrBrowserStatisticsGet *r)
+{
+ DCESRV_FAULT_VOID(DCERPC_FAULT_OP_RNG_ERROR);
+}
+
+
+/*
+ BrowserrSetNetlogonState
+*/
+static void dcesrv_BrowserrSetNetlogonState(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+ struct BrowserrSetNetlogonState *r)
+{
+ DCESRV_FAULT_VOID(DCERPC_FAULT_OP_RNG_ERROR);
+}
+
+
+/*
+ BrowserrQueryEmulatedDomains
+*/
+static void dcesrv_BrowserrQueryEmulatedDomains(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+ struct BrowserrQueryEmulatedDomains *r)
+{
+ DCESRV_FAULT_VOID(DCERPC_FAULT_OP_RNG_ERROR);
+}
+
+
+/*
+ BrowserrServerEnumEx
+*/
+static void dcesrv_BrowserrServerEnumEx(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+ struct BrowserrServerEnumEx *r)
+{
+ DCESRV_FAULT_VOID(DCERPC_FAULT_OP_RNG_ERROR);
+}
+
+
+/* include the generated boilerplate */
+#include "librpc/gen_ndr/ndr_browser_s.c"
# Start MODULE dcerpc_rpcecho
[MODULE::dcerpc_rpcecho]
INIT_FUNCTION = dcerpc_server_rpcecho_init
-SUBSYSTEM = DCESRV
+SUBSYSTEM = dcerpc_server
PRIVATE_DEPENDENCIES = NDR_ECHO
# End MODULE dcerpc_rpcecho
################################################
# Start MODULE dcerpc_epmapper
[MODULE::dcerpc_epmapper]
INIT_FUNCTION = dcerpc_server_epmapper_init
-SUBSYSTEM = DCESRV
+SUBSYSTEM = dcerpc_server
PRIVATE_DEPENDENCIES = NDR_EPMAPPER
# End MODULE dcerpc_epmapper
################################################
# Start MODULE dcerpc_remote
[MODULE::dcerpc_remote]
INIT_FUNCTION = dcerpc_server_remote_init
-SUBSYSTEM = DCESRV
+SUBSYSTEM = dcerpc_server
PRIVATE_DEPENDENCIES = \
LIBCLI_SMB NDR_TABLE
# End MODULE dcerpc_remote
# Start MODULE dcerpc_srvsvc
[MODULE::dcerpc_srvsvc]
INIT_FUNCTION = dcerpc_server_srvsvc_init
-SUBSYSTEM = DCESRV
+SUBSYSTEM = dcerpc_server
PRIVATE_DEPENDENCIES = \
DCERPC_COMMON NDR_SRVSVC share
# End MODULE dcerpc_srvsvc
# Start MODULE dcerpc_wkssvc
[MODULE::dcerpc_wkssvc]
INIT_FUNCTION = dcerpc_server_wkssvc_init
-SUBSYSTEM = DCESRV
+SUBSYSTEM = dcerpc_server
PRIVATE_DEPENDENCIES = \
DCERPC_COMMON NDR_WKSSVC
# End MODULE dcerpc_wkssvc
# Start MODULE dcerpc_unixinfo
[MODULE::dcerpc_unixinfo]
INIT_FUNCTION = dcerpc_server_unixinfo_init
-SUBSYSTEM = DCESRV
+SUBSYSTEM = dcerpc_server
PRIVATE_DEPENDENCIES = \
DCERPC_COMMON \
SAMDB \
# Start MODULE dcesrv_samr
[MODULE::dcesrv_samr]
INIT_FUNCTION = dcerpc_server_samr_init
-SUBSYSTEM = DCESRV
+SUBSYSTEM = dcerpc_server
PRIVATE_DEPENDENCIES = \
SAMDB \
DCERPC_COMMON \
# Start MODULE dcerpc_winreg
[MODULE::dcerpc_winreg]
INIT_FUNCTION = dcerpc_server_winreg_init
-SUBSYSTEM = DCESRV
+SUBSYSTEM = dcerpc_server
OUTPUT_TYPE = MERGED_OBJ
PRIVATE_DEPENDENCIES = \
registry NDR_WINREG
# Start MODULE dcerpc_netlogon
[MODULE::dcerpc_netlogon]
INIT_FUNCTION = dcerpc_server_netlogon_init
-SUBSYSTEM = DCESRV
+SUBSYSTEM = dcerpc_server
PRIVATE_DEPENDENCIES = \
DCERPC_COMMON \
SCHANNELDB \
# Start MODULE dcerpc_lsa
[MODULE::dcerpc_lsarpc]
INIT_FUNCTION = dcerpc_server_lsa_init
-SUBSYSTEM = DCESRV
+SUBSYSTEM = dcerpc_server
PRIVATE_DEPENDENCIES = \
SAMDB \
DCERPC_COMMON \
# Start MODULE dcerpc_spoolss
[MODULE::dcerpc_spoolss]
INIT_FUNCTION = dcerpc_server_spoolss_init
-SUBSYSTEM = DCESRV
+SUBSYSTEM = dcerpc_server
OUTPUT_TYPE = MERGED_OBJ
PRIVATE_DEPENDENCIES = \
DCERPC_COMMON \
# Start MODULE dcerpc_drsuapi
[MODULE::dcerpc_drsuapi]
INIT_FUNCTION = dcerpc_server_drsuapi_init
-SUBSYSTEM = DCESRV
+SUBSYSTEM = dcerpc_server
PRIVATE_DEPENDENCIES = \
SAMDB \
DCERPC_COMMON \
dcerpc_drsuapi_OBJ_FILES = $(rpc_serversrcdir)/drsuapi/dcesrv_drsuapi.o
+################################################
+# Start MODULE dcerpc_browser
+[MODULE::dcerpc_browser]
+INIT_FUNCTION = dcerpc_server_browser_init
+SUBSYSTEM = dcerpc_server
+PRIVATE_DEPENDENCIES = \
+ DCERPC_COMMON \
+ NDR_BROWSER
+# End MODULE dcerpc_browser
+################################################
+
+dcerpc_browser_OBJ_FILES = $(rpc_serversrcdir)/browser/dcesrv_browser.o
+
################################################
# Start SUBSYSTEM dcerpc_server
[SUBSYSTEM::dcerpc_server]
#include "libcli/security/security.h"
#include "param/param.h"
-#define SAMBA_ACCOC_GROUP 0x12345678
+#define SAMBA_ASSOC_GROUP 0x12345678
extern const struct dcesrv_interface dcesrv_mgmt_interface;
return NT_STATUS_OK;
}
-
-/*
- destroy a link to an endpoint
-*/
-static int dcesrv_endpoint_destructor(struct dcesrv_connection *p)
-{
- while (p->contexts) {
- struct dcesrv_connection_context *c = p->contexts;
-
- DLIST_REMOVE(p->contexts, c);
-
- if (c->iface) {
- c->iface->unbind(c, c->iface);
- }
- }
-
- return 0;
-}
-
-
/*
connect to a dcerpc endpoint
*/
p->state_flags = state_flags;
ZERO_STRUCT(p->transport);
- talloc_set_destructor(p, dcesrv_endpoint_destructor);
-
*_p = p;
return NT_STATUS_OK;
}
return NT_STATUS_OK;
}
+static int dcesrv_connection_context_destructor(struct dcesrv_connection_context *c)
+{
+ DLIST_REMOVE(c->conn->contexts, c);
+
+ if (c->iface) {
+ c->iface->unbind(c, c->iface);
+ }
+
+ return 0;
+}
/*
handle a bind request
* assoc_group_id back to the clients
*/
if (call->pkt.u.bind.assoc_group_id != 0 &&
- call->pkt.u.bind.assoc_group_id != SAMBA_ACCOC_GROUP) {
+ lp_parm_bool(call->conn->dce_ctx->lp_ctx, NULL, "dcesrv","assoc group checking", true) &&
+ call->pkt.u.bind.assoc_group_id != SAMBA_ASSOC_GROUP) {
return dcesrv_bind_nak(call, 0);
}
context->conn = call->conn;
context->iface = iface;
context->context_id = context_id;
+ /*
+ * we need to send a non zero assoc_group_id here to make longhorn happy,
+ * it also matches samba3
+ */
+ context->assoc_group_id = SAMBA_ASSOC_GROUP;
context->private = NULL;
context->handles = NULL;
DLIST_ADD(call->conn->contexts, context);
call->context = context;
+ talloc_set_destructor(context, dcesrv_connection_context_destructor);
+
+ status = iface->bind(call, iface);
+ if (!NT_STATUS_IS_OK(status)) {
+ char *uuid_str = GUID_string(call, &uuid);
+ DEBUG(2,("Request for dcerpc interface %s/%d rejected: %s\n",
+ uuid_str, if_version, nt_errstr(status)));
+ talloc_free(uuid_str);
+ /* we don't want to trigger the iface->unbind() hook */
+ context->iface = NULL;
+ talloc_free(call->context);
+ call->context = NULL;
+ return dcesrv_bind_nak(call, 0);
+ }
}
if (call->conn->cli_max_recv_frag == 0) {
/* handle any authentication that is being requested */
if (!dcesrv_auth_bind(call)) {
+ talloc_free(call->context);
+ call->context = NULL;
return dcesrv_bind_nak(call, DCERPC_BIND_REASON_INVALID_AUTH_TYPE);
}
pkt.pfc_flags = DCERPC_PFC_FLAG_FIRST | DCERPC_PFC_FLAG_LAST | extra_flags;
pkt.u.bind_ack.max_xmit_frag = 0x2000;
pkt.u.bind_ack.max_recv_frag = 0x2000;
- /* we need to send a non zero assoc_group_id here to make longhorn happy, it also matches samba3 */
- pkt.u.bind_ack.assoc_group_id = SAMBA_ACCOC_GROUP;
+ pkt.u.bind_ack.assoc_group_id = iface?call->context->assoc_group_id:0;
if (iface) {
/* FIXME: Use pipe name as specified by endpoint instead of interface name */
pkt.u.bind_ack.secondary_address = talloc_asprintf(call, "\\PIPE\\%s", iface->name);
pkt.u.bind_ack.num_results = 1;
pkt.u.bind_ack.ctx_list = talloc(call, struct dcerpc_ack_ctx);
if (!pkt.u.bind_ack.ctx_list) {
+ talloc_free(call->context);
+ call->context = NULL;
return NT_STATUS_NO_MEMORY;
}
pkt.u.bind_ack.ctx_list[0].result = result;
status = dcesrv_auth_bind_ack(call, &pkt);
if (!NT_STATUS_IS_OK(status)) {
+ talloc_free(call->context);
+ call->context = NULL;
return dcesrv_bind_nak(call, 0);
}
- if (iface) {
- status = iface->bind(call, iface);
- if (!NT_STATUS_IS_OK(status)) {
- char *uuid_str = GUID_string(call, &uuid);
- DEBUG(2,("Request for dcerpc interface %s/%d rejected: %s\n",
- uuid_str, if_version, nt_errstr(status)));
- talloc_free(uuid_str);
- return dcesrv_bind_nak(call, 0);
- }
- }
-
rep = talloc(call, struct data_blob_list_item);
if (!rep) {
+ talloc_free(call->context);
+ call->context = NULL;
return NT_STATUS_NO_MEMORY;
}
status = ncacn_push_auth(&rep->blob, call, lp_iconv_convenience(call->conn->dce_ctx->lp_ctx), &pkt, call->conn->auth_state.auth_info);
if (!NT_STATUS_IS_OK(status)) {
+ talloc_free(call->context);
+ call->context = NULL;
return status;
}
context->conn = call->conn;
context->iface = iface;
context->context_id = context_id;
+ context->assoc_group_id = SAMBA_ASSOC_GROUP;
context->private = NULL;
context->handles = NULL;
DLIST_ADD(call->conn->contexts, context);
call->context = context;
+ talloc_set_destructor(context, dcesrv_connection_context_destructor);
- if (iface) {
- status = iface->bind(call, iface);
- if (!NT_STATUS_IS_OK(status)) {
- return status;
- }
+ status = iface->bind(call, iface);
+ if (!NT_STATUS_IS_OK(status)) {
+ /* we don't want to trigger the iface->unbind() hook */
+ context->iface = NULL;
+ talloc_free(context);
+ call->context = NULL;
+ return status;
}
return NT_STATUS_OK;
context_id = call->pkt.u.alter.ctx_list[0].context_id;
/* see if they are asking for a new interface */
- if (result == 0 &&
- dcesrv_find_context(call->conn, context_id) == NULL) {
- status = dcesrv_alter_new_context(call, context_id);
- if (!NT_STATUS_IS_OK(status)) {
- result = DCERPC_BIND_PROVIDER_REJECT;
- reason = DCERPC_BIND_REASON_ASYNTAX;
+ if (result == 0) {
+ call->context = dcesrv_find_context(call->conn, context_id);
+ if (!call->context) {
+ status = dcesrv_alter_new_context(call, context_id);
+ if (!NT_STATUS_IS_OK(status)) {
+ result = DCERPC_BIND_PROVIDER_REJECT;
+ reason = DCERPC_BIND_REASON_ASYNTAX;
+ }
}
}
+ if (result == 0 &&
+ call->pkt.u.alter.assoc_group_id != 0 &&
+ lp_parm_bool(call->conn->dce_ctx->lp_ctx, NULL, "dcesrv","assoc group checking", true) &&
+ call->pkt.u.alter.assoc_group_id != call->context->assoc_group_id) {
+ /* TODO: work out what to return here */
+ result = DCERPC_BIND_PROVIDER_REJECT;
+ reason = DCERPC_BIND_REASON_ASYNTAX;
+ }
+
/* setup a alter_resp */
dcesrv_init_hdr(&pkt, lp_rpc_big_endian(call->conn->dce_ctx->lp_ctx));
pkt.auth_length = 0;
pkt.pfc_flags = DCERPC_PFC_FLAG_FIRST | DCERPC_PFC_FLAG_LAST;
pkt.u.alter_resp.max_xmit_frag = 0x2000;
pkt.u.alter_resp.max_recv_frag = 0x2000;
- pkt.u.alter_resp.assoc_group_id = call->pkt.u.alter.assoc_group_id;
+ if (result == 0) {
+ pkt.u.alter_resp.assoc_group_id = call->context->assoc_group_id;
+ } else {
+ pkt.u.alter_resp.assoc_group_id = 0;
+ }
pkt.u.alter_resp.num_results = 1;
pkt.u.alter_resp.ctx_list = talloc_array(call, struct dcerpc_ack_ctx, 1);
if (!pkt.u.alter_resp.ctx_list) {
return NULL;
}
+void dcerpc_server_init(struct loadparm_context *lp_ctx)
+{
+ static bool initialized;
+ extern NTSTATUS dcerpc_server_wkssvc_init(void);
+ extern NTSTATUS dcerpc_server_drsuapi_init(void);
+ extern NTSTATUS dcerpc_server_winreg_init(void);
+ extern NTSTATUS dcerpc_server_spoolss_init(void);
+ extern NTSTATUS dcerpc_server_epmapper_init(void);
+ extern NTSTATUS dcerpc_server_srvsvc_init(void);
+ extern NTSTATUS dcerpc_server_netlogon_init(void);
+ extern NTSTATUS dcerpc_server_rpcecho_init(void);
+ extern NTSTATUS dcerpc_server_unixinfo_init(void);
+ extern NTSTATUS dcerpc_server_samr_init(void);
+ extern NTSTATUS dcerpc_server_remote_init(void);
+ extern NTSTATUS dcerpc_server_lsa_init(void);
+ extern NTSTATUS dcerpc_server_browser_init(void);
+ init_module_fn static_init[] = { STATIC_dcerpc_server_MODULES };
+ init_module_fn *shared_init;
+
+ if (initialized) {
+ return;
+ }
+ initialized = true;
+
+ shared_init = load_samba_modules(NULL, lp_ctx, "dcerpc_server");
+
+ run_init_functions(static_init);
+ run_init_functions(shared_init);
+
+ talloc_free(shared_init);
+}
+
/*
return the DCERPC module version, and the size of some critical types
This can be used by endpoint server modules to either detect compilation errors, or provide
NTSTATUS status;
struct dcesrv_context *dce_ctx;
+ dcerpc_server_init(lp_ctx);
+
status = dcesrv_init_context(mem_ctx, lp_ctx, lp_dcerpc_endpoint_servers(lp_ctx), &dce_ctx);
NT_STATUS_NOT_OK_RETURN(status);
struct dcesrv_connection_context *next, *prev;
uint32_t context_id;
+ uint32_t assoc_group_id;
+
/* the connection this is on */
struct dcesrv_connection *conn;
static WERROR dcesrv_netr_GetDcName(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
struct netr_GetDcName *r)
{
- DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
+ const char * const attrs[] = { NULL };
+ void *sam_ctx;
+ struct ldb_message **res;
+ struct ldb_dn *domain_dn;
+ int ret;
+ const char *dcname;
+
+ sam_ctx = samdb_connect(mem_ctx, dce_call->event_ctx,
+ dce_call->conn->dce_ctx->lp_ctx,
+ dce_call->conn->auth_state.session_info);
+ if (sam_ctx == NULL) {
+ return WERR_DS_SERVICE_UNAVAILABLE;
+ }
+
+ domain_dn = samdb_domain_to_dn(sam_ctx, mem_ctx,
+ r->in.domainname);
+ if (domain_dn == NULL) {
+ return WERR_DS_SERVICE_UNAVAILABLE;
+ }
+
+ ret = gendb_search_dn(sam_ctx, mem_ctx, domain_dn, &res, attrs);
+ if (ret != 1) {
+ return WERR_NO_SUCH_DOMAIN;
+ }
+
+ /* TODO: - return real IP address
+ * - check all r->in.* parameters (server_unc is ignored by w2k3!)
+ */
+ dcname = talloc_asprintf(mem_ctx, "\\\\%s",
+ lp_netbios_name(dce_call->conn->dce_ctx->lp_ctx));
+ W_ERROR_HAVE_NO_MEMORY(dcname);
+
+ *r->out.dcname = dcname;
+ return WERR_OK;
}
static WERROR dcesrv_netr_GetAnyDCName(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
struct netr_GetAnyDCName *r)
{
- DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
+ struct netr_GetDcName r2;
+ WERROR werr;
+
+ ZERO_STRUCT(r2);
+
+ r2.in.logon_server = r->in.logon_server;
+ r2.in.domainname = r->in.domainname;
+ r2.out.dcname = r->out.dcname;
+
+ werr = dcesrv_netr_GetDcName(dce_call, mem_ctx, &r2);
+
+ return werr;
}
}
-/*
- netr_NETRSERVERGETTRUSTINFO
+/*
+ netr_ServerGetTrustInfo
*/
-static WERROR dcesrv_netr_NETRSERVERGETTRUSTINFO(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
- struct netr_NETRSERVERGETTRUSTINFO *r)
+static NTSTATUS dcesrv_netr_ServerGetTrustInfo(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+ struct netr_ServerGetTrustInfo *r)
{
DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
}
#define SET_PARAMETERS(msg, field, attr) do { \
struct ldb_message_element *set_el; \
- if (samdb_msg_add_parameters(sam_ctx, mem_ctx, msg, attr, &r->in.info->field) != 0) { \
- return NT_STATUS_NO_MEMORY; \
+ if (r->in.info->field.length != 0) { \
+ if (samdb_msg_add_parameters(sam_ctx, mem_ctx, msg, attr, &r->in.info->field) != 0) { \
+ return NT_STATUS_NO_MEMORY; \
+ } \
+ set_el = ldb_msg_find_element(msg, attr); \
+ set_el->flags = LDB_FLAG_MOD_REPLACE; \
} \
- set_el = ldb_msg_find_element(msg, attr); \
- set_el->flags = LDB_FLAG_MOD_REPLACE; \
} while (0)
info->domain_create_time = ldb_msg_find_attr_as_uint(dom_msgs[0], "creationTime",
0x0LL);
- info->unknown1 = 0;
- info->unknown2 = 0;
+ info->modified_count_at_last_promotion = 0;
return NT_STATUS_OK;
}
SET_UINT (msg, info23.info.country_code, "countryCode");
IFSET(SAMR_FIELD_CODE_PAGE)
SET_UINT (msg, info23.info.code_page, "codePage");
- IFSET(SAMR_FIELD_PASSWORD) {
+ IFSET(SAMR_FIELD_NT_PASSWORD_PRESENT) {
status = samr_set_password(dce_call,
a_state->sam_ctx,
a_state->account_dn,
a_state->domain_state->domain_dn,
mem_ctx, msg,
&r->in.info->info23.password);
- } else IFSET(SAMR_FIELD_PASSWORD2) {
+ } else IFSET(SAMR_FIELD_LM_PASSWORD_PRESENT) {
status = samr_set_password(dce_call,
a_state->sam_ctx,
a_state->account_dn,
SET_UINT (msg, info25.info.country_code, "countryCode");
IFSET(SAMR_FIELD_CODE_PAGE)
SET_UINT (msg, info25.info.code_page, "codePage");
- IFSET(SAMR_FIELD_PASSWORD) {
+ IFSET(SAMR_FIELD_NT_PASSWORD_PRESENT) {
status = samr_set_password_ex(dce_call,
a_state->sam_ctx,
a_state->account_dn,
a_state->domain_state->domain_dn,
mem_ctx, msg,
&r->in.info->info25.password);
- } else IFSET(SAMR_FIELD_PASSWORD2) {
+ } else IFSET(SAMR_FIELD_LM_PASSWORD_PRESENT) {
status = samr_set_password_ex(dce_call,
a_state->sam_ctx,
a_state->account_dn,
NTSTATUS status;
struct dcesrv_context *dce_ctx;
struct dcesrv_endpoint *e;
- extern NTSTATUS dcerpc_server_wkssvc_init(void);
- extern NTSTATUS dcerpc_server_drsuapi_init(void);
- extern NTSTATUS dcerpc_server_winreg_init(void);
- extern NTSTATUS dcerpc_server_spoolss_init(void);
- extern NTSTATUS dcerpc_server_epmapper_init(void);
- extern NTSTATUS dcerpc_server_srvsvc_init(void);
- extern NTSTATUS dcerpc_server_netlogon_init(void);
- extern NTSTATUS dcerpc_server_rpcecho_init(void);
- extern NTSTATUS dcerpc_server_unixinfo_init(void);
- extern NTSTATUS dcerpc_server_samr_init(void);
- extern NTSTATUS dcerpc_server_remote_init(void);
- extern NTSTATUS dcerpc_server_lsa_init(void);
- init_module_fn static_init[] = { STATIC_DCESRV_MODULES };
- init_module_fn *shared_init = load_samba_modules(NULL, task->lp_ctx, "dcerpc_server");
-
- run_init_functions(static_init);
- run_init_functions(shared_init);
-
- talloc_free(shared_init);
+
+ dcerpc_server_init(task->lp_ctx);
task_server_set_title(task, "task[dcesrv]");
# a successful run for any of these tests an error.
local.resolve.*.async
local.iconv.*.next_codepoint()
+base.delete.*.deltest17
base.delete.*.deltest20a
base.delete.*.deltest20b
+base.delete.*.deltest21
rpc.winreg.*security
samba4.local.registry.(dir|ldb).check hive security
samba4.local.registry.local.security
rpc.netlogon.*.LogonUasLogoff
rpc.netlogon.*.DatabaseSync
rpc.netlogon.*.DatabaseSync2
-rpc.netlogon.*.GetDcName
rpc.netlogon.*.LogonControl
rpc.netlogon.*.LogonControl2
-rpc.netlogon.*.GetAnyDCName
rpc.netlogon.*.DsrEnumerateDomainTrusts
rpc.netlogon.*.NetrEnumerateTrustedDomains
rpc.netlogon.*.NetrEnumerateTrustedDomainsEx
rpc.netlogon.*.GetPassword
rpc.netlogon.*.GetTrustPasswords
rpc.netlogon.*.DatabaseRedo
+rpc.netlogon.*.ServerGetTrustInfo
base.charset.*.Testing partial surrogate
.*net.api.delshare.* # DelShare isn't implemented yet
rap.*netservergetinfo
--- /dev/null
+# © 2008 Microsoft Corporation. All rights reserved\r
+#\r
+# Intellectual Property Rights Notice for Protocol Documentation\r
+#\r
+# Copyrights. \r
+# This protocol documentation is covered by Microsoft\r
+# copyrights. Regardless of any other terms that are contained in the\r
+# terms of use for the Microsoft website that hosts this documentation,\r
+# you may make copies of it in order to develop implementations of the\r
+# protocols, and may distribute portions of it in your implementations\r
+# of the protocols or your documentation as necessary to properly\r
+# document the implementation. You may also distribute in your\r
+# implementation, with or without modification, any schema, IDL's, or\r
+# code samples that are included in the documentation. This permission\r
+# also applies to any documents that are referenced in the protocol\r
+# documentation.\r
+# \r
+# No Trade Secrets. \r
+# Microsoft does not claim any trade secret rights in this documentation.\r
+# \r
+# Patents. \r
+# Microsoft has patents that may cover your implementations of the\r
+# protocols. Neither this notice nor Microsoft's delivery of the\r
+# documentation grants any licenses under those or any other Microsoft\r
+# patents. However, the protocols may be covered by Microsoft\92s Open\r
+# Specification Promise (available here:\r
+# http://www.microsoft.com/interop/osp). If you would prefer a written\r
+# license, or if the protocols are not covered by the OSP, patent\r
+# licenses are available by contacting protocol@microsoft.com.\r
+# \r
+# Trademarks. \r
+# The names of companies and products contained in this documentation\r
+# may be covered by trademarks or similar intellectual property\r
+# rights. This notice does not grant any licenses under those\r
+# rights.Reservation of Rights. All other rights are reserved, and this\r
+# notice does not grant any rights other than specifically described\r
+# above, whether by implication, estoppel, or otherwise.\r
+# \r
+# Tools. \r
+# This protocol documentation is intended for use in conjunction with\r
+# publicly available standard specifications and network programming\r
+# art, and assumes that the reader either is familiar with the\r
+# aforementioned material or has immediate access to it. A protocol\r
+# specification does not require the use of Microsoft programming tools\r
+# or programming environments in order for you to develop an\r
+# implementation. If you have access to Microsoft programming tools and\r
+# environments you are free to take advantage of them.\r
+\r
+cn: Account-Expires\r
+ldapDisplayName: accountExpires\r
+attributeId: 1.2.840.113556.1.4.159\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967915-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+attributeSecurityGuid: 4c164200-20c0-11d0-a768-00aa006e0529\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ACS-Enable-ACS-Service\r
+ldapDisplayName: aCSEnableACSService\r
+attributeId: 1.2.840.113556.1.4.770\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: 7f561287-5301-11d1-a9c5-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Catalogs\r
+ldapDisplayName: catalogs\r
+attributeId: 1.2.840.113556.1.4.675\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 7bfdcb81-4807-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Categories\r
+ldapDisplayName: categories\r
+attributeId: 1.2.840.113556.1.4.672\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 7bfdcb7e-4807-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 36\r
+rangeUpper: 36\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Category-Id\r
+ldapDisplayName: categoryId\r
+attributeId: 1.2.840.113556.1.4.322\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 7d6c0e94-7e20-11d0-afd6-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 16\r
+rangeUpper: 16\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: CA-Usages\r
+ldapDisplayName: cAUsages\r
+attributeId: 1.2.840.113556.1.4.690\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 963d2738-48be-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: CA-WEB-URL\r
+ldapDisplayName: cAWEBURL\r
+attributeId: 1.2.840.113556.1.4.688\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 963d2736-48be-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Certificate-Authority-Object\r
+ldapDisplayName: certificateAuthorityObject\r
+attributeId: 1.2.840.113556.1.4.684\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: 963d2732-48be-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Certificate-Revocation-List\r
+ldapDisplayName: certificateRevocationList\r
+attributeId: 2.5.4.39\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 1677579f-47f3-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 10485760\r
+mapiID: 32790\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Certificate-Templates\r
+ldapDisplayName: certificateTemplates\r
+attributeId: 1.2.840.113556.1.4.823\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 2a39c5b1-8960-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Class-Display-Name\r
+ldapDisplayName: classDisplayName\r
+attributeId: 1.2.840.113556.1.4.610\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 548e1c22-dea6-11d0-b010-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Common-Name\r
+ldapDisplayName: cn\r
+attributeId: 2.5.4.3\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf96793f-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+rangeLower: 1\r
+rangeUpper: 64\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+mapiID: 14863\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ACS-Enable-RSVP-Accounting\r
+ldapDisplayName: aCSEnableRSVPAccounting\r
+attributeId: 1.2.840.113556.1.4.899\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: f072230e-aef5-11d1-bdcf-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Text-Country\r
+ldapDisplayName: co\r
+attributeId: 1.2.840.113556.1.2.131\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: f0f8ffa7-1191-11d0-a060-00aa006c33ed\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+rangeLower: 1\r
+rangeUpper: 128\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+mapiID: 14886\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Code-Page\r
+ldapDisplayName: codePage\r
+attributeId: 1.2.840.113556.1.4.16\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967938-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+rangeLower: 0\r
+rangeUpper: 65535\r
+attributeSecurityGuid: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: COM-ClassID\r
+ldapDisplayName: cOMClassID\r
+attributeId: 1.2.840.113556.1.4.19\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf96793b-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: COM-CLSID\r
+ldapDisplayName: cOMCLSID\r
+attributeId: 1.2.840.113556.1.4.249\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 281416d9-1968-11d0-a28f-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 36\r
+rangeUpper: 36\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: COM-InterfaceID\r
+ldapDisplayName: cOMInterfaceID\r
+attributeId: 1.2.840.113556.1.4.20\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf96793c-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 36\r
+rangeUpper: 36\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: User-Comment\r
+ldapDisplayName: comment\r
+attributeId: 1.2.840.113556.1.4.156\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a6a-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+attributeSecurityGuid: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: COM-Other-Prog-Id\r
+ldapDisplayName: cOMOtherProgId\r
+attributeId: 1.2.840.113556.1.4.253\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 281416dd-1968-11d0-a28f-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Company\r
+ldapDisplayName: company\r
+attributeId: 1.2.840.113556.1.2.146\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: f0f8ff88-1191-11d0-a060-00aa006c33ed\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+rangeLower: 1\r
+rangeUpper: 64\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+mapiID: 14870\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: COM-ProgID\r
+ldapDisplayName: cOMProgID\r
+attributeId: 1.2.840.113556.1.4.21\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf96793d-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: COM-Treat-As-Class-Id\r
+ldapDisplayName: cOMTreatAsClassId\r
+attributeId: 1.2.840.113556.1.4.251\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 281416db-1968-11d0-a28f-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 36\r
+rangeUpper: 36\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ACS-Enable-RSVP-Message-Logging\r
+ldapDisplayName: aCSEnableRSVPMessageLogging\r
+attributeId: 1.2.840.113556.1.4.768\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: 7f561285-5301-11d1-a9c5-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: COM-Typelib-Id\r
+ldapDisplayName: cOMTypelibId\r
+attributeId: 1.2.840.113556.1.4.254\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 281416de-1968-11d0-a28f-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 36\r
+rangeUpper: 36\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: COM-Unique-LIBID\r
+ldapDisplayName: cOMUniqueLIBID\r
+attributeId: 1.2.840.113556.1.4.250\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 281416da-1968-11d0-a28f-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 36\r
+rangeUpper: 36\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Content-Indexing-Allowed\r
+ldapDisplayName: contentIndexingAllowed\r
+attributeId: 1.2.840.113556.1.4.24\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967943-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Context-Menu\r
+ldapDisplayName: contextMenu\r
+attributeId: 1.2.840.113556.1.4.499\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 4d8601ee-ac85-11d0-afe3-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Control-Access-Rights\r
+ldapDisplayName: controlAccessRights\r
+attributeId: 1.2.840.113556.1.4.200\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: 6da8a4fc-0e52-11d0-a286-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 16\r
+rangeUpper: 16\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Cost\r
+ldapDisplayName: cost\r
+attributeId: 1.2.840.113556.1.2.135\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967944-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+mapiID: 32872\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Country-Code\r
+ldapDisplayName: countryCode\r
+attributeId: 1.2.840.113556.1.4.25\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 5fd42471-1262-11d0-a060-00aa006c33ed\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+rangeLower: 0\r
+rangeUpper: 65535\r
+attributeSecurityGuid: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Create-Dialog\r
+ldapDisplayName: createDialog\r
+attributeId: 1.2.840.113556.1.4.810\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 2b09958a-8931-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Create-Time-Stamp\r
+ldapDisplayName: createTimeStamp\r
+attributeId: 2.5.18.1\r
+attributeSyntax: 2.5.5.11\r
+omSyntax: 24\r
+isSingleValued: TRUE\r
+schemaIdGuid: 2df90d73-009f-11d2-aa4c-00c04fd7d83a\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Create-Wizard-Ext\r
+ldapDisplayName: createWizardExt\r
+attributeId: 1.2.840.113556.1.4.812\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 2b09958b-8931-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ACS-Event-Log-Level\r
+ldapDisplayName: aCSEventLogLevel\r
+attributeId: 1.2.840.113556.1.4.769\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 7f561286-5301-11d1-a9c5-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Creation-Time\r
+ldapDisplayName: creationTime\r
+attributeId: 1.2.840.113556.1.4.26\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967946-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Creation-Wizard\r
+ldapDisplayName: creationWizard\r
+attributeId: 1.2.840.113556.1.4.498\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 4d8601ed-ac85-11d0-afe3-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Creator\r
+ldapDisplayName: creator\r
+attributeId: 1.2.840.113556.1.4.679\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 7bfdcb85-4807-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: CRL-Object\r
+ldapDisplayName: cRLObject\r
+attributeId: 1.2.840.113556.1.4.689\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: 963d2737-48be-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: CRL-Partitioned-Revocation-List\r
+ldapDisplayName: cRLPartitionedRevocationList\r
+attributeId: 1.2.840.113556.1.4.683\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 963d2731-48be-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 10485760\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Cross-Certificate-Pair\r
+ldapDisplayName: crossCertificatePair\r
+attributeId: 2.5.4.40\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: 167757b2-47f3-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 32768\r
+mapiID: 32805\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Current-Location\r
+ldapDisplayName: currentLocation\r
+attributeId: 1.2.840.113556.1.4.335\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 1f0075fc-7e40-11d0-afd6-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 32\r
+rangeUpper: 32\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Current-Parent-CA\r
+ldapDisplayName: currentParentCA\r
+attributeId: 1.2.840.113556.1.4.696\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 963d273f-48be-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Current-Value\r
+ldapDisplayName: currentValue\r
+attributeId: 1.2.840.113556.1.4.27\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967947-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Curr-Machine-Id\r
+ldapDisplayName: currMachineId\r
+attributeId: 1.2.840.113556.1.4.337\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 1f0075fe-7e40-11d0-afd6-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 16\r
+rangeUpper: 16\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ACS-Identity-Name\r
+ldapDisplayName: aCSIdentityName\r
+attributeId: 1.2.840.113556.1.4.784\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: dab029b6-ddf7-11d1-90a5-00c04fd91ab1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: DBCS-Pwd\r
+ldapDisplayName: dBCSPwd\r
+attributeId: 1.2.840.113556.1.4.55\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf96799c-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Domain-Component\r
+ldapDisplayName: dc\r
+attributeId: 0.9.2342.19200300.100.1.25\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 19195a55-6da0-11d0-afd3-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 255\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Default-Class-Store\r
+ldapDisplayName: defaultClassStore\r
+attributeId: 1.2.840.113556.1.4.213\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf967948-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Default-Group\r
+ldapDisplayName: defaultGroup\r
+attributeId: 1.2.840.113556.1.4.480\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: 720bc4e2-a54a-11d0-afdf-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Default-Hiding-Value\r
+ldapDisplayName: defaultHidingValue\r
+attributeId: 1.2.840.113556.1.4.518\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: b7b13116-b82e-11d0-afee-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Default-Local-Policy-Object\r
+ldapDisplayName: defaultLocalPolicyObject\r
+attributeId: 1.2.840.113556.1.4.57\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf96799f-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Default-Object-Category\r
+ldapDisplayName: defaultObjectCategory\r
+attributeId: 1.2.840.113556.1.4.783\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: 26d97367-6070-11d1-a9c6-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Default-Priority\r
+ldapDisplayName: defaultPriority\r
+attributeId: 1.2.840.113556.1.4.232\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 281416c8-1968-11d0-a28f-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Default-Security-Descriptor\r
+ldapDisplayName: defaultSecurityDescriptor\r
+attributeId: 1.2.840.113556.1.4.224\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 807a6d30-1669-11d0-a064-00aa006c33ed\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 32767\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Delta-Revocation-List\r
+ldapDisplayName: deltaRevocationList\r
+attributeId: 2.5.4.53\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: 167757b5-47f3-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 10485760\r
+mapiID: 35910\r
+\r
+cn: ACS-Max-Aggregate-Peak-Rate-Per-User\r
+ldapDisplayName: aCSMaxAggregatePeakRatePerUser\r
+attributeId: 1.2.840.113556.1.4.897\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: f072230c-aef5-11d1-bdcf-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Department\r
+ldapDisplayName: department\r
+attributeId: 1.2.840.113556.1.2.141\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf96794f-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+rangeLower: 1\r
+rangeUpper: 64\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+mapiID: 14872\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: departmentNumber\r
+ldapDisplayName: departmentNumber\r
+attributeId: 2.16.840.1.113730.3.1.2\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: be9ef6ee-cbc7-4f22-b27b-96967e7ee585\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+showInAdvancedViewOnly: FALSE\r
+\r
+cn: Description\r
+ldapDisplayName: description\r
+attributeId: 2.5.4.13\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf967950-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 1024\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+mapiID: 32879\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Desktop-Profile\r
+ldapDisplayName: desktopProfile\r
+attributeId: 1.2.840.113556.1.4.346\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: eea65906-8ac6-11d0-afda-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Destination-Indicator\r
+ldapDisplayName: destinationIndicator\r
+attributeId: 2.5.4.27\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 19\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf967951-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 128\r
+mapiID: 32880\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: dhcp-Classes\r
+ldapDisplayName: dhcpClasses\r
+attributeId: 1.2.840.113556.1.4.715\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: 963d2750-48be-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: dhcp-Flags\r
+ldapDisplayName: dhcpFlags\r
+attributeId: 1.2.840.113556.1.4.700\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: 963d2741-48be-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: dhcp-Identification\r
+ldapDisplayName: dhcpIdentification\r
+attributeId: 1.2.840.113556.1.4.701\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 963d2742-48be-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: dhcp-Mask\r
+ldapDisplayName: dhcpMask\r
+attributeId: 1.2.840.113556.1.4.706\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 19\r
+isSingleValued: FALSE\r
+schemaIdGuid: 963d2747-48be-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: dhcp-MaxKey\r
+ldapDisplayName: dhcpMaxKey\r
+attributeId: 1.2.840.113556.1.4.719\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: 963d2754-48be-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ACS-Max-Duration-Per-Flow\r
+ldapDisplayName: aCSMaxDurationPerFlow\r
+attributeId: 1.2.840.113556.1.4.761\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 7f56127e-5301-11d1-a9c5-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: dhcp-Obj-Description\r
+ldapDisplayName: dhcpObjDescription\r
+attributeId: 1.2.840.113556.1.4.703\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 963d2744-48be-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: dhcp-Obj-Name\r
+ldapDisplayName: dhcpObjName\r
+attributeId: 1.2.840.113556.1.4.702\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 963d2743-48be-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: dhcp-Options\r
+ldapDisplayName: dhcpOptions\r
+attributeId: 1.2.840.113556.1.4.714\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: 963d274f-48be-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: dhcp-Properties\r
+ldapDisplayName: dhcpProperties\r
+attributeId: 1.2.840.113556.1.4.718\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: 963d2753-48be-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: dhcp-Ranges\r
+ldapDisplayName: dhcpRanges\r
+attributeId: 1.2.840.113556.1.4.707\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 19\r
+isSingleValued: FALSE\r
+schemaIdGuid: 963d2748-48be-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: dhcp-Reservations\r
+ldapDisplayName: dhcpReservations\r
+attributeId: 1.2.840.113556.1.4.709\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 19\r
+isSingleValued: FALSE\r
+schemaIdGuid: 963d274a-48be-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: dhcp-Servers\r
+ldapDisplayName: dhcpServers\r
+attributeId: 1.2.840.113556.1.4.704\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 19\r
+isSingleValued: FALSE\r
+schemaIdGuid: 963d2745-48be-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+extendedCharsAllowed: TRUE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: dhcp-Sites\r
+ldapDisplayName: dhcpSites\r
+attributeId: 1.2.840.113556.1.4.708\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 19\r
+isSingleValued: FALSE\r
+schemaIdGuid: 963d2749-48be-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: dhcp-State\r
+ldapDisplayName: dhcpState\r
+attributeId: 1.2.840.113556.1.4.717\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 19\r
+isSingleValued: FALSE\r
+schemaIdGuid: 963d2752-48be-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: dhcp-Subnets\r
+ldapDisplayName: dhcpSubnets\r
+attributeId: 1.2.840.113556.1.4.705\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 19\r
+isSingleValued: FALSE\r
+schemaIdGuid: 963d2746-48be-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ACS-Maximum-SDU-Size\r
+ldapDisplayName: aCSMaximumSDUSize\r
+attributeId: 1.2.840.113556.1.4.1314\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: 87a2d8f9-3b90-11d2-90cc-00c04fd91ab1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: dhcp-Type\r
+ldapDisplayName: dhcpType\r
+attributeId: 1.2.840.113556.1.4.699\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 963d273b-48be-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: dhcp-Unique-Key\r
+ldapDisplayName: dhcpUniqueKey\r
+attributeId: 1.2.840.113556.1.4.698\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: 963d273a-48be-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: dhcp-Update-Time\r
+ldapDisplayName: dhcpUpdateTime\r
+attributeId: 1.2.840.113556.1.4.720\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: 963d2755-48be-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Reports\r
+ldapDisplayName: directReports\r
+attributeId: 1.2.840.113556.1.2.436\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf967a1c-0de6-11d0-a285-00aa003049e2\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+linkID: 43\r
+mapiID: 32782\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+\r
+cn: Display-Name\r
+ldapDisplayName: displayName\r
+attributeId: 1.2.840.113556.1.2.13\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967953-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: fANR | fATTINDEX\r
+rangeLower: 0\r
+rangeUpper: 256\r
+attributeSecurityGuid: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Display-Name-Printable\r
+ldapDisplayName: displayNamePrintable\r
+attributeId: 1.2.840.113556.1.2.353\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 19\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967954-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 256\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+mapiID: 14847\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Obj-Dist-Name\r
+ldapDisplayName: distinguishedName\r
+attributeId: 2.5.4.49\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf9679e4-0de6-11d0-a285-00aa003049e2\r
+systemOnly: TRUE\r
+searchFlags:fPRESERVEONDELETE\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+mapiID: 32828\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER | FLAG_ATTR_NOT_REPLICATED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: DIT-Content-Rules\r
+ldapDisplayName: dITContentRules\r
+attributeId: 2.5.21.2\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 9a7ad946-ca53-11d1-bbd0-0080c76670c0\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Division\r
+ldapDisplayName: division\r
+attributeId: 1.2.840.113556.1.4.261\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: fe6136a0-2073-11d0-a9c2-00aa006c33ed\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+rangeLower: 0\r
+rangeUpper: 256\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: DMD-Location\r
+ldapDisplayName: dMDLocation\r
+attributeId: 1.2.840.113556.1.2.36\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: f0f8ff8b-1191-11d0-a060-00aa006c33ed\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ACS-Max-No-Of-Account-Files\r
+ldapDisplayName: aCSMaxNoOfAccountFiles\r
+attributeId: 1.2.840.113556.1.4.901\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: f0722310-aef5-11d1-bdcf-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: DMD-Name\r
+ldapDisplayName: dmdName\r
+attributeId: 1.2.840.113556.1.2.598\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 167757b9-47f3-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 1024\r
+mapiID: 35926\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: DN-Reference-Update\r
+ldapDisplayName: dNReferenceUpdate\r
+attributeId: 1.2.840.113556.1.4.1242\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 2df90d86-009f-11d2-aa4c-00c04fd7d83a\r
+systemOnly: TRUE\r
+searchFlags:fPRESERVEONDELETE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Dns-Allow-Dynamic\r
+ldapDisplayName: dnsAllowDynamic\r
+attributeId: 1.2.840.113556.1.4.378\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: e0fa1e65-9b45-11d0-afdd-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Dns-Allow-XFR\r
+ldapDisplayName: dnsAllowXFR\r
+attributeId: 1.2.840.113556.1.4.379\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: e0fa1e66-9b45-11d0-afdd-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: DNS-Host-Name\r
+ldapDisplayName: dNSHostName\r
+attributeId: 1.2.840.113556.1.4.619\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 72e39547-7b18-11d1-adef-00c04fd8d5cd\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 2048\r
+attributeSecurityGuid: 72e39547-7b18-11d1-adef-00c04fd8d5cd\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Dns-Notify-Secondaries\r
+ldapDisplayName: dnsNotifySecondaries\r
+attributeId: 1.2.840.113556.1.4.381\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: FALSE\r
+schemaIdGuid: e0fa1e68-9b45-11d0-afdd-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: DNS-Property\r
+ldapDisplayName: dNSProperty\r
+attributeId: 1.2.840.113556.1.4.1306\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: 675a15fe-3b70-11d2-90cc-00c04fd91ab1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Dns-Record\r
+ldapDisplayName: dnsRecord\r
+attributeId: 1.2.840.113556.1.4.382\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: e0fa1e69-9b45-11d0-afdd-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Dns-Root\r
+ldapDisplayName: dnsRoot\r
+attributeId: 1.2.840.113556.1.4.28\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf967959-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+rangeLower: 1\r
+rangeUpper: 255\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Dns-Secure-Secondaries\r
+ldapDisplayName: dnsSecureSecondaries\r
+attributeId: 1.2.840.113556.1.4.380\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: FALSE\r
+schemaIdGuid: e0fa1e67-9b45-11d0-afdd-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ACS-Max-No-Of-Log-Files\r
+ldapDisplayName: aCSMaxNoOfLogFiles\r
+attributeId: 1.2.840.113556.1.4.774\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 1cb3559c-56d0-11d1-a9c6-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: DNS-Tombstoned\r
+ldapDisplayName: dNSTombstoned\r
+attributeId: 1.2.840.113556.1.4.1414\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: d5eb2eb7-be4e-463b-a214-634a44d7392e\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: documentAuthor\r
+ldapDisplayName: documentAuthor\r
+attributeId: 0.9.2342.19200300.100.1.14\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: f18a8e19-af5f-4478-b096-6f35c27eb83f\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+\r
+cn: documentIdentifier\r
+ldapDisplayName: documentIdentifier\r
+attributeId: 0.9.2342.19200300.100.1.11\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 0b21ce82-ff63-46d9-90fb-c8b9f24e97b9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 256\r
+\r
+cn: documentLocation\r
+ldapDisplayName: documentLocation\r
+attributeId: 0.9.2342.19200300.100.1.15\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: b958b14e-ac6d-4ec4-8892-be70b69f7281\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 256\r
+\r
+cn: documentPublisher\r
+ldapDisplayName: documentPublisher\r
+attributeId: 0.9.2342.19200300.100.1.56\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 170f09d7-eb69-448a-9a30-f1afecfd32d7\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 256\r
+\r
+cn: documentTitle\r
+ldapDisplayName: documentTitle\r
+attributeId: 0.9.2342.19200300.100.1.12\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: de265a9c-ff2c-47b9-91dc-6e6fe2c43062\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 256\r
+\r
+cn: documentVersion\r
+ldapDisplayName: documentVersion\r
+attributeId: 0.9.2342.19200300.100.1.13\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 94b3a8a9-d613-4cec-9aad-5fbcc1046b43\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 256\r
+\r
+cn: Domain-Certificate-Authorities\r
+ldapDisplayName: domainCAs\r
+attributeId: 1.2.840.113556.1.4.668\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 7bfdcb7a-4807-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Domain-Cross-Ref\r
+ldapDisplayName: domainCrossRef\r
+attributeId: 1.2.840.113556.1.4.472\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: b000ea7b-a086-11d0-afdd-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Domain-ID\r
+ldapDisplayName: domainID\r
+attributeId: 1.2.840.113556.1.4.686\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: 963d2734-48be-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Account-Name-History\r
+ldapDisplayName: accountNameHistory\r
+attributeId: 1.2.840.113556.1.4.1307\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 031952ec-3b72-11d2-90cc-00c04fd91ab1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ACS-Max-Peak-Bandwidth\r
+ldapDisplayName: aCSMaxPeakBandwidth\r
+attributeId: 1.2.840.113556.1.4.767\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: 7f561284-5301-11d1-a9c5-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Domain-Identifier\r
+ldapDisplayName: domainIdentifier\r
+attributeId: 1.2.840.113556.1.4.755\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 7f561278-5301-11d1-a9c5-0000f80367c1\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Domain-Policy-Object\r
+ldapDisplayName: domainPolicyObject\r
+attributeId: 1.2.840.113556.1.4.32\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf96795d-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Domain-Policy-Reference\r
+ldapDisplayName: domainPolicyReference\r
+attributeId: 1.2.840.113556.1.4.422\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: 80a67e2a-9f22-11d0-afdd-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+attributeSecurityGuid: a29b89fe-c7e8-11d0-9bae-00c04fd92ef5\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Domain-Replica\r
+ldapDisplayName: domainReplica\r
+attributeId: 1.2.840.113556.1.4.158\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf96795e-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 32767\r
+attributeSecurityGuid: b8119fd0-04f6-4762-ab7a-4986c76b3f9a\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Domain-Wide-Policy\r
+ldapDisplayName: domainWidePolicy\r
+attributeId: 1.2.840.113556.1.4.421\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: 80a67e29-9f22-11d0-afdd-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+attributeSecurityGuid: a29b89fd-c7e8-11d0-9bae-00c04fd92ef5\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: drink\r
+ldapDisplayName: drink\r
+attributeId: 0.9.2342.19200300.100.1.5\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 1a1aa5b5-262e-4df6-af04-2cf6b0d80048\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 256\r
+\r
+cn: Driver-Name\r
+ldapDisplayName: driverName\r
+attributeId: 1.2.840.113556.1.4.229\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 281416c5-1968-11d0-a28f-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Driver-Version\r
+ldapDisplayName: driverVersion\r
+attributeId: 1.2.840.113556.1.4.276\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: ba305f6e-47e3-11d0-a1a6-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: DSA-Signature\r
+ldapDisplayName: dSASignature\r
+attributeId: 1.2.840.113556.1.2.74\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 167757bc-47f3-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+mapiID: 32887\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: DS-Core-Propagation-Data\r
+ldapDisplayName: dSCorePropagationData\r
+attributeId: 1.2.840.113556.1.4.1357\r
+attributeSyntax: 2.5.5.11\r
+omSyntax: 24\r
+isSingleValued: FALSE\r
+schemaIdGuid: d167aa4b-8b08-11d2-9939-0000f87a57d4\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER | FLAG_ATTR_NOT_REPLICATED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ACS-Max-Peak-Bandwidth-Per-Flow\r
+ldapDisplayName: aCSMaxPeakBandwidthPerFlow\r
+attributeId: 1.2.840.113556.1.4.759\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: 7f56127c-5301-11d1-a9c5-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: DS-Heuristics\r
+ldapDisplayName: dSHeuristics\r
+attributeId: 1.2.840.113556.1.2.212\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: f0f8ff86-1191-11d0-a060-00aa006c33ed\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: DS-UI-Admin-Maximum\r
+ldapDisplayName: dSUIAdminMaximum\r
+attributeId: 1.2.840.113556.1.4.1344\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: ee8d0ae0-6f91-11d2-9905-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: DS-UI-Admin-Notification\r
+ldapDisplayName: dSUIAdminNotification\r
+attributeId: 1.2.840.113556.1.4.1343\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: f6ea0a94-6f91-11d2-9905-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: DS-UI-Shell-Maximum\r
+ldapDisplayName: dSUIShellMaximum\r
+attributeId: 1.2.840.113556.1.4.1345\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: fcca766a-6f91-11d2-9905-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Dynamic-LDAP-Server\r
+ldapDisplayName: dynamicLDAPServer\r
+attributeId: 1.2.840.113556.1.4.537\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: 52458021-ca6a-11d0-afff-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: EFSPolicy\r
+ldapDisplayName: eFSPolicy\r
+attributeId: 1.2.840.113556.1.4.268\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: 8e4eb2ec-4712-11d0-a1a0-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+attributeSecurityGuid: a29b89fd-c7e8-11d0-9bae-00c04fd92ef5\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Employee-ID\r
+ldapDisplayName: employeeID\r
+attributeId: 1.2.840.113556.1.4.35\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967962-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 16\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Employee-Number\r
+ldapDisplayName: employeeNumber\r
+attributeId: 1.2.840.113556.1.2.610\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: a8df73ef-c5ea-11d1-bbcb-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 512\r
+mapiID: 35943\r
+\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Employee-Type\r
+ldapDisplayName: employeeType\r
+attributeId: 1.2.840.113556.1.2.613\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: a8df73f0-c5ea-11d1-bbcb-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+rangeLower: 1\r
+rangeUpper: 256\r
+mapiID: 35945\r
+\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Enabled\r
+ldapDisplayName: Enabled\r
+attributeId: 1.2.840.113556.1.2.557\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: a8df73f2-c5ea-11d1-bbcb-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+mapiID: 35873\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ACS-Max-Size-Of-RSVP-Account-File\r
+ldapDisplayName: aCSMaxSizeOfRSVPAccountFile\r
+attributeId: 1.2.840.113556.1.4.902\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: f0722311-aef5-11d1-bdcf-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Enabled-Connection\r
+ldapDisplayName: enabledConnection\r
+attributeId: 1.2.840.113556.1.4.36\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967963-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Enrollment-Providers\r
+ldapDisplayName: enrollmentProviders\r
+attributeId: 1.2.840.113556.1.4.825\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 2a39c5b3-8960-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Entry-TTL\r
+ldapDisplayName: entryTTL\r
+attributeId: 1.3.6.1.4.1.1466.101.119.3\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: d213decc-d81a-4384-aac2-dcfcfd631cf8\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 31557600\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+\r
+cn: Extended-Attribute-Info\r
+ldapDisplayName: extendedAttributeInfo\r
+attributeId: 1.2.840.113556.1.4.909\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 9a7ad947-ca53-11d1-bbd0-0080c76670c0\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Extended-Chars-Allowed\r
+ldapDisplayName: extendedCharsAllowed\r
+attributeId: 1.2.840.113556.1.2.380\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967966-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+mapiID: 32935\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+systemOnly: TRUE\r
+\r
+cn: Extended-Class-Info\r
+ldapDisplayName: extendedClassInfo\r
+attributeId: 1.2.840.113556.1.4.908\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 9a7ad948-ca53-11d1-bbd0-0080c76670c0\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Extension-Name\r
+ldapDisplayName: extensionName\r
+attributeId: 1.2.840.113556.1.2.227\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf967972-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 255\r
+mapiID: 32937\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Extra-Columns\r
+ldapDisplayName: extraColumns\r
+attributeId: 1.2.840.113556.1.4.1687\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: d24e2846-1dd9-4bcf-99d7-a6227cc86da7\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Facsimile-Telephone-Number\r
+ldapDisplayName: facsimileTelephoneNumber\r
+attributeId: 2.5.4.23\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967974-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 64\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+mapiID: 14883\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: File-Ext-Priority\r
+ldapDisplayName: fileExtPriority\r
+attributeId: 1.2.840.113556.1.4.816\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: d9e18315-8939-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ACS-Max-Size-Of-RSVP-Log-File\r
+ldapDisplayName: aCSMaxSizeOfRSVPLogFile\r
+attributeId: 1.2.840.113556.1.4.775\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 1cb3559d-56d0-11d1-a9c6-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Flags\r
+ldapDisplayName: flags\r
+attributeId: 1.2.840.113556.1.4.38\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967976-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Flat-Name\r
+ldapDisplayName: flatName\r
+attributeId: 1.2.840.113556.1.4.511\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: b7b13117-b82e-11d0-afee-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Force-Logoff\r
+ldapDisplayName: forceLogoff\r
+attributeId: 1.2.840.113556.1.4.39\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967977-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+attributeSecurityGuid: b8119fd0-04f6-4762-ab7a-4986c76b3f9a\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Foreign-Identifier\r
+ldapDisplayName: foreignIdentifier\r
+attributeId: 1.2.840.113556.1.4.356\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 3e97891e-8c01-11d0-afda-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Friendly-Names\r
+ldapDisplayName: friendlyNames\r
+attributeId: 1.2.840.113556.1.4.682\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 7bfdcb88-4807-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: From-Entry\r
+ldapDisplayName: fromEntry\r
+attributeId: 1.2.840.113556.1.4.910\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: FALSE\r
+schemaIdGuid: 9a7ad949-ca53-11d1-bbd0-0080c76670c0\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: From-Server\r
+ldapDisplayName: fromServer\r
+attributeId: 1.2.840.113556.1.4.40\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967979-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Frs-Computer-Reference\r
+ldapDisplayName: frsComputerReference\r
+attributeId: 1.2.840.113556.1.4.869\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: 2a132578-9373-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+linkID: 102\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER\r
+\r
+cn: Frs-Computer-Reference-BL\r
+ldapDisplayName: frsComputerReferenceBL\r
+attributeId: 1.2.840.113556.1.4.870\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 2a132579-9373-11d1-aebc-0000f80367c1\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+linkID: 103\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+\r
+cn: FRS-Control-Data-Creation\r
+ldapDisplayName: fRSControlDataCreation\r
+attributeId: 1.2.840.113556.1.4.871\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 2a13257a-9373-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 32\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ACS-Max-Token-Bucket-Per-Flow\r
+ldapDisplayName: aCSMaxTokenBucketPerFlow\r
+attributeId: 1.2.840.113556.1.4.1313\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: 81f6e0df-3b90-11d2-90cc-00c04fd91ab1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: FRS-Control-Inbound-Backlog\r
+ldapDisplayName: fRSControlInboundBacklog\r
+attributeId: 1.2.840.113556.1.4.872\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 2a13257b-9373-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 32\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: FRS-Control-Outbound-Backlog\r
+ldapDisplayName: fRSControlOutboundBacklog\r
+attributeId: 1.2.840.113556.1.4.873\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 2a13257c-9373-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 32\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: FRS-Directory-Filter\r
+ldapDisplayName: fRSDirectoryFilter\r
+attributeId: 1.2.840.113556.1.4.484\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 1be8f171-a9ff-11d0-afe2-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 2048\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: FRS-DS-Poll\r
+ldapDisplayName: fRSDSPoll\r
+attributeId: 1.2.840.113556.1.4.490\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 1be8f177-a9ff-11d0-afe2-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: FRS-Extensions\r
+ldapDisplayName: fRSExtensions\r
+attributeId: 1.2.840.113556.1.4.536\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 52458020-ca6a-11d0-afff-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 65536\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: FRS-Fault-Condition\r
+ldapDisplayName: fRSFaultCondition\r
+attributeId: 1.2.840.113556.1.4.491\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 1be8f178-a9ff-11d0-afe2-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 16\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: FRS-File-Filter\r
+ldapDisplayName: fRSFileFilter\r
+attributeId: 1.2.840.113556.1.4.483\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 1be8f170-a9ff-11d0-afe2-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 2048\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: FRS-Flags\r
+ldapDisplayName: fRSFlags\r
+attributeId: 1.2.840.113556.1.4.874\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 2a13257d-9373-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: FRS-Level-Limit\r
+ldapDisplayName: fRSLevelLimit\r
+attributeId: 1.2.840.113556.1.4.534\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 5245801e-ca6a-11d0-afff-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: FRS-Member-Reference\r
+ldapDisplayName: fRSMemberReference\r
+attributeId: 1.2.840.113556.1.4.875\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: 2a13257e-9373-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+linkID: 104\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER\r
+\r
+cn: ACS-Max-Token-Rate-Per-Flow\r
+ldapDisplayName: aCSMaxTokenRatePerFlow\r
+attributeId: 1.2.840.113556.1.4.758\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: 7f56127b-5301-11d1-a9c5-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: FRS-Member-Reference-BL\r
+ldapDisplayName: fRSMemberReferenceBL\r
+attributeId: 1.2.840.113556.1.4.876\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 2a13257f-9373-11d1-aebc-0000f80367c1\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+linkID: 105\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+\r
+cn: FRS-Partner-Auth-Level\r
+ldapDisplayName: fRSPartnerAuthLevel\r
+attributeId: 1.2.840.113556.1.4.877\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 2a132580-9373-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: FRS-Primary-Member\r
+ldapDisplayName: fRSPrimaryMember\r
+attributeId: 1.2.840.113556.1.4.878\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: 2a132581-9373-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+linkID: 106\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: FRS-Replica-Set-GUID\r
+ldapDisplayName: fRSReplicaSetGUID\r
+attributeId: 1.2.840.113556.1.4.533\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 5245801a-ca6a-11d0-afff-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 16\r
+rangeUpper: 16\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: FRS-Replica-Set-Type\r
+ldapDisplayName: fRSReplicaSetType\r
+attributeId: 1.2.840.113556.1.4.31\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 26d9736b-6070-11d1-a9c6-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: FRS-Root-Path\r
+ldapDisplayName: fRSRootPath\r
+attributeId: 1.2.840.113556.1.4.487\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 1be8f174-a9ff-11d0-afe2-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 2048\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: FRS-Root-Security\r
+ldapDisplayName: fRSRootSecurity\r
+attributeId: 1.2.840.113556.1.4.535\r
+attributeSyntax: 2.5.5.15\r
+omSyntax: 66\r
+isSingleValued: TRUE\r
+schemaIdGuid: 5245801f-ca6a-11d0-afff-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 65535\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: FRS-Service-Command\r
+ldapDisplayName: fRSServiceCommand\r
+attributeId: 1.2.840.113556.1.4.500\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: ddac0cee-af8f-11d0-afeb-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 512\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: FRS-Service-Command-Status\r
+ldapDisplayName: fRSServiceCommandStatus\r
+attributeId: 1.2.840.113556.1.4.879\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 2a132582-9373-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 512\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: FRS-Staging-Path\r
+ldapDisplayName: fRSStagingPath\r
+attributeId: 1.2.840.113556.1.4.488\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 1be8f175-a9ff-11d0-afe2-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 2048\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ACS-Minimum-Delay-Variation\r
+ldapDisplayName: aCSMinimumDelayVariation\r
+attributeId: 1.2.840.113556.1.4.1317\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: 9c65329b-3b90-11d2-90cc-00c04fd91ab1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: FRS-Time-Last-Command\r
+ldapDisplayName: fRSTimeLastCommand\r
+attributeId: 1.2.840.113556.1.4.880\r
+attributeSyntax: 2.5.5.11\r
+omSyntax: 23\r
+isSingleValued: TRUE\r
+schemaIdGuid: 2a132583-9373-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: FRS-Time-Last-Config-Change\r
+ldapDisplayName: fRSTimeLastConfigChange\r
+attributeId: 1.2.840.113556.1.4.881\r
+attributeSyntax: 2.5.5.11\r
+omSyntax: 23\r
+isSingleValued: TRUE\r
+schemaIdGuid: 2a132584-9373-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: FRS-Update-Timeout\r
+ldapDisplayName: fRSUpdateTimeout\r
+attributeId: 1.2.840.113556.1.4.485\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 1be8f172-a9ff-11d0-afe2-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: FRS-Version\r
+ldapDisplayName: fRSVersion\r
+attributeId: 1.2.840.113556.1.4.882\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 2a132585-9373-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 32\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: FRS-Version-GUID\r
+ldapDisplayName: fRSVersionGUID\r
+attributeId: 1.2.840.113556.1.4.43\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 26d9736c-6070-11d1-a9c6-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 16\r
+rangeUpper: 16\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: FRS-Working-Path\r
+ldapDisplayName: fRSWorkingPath\r
+attributeId: 1.2.840.113556.1.4.486\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 1be8f173-a9ff-11d0-afe2-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 2048\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: FSMO-Role-Owner\r
+ldapDisplayName: fSMORoleOwner\r
+attributeId: 1.2.840.113556.1.4.369\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: 66171887-8f3c-11d0-afda-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Garbage-Coll-Period\r
+ldapDisplayName: garbageCollPeriod\r
+attributeId: 1.2.840.113556.1.2.301\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 5fd424a1-1262-11d0-a060-00aa006c33ed\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+mapiID: 32943\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Gecos\r
+ldapDisplayName: gecos\r
+attributeId: 1.3.6.1.1.1.1.2\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 22\r
+isSingleValued: TRUE\r
+schemaIdGuid: a3e03f1f-1d55-4253-a0af-30c2a784e46e\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 10240\r
+\r
+cn: Generated-Connection\r
+ldapDisplayName: generatedConnection\r
+attributeId: 1.2.840.113556.1.4.41\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf96797a-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ACS-Minimum-Latency\r
+ldapDisplayName: aCSMinimumLatency\r
+attributeId: 1.2.840.113556.1.4.1316\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: 9517fefb-3b90-11d2-90cc-00c04fd91ab1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Generation-Qualifier\r
+ldapDisplayName: generationQualifier\r
+attributeId: 2.5.4.44\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 16775804-47f3-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 64\r
+mapiID: 35923\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: GidNumber\r
+ldapDisplayName: gidNumber\r
+attributeId: 1.3.6.1.1.1.1.1\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: c5b95f0c-ec9e-41c4-849c-b46597ed6696\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+\r
+cn: Given-Name\r
+ldapDisplayName: givenName\r
+attributeId: 2.5.4.42\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: f0f8ff8e-1191-11d0-a060-00aa006c33ed\r
+systemOnly: FALSE\r
+searchFlags: fANR | fATTINDEX\r
+rangeLower: 1\r
+rangeUpper: 64\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+mapiID: 14854\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Global-Address-List\r
+ldapDisplayName: globalAddressList\r
+attributeId: 1.2.840.113556.1.4.1245\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: f754c748-06f4-11d2-aa53-00c04fd7d83a\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Governs-ID\r
+ldapDisplayName: governsID\r
+attributeId: 1.2.840.113556.1.2.22\r
+attributeSyntax: 2.5.5.2\r
+omSyntax: 6\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf96797d-0de6-11d0-a285-00aa003049e2\r
+systemOnly: TRUE\r
+searchFlags:fPRESERVEONDELETE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: GPC-File-Sys-Path\r
+ldapDisplayName: gPCFileSysPath\r
+attributeId: 1.2.840.113556.1.4.894\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: f30e3bc1-9ff0-11d1-b603-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: GPC-Functionality-Version\r
+ldapDisplayName: gPCFunctionalityVersion\r
+attributeId: 1.2.840.113556.1.4.893\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: f30e3bc0-9ff0-11d1-b603-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: GPC-Machine-Extension-Names\r
+ldapDisplayName: gPCMachineExtensionNames\r
+attributeId: 1.2.840.113556.1.4.1348\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 32ff8ecc-783f-11d2-9916-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: GPC-User-Extension-Names\r
+ldapDisplayName: gPCUserExtensionNames\r
+attributeId: 1.2.840.113556.1.4.1349\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 42a75fc6-783f-11d2-9916-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: GPC-WQL-Filter\r
+ldapDisplayName: gPCWQLFilter\r
+attributeId: 1.2.840.113556.1.4.1694\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 7bd4c7a6-1add-4436-8c04-3999a880154c\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ACS-Minimum-Policed-Size\r
+ldapDisplayName: aCSMinimumPolicedSize\r
+attributeId: 1.2.840.113556.1.4.1315\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: 8d0e7195-3b90-11d2-90cc-00c04fd91ab1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: GP-Link\r
+ldapDisplayName: gPLink\r
+attributeId: 1.2.840.113556.1.4.891\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: f30e3bbe-9ff0-11d1-b603-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: GP-Options\r
+ldapDisplayName: gPOptions\r
+attributeId: 1.2.840.113556.1.4.892\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: f30e3bbf-9ff0-11d1-b603-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Group-Attributes\r
+ldapDisplayName: groupAttributes\r
+attributeId: 1.2.840.113556.1.4.152\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf96797e-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Group-Membership-SAM\r
+ldapDisplayName: groupMembershipSAM\r
+attributeId: 1.2.840.113556.1.4.166\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967980-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Group-Priority\r
+ldapDisplayName: groupPriority\r
+attributeId: 1.2.840.113556.1.4.345\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: eea65905-8ac6-11d0-afda-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Groups-to-Ignore\r
+ldapDisplayName: groupsToIgnore\r
+attributeId: 1.2.840.113556.1.4.344\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: eea65904-8ac6-11d0-afda-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Group-Type\r
+ldapDisplayName: groupType\r
+attributeId: 1.2.840.113556.1.4.750\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 9a9a021e-4a5b-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags:fPRESERVEONDELETE | fATTINDEX\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Has-Master-NCs\r
+ldapDisplayName: hasMasterNCs\r
+attributeId: 1.2.840.113556.1.2.14\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf967982-0de6-11d0-a285-00aa003049e2\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+linkID: 76\r
+mapiID: 32950\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Has-Partial-Replica-NCs\r
+ldapDisplayName: hasPartialReplicaNCs\r
+attributeId: 1.2.840.113556.1.2.15\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf967981-0de6-11d0-a285-00aa003049e2\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+linkID: 74\r
+mapiID: 32949\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Help-Data16\r
+ldapDisplayName: helpData16\r
+attributeId: 1.2.840.113556.1.2.402\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 5fd424a7-1262-11d0-a060-00aa006c33ed\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 32768\r
+mapiID: 32826\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ACS-Non-Reserved-Max-SDU-Size\r
+ldapDisplayName: aCSNonReservedMaxSDUSize\r
+attributeId: 1.2.840.113556.1.4.1320\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: aec2cfe3-3b90-11d2-90cc-00c04fd91ab1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Help-Data32\r
+ldapDisplayName: helpData32\r
+attributeId: 1.2.840.113556.1.2.9\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 5fd424a8-1262-11d0-a060-00aa006c33ed\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 32768\r
+mapiID: 32784\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Help-File-Name\r
+ldapDisplayName: helpFileName\r
+attributeId: 1.2.840.113556.1.2.327\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 5fd424a9-1262-11d0-a060-00aa006c33ed\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 13\r
+mapiID: 32827\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Hide-From-AB\r
+ldapDisplayName: hideFromAB\r
+attributeId: 1.2.840.113556.1.4.1780\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: ec05b750-a977-4efe-8e8d-ba6c1a6e33a8\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+\r
+cn: Home-Directory\r
+ldapDisplayName: homeDirectory\r
+attributeId: 1.2.840.113556.1.4.44\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967985-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+attributeSecurityGuid: 5f202010-79a5-11d0-9020-00c04fc2d4cf\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Home-Drive\r
+ldapDisplayName: homeDrive\r
+attributeId: 1.2.840.113556.1.4.45\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967986-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+attributeSecurityGuid: 5f202010-79a5-11d0-9020-00c04fc2d4cf\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Phone-Home-Primary\r
+ldapDisplayName: homePhone\r
+attributeId: 0.9.2342.19200300.100.1.20\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: f0f8ffa1-1191-11d0-a060-00aa006c33ed\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 64\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+mapiID: 14857\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+systemFlags: 0\r
+\r
+cn: Address-Home\r
+ldapDisplayName: homePostalAddress\r
+attributeId: 1.2.840.113556.1.2.617\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 16775781-47f3-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 4096\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+mapiID: 14941\r
+\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: host\r
+ldapDisplayName: host\r
+attributeId: 0.9.2342.19200300.100.1.9\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 6043df71-fa48-46cf-ab7c-cbd54644b22d\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 256\r
+\r
+cn: houseIdentifier\r
+ldapDisplayName: houseIdentifier\r
+attributeId: 2.5.4.51\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: a45398b7-c44a-4eb6-82d3-13c10946dbfe\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 32768\r
+\r
+cn: Icon-Path\r
+ldapDisplayName: iconPath\r
+attributeId: 1.2.840.113556.1.4.219\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: f0f8ff83-1191-11d0-a060-00aa006c33ed\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 2048\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ACS-Aggregate-Token-Rate-Per-User\r
+ldapDisplayName: aCSAggregateTokenRatePerUser\r
+attributeId: 1.2.840.113556.1.4.760\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: 7f56127d-5301-11d1-a9c5-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ACS-Non-Reserved-Min-Policed-Size\r
+ldapDisplayName: aCSNonReservedMinPolicedSize\r
+attributeId: 1.2.840.113556.1.4.1321\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: b6873917-3b90-11d2-90cc-00c04fd91ab1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Implemented-Categories\r
+ldapDisplayName: implementedCategories\r
+attributeId: 1.2.840.113556.1.4.320\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: 7d6c0e92-7e20-11d0-afd6-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+rangeLower: 16\r
+rangeUpper: 16\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: IndexedScopes\r
+ldapDisplayName: indexedScopes\r
+attributeId: 1.2.840.113556.1.4.681\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 7bfdcb87-4807-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Comment\r
+ldapDisplayName: info\r
+attributeId: 1.2.840.113556.1.2.81\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf96793e-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 1024\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+mapiID: 12292\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Initial-Auth-Incoming\r
+ldapDisplayName: initialAuthIncoming\r
+attributeId: 1.2.840.113556.1.4.539\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 52458023-ca6a-11d0-afff-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Initial-Auth-Outgoing\r
+ldapDisplayName: initialAuthOutgoing\r
+attributeId: 1.2.840.113556.1.4.540\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 52458024-ca6a-11d0-afff-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Initials\r
+ldapDisplayName: initials\r
+attributeId: 2.5.4.43\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: f0f8ff90-1191-11d0-a060-00aa006c33ed\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 6\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+mapiID: 14858\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Install-Ui-Level\r
+ldapDisplayName: installUiLevel\r
+attributeId: 1.2.840.113556.1.4.847\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 96a7dd64-9118-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Instance-Type\r
+ldapDisplayName: instanceType\r
+attributeId: 1.2.840.113556.1.2.1\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf96798c-0de6-11d0-a285-00aa003049e2\r
+systemOnly: TRUE\r
+searchFlags:fPRESERVEONDELETE\r
+mapiID: 32957\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: International-ISDN-Number\r
+ldapDisplayName: internationalISDNNumber\r
+attributeId: 2.5.4.25\r
+attributeSyntax: 2.5.5.6\r
+omSyntax: 18\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf96798d-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 16\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+mapiID: 32958\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Inter-Site-Topology-Failover\r
+ldapDisplayName: interSiteTopologyFailover\r
+attributeId: 1.2.840.113556.1.4.1248\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: b7c69e60-2cc7-11d2-854e-00a0c983f608\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ACS-Non-Reserved-Peak-Rate\r
+ldapDisplayName: aCSNonReservedPeakRate\r
+attributeId: 1.2.840.113556.1.4.1318\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: a331a73f-3b90-11d2-90cc-00c04fd91ab1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Inter-Site-Topology-Generator\r
+ldapDisplayName: interSiteTopologyGenerator\r
+attributeId: 1.2.840.113556.1.4.1246\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: b7c69e5e-2cc7-11d2-854e-00a0c983f608\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Inter-Site-Topology-Renew\r
+ldapDisplayName: interSiteTopologyRenew\r
+attributeId: 1.2.840.113556.1.4.1247\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: b7c69e5f-2cc7-11d2-854e-00a0c983f608\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Invocation-Id\r
+ldapDisplayName: invocationId\r
+attributeId: 1.2.840.113556.1.2.115\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf96798e-0de6-11d0-a285-00aa003049e2\r
+systemOnly: TRUE\r
+searchFlags: fATTINDEX\r
+mapiID: 32959\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+searchFlags: 0\r
+\r
+cn: IpHostNumber\r
+ldapDisplayName: ipHostNumber\r
+attributeId: 1.3.6.1.1.1.1.19\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 22\r
+isSingleValued: FALSE\r
+schemaIdGuid: de8bb721-85dc-4fde-b687-9657688e667e\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 128\r
+\r
+cn: IpNetmaskNumber\r
+ldapDisplayName: ipNetmaskNumber\r
+attributeId: 1.3.6.1.1.1.1.21\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 22\r
+isSingleValued: TRUE\r
+schemaIdGuid: 6ff64fcd-462e-4f62-b44a-9a5347659eb9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 128\r
+\r
+cn: IpNetworkNumber\r
+ldapDisplayName: ipNetworkNumber\r
+attributeId: 1.3.6.1.1.1.1.20\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 22\r
+isSingleValued: TRUE\r
+schemaIdGuid: 4e3854f4-3087-42a4-a813-bb0c528958d3\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 128\r
+\r
+cn: Phone-Ip-Primary\r
+ldapDisplayName: ipPhone\r
+attributeId: 1.2.840.113556.1.4.721\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 4d146e4a-48d4-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 64\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: IpProtocolNumber\r
+ldapDisplayName: ipProtocolNumber\r
+attributeId: 1.3.6.1.1.1.1.17\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: ebf5c6eb-0e2d-4415-9670-1081993b4211\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+\r
+cn: Ipsec-Data\r
+ldapDisplayName: ipsecData\r
+attributeId: 1.2.840.113556.1.4.623\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: b40ff81f-427a-11d1-a9c2-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Ipsec-Data-Type\r
+ldapDisplayName: ipsecDataType\r
+attributeId: 1.2.840.113556.1.4.622\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: b40ff81e-427a-11d1-a9c2-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ACS-Non-Reserved-Token-Size\r
+ldapDisplayName: aCSNonReservedTokenSize\r
+attributeId: 1.2.840.113556.1.4.1319\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: a916d7c9-3b90-11d2-90cc-00c04fd91ab1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Ipsec-Filter-Reference\r
+ldapDisplayName: ipsecFilterReference\r
+attributeId: 1.2.840.113556.1.4.629\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: b40ff823-427a-11d1-a9c2-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Ipsec-ID\r
+ldapDisplayName: ipsecID\r
+attributeId: 1.2.840.113556.1.4.621\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: b40ff81d-427a-11d1-a9c2-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Ipsec-ISAKMP-Reference\r
+ldapDisplayName: ipsecISAKMPReference\r
+attributeId: 1.2.840.113556.1.4.626\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: b40ff820-427a-11d1-a9c2-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Ipsec-Name\r
+ldapDisplayName: ipsecName\r
+attributeId: 1.2.840.113556.1.4.620\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: b40ff81c-427a-11d1-a9c2-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: IPSEC-Negotiation-Policy-Action\r
+ldapDisplayName: iPSECNegotiationPolicyAction\r
+attributeId: 1.2.840.113556.1.4.888\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 07383075-91df-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Ipsec-Negotiation-Policy-Reference\r
+ldapDisplayName: ipsecNegotiationPolicyReference\r
+attributeId: 1.2.840.113556.1.4.628\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: b40ff822-427a-11d1-a9c2-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: IPSEC-Negotiation-Policy-Type\r
+ldapDisplayName: iPSECNegotiationPolicyType\r
+attributeId: 1.2.840.113556.1.4.887\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 07383074-91df-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Ipsec-NFA-Reference\r
+ldapDisplayName: ipsecNFAReference\r
+attributeId: 1.2.840.113556.1.4.627\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: b40ff821-427a-11d1-a9c2-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Ipsec-Owners-Reference\r
+ldapDisplayName: ipsecOwnersReference\r
+attributeId: 1.2.840.113556.1.4.624\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: b40ff824-427a-11d1-a9c2-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Ipsec-Policy-Reference\r
+ldapDisplayName: ipsecPolicyReference\r
+attributeId: 1.2.840.113556.1.4.517\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: b7b13118-b82e-11d0-afee-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ACS-Non-Reserved-Tx-Limit\r
+ldapDisplayName: aCSNonReservedTxLimit\r
+attributeId: 1.2.840.113556.1.4.780\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: 1cb355a2-56d0-11d1-a9c6-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: IpServicePort\r
+ldapDisplayName: ipServicePort\r
+attributeId: 1.3.6.1.1.1.1.15\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: ff2daebf-f463-495a-8405-3e483641eaa2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+\r
+cn: IpServiceProtocol\r
+ldapDisplayName: ipServiceProtocol\r
+attributeId: 1.3.6.1.1.1.1.16\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 22\r
+isSingleValued: FALSE\r
+schemaIdGuid: cd96ec0b-1ed6-43b4-b26b-f170b645883f\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 1024\r
+\r
+cn: Is-Critical-System-Object\r
+ldapDisplayName: isCriticalSystemObject\r
+attributeId: 1.2.840.113556.1.4.868\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: 00fbf30d-91fe-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Is-Defunct\r
+ldapDisplayName: isDefunct\r
+attributeId: 1.2.840.113556.1.4.661\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: 28630ebe-41d5-11d1-a9c1-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Is-Deleted\r
+ldapDisplayName: isDeleted\r
+attributeId: 1.2.840.113556.1.2.48\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf96798f-0de6-11d0-a285-00aa003049e2\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+mapiID: 32960\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Is-Ephemeral\r
+ldapDisplayName: isEphemeral\r
+attributeId: 1.2.840.113556.1.4.1212\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: f4c453f0-c5f1-11d1-bbcb-0080c76670c0\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Is-Member-Of-Partial-Attribute-Set\r
+ldapDisplayName: isMemberOfPartialAttributeSet\r
+attributeId: 1.2.840.113556.1.4.639\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: 19405b9d-3cfa-11d1-a9c0-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Is-Privilege-Holder\r
+ldapDisplayName: isPrivilegeHolder\r
+attributeId: 1.2.840.113556.1.4.638\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 19405b9c-3cfa-11d1-a9c0-0000f80367c1\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+linkID: 71\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+\r
+cn: Is-Single-Valued\r
+ldapDisplayName: isSingleValued\r
+attributeId: 1.2.840.113556.1.2.33\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967992-0de6-11d0-a285-00aa003049e2\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+mapiID: 32961\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: jpegPhoto\r
+ldapDisplayName: jpegPhoto\r
+attributeId: 0.9.2342.19200300.100.1.60\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: bac80572-09c4-4fa9-9ae6-7628d7adbe0e\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+showInAdvancedViewOnly: FALSE\r
+\r
+cn: ACS-Non-Reserved-Tx-Size\r
+ldapDisplayName: aCSNonReservedTxSize\r
+attributeId: 1.2.840.113556.1.4.898\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: f072230d-aef5-11d1-bdcf-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Keywords\r
+ldapDisplayName: keywords\r
+attributeId: 1.2.840.113556.1.4.48\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf967993-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+rangeLower: 1\r
+rangeUpper: 256\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Knowledge-Information\r
+ldapDisplayName: knowledgeInformation\r
+attributeId: 2.5.4.2\r
+attributeSyntax: 2.5.5.4\r
+omSyntax: 20\r
+isSingleValued: FALSE\r
+schemaIdGuid: 1677581f-47f3-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+mapiID: 32963\r
+\r
+cn: Locality-Name\r
+ldapDisplayName: l\r
+attributeId: 2.5.4.7\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf9679a2-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: fCOPY | fATTINDEX\r
+rangeLower: 1\r
+rangeUpper: 128\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+mapiID: 14887\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: labeledURI\r
+ldapDisplayName: labeledURI\r
+attributeId: 1.3.6.1.4.1.250.1.57\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: c569bb46-c680-44bc-a273-e6c227d71b45\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+showInAdvancedViewOnly: FALSE\r
+\r
+cn: Last-Backup-Restoration-Time\r
+ldapDisplayName: lastBackupRestorationTime\r
+attributeId: 1.2.840.113556.1.4.519\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: 1fbb0be8-ba63-11d0-afef-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Last-Content-Indexed\r
+ldapDisplayName: lastContentIndexed\r
+attributeId: 1.2.840.113556.1.4.50\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967995-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Last-Known-Parent\r
+ldapDisplayName: lastKnownParent\r
+attributeId: 1.2.840.113556.1.4.781\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: 52ab8670-5709-11d1-a9c6-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Last-Logoff\r
+ldapDisplayName: lastLogoff\r
+attributeId: 1.2.840.113556.1.4.51\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967996-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+attributeSecurityGuid: 5f202010-79a5-11d0-9020-00c04fc2d4cf\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Last-Logon\r
+ldapDisplayName: lastLogon\r
+attributeId: 1.2.840.113556.1.4.52\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967997-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+attributeSecurityGuid: 5f202010-79a5-11d0-9020-00c04fc2d4cf\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Last-Logon-Timestamp\r
+ldapDisplayName: lastLogonTimestamp\r
+attributeId: 1.2.840.113556.1.4.1696\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: c0e20a04-0e5a-4ff3-9482-5efeaecd7060\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+attributeSecurityGuid: 5f202010-79a5-11d0-9020-00c04fc2d4cf\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ACS-Permission-Bits\r
+ldapDisplayName: aCSPermissionBits\r
+attributeId: 1.2.840.113556.1.4.765\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: 7f561282-5301-11d1-a9c5-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Last-Set-Time\r
+ldapDisplayName: lastSetTime\r
+attributeId: 1.2.840.113556.1.4.53\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967998-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Last-Update-Sequence\r
+ldapDisplayName: lastUpdateSequence\r
+attributeId: 1.2.840.113556.1.4.330\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 7d6c0e9c-7e20-11d0-afd6-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: LDAP-Admin-Limits\r
+ldapDisplayName: lDAPAdminLimits\r
+attributeId: 1.2.840.113556.1.4.843\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 7359a352-90f7-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: LDAP-Display-Name\r
+ldapDisplayName: lDAPDisplayName\r
+attributeId: 1.2.840.113556.1.2.460\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf96799a-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags:fPRESERVEONDELETE | fATTINDEX\r
+rangeLower: 1\r
+rangeUpper: 256\r
+mapiID: 33137\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: LDAP-IPDeny-List\r
+ldapDisplayName: lDAPIPDenyList\r
+attributeId: 1.2.840.113556.1.4.844\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: 7359a353-90f7-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: LSA-Creation-Time\r
+ldapDisplayName: lSACreationTime\r
+attributeId: 1.2.840.113556.1.4.66\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf9679ad-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: LSA-Modified-Count\r
+ldapDisplayName: lSAModifiedCount\r
+attributeId: 1.2.840.113556.1.4.67\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf9679ae-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Legacy-Exchange-DN\r
+ldapDisplayName: legacyExchangeDN\r
+attributeId: 1.2.840.113556.1.4.655\r
+attributeSyntax: 2.5.5.4\r
+omSyntax: 20\r
+isSingleValued: TRUE\r
+schemaIdGuid: 28630ebc-41d5-11d1-a9c1-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags:fPRESERVEONDELETE| fANR | fATTINDEX\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Link-ID\r
+ldapDisplayName: linkID\r
+attributeId: 1.2.840.113556.1.2.50\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf96799b-0de6-11d0-a285-00aa003049e2\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+mapiID: 32965\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Link-Track-Secret\r
+ldapDisplayName: linkTrackSecret\r
+attributeId: 1.2.840.113556.1.4.269\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 2ae80fe2-47b4-11d0-a1a4-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 16\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ACS-Policy-Name\r
+ldapDisplayName: aCSPolicyName\r
+attributeId: 1.2.840.113556.1.4.772\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 1cb3559a-56d0-11d1-a9c6-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Lm-Pwd-History\r
+ldapDisplayName: lmPwdHistory\r
+attributeId: 1.2.840.113556.1.4.160\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf96799d-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Locale-ID\r
+ldapDisplayName: localeID\r
+attributeId: 1.2.840.113556.1.4.58\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf9679a1-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Localization-Display-Id\r
+ldapDisplayName: localizationDisplayId\r
+attributeId: 1.2.840.113556.1.4.1353\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: a746f0d1-78d0-11d2-9916-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Localized-Description\r
+ldapDisplayName: localizedDescription\r
+attributeId: 1.2.840.113556.1.4.817\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: d9e18316-8939-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Local-Policy-Flags\r
+ldapDisplayName: localPolicyFlags\r
+attributeId: 1.2.840.113556.1.4.56\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf96799e-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Local-Policy-Reference\r
+ldapDisplayName: localPolicyReference\r
+attributeId: 1.2.840.113556.1.4.457\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: 80a67e4d-9f22-11d0-afdd-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+attributeSecurityGuid: a29b8a01-c7e8-11d0-9bae-00c04fd92ef5\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Location\r
+ldapDisplayName: location\r
+attributeId: 1.2.840.113556.1.4.222\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 09dcb79f-165f-11d0-a064-00aa006c33ed\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+rangeLower: 0\r
+rangeUpper: 1024\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Lockout-Duration\r
+ldapDisplayName: lockoutDuration\r
+attributeId: 1.2.840.113556.1.4.60\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf9679a5-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+attributeSecurityGuid: c7407360-20bf-11d0-a768-00aa006e0529\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Lock-Out-Observation-Window\r
+ldapDisplayName: lockOutObservationWindow\r
+attributeId: 1.2.840.113556.1.4.61\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf9679a4-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+attributeSecurityGuid: c7407360-20bf-11d0-a768-00aa006e0529\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Lockout-Threshold\r
+ldapDisplayName: lockoutThreshold\r
+attributeId: 1.2.840.113556.1.4.73\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf9679a6-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 65535\r
+attributeSecurityGuid: c7407360-20bf-11d0-a768-00aa006e0529\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ACS-Priority\r
+ldapDisplayName: aCSPriority\r
+attributeId: 1.2.840.113556.1.4.764\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 7f561281-5301-11d1-a9c5-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Lockout-Time\r
+ldapDisplayName: lockoutTime\r
+attributeId: 1.2.840.113556.1.4.662\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: 28630ebf-41d5-11d1-a9c1-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: LoginShell\r
+ldapDisplayName: loginShell\r
+attributeId: 1.3.6.1.1.1.1.4\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 22\r
+isSingleValued: TRUE\r
+schemaIdGuid: a553d12c-3231-4c5e-8adf-8d189697721e\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 1024\r
+\r
+cn: Logon-Count\r
+ldapDisplayName: logonCount\r
+attributeId: 1.2.840.113556.1.4.169\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf9679aa-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+attributeSecurityGuid: 5f202010-79a5-11d0-9020-00c04fc2d4cf\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Logon-Hours\r
+ldapDisplayName: logonHours\r
+attributeId: 1.2.840.113556.1.4.64\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf9679ab-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+attributeSecurityGuid: 5f202010-79a5-11d0-9020-00c04fc2d4cf\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Logon-Workstation\r
+ldapDisplayName: logonWorkstation\r
+attributeId: 1.2.840.113556.1.4.65\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf9679ac-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+attributeSecurityGuid: 5f202010-79a5-11d0-9020-00c04fc2d4cf\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ACS-RSVP-Account-Files-Location\r
+ldapDisplayName: aCSRSVPAccountFilesLocation\r
+attributeId: 1.2.840.113556.1.4.900\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: f072230f-aef5-11d1-bdcf-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ACS-RSVP-Log-Files-Location\r
+ldapDisplayName: aCSRSVPLogFilesLocation\r
+attributeId: 1.2.840.113556.1.4.773\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 1cb3559b-56d0-11d1-a9c6-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ACS-Allocable-RSVP-Bandwidth\r
+ldapDisplayName: aCSAllocableRSVPBandwidth\r
+attributeId: 1.2.840.113556.1.4.766\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: 7f561283-5301-11d1-a9c5-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ACS-Server-List\r
+ldapDisplayName: aCSServerList\r
+attributeId: 1.2.840.113556.1.4.1312\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 7cbd59a5-3b90-11d2-90cc-00c04fd91ab1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ACS-Service-Type\r
+ldapDisplayName: aCSServiceType\r
+attributeId: 1.2.840.113556.1.4.762\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 7f56127f-5301-11d1-a9c5-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ACS-Time-Of-Day\r
+ldapDisplayName: aCSTimeOfDay\r
+attributeId: 1.2.840.113556.1.4.756\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 7f561279-5301-11d1-a9c5-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ACS-Total-No-Of-Flows\r
+ldapDisplayName: aCSTotalNoOfFlows\r
+attributeId: 1.2.840.113556.1.4.763\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 7f561280-5301-11d1-a9c5-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Additional-Trusted-Service-Names\r
+ldapDisplayName: additionalTrustedServiceNames\r
+attributeId: 1.2.840.113556.1.4.889\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 032160be-9824-11d1-aec0-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Address-Book-Roots\r
+ldapDisplayName: addressBookRoots\r
+attributeId: 1.2.840.113556.1.4.1244\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: f70b6e48-06f4-11d2-aa53-00c04fd7d83a\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Address-Entry-Display-Table\r
+ldapDisplayName: addressEntryDisplayTable\r
+attributeId: 1.2.840.113556.1.2.324\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 5fd42461-1262-11d0-a060-00aa006c33ed\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 32768\r
+mapiID: 32791\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Address-Entry-Display-Table-MSDOS\r
+ldapDisplayName: addressEntryDisplayTableMSDOS\r
+attributeId: 1.2.840.113556.1.2.400\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 5fd42462-1262-11d0-a060-00aa006c33ed\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 32768\r
+mapiID: 32839\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Address-Syntax\r
+ldapDisplayName: addressSyntax\r
+attributeId: 1.2.840.113556.1.2.255\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 5fd42463-1262-11d0-a060-00aa006c33ed\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 4096\r
+mapiID: 32792\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Address-Type\r
+ldapDisplayName: addressType\r
+attributeId: 1.2.840.113556.1.2.350\r
+attributeSyntax: 2.5.5.4\r
+omSyntax: 20\r
+isSingleValued: TRUE\r
+schemaIdGuid: 5fd42464-1262-11d0-a060-00aa006c33ed\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 32\r
+mapiID: 32840\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ACS-Cache-Timeout\r
+ldapDisplayName: aCSCacheTimeout\r
+attributeId: 1.2.840.113556.1.4.779\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 1cb355a1-56d0-11d1-a9c6-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Admin-Context-Menu\r
+ldapDisplayName: adminContextMenu\r
+attributeId: 1.2.840.113556.1.4.614\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 553fd038-f32e-11d0-b0bc-00c04fd8dca6\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Admin-Count\r
+ldapDisplayName: adminCount\r
+attributeId: 1.2.840.113556.1.4.150\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967918-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Admin-Description\r
+ldapDisplayName: adminDescription\r
+attributeId: 1.2.840.113556.1.2.226\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967919-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 1024\r
+attributeSecurityGuid: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf\r
+mapiID: 32842\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Admin-Display-Name\r
+ldapDisplayName: adminDisplayName\r
+attributeId: 1.2.840.113556.1.2.194\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf96791a-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 256\r
+mapiID: 32843\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Admin-Multiselect-Property-Pages\r
+ldapDisplayName: adminMultiselectPropertyPages\r
+attributeId: 1.2.840.113556.1.4.1690\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 18f9b67d-5ac6-4b3b-97db-d0a406afb7ba\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Admin-Property-Pages\r
+ldapDisplayName: adminPropertyPages\r
+attributeId: 1.2.840.113556.1.4.562\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 52458038-ca6a-11d0-afff-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Allowed-Attributes\r
+ldapDisplayName: allowedAttributes\r
+attributeId: 1.2.840.113556.1.4.913\r
+attributeSyntax: 2.5.5.2\r
+omSyntax: 6\r
+isSingleValued: FALSE\r
+schemaIdGuid: 9a7ad940-ca53-11d1-bbd0-0080c76670c0\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Allowed-Attributes-Effective\r
+ldapDisplayName: allowedAttributesEffective\r
+attributeId: 1.2.840.113556.1.4.914\r
+attributeSyntax: 2.5.5.2\r
+omSyntax: 6\r
+isSingleValued: FALSE\r
+schemaIdGuid: 9a7ad941-ca53-11d1-bbd0-0080c76670c0\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Allowed-Child-Classes\r
+ldapDisplayName: allowedChildClasses\r
+attributeId: 1.2.840.113556.1.4.911\r
+attributeSyntax: 2.5.5.2\r
+omSyntax: 6\r
+isSingleValued: FALSE\r
+schemaIdGuid: 9a7ad942-ca53-11d1-bbd0-0080c76670c0\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Allowed-Child-Classes-Effective\r
+ldapDisplayName: allowedChildClassesEffective\r
+attributeId: 1.2.840.113556.1.4.912\r
+attributeSyntax: 2.5.5.2\r
+omSyntax: 6\r
+isSingleValued: FALSE\r
+schemaIdGuid: 9a7ad943-ca53-11d1-bbd0-0080c76670c0\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ACS-Direction\r
+ldapDisplayName: aCSDirection\r
+attributeId: 1.2.840.113556.1.4.757\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 7f56127a-5301-11d1-a9c5-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Alt-Security-Identities\r
+ldapDisplayName: altSecurityIdentities\r
+attributeId: 1.2.840.113556.1.4.867\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 00fbf30c-91fe-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ANR\r
+ldapDisplayName: aNR\r
+attributeId: 1.2.840.113556.1.4.1208\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 45b01500-c419-11d1-bbc9-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Application-Name\r
+ldapDisplayName: applicationName\r
+attributeId: 1.2.840.113556.1.4.218\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: dd712226-10e4-11d0-a05f-00aa006c33ed\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 64\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Applies-To\r
+ldapDisplayName: appliesTo\r
+attributeId: 1.2.840.113556.1.4.341\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 8297931d-86d3-11d0-afda-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 36\r
+rangeUpper: 36\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: App-Schema-Version\r
+ldapDisplayName: appSchemaVersion\r
+attributeId: 1.2.840.113556.1.4.848\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 96a7dd65-9118-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Asset-Number\r
+ldapDisplayName: assetNumber\r
+attributeId: 1.2.840.113556.1.4.283\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: ba305f75-47e3-11d0-a1a6-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Assistant\r
+ldapDisplayName: assistant\r
+attributeId: 1.2.840.113556.1.4.652\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: 0296c11c-40da-11d1-a9c0-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: associatedDomain\r
+ldapDisplayName: associatedDomain\r
+attributeId: 0.9.2342.19200300.100.1.37\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 22\r
+isSingleValued: FALSE\r
+schemaIdGuid: 3320fc38-c379-4c17-a510-1bdf6133c5da\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 256\r
+\r
+cn: associatedName\r
+ldapDisplayName: associatedName\r
+attributeId: 0.9.2342.19200300.100.1.38\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: f7fbfc45-85ab-42a4-a435-780e62f7858b\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+\r
+cn: Assoc-NT-Account\r
+ldapDisplayName: assocNTAccount\r
+attributeId: 1.2.840.113556.1.4.1213\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 398f63c0-ca60-11d1-bbd1-0000f81f10c0\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+\r
+cn: ACS-DSBM-DeadTime\r
+ldapDisplayName: aCSDSBMDeadTime\r
+attributeId: 1.2.840.113556.1.4.778\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 1cb355a0-56d0-11d1-a9c6-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: attributeCertificateAttribute\r
+ldapDisplayName: attributeCertificateAttribute\r
+attributeId: 2.5.4.58\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: fa4693bb-7bc2-4cb9-81a8-c99c43b7905e\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+\r
+cn: Attribute-Display-Names\r
+ldapDisplayName: attributeDisplayNames\r
+attributeId: 1.2.840.113556.1.4.748\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: cb843f80-48d9-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Attribute-ID\r
+ldapDisplayName: attributeID\r
+attributeId: 1.2.840.113556.1.2.30\r
+attributeSyntax: 2.5.5.2\r
+omSyntax: 6\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967922-0de6-11d0-a285-00aa003049e2\r
+systemOnly: TRUE\r
+searchFlags:fPRESERVEONDELETE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Attribute-Security-GUID\r
+ldapDisplayName: attributeSecurityGUID\r
+attributeId: 1.2.840.113556.1.4.149\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967924-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 16\r
+rangeUpper: 16\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Attribute-Syntax\r
+ldapDisplayName: attributeSyntax\r
+attributeId: 1.2.840.113556.1.2.32\r
+attributeSyntax: 2.5.5.2\r
+omSyntax: 6\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967925-0de6-11d0-a285-00aa003049e2\r
+systemOnly: TRUE\r
+searchFlags:fPRESERVEONDELETE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Attribute-Types\r
+ldapDisplayName: attributeTypes\r
+attributeId: 2.5.21.5\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 9a7ad944-ca53-11d1-bbd0-0080c76670c0\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: audio\r
+ldapDisplayName: audio\r
+attributeId: 0.9.2342.19200300.100.1.55\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: d0e1d224-e1a0-42ce-a2da-793ba5244f35\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 250000\r
+showInAdvancedViewOnly: FALSE\r
+\r
+cn: Auditing-Policy\r
+ldapDisplayName: auditingPolicy\r
+attributeId: 1.2.840.113556.1.4.202\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 6da8a4fe-0e52-11d0-a286-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Authentication-Options\r
+ldapDisplayName: authenticationOptions\r
+attributeId: 1.2.840.113556.1.4.11\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967928-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Authority-Revocation-List\r
+ldapDisplayName: authorityRevocationList\r
+attributeId: 2.5.4.38\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: 1677578d-47f3-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 10485760\r
+mapiID: 32806\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ACS-DSBM-Priority\r
+ldapDisplayName: aCSDSBMPriority\r
+attributeId: 1.2.840.113556.1.4.776\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 1cb3559e-56d0-11d1-a9c6-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Auxiliary-Class\r
+ldapDisplayName: auxiliaryClass\r
+attributeId: 1.2.840.113556.1.2.351\r
+attributeSyntax: 2.5.5.2\r
+omSyntax: 6\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf96792c-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Bad-Password-Time\r
+ldapDisplayName: badPasswordTime\r
+attributeId: 1.2.840.113556.1.4.49\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf96792d-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Bad-Pwd-Count\r
+ldapDisplayName: badPwdCount\r
+attributeId: 1.2.840.113556.1.4.12\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf96792e-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+attributeSecurityGuid: 5f202010-79a5-11d0-9020-00c04fc2d4cf\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Birth-Location\r
+ldapDisplayName: birthLocation\r
+attributeId: 1.2.840.113556.1.4.332\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 1f0075f9-7e40-11d0-afd6-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+rangeLower: 32\r
+rangeUpper: 32\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: BootFile\r
+ldapDisplayName: bootFile\r
+attributeId: 1.3.6.1.1.1.1.24\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 22\r
+isSingleValued: FALSE\r
+schemaIdGuid: e3f3cb4e-0f20-42eb-9703-d2ff26e52667\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 10240\r
+\r
+cn: BootParameter\r
+ldapDisplayName: bootParameter\r
+attributeId: 1.3.6.1.1.1.1.23\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 22\r
+isSingleValued: FALSE\r
+schemaIdGuid: d72a0750-8c7c-416e-8714-e65f11e908be\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 10240\r
+\r
+cn: Bridgehead-Server-List-BL\r
+ldapDisplayName: bridgeheadServerListBL\r
+attributeId: 1.2.840.113556.1.4.820\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: d50c2cdb-8951-11d1-aebc-0000f80367c1\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+linkID: 99\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Bridgehead-Transport-List\r
+ldapDisplayName: bridgeheadTransportList\r
+attributeId: 1.2.840.113556.1.4.819\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: d50c2cda-8951-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+linkID: 98\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: buildingName\r
+ldapDisplayName: buildingName\r
+attributeId: 0.9.2342.19200300.100.1.48\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: f87fa54b-b2c5-4fd7-88c0-daccb21d93c5\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 256\r
+\r
+cn: Builtin-Creation-Time\r
+ldapDisplayName: builtinCreationTime\r
+attributeId: 1.2.840.113556.1.4.13\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf96792f-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ACS-DSBM-Refresh\r
+ldapDisplayName: aCSDSBMRefresh\r
+attributeId: 1.2.840.113556.1.4.777\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 1cb3559f-56d0-11d1-a9c6-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Builtin-Modified-Count\r
+ldapDisplayName: builtinModifiedCount\r
+attributeId: 1.2.840.113556.1.4.14\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967930-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Business-Category\r
+ldapDisplayName: businessCategory\r
+attributeId: 2.5.4.15\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf967931-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 128\r
+mapiID: 32855\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Bytes-Per-Minute\r
+ldapDisplayName: bytesPerMinute\r
+attributeId: 1.2.840.113556.1.4.284\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: ba305f76-47e3-11d0-a1a6-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Country-Name\r
+ldapDisplayName: c\r
+attributeId: 2.5.4.6\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967945-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+rangeLower: 1\r
+rangeUpper: 3\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+mapiID: 32873\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: CA-Certificate\r
+ldapDisplayName: cACertificate\r
+attributeId: 2.5.4.37\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf967932-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 32768\r
+mapiID: 32771\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: CA-Certificate-DN\r
+ldapDisplayName: cACertificateDN\r
+attributeId: 1.2.840.113556.1.4.697\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 963d2740-48be-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: CA-Connect\r
+ldapDisplayName: cAConnect\r
+attributeId: 1.2.840.113556.1.4.687\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 963d2735-48be-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Canonical-Name\r
+ldapDisplayName: canonicalName\r
+attributeId: 1.2.840.113556.1.4.916\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 9a7ad945-ca53-11d1-bbd0-0080c76670c0\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Can-Upgrade-Script\r
+ldapDisplayName: canUpgradeScript\r
+attributeId: 1.2.840.113556.1.4.815\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: d9e18314-8939-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: carLicense\r
+ldapDisplayName: carLicense\r
+attributeId: 2.16.840.1.113730.3.1.1\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: d4159c92-957d-4a87-8a67-8d2934e01649\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+showInAdvancedViewOnly: FALSE\r
+\r
+cn: MacAddress\r
+ldapDisplayName: macAddress\r
+attributeId: 1.3.6.1.1.1.1.22\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 22\r
+isSingleValued: FALSE\r
+schemaIdGuid: e6a522dd-9770-43e1-89de-1de5044328f7\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 128\r
+\r
+cn: Manager\r
+ldapDisplayName: manager\r
+attributeId: 0.9.2342.19200300.100.1.10\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf9679b5-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+linkID: 42\r
+mapiID: 32773\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-NamedPipe\r
+ldapDisplayName: mS-SQL-NamedPipe\r
+attributeId: 1.2.840.113556.1.4.1374\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 7b91c840-ccee-11d2-9993-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-PublicationURL\r
+ldapDisplayName: mS-SQL-PublicationURL\r
+attributeId: 1.2.840.113556.1.4.1384\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: ae0c11b8-ccee-11d2-9993-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-Publisher\r
+ldapDisplayName: mS-SQL-Publisher\r
+attributeId: 1.2.840.113556.1.4.1402\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: c1676858-d34b-11d2-999a-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-RegisteredOwner\r
+ldapDisplayName: mS-SQL-RegisteredOwner\r
+attributeId: 1.2.840.113556.1.4.1364\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 48fd44ea-ccee-11d2-9993-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-ServiceAccount\r
+ldapDisplayName: mS-SQL-ServiceAccount\r
+attributeId: 1.2.840.113556.1.4.1369\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 64933a3e-ccee-11d2-9993-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-Size\r
+ldapDisplayName: mS-SQL-Size\r
+attributeId: 1.2.840.113556.1.4.1396\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: e9098084-ccee-11d2-9993-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-SortOrder\r
+ldapDisplayName: mS-SQL-SortOrder\r
+attributeId: 1.2.840.113556.1.4.1371\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 6ddc42c0-ccee-11d2-9993-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-SPX\r
+ldapDisplayName: mS-SQL-SPX\r
+attributeId: 1.2.840.113556.1.4.1376\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 86b08004-ccee-11d2-9993-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-Status\r
+ldapDisplayName: mS-SQL-Status\r
+attributeId: 1.2.840.113556.1.4.1380\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: 9a7d4770-ccee-11d2-9993-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-TCPIP\r
+ldapDisplayName: mS-SQL-TCPIP\r
+attributeId: 1.2.840.113556.1.4.1377\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 8ac263a6-ccee-11d2-9993-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MAPI-ID\r
+ldapDisplayName: mAPIID\r
+attributeId: 1.2.840.113556.1.2.49\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf9679b7-0de6-11d0-a285-00aa003049e2\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+mapiID: 32974\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: MS-SQL-ThirdParty\r
+ldapDisplayName: mS-SQL-ThirdParty\r
+attributeId: 1.2.840.113556.1.4.1407\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: c4e311fc-d34b-11d2-999a-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-Type\r
+ldapDisplayName: mS-SQL-Type\r
+attributeId: 1.2.840.113556.1.4.1391\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: ca48eba8-ccee-11d2-9993-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-UnicodeSortOrder\r
+ldapDisplayName: mS-SQL-UnicodeSortOrder\r
+attributeId: 1.2.840.113556.1.4.1372\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 72dc918a-ccee-11d2-9993-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-Version\r
+ldapDisplayName: mS-SQL-Version\r
+attributeId: 1.2.840.113556.1.4.1388\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: c07cc1d0-ccee-11d2-9993-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-Vines\r
+ldapDisplayName: mS-SQL-Vines\r
+attributeId: 1.2.840.113556.1.4.1379\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 94c56394-ccee-11d2-9993-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-COM-DefaultPartitionLink\r
+ldapDisplayName: msCOM-DefaultPartitionLink\r
+attributeId: 1.2.840.113556.1.4.1427\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: 998b10f7-aa1a-4364-b867-753d197fe670\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-COM-ObjectId\r
+ldapDisplayName: msCOM-ObjectId\r
+attributeId: 1.2.840.113556.1.4.1428\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 430f678b-889f-41f2-9843-203b5a65572f\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-COM-PartitionLink\r
+ldapDisplayName: msCOM-PartitionLink\r
+attributeId: 1.2.840.113556.1.4.1423\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 09abac62-043f-4702-ac2b-6ca15eee5754\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+linkID: 1040\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-COM-PartitionSetLink\r
+ldapDisplayName: msCOM-PartitionSetLink\r
+attributeId: 1.2.840.113556.1.4.1424\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 67f121dc-7d02-4c7d-82f5-9ad4c950ac34\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+linkID: 1041\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+\r
+cn: ms-COM-UserLink\r
+ldapDisplayName: msCOM-UserLink\r
+attributeId: 1.2.840.113556.1.4.1425\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 9e6f3a4d-242c-4f37-b068-36b57f9fc852\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+linkID: 1049\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+\r
+cn: Marshalled-Interface\r
+ldapDisplayName: marshalledInterface\r
+attributeId: 1.2.840.113556.1.4.72\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf9679b9-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-COM-UserPartitionSetLink\r
+ldapDisplayName: msCOM-UserPartitionSetLink\r
+attributeId: 1.2.840.113556.1.4.1426\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: 8e940c8a-e477-4367-b08d-ff2ff942dcd7\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+linkID: 1048\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Mscope-Id\r
+ldapDisplayName: mscopeId\r
+attributeId: 1.2.840.113556.1.4.716\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 19\r
+isSingleValued: TRUE\r
+schemaIdGuid: 963d2751-48be-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DFSR-CachePolicy\r
+ldapDisplayName: msDFSR-CachePolicy\r
+attributeId: 1.2.840.113556.1.6.13.3.29\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: db7a08e7-fc76-4569-a45f-f5ecb66a88b5\r
+searchFlags: 0\r
+\r
+cn: ms-DFSR-CommonStagingPath\r
+ldapDisplayName: msDFSR-CommonStagingPath\r
+attributeId: 1.2.840.113556.1.6.13.3.38\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 936eac41-d257-4bb9-bd55-f310a3cf09ad\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 32767\r
+\r
+cn: ms-DFSR-CommonStagingSizeInMb\r
+ldapDisplayName: msDFSR-CommonStagingSizeInMb\r
+attributeId: 1.2.840.113556.1.6.13.3.39\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: 135eb00e-4846-458b-8ea2-a37559afd405\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: -1\r
+\r
+cn: ms-DFSR-ComputerReference\r
+ldapDisplayName: msDFSR-ComputerReference\r
+attributeId: 1.2.840.113556.1.6.13.3.101\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: 6c7b5785-3d21-41bf-8a8a-627941544d5a\r
+searchFlags: 0\r
+linkID: 2050\r
+\r
+cn: ms-DFSR-ComputerReferenceBL\r
+ldapDisplayName: msDFSR-ComputerReferenceBL\r
+attributeId: 1.2.840.113556.1.6.13.3.103\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 5eb526d7-d71b-44ae-8cc6-95460052e6ac\r
+searchFlags: 0\r
+linkID: 2051\r
+systemFlags: FLAG_ATTR_NOT_REPLICATED\r
+\r
+cn: ms-DFSR-ConflictPath\r
+ldapDisplayName: msDFSR-ConflictPath\r
+attributeId: 1.2.840.113556.1.6.13.3.7\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 5cf0bcc8-60f7-4bff-bda6-aea0344eb151\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 32767\r
+\r
+cn: ms-DFSR-ConflictSizeInMb\r
+ldapDisplayName: msDFSR-ConflictSizeInMb\r
+attributeId: 1.2.840.113556.1.6.13.3.8\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: 9ad33fc9-aacf-4299-bb3e-d1fc6ea88e49\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: -1\r
+\r
+cn: ms-DFSR-ContentSetGuid\r
+ldapDisplayName: msDFSR-ContentSetGuid\r
+attributeId: 1.2.840.113556.1.6.13.3.18\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 1035a8e1-67a8-4c21-b7bb-031cdf99d7a0\r
+searchFlags: 0\r
+rangeLower: 16\r
+rangeUpper: 16\r
+\r
+cn: Mastered-By\r
+ldapDisplayName: masteredBy\r
+attributeId: 1.2.840.113556.1.4.1409\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: e48e64e0-12c9-11d3-9102-00c04fd91ab1\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+linkID: 77\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DFSR-DefaultCompressionExclusionFilter\r
+ldapDisplayName: msDFSR-DefaultCompressionExclusionFilter\r
+attributeId: 1.2.840.113556.1.6.13.3.34\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 87811bd5-cd8b-45cb-9f5d-980f3a9e0c97\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 32767\r
+\r
+cn: ms-DFSR-DeletedPath\r
+ldapDisplayName: msDFSR-DeletedPath\r
+attributeId: 1.2.840.113556.1.6.13.3.26\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 817cf0b8-db95-4914-b833-5a079ef65764\r
+searchFlags: 0\r
+rangeUpper: 32767\r
+\r
+cn: ms-DFSR-DeletedSizeInMb\r
+ldapDisplayName: msDFSR-DeletedSizeInMb\r
+attributeId: 1.2.840.113556.1.6.13.3.27\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: 53ed9ad1-9975-41f4-83f5-0c061a12553a\r
+searchFlags: 0\r
+rangeUpper: -1\r
+\r
+cn: ms-DFSR-DfsLinkTarget\r
+ldapDisplayName: msDFSR-DfsLinkTarget\r
+attributeId: 1.2.840.113556.1.6.13.3.24\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: f7b85ba9-3bf9-428f-aab4-2eee6d56f063\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 32767\r
+\r
+cn: ms-DFSR-DfsPath\r
+ldapDisplayName: msDFSR-DfsPath\r
+attributeId: 1.2.840.113556.1.6.13.3.21\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 2cc903e2-398c-443b-ac86-ff6b01eac7ba\r
+searchFlags: fATTINDEX\r
+rangeLower: 0\r
+rangeUpper: 32767\r
+\r
+cn: ms-DFSR-DirectoryFilter\r
+ldapDisplayName: msDFSR-DirectoryFilter\r
+attributeId: 1.2.840.113556.1.6.13.3.13\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 93c7b477-1f2e-4b40-b7bf-007e8d038ccf\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 32767\r
+\r
+cn: ms-DFSR-DisablePacketPrivacy\r
+ldapDisplayName: msDFSR-DisablePacketPrivacy\r
+attributeId: 1.2.840.113556.1.6.13.3.32\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: 6a84ede5-741e-43fd-9dd6-aa0f61578621\r
+searchFlags: 0\r
+\r
+cn: ms-DFSR-Enabled\r
+ldapDisplayName: msDFSR-Enabled\r
+attributeId: 1.2.840.113556.1.6.13.3.9\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: 03726ae7-8e7d-4446-8aae-a91657c00993\r
+searchFlags: 0\r
+\r
+cn: ms-DFSR-Extension\r
+ldapDisplayName: msDFSR-Extension\r
+attributeId: 1.2.840.113556.1.6.13.3.2\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 78f011ec-a766-4b19-adcf-7b81ed781a4d\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 65536\r
+\r
+cn: ms-DFSR-FileFilter\r
+ldapDisplayName: msDFSR-FileFilter\r
+attributeId: 1.2.840.113556.1.6.13.3.12\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: d68270ac-a5dc-4841-a6ac-cd68be38c181\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 32767\r
+\r
+cn: Max-Pwd-Age\r
+ldapDisplayName: maxPwdAge\r
+attributeId: 1.2.840.113556.1.4.74\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf9679bb-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+attributeSecurityGuid: c7407360-20bf-11d0-a768-00aa006e0529\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DFSR-Flags\r
+ldapDisplayName: msDFSR-Flags\r
+attributeId: 1.2.840.113556.1.6.13.3.16\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: fe515695-3f61-45c8-9bfa-19c148c57b09\r
+searchFlags: 0\r
+\r
+cn: ms-DFSR-Keywords\r
+ldapDisplayName: msDFSR-Keywords\r
+attributeId: 1.2.840.113556.1.6.13.3.15\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 048b4692-6227-4b67-a074-c4437083e14b\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 32767\r
+\r
+cn: ms-DFSR-MaxAgeInCacheInMin\r
+ldapDisplayName: msDFSR-MaxAgeInCacheInMin\r
+attributeId: 1.2.840.113556.1.6.13.3.31\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 2ab0e48d-ac4e-4afc-83e5-a34240db6198\r
+searchFlags: 0\r
+rangeUpper: 2147483647\r
+\r
+cn: ms-DFSR-MemberReference\r
+ldapDisplayName: msDFSR-MemberReference\r
+attributeId: 1.2.840.113556.1.6.13.3.100\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: 261337aa-f1c3-44b2-bbea-c88d49e6f0c7\r
+searchFlags: 0\r
+linkID: 2052\r
+\r
+cn: ms-DFSR-MemberReferenceBL\r
+ldapDisplayName: msDFSR-MemberReferenceBL\r
+attributeId: 1.2.840.113556.1.6.13.3.102\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: adde62c6-1880-41ed-bd3c-30b7d25e14f0\r
+searchFlags: 0\r
+linkID: 2053\r
+systemFlags: FLAG_ATTR_NOT_REPLICATED\r
+\r
+cn: ms-DFSR-MinDurationCacheInMin\r
+ldapDisplayName: msDFSR-MinDurationCacheInMin\r
+attributeId: 1.2.840.113556.1.6.13.3.30\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 4c5d607a-ce49-444a-9862-82a95f5d1fcc\r
+searchFlags: 0\r
+rangeUpper: 2147483647\r
+\r
+cn: ms-DFSR-OnDemandExclusionDirectoryFilter\r
+ldapDisplayName: msDFSR-OnDemandExclusionDirectoryFilter\r
+attributeId: 1.2.840.113556.1.6.13.3.36\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 7d523aff-9012-49b2-9925-f922a0018656\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 32767\r
+\r
+cn: ms-DFSR-OnDemandExclusionFileFilter\r
+ldapDisplayName: msDFSR-OnDemandExclusionFileFilter\r
+attributeId: 1.2.840.113556.1.6.13.3.35\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: a68359dc-a581-4ee6-9015-5382c60f0fb4\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 32767\r
+\r
+cn: ms-DFSR-Options\r
+ldapDisplayName: msDFSR-Options\r
+attributeId: 1.2.840.113556.1.6.13.3.17\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: d6d67084-c720-417d-8647-b696237a114c\r
+searchFlags: 0\r
+\r
+cn: ms-DFSR-Options2\r
+ldapDisplayName: msDFSR-Options2\r
+attributeId: 1.2.840.113556.1.6.13.3.37\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 11e24318-4ca6-4f49-9afe-e5eb1afa3473\r
+searchFlags: 0\r
+\r
+cn: Max-Renew-Age\r
+ldapDisplayName: maxRenewAge\r
+attributeId: 1.2.840.113556.1.4.75\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf9679bc-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DFSR-Priority\r
+ldapDisplayName: msDFSR-Priority\r
+attributeId: 1.2.840.113556.1.6.13.3.25\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: eb20e7d6-32ad-42de-b141-16ad2631b01b\r
+searchFlags: 0\r
+\r
+cn: ms-DFSR-RdcEnabled\r
+ldapDisplayName: msDFSR-RdcEnabled\r
+attributeId: 1.2.840.113556.1.6.13.3.19\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: e3b44e05-f4a7-4078-a730-f48670a743f8\r
+searchFlags: 0\r
+\r
+cn: ms-DFSR-RdcMinFileSizeInKb\r
+ldapDisplayName: msDFSR-RdcMinFileSizeInKb\r
+attributeId: 1.2.840.113556.1.6.13.3.20\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: f402a330-ace5-4dc1-8cc9-74d900bf8ae0\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: -1\r
+\r
+cn: ms-DFSR-ReadOnly\r
+ldapDisplayName: msDFSR-ReadOnly\r
+attributeId: 1.2.840.113556.1.6.13.3.28\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: 5ac48021-e447-46e7-9d23-92c0c6a90dfb\r
+searchFlags: 0\r
+\r
+cn: ms-DFSR-StagingCleanupTriggerInPercent\r
+ldapDisplayName: msDFSR-StagingCleanupTriggerInPercent\r
+attributeId: 1.2.840.113556.1.6.13.3.40\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: d64b9c23-e1fa-467b-b317-6964d744d633\r
+searchFlags: 0\r
+\r
+cn: ms-DFSR-ReplicationGroupGuid\r
+ldapDisplayName: msDFSR-ReplicationGroupGuid\r
+attributeId: 1.2.840.113556.1.6.13.3.23\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 2dad8796-7619-4ff8-966e-0a5cc67b287f\r
+searchFlags: fATTINDEX\r
+rangeLower: 16\r
+rangeUpper: 16\r
+\r
+cn: ms-DFSR-ReplicationGroupType\r
+ldapDisplayName: msDFSR-ReplicationGroupType\r
+attributeId: 1.2.840.113556.1.6.13.3.10\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: eeed0fc8-1001-45ed-80cc-bbf744930720\r
+searchFlags: 0\r
+\r
+cn: ms-DFSR-RootFence\r
+ldapDisplayName: msDFSR-RootFence\r
+attributeId: 1.2.840.113556.1.6.13.3.22\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 51928e94-2cd8-4abe-b552-e50412444370\r
+searchFlags: 0\r
+\r
+cn: ms-DFSR-RootPath\r
+ldapDisplayName: msDFSR-RootPath\r
+attributeId: 1.2.840.113556.1.6.13.3.3\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: d7d5e8c1-e61f-464f-9fcf-20bbe0a2ec54\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 32767\r
+\r
+cn: ms-DFSR-RootSizeInMb\r
+ldapDisplayName: msDFSR-RootSizeInMb\r
+attributeId: 1.2.840.113556.1.6.13.3.4\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: 90b769ac-4413-43cf-ad7a-867142e740a3\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: -1\r
+\r
+cn: Max-Storage\r
+ldapDisplayName: maxStorage\r
+attributeId: 1.2.840.113556.1.4.76\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf9679bd-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DFSR-Schedule\r
+ldapDisplayName: msDFSR-Schedule\r
+attributeId: 1.2.840.113556.1.6.13.3.14\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 4699f15f-a71f-48e2-9ff5-5897c0759205\r
+searchFlags: 0\r
+rangeLower: 336\r
+rangeUpper: 336\r
+\r
+cn: ms-DFSR-StagingPath\r
+ldapDisplayName: msDFSR-StagingPath\r
+attributeId: 1.2.840.113556.1.6.13.3.5\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 86b9a69e-f0a6-405d-99bb-77d977992c2a\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 32767\r
+\r
+cn: ms-DFSR-StagingSizeInMb\r
+ldapDisplayName: msDFSR-StagingSizeInMb\r
+attributeId: 1.2.840.113556.1.6.13.3.6\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: 250a8f20-f6fc-4559-ae65-e4b24c67aebe\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: -1\r
+\r
+cn: ms-DFSR-TombstoneExpiryInMin\r
+ldapDisplayName: msDFSR-TombstoneExpiryInMin\r
+attributeId: 1.2.840.113556.1.6.13.3.11\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 23e35d4c-e324-4861-a22f-e199140dae00\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 2147483647\r
+\r
+cn: ms-DFSR-Version\r
+ldapDisplayName: msDFSR-Version\r
+attributeId: 1.2.840.113556.1.6.13.3.1\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 1a861408-38c3-49ea-ba75-85481a77c655\r
+searchFlags: 0\r
+rangeUpper: 256\r
+\r
+cn: MS-DRM-Identity-Certificate\r
+ldapDisplayName: msDRM-IdentityCertificate\r
+attributeId: 1.2.840.113556.1.4.1843\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: e85e1204-3434-41ad-9b56-e2901228fff0\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 10240\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-Additional-Dns-Host-Name\r
+ldapDisplayName: msDS-AdditionalDnsHostName\r
+attributeId: 1.2.840.113556.1.4.1717\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 80863791-dbe9-4eb8-837e-7f0ab55d9ac7\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 2048\r
+attributeSecurityGuid: 72e39547-7b18-11d1-adef-00c04fd8d5cd\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Additional-Sam-Account-Name\r
+ldapDisplayName: msDS-AdditionalSamAccountName\r
+attributeId: 1.2.840.113556.1.4.1718\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 975571df-a4d5-429a-9f59-cdc6581d91e6\r
+systemOnly: TRUE\r
+searchFlags: fPRESERVEONDELETE| fANR | fATTINDEX\r
+rangeLower: 0\r
+rangeUpper: 256\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Allowed-DNS-Suffixes\r
+ldapDisplayName: msDS-AllowedDNSSuffixes\r
+attributeId: 1.2.840.113556.1.4.1710\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 8469441b-9ac4-4e45-8205-bd219dbf672d\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 2048\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Allowed-To-Delegate-To\r
+ldapDisplayName: msDS-AllowedToDelegateTo\r
+attributeId: 1.2.840.113556.1.4.1787\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 800d94d7-b7a1-42a1-b14d-7cae1423d07f\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Max-Ticket-Age\r
+ldapDisplayName: maxTicketAge\r
+attributeId: 1.2.840.113556.1.4.77\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf9679be-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: MS-DS-All-Users-Trust-Quota\r
+ldapDisplayName: msDS-AllUsersTrustQuota\r
+attributeId: 1.2.840.113556.1.4.1789\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: d3aa4a5c-4e03-4810-97aa-2b339e7a434b\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Approx-Immed-Subordinates\r
+ldapDisplayName: msDS-Approx-Immed-Subordinates\r
+attributeId: 1.2.840.113556.1.4.1669\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: e185d243-f6ce-4adb-b496-b0c005d7823c\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-AuthenticatedAt-DC\r
+ldapDisplayName: msDS-AuthenticatedAtDC\r
+attributeId: 1.2.840.113556.1.4.1958\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 3e1ee99c-6604-4489-89d9-84798a89515a\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+linkID: 2112\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-AuthenticatedTo-Accountlist\r
+ldapDisplayName: msDS-AuthenticatedToAccountlist\r
+attributeId: 1.2.840.113556.1.4.1957\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: e8b2c971-a6df-47bc-8d6f-62770d527aa5\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+linkID: 2113\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Auxiliary-Classes\r
+ldapDisplayName: msDS-Auxiliary-Classes\r
+attributeId: 1.2.840.113556.1.4.1458\r
+attributeSyntax: 2.5.5.2\r
+omSyntax: 6\r
+isSingleValued: FALSE\r
+schemaIdGuid: c4af1073-ee50-4be0-b8c0-89a41fe99abe\r
+systemOnly: TRUE\r
+searchFlags: fPRESERVEONDELETE\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Az-Application-Data\r
+ldapDisplayName: msDS-AzApplicationData\r
+attributeId: 1.2.840.113556.1.4.1819\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 503fc3e8-1cc6-461a-99a3-9eee04f402a7\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-Az-Application-Name\r
+ldapDisplayName: msDS-AzApplicationName\r
+attributeId: 1.2.840.113556.1.4.1798\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: db5b0728-6208-4876-83b7-95d3e5695275\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 512\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-Az-Application-Version\r
+ldapDisplayName: msDS-AzApplicationVersion\r
+attributeId: 1.2.840.113556.1.4.1817\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 7184a120-3ac4-47ae-848f-fe0ab20784d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-Az-Biz-Rule\r
+ldapDisplayName: msDS-AzBizRule\r
+attributeId: 1.2.840.113556.1.4.1801\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 33d41ea8-c0c9-4c92-9494-f104878413fd\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 65536\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-Az-Biz-Rule-Language\r
+ldapDisplayName: msDS-AzBizRuleLanguage\r
+attributeId: 1.2.840.113556.1.4.1802\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 52994b56-0e6c-4e07-aa5c-ef9d7f5a0e25\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 64\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: May-Contain\r
+ldapDisplayName: mayContain\r
+attributeId: 1.2.840.113556.1.2.25\r
+attributeSyntax: 2.5.5.2\r
+omSyntax: 6\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf9679bf-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Az-Class-ID\r
+ldapDisplayName: msDS-AzClassId\r
+attributeId: 1.2.840.113556.1.4.1816\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 013a7277-5c2d-49ef-a7de-b765b36a3f6f\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 40\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-Az-Domain-Timeout\r
+ldapDisplayName: msDS-AzDomainTimeout\r
+attributeId: 1.2.840.113556.1.4.1795\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 6448f56a-ca70-4e2e-b0af-d20e4ce653d0\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-Az-Generate-Audits\r
+ldapDisplayName: msDS-AzGenerateAudits\r
+attributeId: 1.2.840.113556.1.4.1805\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: f90abab0-186c-4418-bb85-88447c87222a\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-Az-Generic-Data\r
+ldapDisplayName: msDS-AzGenericData\r
+attributeId: 1.2.840.113556.1.4.1950\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: b5f7e349-7a5b-407c-a334-a31c3f538b98\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 65536\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-Az-Last-Imported-Biz-Rule-Path\r
+ldapDisplayName: msDS-AzLastImportedBizRulePath\r
+attributeId: 1.2.840.113556.1.4.1803\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 665acb5c-bb92-4dbc-8c59-b3638eab09b3\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 65536\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-Az-LDAP-Query\r
+ldapDisplayName: msDS-AzLDAPQuery\r
+attributeId: 1.2.840.113556.1.4.1792\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 5e53368b-fc94-45c8-9d7d-daf31ee7112d\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 4096\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Az-Major-Version\r
+ldapDisplayName: msDS-AzMajorVersion\r
+attributeId: 1.2.840.113556.1.4.1824\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: cfb9adb7-c4b7-4059-9568-1ed9db6b7248\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-Az-Minor-Version\r
+ldapDisplayName: msDS-AzMinorVersion\r
+attributeId: 1.2.840.113556.1.4.1825\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: ee85ed93-b209-4788-8165-e702f51bfbf3\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-Az-Object-Guid\r
+ldapDisplayName: msDS-AzObjectGuid\r
+attributeId: 1.2.840.113556.1.4.1949\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 8491e548-6c38-4365-a732-af041569b02c\r
+systemOnly: TRUE\r
+searchFlags: fATTINDEX\r
+rangeLower: 16\r
+rangeUpper: 16\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-Az-Operation-ID\r
+ldapDisplayName: msDS-AzOperationID\r
+attributeId: 1.2.840.113556.1.4.1800\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: a5f3b553-5d76-4cbe-ba3f-4312152cab18\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: meetingAdvertiseScope\r
+ldapDisplayName: meetingAdvertiseScope\r
+attributeId: 1.2.840.113556.1.4.582\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 11b6cc8b-48c4-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-Az-Scope-Name\r
+ldapDisplayName: msDS-AzScopeName\r
+attributeId: 1.2.840.113556.1.4.1799\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 515a6b06-2617-4173-8099-d5605df043c6\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 65536\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-Az-Script-Engine-Cache-Max\r
+ldapDisplayName: msDS-AzScriptEngineCacheMax\r
+attributeId: 1.2.840.113556.1.4.1796\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 2629f66a-1f95-4bf3-a296-8e9d7b9e30c8\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-Az-Script-Timeout\r
+ldapDisplayName: msDS-AzScriptTimeout\r
+attributeId: 1.2.840.113556.1.4.1797\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 87d0fb41-2c8b-41f6-b972-11fdfd50d6b0\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-Az-Task-Is-Role-Definition\r
+ldapDisplayName: msDS-AzTaskIsRoleDefinition\r
+attributeId: 1.2.840.113556.1.4.1818\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: 7b078544-6c82-4fe9-872f-ff48ad2b2e26\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-Behavior-Version\r
+ldapDisplayName: msDS-Behavior-Version\r
+attributeId: 1.2.840.113556.1.4.1459\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: d31a8757-2447-4545-8081-3bb610cacbf2\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+rangeLower: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Byte-Array\r
+ldapDisplayName: msDS-ByteArray\r
+attributeId: 1.2.840.113556.1.4.1831\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: f0d8972e-dd5b-40e5-a51d-044c7c17ece7\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 1000000\r
+\r
+cn: ms-DS-Cached-Membership\r
+ldapDisplayName: msDS-Cached-Membership\r
+attributeId: 1.2.840.113556.1.4.1441\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 69cab008-cdd4-4bc9-bab8-0ff37efe1b20\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Cached-Membership-Time-Stamp\r
+ldapDisplayName: msDS-Cached-Membership-Time-Stamp\r
+attributeId: 1.2.840.113556.1.4.1442\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: 3566bf1f-beee-4dcb-8abe-ef89fcfec6c1\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Date-Time\r
+ldapDisplayName: msDS-DateTime\r
+attributeId: 1.2.840.113556.1.4.1832\r
+attributeSyntax: 2.5.5.11\r
+omSyntax: 24\r
+isSingleValued: FALSE\r
+schemaIdGuid: 234fcbd8-fb52-4908-a328-fd9f6e58e403\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+\r
+cn: ms-DS-Default-Quota\r
+ldapDisplayName: msDS-DefaultQuota\r
+attributeId: 1.2.840.113556.1.4.1846\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 6818f726-674b-441b-8a3a-f40596374cea\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Machine-Architecture\r
+ldapDisplayName: machineArchitecture\r
+attributeId: 1.2.840.113556.1.4.68\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 10\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf9679af-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: meetingApplication\r
+ldapDisplayName: meetingApplication\r
+attributeId: 1.2.840.113556.1.4.573\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 11b6cc83-48c4-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-DnsRootAlias\r
+ldapDisplayName: msDS-DnsRootAlias\r
+attributeId: 1.2.840.113556.1.4.1719\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 2143acca-eead-4d29-b591-85fa49ce9173\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 255\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Entry-Time-To-Die\r
+ldapDisplayName: msDS-Entry-Time-To-Die\r
+attributeId: 1.2.840.113556.1.4.1622\r
+attributeSyntax: 2.5.5.11\r
+omSyntax: 24\r
+isSingleValued: TRUE\r
+schemaIdGuid: e1e9bad7-c6dd-4101-a843-794cec85b038\r
+systemOnly: TRUE\r
+searchFlags: fPRESERVEONDELETE | fATTINDEX\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_OPERATIONAL\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-ExecuteScriptPassword\r
+ldapDisplayName: msDS-ExecuteScriptPassword\r
+attributeId: 1.2.840.113556.1.4.1783\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 9d054a5a-d187-46c1-9d85-42dfc44a56dd\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 64\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-External-Key\r
+ldapDisplayName: msDS-ExternalKey\r
+attributeId: 1.2.840.113556.1.4.1833\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: b92fd528-38ac-40d4-818d-0433380837c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 10000\r
+\r
+cn: ms-DS-External-Store\r
+ldapDisplayName: msDS-ExternalStore\r
+attributeId: 1.2.840.113556.1.4.1834\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 604877cd-9cdb-47c7-b03d-3daadb044910\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 10000\r
+\r
+cn: ms-DS-Failed-Interactive-Logon-Count\r
+ldapDisplayName: msDS-FailedInteractiveLogonCount\r
+attributeId: 1.2.840.113556.1.4.1972\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: dc3ca86f-70ad-4960-8425-a4d6313d93dd\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Failed-Interactive-Logon-Count-At-Last-Successful-Logon\r
+ldapDisplayName: msDS-FailedInteractiveLogonCountAtLastSuccessfulLogon\r
+attributeId: 1.2.840.113556.1.4.1973\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: c5d234e5-644a-4403-a665-e26e0aef5e98\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Filter-Containers\r
+ldapDisplayName: msDS-FilterContainers\r
+attributeId: 1.2.840.113556.1.4.1703\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: fb00dcdf-ac37-483a-9c12-ac53a6603033\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 64\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-HAB-Seniority-Index\r
+ldapDisplayName: msDS-HABSeniorityIndex\r
+attributeId: 1.2.840.113556.1.4.1997\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: def449f1-fd3b-4045-98cf-d9658da788b5\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+mapiID: 36000\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-Has-Domain-NCs\r
+ldapDisplayName: msDS-HasDomainNCs\r
+attributeId: 1.2.840.113556.1.4.1820\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 6f17e347-a842-4498-b8b3-15e007da4fed\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+rangeLower: 4\r
+rangeUpper: 4\r
+linkID: 2026\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: meetingBandwidth\r
+ldapDisplayName: meetingBandwidth\r
+attributeId: 1.2.840.113556.1.4.589\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: FALSE\r
+schemaIdGuid: 11b6cc92-48c4-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-Has-Full-Replica-NCs\r
+ldapDisplayName: msDS-hasFullReplicaNCs\r
+attributeId: 1.2.840.113556.1.4.1925\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 1d3c2d18-42d0-4868-99fe-0eca1e6fa9f3\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+linkID: 2104\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Has-Instantiated-NCs\r
+ldapDisplayName: msDS-HasInstantiatedNCs\r
+attributeId: 1.2.840.113556.1.4.1709\r
+attributeSyntax: 2.5.5.7\r
+omSyntax: 127\r
+omObjectClass: 1.2.840.113556.1.1.1.11\r
+isSingleValued: FALSE\r
+schemaIdGuid: 11e9a5bc-4517-4049-af9c-51554fb0fc09\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+rangeLower: 4\r
+rangeUpper: 4\r
+linkID: 2002\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Has-Master-NCs\r
+ldapDisplayName: msDS-hasMasterNCs\r
+attributeId: 1.2.840.113556.1.4.1836\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: ae2de0e2-59d7-4d47-8d47-ed4dfe4357ad\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+linkID: 2036\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Integer\r
+ldapDisplayName: msDS-Integer\r
+attributeId: 1.2.840.113556.1.4.1835\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: FALSE\r
+schemaIdGuid: 7bc64cea-c04e-4318-b102-3e0729371a65\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+\r
+cn: ms-DS-IntId\r
+ldapDisplayName: msDS-IntId\r
+attributeId: 1.2.840.113556.1.4.1716\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: bc60096a-1b47-4b30-8877-602c93f56532\r
+systemOnly: TRUE\r
+searchFlags: fPRESERVEONDELETE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Is-Domain-For\r
+ldapDisplayName: msDS-IsDomainFor\r
+attributeId: 1.2.840.113556.1.4.1933\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: ff155a2a-44e5-4de0-8318-13a58988de4f\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+linkID: 2027\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+\r
+cn: ms-DS-Is-Full-Replica-For\r
+ldapDisplayName: msDS-IsFullReplicaFor\r
+attributeId: 1.2.840.113556.1.4.1932\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: c8bc72e0-a6b4-48f0-94a5-fd76a88c9987\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+linkID: 2105\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+\r
+cn: ms-DS-isGC\r
+ldapDisplayName: msDS-isGC\r
+attributeId: 1.2.840.113556.1.4.1959\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: 1df5cf33-0fe5-499e-90e1-e94b42718a46\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Is-Partial-Replica-For\r
+ldapDisplayName: msDS-IsPartialReplicaFor\r
+attributeId: 1.2.840.113556.1.4.1934\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 37c94ff6-c6d4-498f-b2f9-c6f7f8647809\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+linkID: 75\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+\r
+cn: ms-DS-isRODC\r
+ldapDisplayName: msDS-isRODC\r
+attributeId: 1.2.840.113556.1.4.1960\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: a8e8aa23-3e67-4af1-9d7a-2f1a1d633ac9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: meetingBlob\r
+ldapDisplayName: meetingBlob\r
+attributeId: 1.2.840.113556.1.4.590\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 11b6cc93-48c4-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-KeyVersionNumber\r
+ldapDisplayName: msDS-KeyVersionNumber\r
+attributeId: 1.2.840.113556.1.4.1782\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: c523e9c0-33b5-4ac8-8923-b57b927f42f6\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-KrbTgt-Link\r
+ldapDisplayName: msDS-KrbTgtLink\r
+attributeId: 1.2.840.113556.1.4.1923\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: 778ff5c9-6f4e-4b74-856a-d68383313910\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+linkID: 2100\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-KrbTgt-Link-BL\r
+ldapDisplayName: msDS-KrbTgtLinkBl\r
+attributeId: 1.2.840.113556.1.4.1931\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 5dd68c41-bfdf-438b-9b5d-39d9618bf260\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+linkID: 2101\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Last-Failed-Interactive-Logon-Time\r
+ldapDisplayName: msDS-LastFailedInteractiveLogonTime\r
+attributeId: 1.2.840.113556.1.4.1971\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: c7e7dafa-10c3-4b8b-9acd-54f11063742e\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Last-Successful-Interactive-Logon-Time\r
+ldapDisplayName: msDS-LastSuccessfulInteractiveLogonTime\r
+attributeId: 1.2.840.113556.1.4.1970\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: 011929e6-8b5d-4258-b64a-00b0b4949747\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Lockout-Duration\r
+ldapDisplayName: msDS-LockoutDuration\r
+attributeId: 1.2.840.113556.1.4.2018\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+schemaIdGuid:: 421f889a-472e-4fe4-8eb9-e1d0bc6071b2\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Lockout-Threshold\r
+ldapDisplayName: msDS-LockoutThreshold\r
+attributeId: 1.2.840.113556.1.4.2019\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 65535\r
+schemaIdGuid:: b8c8c35e-4a19-4a95-99d0-69fe4446286f\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Lockout-Observation-Window\r
+ldapDisplayName: msDS-LockoutObservationWindow\r
+attributeId: 1.2.840.113556.1.4.2017\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+schemaIdGuid:: b05bda89-76af-468a-b892-1be55558ecc8\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Logon-Time-Sync-Interval\r
+ldapDisplayName: msDS-LogonTimeSyncInterval\r
+attributeId: 1.2.840.113556.1.4.1784\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: ad7940f8-e43a-4a42-83bc-d688e59ea605\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Mastered-By\r
+ldapDisplayName: msDs-masteredBy\r
+attributeId: 1.2.840.113556.1.4.1837\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 60234769-4819-4615-a1b2-49d2f119acb5\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+linkID: 2037\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: meetingContactInfo\r
+ldapDisplayName: meetingContactInfo\r
+attributeId: 1.2.840.113556.1.4.578\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 11b6cc87-48c4-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-Maximum-Password-Age\r
+ldapDisplayName: msDS-MaximumPasswordAge\r
+attributeId: 1.2.840.113556.1.4.2011\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+schemaIdGuid: fdd337f5-4999-4fce-b252-8ff9c9b43875\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Max-Values\r
+ldapDisplayName: msDs-MaxValues\r
+attributeId: 1.2.840.113556.1.4.1842\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: d1e169a4-ebe9-49bf-8fcb-8aef3874592d\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-Members-For-Az-Role\r
+ldapDisplayName: msDS-MembersForAzRole\r
+attributeId: 1.2.840.113556.1.4.1806\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: cbf7e6cd-85a4-4314-8939-8bfe80597835\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+linkID: 2016\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Members-For-Az-Role-BL\r
+ldapDisplayName: msDS-MembersForAzRoleBL\r
+attributeId: 1.2.840.113556.1.4.1807\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: ececcd20-a7e0-4688-9ccf-02ece5e287f5\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+linkID: 2017\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+\r
+cn: ms-DS-Minimum-Password-Age\r
+ldapDisplayName: msDS-MinimumPasswordAge\r
+attributeId: 1.2.840.113556.1.4.2012\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+schemaIdGuid: 2a74f878-4d9c-49f9-97b3-6767d1cbd9a3\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Minimum-Password-Length\r
+ldapDisplayName: msDS-MinimumPasswordLength\r
+attributeId: 1.2.840.113556.1.4.2013\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 255\r
+schemaIdGuid: b21b3439-4c3a-441c-bb5f-08f20e9b315e\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-NC-Replica-Locations\r
+ldapDisplayName: msDS-NC-Replica-Locations\r
+attributeId: 1.2.840.113556.1.4.1661\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 97de9615-b537-46bc-ac0f-10720f3909f3\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+linkID: 1044\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-NC-RO-Replica-Locations\r
+ldapDisplayName: msDS-NC-RO-Replica-Locations\r
+attributeId: 1.2.840.113556.1.4.1967\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 3df793df-9858-4417-a701-735a1ecebf74\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+linkID: 2114\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-NC-RO-Replica-Locations-BL\r
+ldapDisplayName: msDS-NC-RO-Replica-Locations-BL\r
+attributeId: 1.2.840.113556.1.4.1968\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: f547511c-5b2a-44cc-8358-992a88258164\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+linkID: 2115\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+\r
+cn: ms-DS-NC-Type\r
+ldapDisplayName: msDS-NcType\r
+attributeId: 1.2.840.113556.1.4.2024\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+schemaIdGuid: 5a2eacd7-cc2b-48cf-9d9a-b6f1a0024de9\r
+showInAdvancedViewOnly: TRUE\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: meetingDescription\r
+ldapDisplayName: meetingDescription\r
+attributeId: 1.2.840.113556.1.4.567\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 11b6cc7e-48c4-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-NC-Repl-Cursors\r
+ldapDisplayName: msDS-NCReplCursors\r
+attributeId: 1.2.840.113556.1.4.1704\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 8a167ce4-f9e8-47eb-8d78-f7fe80abb2cc\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-NC-Repl-Inbound-Neighbors\r
+ldapDisplayName: msDS-NCReplInboundNeighbors\r
+attributeId: 1.2.840.113556.1.4.1705\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 9edba85a-3e9e-431b-9b1a-a5b6e9eda796\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-NC-Repl-Outbound-Neighbors\r
+ldapDisplayName: msDS-NCReplOutboundNeighbors\r
+attributeId: 1.2.840.113556.1.4.1706\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 855f2ef5-a1c5-4cc4-ba6d-32522848b61f\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Never-Reveal-Group\r
+ldapDisplayName: msDS-NeverRevealGroup\r
+attributeId: 1.2.840.113556.1.4.1926\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 15585999-fd49-4d66-b25d-eeb96aba8174\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+linkID: 2106\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Non-Security-Group-Extra-Classes\r
+ldapDisplayName: msDS-Non-Security-Group-Extra-Classes\r
+attributeId: 1.2.840.113556.1.4.1689\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 2de144fc-1f52-486f-bdf4-16fcc3084e54\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-Non-Members\r
+ldapDisplayName: msDS-NonMembers\r
+attributeId: 1.2.840.113556.1.4.1793\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: cafcb1de-f23c-46b5-adf7-1e64957bd5db\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+linkID: 2014\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Non-Members-BL\r
+ldapDisplayName: msDS-NonMembersBL\r
+attributeId: 1.2.840.113556.1.4.1794\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 2a8c68fc-3a7a-4e87-8720-fe77c51cbe74\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+linkID: 2015\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+\r
+cn: ms-DS-Object-Reference\r
+ldapDisplayName: msDS-ObjectReference\r
+attributeId: 1.2.840.113556.1.4.1840\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 638ec2e8-22e7-409c-85d2-11b21bee72de\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+linkID: 2038\r
+\r
+cn: ms-DS-Object-Reference-BL\r
+ldapDisplayName: msDS-ObjectReferenceBL\r
+attributeId: 1.2.840.113556.1.4.1841\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 2b702515-c1f7-4b3b-b148-c0e4c6ceecb4\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+linkID: 2039\r
+systemFlags: FLAG_ATTR_NOT_REPLICATED\r
+\r
+cn: ms-DS-Operations-For-Az-Role\r
+ldapDisplayName: msDS-OperationsForAzRole\r
+attributeId: 1.2.840.113556.1.4.1812\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 93f701be-fa4c-43b6-bc2f-4dbea718ffab\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+linkID: 2022\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: meetingEndTime\r
+ldapDisplayName: meetingEndTime\r
+attributeId: 1.2.840.113556.1.4.588\r
+attributeSyntax: 2.5.5.11\r
+omSyntax: 23\r
+isSingleValued: FALSE\r
+schemaIdGuid: 11b6cc91-48c4-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-Operations-For-Az-Role-BL\r
+ldapDisplayName: msDS-OperationsForAzRoleBL\r
+attributeId: 1.2.840.113556.1.4.1813\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: f85b6228-3734-4525-b6b7-3f3bb220902c\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+linkID: 2023\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+\r
+cn: ms-DS-Operations-For-Az-Task\r
+ldapDisplayName: msDS-OperationsForAzTask\r
+attributeId: 1.2.840.113556.1.4.1808\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 1aacb436-2e9d-44a9-9298-ce4debeb6ebf\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+linkID: 2018\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-Operations-For-Az-Task-BL\r
+ldapDisplayName: msDS-OperationsForAzTaskBL\r
+attributeId: 1.2.840.113556.1.4.1809\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: a637d211-5739-4ed1-89b2-88974548bc59\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+linkID: 2019\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+\r
+cn: ms-DS-Other-Settings\r
+ldapDisplayName: msDS-Other-Settings\r
+attributeId: 1.2.840.113556.1.4.1621\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 79d2f34c-9d7d-42bb-838f-866b3e4400e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Password-Complexity-Enabled\r
+ldapDisplayName: msDS-PasswordComplexityEnabled\r
+attributeId: 1.2.840.113556.1.4.2015\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+schemaIdGuid: db68054b-c9c3-4bf0-b15b-0fb52552a610\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Password-History-Length\r
+ldapDisplayName: msDS-PasswordHistoryLength\r
+attributeId: 1.2.840.113556.1.4.2014\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 65535\r
+schemaIdGuid: fed81bb7-768c-4c2f-9641-2245de34794d\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Password-Reversible-Encryption-Enabled\r
+ldapDisplayName: msDS-PasswordReversibleEncryptionEnabled\r
+attributeId: 1.2.840.113556.1.4.2016\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+schemaIdGuid:: 75ccdd8f-af6c-4487-bb4b-69e4d38a959c\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Password-Settings-Precedence\r
+ldapDisplayName: msDS-PasswordSettingsPrecedence\r
+attributeId: 1.2.840.113556.1.4.2023\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+schemaIdGuid: 456374ac-1f0a-4617-93cf-bc55a7c9d341\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: MS-DS-Per-User-Trust-Quota\r
+ldapDisplayName: msDS-PerUserTrustQuota\r
+attributeId: 1.2.840.113556.1.4.1788\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: d161adf0-ca24-4993-a3aa-8b2c981302e8\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: MS-DS-Per-User-Trust-Tombstones-Quota\r
+ldapDisplayName: msDS-PerUserTrustTombstonesQuota\r
+attributeId: 1.2.840.113556.1.4.1790\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 8b70a6c6-50f9-4fa3-a71e-1ce03040449b\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: meetingID\r
+ldapDisplayName: meetingID\r
+attributeId: 1.2.840.113556.1.4.565\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 11b6cc7c-48c4-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-Phonetic-Company-Name\r
+ldapDisplayName: msDS-PhoneticCompanyName\r
+attributeId: 1.2.840.113556.1.4.1945\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 5bd5208d-e5f4-46ae-a514-543bc9c47659\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX | fANR\r
+rangeLower: 1\r
+rangeUpper: 64\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+mapiID: 35985\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-Phonetic-Department\r
+ldapDisplayName: msDS-PhoneticDepartment\r
+attributeId: 1.2.840.113556.1.4.1944\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 6cd53daf-003e-49e7-a702-6fa896e7a6ef\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX | fANR\r
+rangeLower: 1\r
+rangeUpper: 64\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+mapiID: 35984\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-Phonetic-Display-Name\r
+ldapDisplayName: msDS-PhoneticDisplayName\r
+attributeId: 1.2.840.113556.1.4.1946\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: e21a94e4-2d66-4ce5-b30d-0ef87a776ff0\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX | fANR\r
+rangeLower: 0\r
+rangeUpper: 256\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+mapiID: 35986\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Phonetic-First-Name\r
+ldapDisplayName: msDS-PhoneticFirstName\r
+attributeId: 1.2.840.113556.1.4.1942\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 4b1cba4e-302f-4134-ac7c-f01f6c797843\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX | fANR\r
+rangeLower: 1\r
+rangeUpper: 64\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+mapiID: 35982\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-Phonetic-Last-Name\r
+ldapDisplayName: msDS-PhoneticLastName\r
+attributeId: 1.2.840.113556.1.4.1943\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: f217e4ec-0836-4b90-88af-2f5d4bbda2bc\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX | fANR\r
+rangeLower: 1\r
+rangeUpper: 64\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+mapiID: 35983\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-Preferred-GC-Site\r
+ldapDisplayName: msDS-Preferred-GC-Site\r
+attributeId: 1.2.840.113556.1.4.1444\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: d921b50a-0ab2-42cd-87f6-09cf83a91854\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Principal-Name\r
+ldapDisplayName: msDS-PrincipalName\r
+attributeId: 1.2.840.113556.1.4.1865\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 564e9325-d057-c143-9e3b-4f9e5ef46f93\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Promotion-Settings\r
+ldapDisplayName: msDS-PromotionSettings\r
+attributeId: 1.2.840.113556.1.4.1962\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: c881b4e2-43c0-4ebe-b9bb-5250aa9b434c\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+rangeUpper: 65536\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-PSO-Applied\r
+ldapDisplayName: msDS-PSOApplied\r
+attributeId: 1.2.840.113556.1.4.2021\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+isSingleValued: FALSE\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+schemaIdGuid: 5e6cf031-bda8-43c8-aca4-8fee4127005b\r
+linkID: 2119\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-PSO-Applies-To\r
+ldapDisplayName: msDS-PSOAppliesTo\r
+attributeId: 1.2.840.113556.1.4.2020\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+isSingleValued: FALSE\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+schemaIdGuid: 64c80f48-cdd2-4881-a86d-4e97b6f561fc\r
+linkID: 2118\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: meetingIP\r
+ldapDisplayName: meetingIP\r
+attributeId: 1.2.840.113556.1.4.580\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 11b6cc89-48c4-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-Quota-Amount\r
+ldapDisplayName: msDS-QuotaAmount\r
+attributeId: 1.2.840.113556.1.4.1845\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: fbb9a00d-3a8c-4233-9cf9-7189264903a1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Quota-Effective\r
+ldapDisplayName: msDS-QuotaEffective\r
+attributeId: 1.2.840.113556.1.4.1848\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 6655b152-101c-48b4-b347-e1fcebc60157\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Quota-Trustee\r
+ldapDisplayName: msDS-QuotaTrustee\r
+attributeId: 1.2.840.113556.1.4.1844\r
+attributeSyntax: 2.5.5.17\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 16378906-4ea5-49be-a8d1-bfd41dff4f65\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 28\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Quota-Used\r
+ldapDisplayName: msDS-QuotaUsed\r
+attributeId: 1.2.840.113556.1.4.1849\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: b5a84308-615d-4bb7-b05f-2f1746aa439f\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Repl-Attribute-Meta-Data\r
+ldapDisplayName: msDS-ReplAttributeMetaData\r
+attributeId: 1.2.840.113556.1.4.1707\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: d7c53242-724e-4c39-9d4c-2df8c9d66c7a\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Replication-Notify-First-DSA-Delay\r
+ldapDisplayName: msDS-Replication-Notify-First-DSA-Delay\r
+attributeId: 1.2.840.113556.1.4.1663\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 85abd4f4-0a89-4e49-bdec-6f35bb2562ba\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Replication-Notify-Subsequent-DSA-Delay\r
+ldapDisplayName: msDS-Replication-Notify-Subsequent-DSA-Delay\r
+attributeId: 1.2.840.113556.1.4.1664\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: d63db385-dd92-4b52-b1d8-0d3ecc0e86b6\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-ReplicationEpoch\r
+ldapDisplayName: msDS-ReplicationEpoch\r
+attributeId: 1.2.840.113556.1.4.1720\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 08e3aa79-eb1c-45b5-af7b-8f94246c8e41\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Repl-Value-Meta-Data\r
+ldapDisplayName: msDS-ReplValueMetaData\r
+attributeId: 1.2.840.113556.1.4.1708\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 2f5c8145-e1bd-410b-8957-8bfa81d5acfd\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Resultant-PSO\r
+ldapDisplayName: msDS-ResultantPSO\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+isSingleValued: TRUE\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+schemaIdGuid: b77ea093-88d0-4780-9a98-911f8e8b1dca\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: meetingIsEncrypted\r
+ldapDisplayName: meetingIsEncrypted\r
+attributeId: 1.2.840.113556.1.4.585\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 11b6cc8e-48c4-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-Retired-Repl-NC-Signatures\r
+ldapDisplayName: msDS-RetiredReplNCSignatures\r
+attributeId: 1.2.840.113556.1.4.1826\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: d5b35506-19d6-4d26-9afb-11357ac99b5e\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Revealed-DSAs\r
+ldapDisplayName: msDS-RevealedDSAs\r
+attributeId: 1.2.840.113556.1.4.1930\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 94f6f2ac-c76d-4b5e-b71f-f332c3e93c22\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+linkID: 2103\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Revealed-List\r
+ldapDisplayName: msDS-RevealedList\r
+attributeId: 1.2.840.113556.1.4.1940\r
+attributeSyntax: 2.5.5.14\r
+omSyntax: 127\r
+omObjectClass: 1.2.840.113556.1.1.1.12\r
+isSingleValued: FALSE\r
+schemaIdGuid: cbdad11c-7fec-387b-6219-3a0627d9af81\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Revealed-List-BL\r
+ldapDisplayName: msDS-RevealedListBL\r
+attributeId: 1.2.840.113556.1.4.1975\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: aa1c88fd-b0f6-429f-b2ca-9d902266e808\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Revealed-Users\r
+ldapDisplayName: msDS-RevealedUsers\r
+attributeId: 1.2.840.113556.1.4.1924\r
+attributeSyntax: 2.5.5.7\r
+omSyntax: 127\r
+omObjectClass: 1.2.840.113556.1.1.1.11\r
+isSingleValued: FALSE\r
+schemaIdGuid: 185c7821-3749-443a-bd6a-288899071adb\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+linkID: 2102\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Reveal-OnDemand-Group\r
+ldapDisplayName: msDS-RevealOnDemandGroup\r
+attributeId: 1.2.840.113556.1.4.1928\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 303d9f4a-1dd6-4b38-8fc5-33afe8c988ad\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+linkID: 2110\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-ds-Schema-Extensions\r
+ldapDisplayName: msDs-Schema-Extensions\r
+attributeId: 1.2.840.113556.1.4.1440\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: b39a61be-ed07-4cab-9a4a-4963ed0141e1\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-SD-Reference-Domain\r
+ldapDisplayName: msDS-SDReferenceDomain\r
+attributeId: 1.2.840.113556.1.4.1711\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: 4c51e316-f628-43a5-b06b-ffb695fcb4f3\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+linkID: 2000\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Secondary-KrbTgt-Number\r
+ldapDisplayName: msDS-SecondaryKrbTgtNumber\r
+attributeId: 1.2.840.113556.1.4.1929\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: aa156612-2396-467e-ad6a-28d23fdb1865\r
+systemOnly: TRUE\r
+searchFlags: fATTINDEX\r
+rangeLower: 65536\r
+rangeUpper: 65536\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Security-Group-Extra-Classes\r
+ldapDisplayName: msDS-Security-Group-Extra-Classes\r
+attributeId: 1.2.840.113556.1.4.1688\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 4f146ae8-a4fe-4801-a731-f51848a4f4e4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: meetingKeyword\r
+ldapDisplayName: meetingKeyword\r
+attributeId: 1.2.840.113556.1.4.568\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 11b6cc7f-48c4-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-Settings\r
+ldapDisplayName: msDS-Settings\r
+attributeId: 1.2.840.113556.1.4.1697\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 0e1b47d7-40a3-4b48-8d1b-4cac0c1cdf21\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 1000000\r
+\r
+cn: ms-DS-SiteName\r
+ldapDisplayName: msDS-SiteName\r
+attributeId: 1.2.840.113556.1.4.1961\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 98a7f36d-3595-448a-9e6f-6b8965baed9c\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Site-Affinity\r
+ldapDisplayName: msDS-Site-Affinity\r
+attributeId: 1.2.840.113556.1.4.1443\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: c17c5602-bcb7-46f0-9656-6370ca884b72\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Source-Object-DN\r
+ldapDisplayName: msDS-SourceObjectDN\r
+attributeId: 1.2.840.113556.1.4.1879\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 773e93af-d3b4-48d4-b3f9-06457602d3d0\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 10240\r
+\r
+cn: ms-DS-SPN-Suffixes\r
+ldapDisplayName: msDS-SPNSuffixes\r
+attributeId: 1.2.840.113556.1.4.1715\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 789ee1eb-8c8e-4e4c-8cec-79b31b7617b5\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 255\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Supported-Encryption-Types\r
+ldapDisplayName: msDS-SupportedEncryptionTypes\r
+attributeId: 1.2.840.113556.1.4.1963\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 20119867-1d04-4ab7-9371-cfc3d5df0afd\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Tasks-For-Az-Role\r
+ldapDisplayName: msDS-TasksForAzRole\r
+attributeId: 1.2.840.113556.1.4.1814\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 35319082-8c4a-4646-9386-c2949d49894d\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+linkID: 2024\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-Tasks-For-Az-Role-BL\r
+ldapDisplayName: msDS-TasksForAzRoleBL\r
+attributeId: 1.2.840.113556.1.4.1815\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: a0dcd536-5158-42fe-8c40-c00a7ad37959\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+linkID: 2025\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+\r
+cn: ms-DS-Tasks-For-Az-Task\r
+ldapDisplayName: msDS-TasksForAzTask\r
+attributeId: 1.2.840.113556.1.4.1810\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: b11c8ee2-5fcd-46a7-95f0-f38333f096cf\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+linkID: 2020\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Machine-Password-Change-Interval\r
+ldapDisplayName: machinePasswordChangeInterval\r
+attributeId: 1.2.840.113556.1.4.520\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: c9b6358e-bb38-11d0-afef-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+attributeSecurityGuid: a29b89fe-c7e8-11d0-9bae-00c04fd92ef5\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: meetingLanguage\r
+ldapDisplayName: meetingLanguage\r
+attributeId: 1.2.840.113556.1.4.574\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 11b6cc84-48c4-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-Tasks-For-Az-Task-BL\r
+ldapDisplayName: msDS-TasksForAzTaskBL\r
+attributeId: 1.2.840.113556.1.4.1811\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: df446e52-b5fa-4ca2-a42f-13f98a526c8f\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+linkID: 2021\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+\r
+cn: ms-DS-Tombstone-Quota-Factor\r
+ldapDisplayName: msDS-TombstoneQuotaFactor\r
+attributeId: 1.2.840.113556.1.4.1847\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 461744d7-f3b6-45ba-8753-fb9552a5df32\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 100\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Top-Quota-Usage\r
+ldapDisplayName: msDS-TopQuotaUsage\r
+attributeId: 1.2.840.113556.1.4.1850\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 7b7cce4f-f1f5-4bb6-b7eb-23504af19e75\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-Trust-Forest-Trust-Info\r
+ldapDisplayName: msDS-TrustForestTrustInfo\r
+attributeId: 1.2.840.113556.1.4.1702\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 29cc866e-49d3-4969-942e-1dbc0925d183\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-UpdateScript\r
+ldapDisplayName: msDS-UpdateScript\r
+attributeId: 1.2.840.113556.1.4.1721\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 146eb639-bb9f-4fc1-a825-e29e00c77920\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-User-Account-Control-Computed\r
+ldapDisplayName: msDS-User-Account-Control-Computed\r
+attributeId: 1.2.840.113556.1.4.1460\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 2cc4b836-b63f-4940-8d23-ea7acf06af56\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+attributeSecurityGuid: 4c164200-20c0-11d0-a768-00aa006e0529\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-DS-User-Password-Expiry-Time-Computed\r
+ldapDisplayName: msDS-UserPasswordExpiryTimeComputed\r
+attributeId: 1.2.840.113556.1.4.1996\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: add5cf10-7b09-4449-9ae6-2534148f8a72\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+attributeSecurityGuid: 4c164200-20c0-11d0-a768-00aa006e0529\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-Exch-Assistant-Name\r
+ldapDisplayName: msExchAssistantName\r
+attributeId: 1.2.840.113556.1.2.444\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: a8df7394-c5ea-11d1-bbcb-0080c76670c0\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 256\r
+mapiID: 14896\r
+\r
+cn: ms-Exch-House-Identifier\r
+ldapDisplayName: msExchHouseIdentifier\r
+attributeId: 1.2.840.113556.1.2.596\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: a8df7407-c5ea-11d1-bbcb-0080c76670c0\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 128\r
+mapiID: 35924\r
+\r
+cn: ms-Exch-LabeledURI\r
+ldapDisplayName: msExchLabeledURI\r
+attributeId: 1.2.840.113556.1.2.593\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 16775820-47f3-11d1-a9c3-0000f80367c1\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 1024\r
+mapiID: 35921\r
+\r
+cn: meetingLocation\r
+ldapDisplayName: meetingLocation\r
+attributeId: 1.2.840.113556.1.4.569\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 11b6cc80-48c4-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-FRS-Hub-Member\r
+ldapDisplayName: msFRS-Hub-Member\r
+attributeId: 1.2.840.113556.1.4.1693\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: 5643ff81-35b6-4ca9-9512-baf0bd0a2772\r
+searchFlags: 0\r
+linkID: 1046\r
+\r
+cn: ms-FRS-Topology-Pref\r
+ldapDisplayName: msFRS-Topology-Pref\r
+attributeId: 1.2.840.113556.1.4.1692\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 92aa27e0-5c50-402d-9ec1-ee847def9788\r
+searchFlags: 0\r
+\r
+cn: ms-FVE-KeyPackage\r
+ldapDisplayName: msFVE-KeyPackage\r
+attributeId: 1.2.840.113556.1.4.1999\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+rangeUpper: 102400\r
+schemaIdGuid: 1fd55ea8-88a7-47dc-8129-0daa-97186a54\r
+searchFlags: fRODCFilteredAttribute | fCONFIDENTIAL | fCOPY |fPRESERVEONDELETE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-FVE-RecoveryGuid\r
+ldapDisplayName: msFVE-RecoveryGuid\r
+attributeId: 1.2.840.113556.1.4.1965\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: f76909bc-e678-47a0-b0b3-f86a0044c06d\r
+searchFlags: fCOPY | fPRESERVEONDELETE | fPDNTATTINDEX | fATTINDEX\r
+rangeUpper: 128\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-FVE-RecoveryPassword\r
+ldapDisplayName: msFVE-RecoveryPassword\r
+attributeId: 1.2.840.113556.1.4.1964\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+rangeUpper: 256\r
+schemaIdGuid: 43061ac1-c8ad-4ccc-b785-2bfac20fc60a\r
+searchFlags: fRODCFilteredAttribute | fCONFIDENTIAL | fCOPY |fPRESERVEONDELETE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-FVE-VolumeGuid\r
+ldapDisplayName: msFVE-VolumeGuid\r
+attributeId: 1.2.840.113556.1.4.1965\r
+attributeId: 1.2.840.113556.1.4.1998\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+searchFlags: fCOPY | fPRESERVEONDELETE | fPDNTATTINDEX | fATTINDEX\r
+rangeUpper: 128\r
+schemaIdGuid: 85e5a5cf-dcee-4075-9cfd-ac9db6a2f245\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-ieee-80211-Data\r
+ldapDisplayName: msieee80211-Data\r
+attributeId: 1.2.840.113556.1.4.1821\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 0e0d0938-2658-4580-a9f6-7a0ac7b566cb\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-ieee-80211-Data-Type\r
+ldapDisplayName: msieee80211-DataType\r
+attributeId: 1.2.840.113556.1.4.1822\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 6558b180-35da-4efe-beed-521f8f48cafb\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-ieee-80211-ID\r
+ldapDisplayName: msieee80211-ID\r
+attributeId: 1.2.840.113556.1.4.1823\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 7f73ef75-14c9-4c23-81de-dd07a06f9e8b\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Msi-File-List\r
+ldapDisplayName: msiFileList\r
+attributeId: 1.2.840.113556.1.4.671\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 7bfdcb7d-4807-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: meetingMaxParticipants\r
+ldapDisplayName: meetingMaxParticipants\r
+attributeId: 1.2.840.113556.1.4.576\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 11b6cc85-48c4-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-IIS-FTP-Dir\r
+ldapDisplayName: msIIS-FTPDir\r
+attributeId: 1.2.840.113556.1.4.1786\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 8a5c99e9-2230-46eb-b8e8-e59d712eb9ee\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 256\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-IIS-FTP-Root\r
+ldapDisplayName: msIIS-FTPRoot\r
+attributeId: 1.2.840.113556.1.4.1785\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 2a7827a4-1483-49a5-9d84-52e3812156b4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 256\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Msi-Script\r
+ldapDisplayName: msiScript\r
+attributeId: 1.2.840.113556.1.4.814\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: d9e18313-8939-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Msi-Script-Name\r
+ldapDisplayName: msiScriptName\r
+attributeId: 1.2.840.113556.1.4.845\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 96a7dd62-9118-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Msi-Script-Path\r
+ldapDisplayName: msiScriptPath\r
+attributeId: 1.2.840.113556.1.4.15\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967937-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Msi-Script-Size\r
+ldapDisplayName: msiScriptSize\r
+attributeId: 1.2.840.113556.1.4.846\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 96a7dd63-9118-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Multicast-Address\r
+ldapDisplayName: MSMQ-MulticastAddress\r
+attributeId: 1.2.840.113556.1.4.1714\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 1d2f4412-f10d-4337-9b48-6e5b125cd265\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 9\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Recipient-FormatName\r
+ldapDisplayName: msMQ-Recipient-FormatName\r
+attributeId: 1.2.840.113556.1.4.1695\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 3bfe6748-b544-485a-b067-1b310c4334bf\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 255\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Secured-Source\r
+ldapDisplayName: MSMQ-SecuredSource\r
+attributeId: 1.2.840.113556.1.4.1713\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: 8bf0221b-7a06-4d63-91f0-1499941813d3\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Authenticate\r
+ldapDisplayName: mSMQAuthenticate\r
+attributeId: 1.2.840.113556.1.4.923\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: 9a0dc326-c100-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: meetingName\r
+ldapDisplayName: meetingName\r
+attributeId: 1.2.840.113556.1.4.566\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 11b6cc7d-48c4-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Base-Priority\r
+ldapDisplayName: mSMQBasePriority\r
+attributeId: 1.2.840.113556.1.4.920\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 9a0dc323-c100-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Computer-Type\r
+ldapDisplayName: mSMQComputerType\r
+attributeId: 1.2.840.113556.1.4.933\r
+attributeSyntax: 2.5.5.4\r
+omSyntax: 20\r
+isSingleValued: TRUE\r
+schemaIdGuid: 9a0dc32e-c100-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Computer-Type-Ex\r
+ldapDisplayName: mSMQComputerTypeEx\r
+attributeId: 1.2.840.113556.1.4.1417\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 18120de8-f4c4-4341-bd95-32eb5bcf7c80\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Cost\r
+ldapDisplayName: mSMQCost\r
+attributeId: 1.2.840.113556.1.4.946\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 9a0dc33a-c100-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-CSP-Name\r
+ldapDisplayName: mSMQCSPName\r
+attributeId: 1.2.840.113556.1.4.940\r
+attributeSyntax: 2.5.5.4\r
+omSyntax: 20\r
+isSingleValued: TRUE\r
+schemaIdGuid: 9a0dc334-c100-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Dependent-Client-Service\r
+ldapDisplayName: mSMQDependentClientService\r
+attributeId: 1.2.840.113556.1.4.1239\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: 2df90d83-009f-11d2-aa4c-00c04fd7d83a\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Dependent-Client-Services\r
+ldapDisplayName: mSMQDependentClientServices\r
+attributeId: 1.2.840.113556.1.4.1226\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: 2df90d76-009f-11d2-aa4c-00c04fd7d83a\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Digests\r
+ldapDisplayName: mSMQDigests\r
+attributeId: 1.2.840.113556.1.4.948\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: 9a0dc33c-c100-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+rangeLower: 16\r
+rangeUpper: 16\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Digests-Mig\r
+ldapDisplayName: mSMQDigestsMig\r
+attributeId: 1.2.840.113556.1.4.966\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: 0f71d8e0-da3b-11d1-90a5-00c04fd91ab1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Ds-Service\r
+ldapDisplayName: mSMQDsService\r
+attributeId: 1.2.840.113556.1.4.1238\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: 2df90d82-009f-11d2-aa4c-00c04fd7d83a\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: meetingOriginator\r
+ldapDisplayName: meetingOriginator\r
+attributeId: 1.2.840.113556.1.4.577\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 11b6cc86-48c4-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Ds-Services\r
+ldapDisplayName: mSMQDsServices\r
+attributeId: 1.2.840.113556.1.4.1228\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: 2df90d78-009f-11d2-aa4c-00c04fd7d83a\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Encrypt-Key\r
+ldapDisplayName: mSMQEncryptKey\r
+attributeId: 1.2.840.113556.1.4.936\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 9a0dc331-c100-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Foreign\r
+ldapDisplayName: mSMQForeign\r
+attributeId: 1.2.840.113556.1.4.934\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: 9a0dc32f-c100-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-In-Routing-Servers\r
+ldapDisplayName: mSMQInRoutingServers\r
+attributeId: 1.2.840.113556.1.4.929\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 9a0dc32c-c100-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Interval1\r
+ldapDisplayName: mSMQInterval1\r
+attributeId: 1.2.840.113556.1.4.1308\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 8ea825aa-3b7b-11d2-90cc-00c04fd91ab1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Interval2\r
+ldapDisplayName: mSMQInterval2\r
+attributeId: 1.2.840.113556.1.4.1309\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 99b88f52-3b7b-11d2-90cc-00c04fd91ab1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Journal\r
+ldapDisplayName: mSMQJournal\r
+attributeId: 1.2.840.113556.1.4.918\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: 9a0dc321-c100-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Journal-Quota\r
+ldapDisplayName: mSMQJournalQuota\r
+attributeId: 1.2.840.113556.1.4.921\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 9a0dc324-c100-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Label\r
+ldapDisplayName: mSMQLabel\r
+attributeId: 1.2.840.113556.1.4.922\r
+attributeSyntax: 2.5.5.4\r
+omSyntax: 20\r
+isSingleValued: TRUE\r
+schemaIdGuid: 9a0dc325-c100-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+rangeLower: 0\r
+rangeUpper: 124\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Label-Ex\r
+ldapDisplayName: mSMQLabelEx\r
+attributeId: 1.2.840.113556.1.4.1415\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 4580ad25-d407-48d2-ad24-43e6e56793d7\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+rangeLower: 0\r
+rangeUpper: 124\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: meetingOwner\r
+ldapDisplayName: meetingOwner\r
+attributeId: 1.2.840.113556.1.4.579\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 11b6cc88-48c4-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Long-Lived\r
+ldapDisplayName: mSMQLongLived\r
+attributeId: 1.2.840.113556.1.4.941\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 9a0dc335-c100-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Migrated\r
+ldapDisplayName: mSMQMigrated\r
+attributeId: 1.2.840.113556.1.4.952\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: 9a0dc33f-c100-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Name-Style\r
+ldapDisplayName: mSMQNameStyle\r
+attributeId: 1.2.840.113556.1.4.939\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: 9a0dc333-c100-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Nt4-Flags\r
+ldapDisplayName: mSMQNt4Flags\r
+attributeId: 1.2.840.113556.1.4.964\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: eb38a158-d57f-11d1-90a2-00c04fd91ab1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Nt4-Stub\r
+ldapDisplayName: mSMQNt4Stub\r
+attributeId: 1.2.840.113556.1.4.960\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: FALSE\r
+schemaIdGuid: 6f914be6-d57e-11d1-90a2-00c04fd91ab1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-OS-Type\r
+ldapDisplayName: mSMQOSType\r
+attributeId: 1.2.840.113556.1.4.935\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 9a0dc330-c100-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Out-Routing-Servers\r
+ldapDisplayName: mSMQOutRoutingServers\r
+attributeId: 1.2.840.113556.1.4.928\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 9a0dc32b-c100-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Owner-ID\r
+ldapDisplayName: mSMQOwnerID\r
+attributeId: 1.2.840.113556.1.4.925\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 9a0dc328-c100-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: fPRESERVEONDELETE | fATTINDEX\r
+rangeLower: 16\r
+rangeUpper: 16\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: MSMQ-Prev-Site-Gates\r
+ldapDisplayName: mSMQPrevSiteGates\r
+attributeId: 1.2.840.113556.1.4.1225\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 2df90d75-009f-11d2-aa4c-00c04fd7d83a\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Privacy-Level\r
+ldapDisplayName: mSMQPrivacyLevel\r
+attributeId: 1.2.840.113556.1.4.924\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 10\r
+isSingleValued: TRUE\r
+schemaIdGuid: 9a0dc327-c100-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 2\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: meetingProtocol\r
+ldapDisplayName: meetingProtocol\r
+attributeId: 1.2.840.113556.1.4.570\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 11b6cc81-48c4-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-QM-ID\r
+ldapDisplayName: mSMQQMID\r
+attributeId: 1.2.840.113556.1.4.951\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 9a0dc33e-c100-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 16\r
+rangeUpper: 16\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Queue-Journal-Quota\r
+ldapDisplayName: mSMQQueueJournalQuota\r
+attributeId: 1.2.840.113556.1.4.963\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 8e441266-d57f-11d1-90a2-00c04fd91ab1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Queue-Name-Ext\r
+ldapDisplayName: mSMQQueueNameExt\r
+attributeId: 1.2.840.113556.1.4.1243\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 2df90d87-009f-11d2-aa4c-00c04fd7d83a\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 92\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Queue-Quota\r
+ldapDisplayName: mSMQQueueQuota\r
+attributeId: 1.2.840.113556.1.4.962\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 3f6b8e12-d57f-11d1-90a2-00c04fd91ab1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Queue-Type\r
+ldapDisplayName: mSMQQueueType\r
+attributeId: 1.2.840.113556.1.4.917\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 9a0dc320-c100-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+rangeLower: 16\r
+rangeUpper: 16\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Quota\r
+ldapDisplayName: mSMQQuota\r
+attributeId: 1.2.840.113556.1.4.919\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 9a0dc322-c100-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Routing-Service\r
+ldapDisplayName: mSMQRoutingService\r
+attributeId: 1.2.840.113556.1.4.1237\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: 2df90d81-009f-11d2-aa4c-00c04fd7d83a\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Routing-Services\r
+ldapDisplayName: mSMQRoutingServices\r
+attributeId: 1.2.840.113556.1.4.1227\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: 2df90d77-009f-11d2-aa4c-00c04fd7d83a\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Services\r
+ldapDisplayName: mSMQServices\r
+attributeId: 1.2.840.113556.1.4.950\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 9a0dc33d-c100-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Service-Type\r
+ldapDisplayName: mSMQServiceType\r
+attributeId: 1.2.840.113556.1.4.930\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 9a0dc32d-c100-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: meetingRating\r
+ldapDisplayName: meetingRating\r
+attributeId: 1.2.840.113556.1.4.584\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 11b6cc8d-48c4-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Sign-Certificates\r
+ldapDisplayName: mSMQSignCertificates\r
+attributeId: 1.2.840.113556.1.4.947\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 9a0dc33b-c100-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 1048576\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Sign-Certificates-Mig\r
+ldapDisplayName: mSMQSignCertificatesMig\r
+attributeId: 1.2.840.113556.1.4.967\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 3881b8ea-da3b-11d1-90a5-00c04fd91ab1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 1048576\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Sign-Key\r
+ldapDisplayName: mSMQSignKey\r
+attributeId: 1.2.840.113556.1.4.937\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 9a0dc332-c100-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Site-1\r
+ldapDisplayName: mSMQSite1\r
+attributeId: 1.2.840.113556.1.4.943\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: 9a0dc337-c100-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Site-2\r
+ldapDisplayName: mSMQSite2\r
+attributeId: 1.2.840.113556.1.4.944\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: 9a0dc338-c100-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Site-Foreign\r
+ldapDisplayName: mSMQSiteForeign\r
+attributeId: 1.2.840.113556.1.4.961\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: FALSE\r
+schemaIdGuid: fd129d8a-d57e-11d1-90a2-00c04fd91ab1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Site-Gates\r
+ldapDisplayName: mSMQSiteGates\r
+attributeId: 1.2.840.113556.1.4.945\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 9a0dc339-c100-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Site-Gates-Mig\r
+ldapDisplayName: mSMQSiteGatesMig\r
+attributeId: 1.2.840.113556.1.4.1310\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: e2704852-3b7b-11d2-90cc-00c04fd91ab1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Site-ID\r
+ldapDisplayName: mSMQSiteID\r
+attributeId: 1.2.840.113556.1.4.953\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 9a0dc340-c100-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Site-Name\r
+ldapDisplayName: mSMQSiteName\r
+attributeId: 1.2.840.113556.1.4.965\r
+attributeSyntax: 2.5.5.4\r
+omSyntax: 20\r
+isSingleValued: TRUE\r
+schemaIdGuid: ffadb4b2-de39-11d1-90a5-00c04fd91ab1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: meetingRecurrence\r
+ldapDisplayName: meetingRecurrence\r
+attributeId: 1.2.840.113556.1.4.586\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 11b6cc8f-48c4-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Site-Name-Ex\r
+ldapDisplayName: mSMQSiteNameEx\r
+attributeId: 1.2.840.113556.1.4.1416\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 422144fa-c17f-4649-94d6-9731ed2784ed\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Sites\r
+ldapDisplayName: mSMQSites\r
+attributeId: 1.2.840.113556.1.4.927\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: 9a0dc32a-c100-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 16\r
+rangeUpper: 16\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Transactional\r
+ldapDisplayName: mSMQTransactional\r
+attributeId: 1.2.840.113556.1.4.926\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: 9a0dc329-c100-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-User-Sid\r
+ldapDisplayName: mSMQUserSid\r
+attributeId: 1.2.840.113556.1.4.1337\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: c58aae32-56f9-11d2-90d0-00c04fd91ab1\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 128\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER\r
+\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Version\r
+ldapDisplayName: mSMQVersion\r
+attributeId: 1.2.840.113556.1.4.942\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 9a0dc336-c100-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: msNPAllowDialin\r
+ldapDisplayName: msNPAllowDialin\r
+attributeId: 1.2.840.113556.1.4.1119\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: db0c9085-c1f2-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+attributeSecurityGuid: 037088f8-0ae1-11d2-b422-00a0c968f939\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: msNPCalledStationID\r
+ldapDisplayName: msNPCalledStationID\r
+attributeId: 1.2.840.113556.1.4.1123\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 22\r
+isSingleValued: FALSE\r
+schemaIdGuid: db0c9089-c1f2-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: msNPCallingStationID\r
+ldapDisplayName: msNPCallingStationID\r
+attributeId: 1.2.840.113556.1.4.1124\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 22\r
+isSingleValued: FALSE\r
+schemaIdGuid: db0c908a-c1f2-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+attributeSecurityGuid: 037088f8-0ae1-11d2-b422-00a0c968f939\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: msNPSavedCallingStationID\r
+ldapDisplayName: msNPSavedCallingStationID\r
+attributeId: 1.2.840.113556.1.4.1130\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 22\r
+isSingleValued: FALSE\r
+schemaIdGuid: db0c908e-c1f2-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-PKI-Cert-Template-OID\r
+ldapDisplayName: msPKI-Cert-Template-OID\r
+attributeId: 1.2.840.113556.1.4.1436\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 3164c36a-ba26-468c-8bda-c1e5cc256728\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: meetingScope\r
+ldapDisplayName: meetingScope\r
+attributeId: 1.2.840.113556.1.4.581\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 11b6cc8a-48c4-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-PKI-Certificate-Application-Policy\r
+ldapDisplayName: msPKI-Certificate-Application-Policy\r
+attributeId: 1.2.840.113556.1.4.1674\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: dbd90548-aa37-4202-9966-8c537ba5ce32\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-PKI-Certificate-Name-Flag\r
+ldapDisplayName: msPKI-Certificate-Name-Flag\r
+attributeId: 1.2.840.113556.1.4.1432\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: ea1dddc4-60ff-416e-8cc0-17cee534bce7\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-PKI-Certificate-Policy\r
+ldapDisplayName: msPKI-Certificate-Policy\r
+attributeId: 1.2.840.113556.1.4.1439\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 38942346-cc5b-424b-a7d8-6ffd12029c5f\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-PKI-Enrollment-Flag\r
+ldapDisplayName: msPKI-Enrollment-Flag\r
+attributeId: 1.2.840.113556.1.4.1430\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: d15ef7d8-f226-46db-ae79-b34e560bd12c\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-PKI-Minimal-Key-Size\r
+ldapDisplayName: msPKI-Minimal-Key-Size\r
+attributeId: 1.2.840.113556.1.4.1433\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: e96a63f5-417f-46d3-be52-db7703c503df\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-PKI-OID-Attribute\r
+ldapDisplayName: msPKI-OID-Attribute\r
+attributeId: 1.2.840.113556.1.4.1671\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 8c9e1288-5028-4f4f-a704-76d026f246ef\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-PKI-OID-CPS\r
+ldapDisplayName: msPKI-OID-CPS\r
+attributeId: 1.2.840.113556.1.4.1672\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 5f49940e-a79f-4a51-bb6f-3d446a54dc6b\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 32768\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-PKI-OID-User-Notice\r
+ldapDisplayName: msPKI-OID-User-Notice\r
+attributeId: 1.2.840.113556.1.4.1673\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 04c4da7a-e114-4e69-88de-e293f2d3b395\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 32768\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-PKI-OID-LocalizedName\r
+ldapDisplayName: msPKI-OIDLocalizedName\r
+attributeId: 1.2.840.113556.1.4.1712\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 7d59a816-bb05-4a72-971f-5c1331f67559\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 512\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-PKI-Private-Key-Flag\r
+ldapDisplayName: msPKI-Private-Key-Flag\r
+attributeId: 1.2.840.113556.1.4.1431\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: bab04ac2-0435-4709-9307-28380e7c7001\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Machine-Role\r
+ldapDisplayName: machineRole\r
+attributeId: 1.2.840.113556.1.4.71\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 10\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf9679b2-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: meetingStartTime\r
+ldapDisplayName: meetingStartTime\r
+attributeId: 1.2.840.113556.1.4.587\r
+attributeSyntax: 2.5.5.11\r
+omSyntax: 23\r
+isSingleValued: FALSE\r
+schemaIdGuid: 11b6cc90-48c4-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-PKI-RA-Application-Policies\r
+ldapDisplayName: msPKI-RA-Application-Policies\r
+attributeId: 1.2.840.113556.1.4.1675\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 3c91fbbf-4773-4ccd-a87b-85d53e7bcf6a\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-PKI-RA-Policies\r
+ldapDisplayName: msPKI-RA-Policies\r
+attributeId: 1.2.840.113556.1.4.1438\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: d546ae22-0951-4d47-817e-1c9f96faad46\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-PKI-RA-Signature\r
+ldapDisplayName: msPKI-RA-Signature\r
+attributeId: 1.2.840.113556.1.4.1429\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: fe17e04b-937d-4f7e-8e0e-9292c8d5683e\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-PKI-Supersede-Templates\r
+ldapDisplayName: msPKI-Supersede-Templates\r
+attributeId: 1.2.840.113556.1.4.1437\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 9de8ae7d-7a5b-421d-b5e4-061f79dfd5d7\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-PKI-Template-Minor-Revision\r
+ldapDisplayName: msPKI-Template-Minor-Revision\r
+attributeId: 1.2.840.113556.1.4.1435\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 13f5236c-1884-46b1-b5d0-484e38990d58\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-PKI-Template-Schema-Version\r
+ldapDisplayName: msPKI-Template-Schema-Version\r
+attributeId: 1.2.840.113556.1.4.1434\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 0c15e9f5-491d-4594-918f-32813a091da9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-PKI-AccountCredentials\r
+ldapDisplayName: msPKIAccountCredentials\r
+attributeId: 1.2.840.113556.1.4.1894\r
+attributeSyntax: 2.5.5.7\r
+omSyntax: 127\r
+omObjectClass: 1.2.840.113556.1.1.1.11\r
+isSingleValued: FALSE\r
+schemaIdGuid: b8dfa744-31dc-4ef1-ac7c-84baf7ef9da7\r
+systemOnly: FALSE\r
+searchFlags: fCONFIDENTIAL | fRODCFilteredAttribute\r
+attributeSecurityGuid: 91e647de-d96f-4b70-9557-d63ff4f3ccd8\r
+linkID: 2048\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-PKI-DPAPIMasterKeys\r
+ldapDisplayName: msPKIDPAPIMasterKeys\r
+attributeId: 1.2.840.113556.1.4.1893\r
+attributeSyntax: 2.5.5.7\r
+omSyntax: 127\r
+omObjectClass: 1.2.840.113556.1.1.1.11\r
+isSingleValued: FALSE\r
+schemaIdGuid: b3f93023-9239-4f7c-b99c-6745d87adbc2\r
+systemOnly: FALSE\r
+searchFlags: fCONFIDENTAIL | fRODCFilteredAttribute\r
+attributeSecurityGuid: 91e647de-d96f-4b70-9557-d63ff4f3ccd8\r
+linkID: 2046\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-PKI-RoamingTimeStamp\r
+ldapDisplayName: msPKIRoamingTimeStamp\r
+attributeId: 1.2.840.113556.1.4.1892\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 6617e4ac-a2f1-43ab-b60c-11fbd1facf05\r
+systemOnly: FALSE\r
+searchFlags: fCONFIDENTIAL | fRODCFilteredAttribute\r
+attributeSecurityGuid: 91e647de-d96f-4b70-9557-d63ff4f3ccd8\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: msRADIUSCallbackNumber\r
+ldapDisplayName: msRADIUSCallbackNumber\r
+attributeId: 1.2.840.113556.1.4.1145\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 22\r
+isSingleValued: TRUE\r
+schemaIdGuid: db0c909c-c1f2-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+attributeSecurityGuid: 037088f8-0ae1-11d2-b422-00a0c968f939\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: meetingType\r
+ldapDisplayName: meetingType\r
+attributeId: 1.2.840.113556.1.4.571\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 11b6cc82-48c4-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-RADIUS-FramedInterfaceId\r
+ldapDisplayName: msRADIUS-FramedInterfaceId\r
+attributeId: 1.2.840.113556.1.4.1913\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 22\r
+isSingleValued: TRUE\r
+schemaIdGuid: a6f24a23-d65c-4d65-a64f-35fb6873c2b9\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+rangeUpper: 8\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: msRADIUSFramedIPAddress\r
+ldapDisplayName: msRADIUSFramedIPAddress\r
+attributeId: 1.2.840.113556.1.4.1153\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: db0c90a4-c1f2-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+attributeSecurityGuid: 037088f8-0ae1-11d2-b422-00a0c968f939\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-RADIUS-FramedIpv6Prefix\r
+ldapDisplayName: msRADIUS-FramedIpv6Prefix\r
+attributeId: 1.2.840.113556.1.4.1915\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 22\r
+isSingleValued: TRUE\r
+schemaIdGuid: f63ed610-d67c-494d-87be-cd1e24359a38\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+rangeUpper: 16\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-RADIUS-FramedIpv6Route\r
+ldapDisplayName: msRADIUS-FramedIpv6Route\r
+attributeId: 1.2.840.113556.1.4.1917\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 22\r
+isSingleValued: FALSE\r
+schemaIdGuid: 5a5aa804-3083-4863-94e5-018a79a22ec0\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+rangeUpper: 4096\r
+\r
+cn: msRADIUSFramedRoute\r
+ldapDisplayName: msRADIUSFramedRoute\r
+attributeId: 1.2.840.113556.1.4.1158\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 22\r
+isSingleValued: FALSE\r
+schemaIdGuid: db0c90a9-c1f2-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+attributeSecurityGuid: 037088f8-0ae1-11d2-b422-00a0c968f939\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-RADIUS-SavedFramedInterfaceId\r
+ldapDisplayName: msRADIUS-SavedFramedInterfaceId\r
+attributeId: 1.2.840.113556.1.4.1914\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 22\r
+isSingleValued: TRUE\r
+schemaIdGuid: a4da7289-92a3-42e5-b6b6-dad16d280ac9\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+rangeUpper: 8\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-RADIUS-SavedFramedIpv6Prefix\r
+ldapDisplayName: msRADIUS-SavedFramedIpv6Prefix\r
+attributeId: 1.2.840.113556.1.4.1916\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 22\r
+isSingleValued: TRUE\r
+schemaIdGuid: 0965a062-b1e1-403b-b48d-5c0eb0e952cc\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+rangeUpper: 16\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-RADIUS-SavedFramedIpv6Route\r
+ldapDisplayName: msRADIUS-SavedFramedIpv6Route\r
+attributeId: 1.2.840.113556.1.4.1918\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 22\r
+isSingleValued: FALSE\r
+schemaIdGuid: 9666bb5c-df9d-4d41-b437-2eec7e27c9b3\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+rangeUpper: 4096\r
+\r
+cn: msRADIUSServiceType\r
+ldapDisplayName: msRADIUSServiceType\r
+attributeId: 1.2.840.113556.1.4.1171\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: db0c90b6-c1f2-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+attributeSecurityGuid: 037088f8-0ae1-11d2-b422-00a0c968f939\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: msRASSavedCallbackNumber\r
+ldapDisplayName: msRASSavedCallbackNumber\r
+attributeId: 1.2.840.113556.1.4.1189\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 22\r
+isSingleValued: TRUE\r
+schemaIdGuid: db0c90c5-c1f2-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: meetingURL\r
+ldapDisplayName: meetingURL\r
+attributeId: 1.2.840.113556.1.4.583\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 11b6cc8c-48c4-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: msRASSavedFramedIPAddress\r
+ldapDisplayName: msRASSavedFramedIPAddress\r
+attributeId: 1.2.840.113556.1.4.1190\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: db0c90c6-c1f2-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: msRASSavedFramedRoute\r
+ldapDisplayName: msRASSavedFramedRoute\r
+attributeId: 1.2.840.113556.1.4.1191\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 22\r
+isSingleValued: FALSE\r
+schemaIdGuid: db0c90c7-c1f2-11d1-bbc5-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-RRAS-Attribute\r
+ldapDisplayName: msRRASAttribute\r
+attributeId: 1.2.840.113556.1.4.884\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: f39b98ad-938d-11d1-aebd-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-RRAS-Vendor-Attribute-Entry\r
+ldapDisplayName: msRRASVendorAttributeEntry\r
+attributeId: 1.2.840.113556.1.4.883\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: f39b98ac-938d-11d1-aebd-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: msSFU-30-Aliases\r
+ldapDisplayName: msSFU30Aliases\r
+attributeId: 1.2.840.113556.1.6.18.1.323\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 22\r
+isSingleValued: FALSE\r
+schemaIdGuid: 20ebf171-c69a-4c31-b29d-dcb837d8912d\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 153600\r
+\r
+cn: msSFU-30-Crypt-Method\r
+ldapDisplayName: msSFU30CryptMethod\r
+attributeId: 1.2.840.113556.1.6.18.1.352\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 22\r
+isSingleValued: TRUE\r
+schemaIdGuid: 4503d2a3-3d70-41b8-b077-dff123c15865\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 1024\r
+\r
+cn: msSFU-30-Domains\r
+ldapDisplayName: msSFU30Domains\r
+attributeId: 1.2.840.113556.1.6.18.1.340\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 22\r
+isSingleValued: FALSE\r
+schemaIdGuid: 93095ed3-6f30-4bdd-b734-65d569f5f7c9\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+rangeUpper: 256000\r
+\r
+cn: msSFU-30-Field-Separator\r
+ldapDisplayName: msSFU30FieldSeparator\r
+attributeId: 1.2.840.113556.1.6.18.1.302\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: a2e11a42-e781-4ca1-a7fa-ec307f62b6a1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 50\r
+\r
+cn: msSFU-30-Intra-Field-Separator\r
+ldapDisplayName: msSFU30IntraFieldSeparator\r
+attributeId: 1.2.840.113556.1.6.18.1.303\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 95b2aef0-27e4-4cb9-880a-a2d9a9ea23b8\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 50\r
+\r
+cn: msSFU-30-Is-Valid-Container\r
+ldapDisplayName: msSFU30IsValidContainer\r
+attributeId: 1.2.840.113556.1.6.18.1.350\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 0dea42f5-278d-4157-b4a7-49b59664915b\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+\r
+cn: Member\r
+ldapDisplayName: member\r
+attributeId: 2.5.4.31\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf9679c0-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+attributeSecurityGuid: bc0ac240-79a9-11d0-9020-00c04fc2d4cf\r
+linkID: 2\r
+mapiID: 32777\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: msSFU-30-Key-Attributes\r
+ldapDisplayName: msSFU30KeyAttributes\r
+attributeId: 1.2.840.113556.1.6.18.1.301\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 32ecd698-ce9e-4894-a134-7ad76b082e83\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 1024\r
+\r
+cn: msSFU-30-Key-Values\r
+ldapDisplayName: msSFU30KeyValues\r
+attributeId: 1.2.840.113556.1.6.18.1.324\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 22\r
+isSingleValued: FALSE\r
+schemaIdGuid: 37830235-e5e9-46f2-922b-d8d44f03e7ae\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 10240\r
+\r
+cn: msSFU-30-Map-Filter\r
+ldapDisplayName: msSFU30MapFilter\r
+attributeId: 1.2.840.113556.1.6.18.1.306\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: b7b16e01-024f-4e23-ad0d-71f1a406b684\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 1024\r
+\r
+cn: msSFU-30-Master-Server-Name\r
+ldapDisplayName: msSFU30MasterServerName\r
+attributeId: 1.2.840.113556.1.6.18.1.307\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 4cc908a2-9e18-410e-8459-f17cc422020a\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+rangeUpper: 1024\r
+\r
+cn: msSFU-30-Max-Gid-Number\r
+ldapDisplayName: msSFU30MaxGidNumber\r
+attributeId: 1.2.840.113556.1.6.18.1.342\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 04ee6aa6-f83b-469a-bf5a-3c00d3634669\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+\r
+cn: msSFU-30-Max-Uid-Number\r
+ldapDisplayName: msSFU30MaxUidNumber\r
+attributeId: 1.2.840.113556.1.6.18.1.343\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: ec998437-d944-4a28-8500-217588adfc75\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+\r
+cn: msSFU-30-Name\r
+ldapDisplayName: msSFU30Name\r
+attributeId: 1.2.840.113556.1.6.18.1.309\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 22\r
+isSingleValued: TRUE\r
+schemaIdGuid: 16c5d1d3-35c2-4061-a870-a5cefda804f0\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+rangeUpper: 1024\r
+\r
+cn: msSFU-30-Netgroup-Host-At-Domain\r
+ldapDisplayName: msSFU30NetgroupHostAtDomain\r
+attributeId: 1.2.840.113556.1.6.18.1.348\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 22\r
+isSingleValued: FALSE\r
+schemaIdGuid: 97d2bf65-0466-4852-a25a-ec20f57ee36c\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+rangeUpper: 2048\r
+\r
+cn: msSFU-30-Netgroup-User-At-Domain\r
+ldapDisplayName: msSFU30NetgroupUserAtDomain\r
+attributeId: 1.2.840.113556.1.6.18.1.349\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 22\r
+isSingleValued: FALSE\r
+schemaIdGuid: a9e84eed-e630-4b67-b4b3-cad2a82d345e\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+rangeUpper: 2048\r
+\r
+cn: msSFU-30-Nis-Domain\r
+ldapDisplayName: msSFU30NisDomain\r
+attributeId: 1.2.840.113556.1.6.18.1.339\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 22\r
+isSingleValued: TRUE\r
+schemaIdGuid: 9ee3b2e3-c7f3-45f8-8c9f-1382be4984d2\r
+systemOnly: FALSE\r
+searchFlags: fPRESERVEONDELETE | fATTINDEX\r
+rangeUpper: 1024\r
+\r
+cn: MemberNisNetgroup\r
+ldapDisplayName: memberNisNetgroup\r
+attributeId: 1.3.6.1.1.1.1.13\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 22\r
+isSingleValued: FALSE\r
+schemaIdGuid: 0f6a17dc-53e5-4be8-9442-8f3ce2f9012a\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 153600\r
+\r
+cn: msSFU-30-NSMAP-Field-Position\r
+ldapDisplayName: msSFU30NSMAPFieldPosition\r
+attributeId: 1.2.840.113556.1.6.18.1.345\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 22\r
+isSingleValued: TRUE\r
+schemaIdGuid: 585c9d5e-f599-4f07-9cf9-4373af4b89d3\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 1024\r
+\r
+cn: msSFU-30-Order-Number\r
+ldapDisplayName: msSFU30OrderNumber\r
+attributeId: 1.2.840.113556.1.6.18.1.308\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 02625f05-d1ee-4f9f-b366-55266becb95c\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+rangeUpper: 1024\r
+\r
+cn: msSFU-30-Posix-Member\r
+ldapDisplayName: msSFU30PosixMember\r
+attributeId: 1.2.840.113556.1.6.18.1.346\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: c875d82d-2848-4cec-bb50-3c5486d09d57\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+linkID: 2030\r
+\r
+cn: msSFU-30-Posix-Member-Of\r
+ldapDisplayName: msSFU30PosixMemberOf\r
+attributeId: 1.2.840.113556.1.6.18.1.347\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 7bd76b92-3244-438a-ada6-24f5ea34381e\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+linkID: 2031\r
+systemFlags: FLAG_ATTR_NOT_REPLICATED\r
+\r
+cn: msSFU-30-Result-Attributes\r
+ldapDisplayName: msSFU30ResultAttributes\r
+attributeId: 1.2.840.113556.1.6.18.1.305\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: e167b0b6-4045-4433-ac35-53f972d45cba\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 1024\r
+\r
+cn: msSFU-30-Search-Attributes\r
+ldapDisplayName: msSFU30SearchAttributes\r
+attributeId: 1.2.840.113556.1.6.18.1.304\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: ef9a2df0-2e57-48c8-8950-0cc674004733\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 1024\r
+\r
+cn: msSFU-30-Search-Container\r
+ldapDisplayName: msSFU30SearchContainer\r
+attributeId: 1.2.840.113556.1.6.18.1.300\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 27eebfa2-fbeb-4f8e-aad6-c50247994291\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 2048\r
+\r
+cn: msSFU-30-Yp-Servers\r
+ldapDisplayName: msSFU30YpServers\r
+attributeId: 1.2.840.113556.1.6.18.1.341\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 22\r
+isSingleValued: FALSE\r
+schemaIdGuid: 084a944b-e150-4bfe-9345-40e1aedaebba\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+rangeUpper: 20480\r
+\r
+cn: ms-TAPI-Conference-Blob\r
+ldapDisplayName: msTAPI-ConferenceBlob\r
+attributeId: 1.2.840.113556.1.4.1700\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 4cc4601e-7201-4141-abc8-3e529ae88863\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-TAPI-Ip-Address\r
+ldapDisplayName: msTAPI-IpAddress\r
+attributeId: 1.2.840.113556.1.4.1701\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: efd7d7f7-178e-4767-87fa-f8a16b840544\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Is-Member-Of-DL\r
+ldapDisplayName: memberOf\r
+attributeId: 1.2.840.113556.1.2.102\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf967991-0de6-11d0-a285-00aa003049e2\r
+systemOnly: TRUE\r
+searchFlags: fCOPY\r
+attributeSecurityGuid: bc0ac240-79a9-11d0-9020-00c04fc2d4cf\r
+linkID: 3\r
+mapiID: 32776\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-TAPI-Protocol-Id\r
+ldapDisplayName: msTAPI-ProtocolId\r
+attributeId: 1.2.840.113556.1.4.1699\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 89c1ebcf-7a5f-41fd-99ca-c900b32299ab\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-TAPI-Unique-Identifier\r
+ldapDisplayName: msTAPI-uid\r
+attributeId: 1.2.840.113556.1.4.1698\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 70a4e7ea-b3b9-4643-8918-e6dd2471bfd4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 256\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-TPM-OwnerInformation\r
+ldapDisplayName: msTPM-OwnerInformation\r
+attributeId: 1.2.840.113556.1.4.1966\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: aa4e1a6d-550d-4e05-8c35-4afcb917a9fe\r
+searchFlags: fRODCFilteredAttribute | fCOPY | fPRESERVEONDELETE |fPDNTATTINDEX | fATTINDEX\r
+rangeUpper: 128\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-TS-Allow-Logon\r
+ldapDisplayName: msTSAllowLogon\r
+attributeId: 1.2.840.113556.1.4.1979\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: 3a0cd464-bc54-40e7-93ae-a646a6ecc4b4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-TS-Broken-Connection-Action\r
+ldapDisplayName: msTSBrokenConnectionAction\r
+attributeId: 1.2.840.113556.1.4.1985\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: 1cf41bba-5604-463e-94d6-1a1287b72ca3\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-TS-Connect-Client-Drives\r
+ldapDisplayName: msTSConnectClientDrives\r
+attributeId: 1.2.840.113556.1.4.1986\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: 23572aaf-29dd-44ea-b0fa-7e8438b9a4a3\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-TS-Connect-Printer-Drives\r
+ldapDisplayName: msTSConnectPrinterDrives\r
+attributeId: 1.2.840.113556.1.4.1987\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: 8ce6a937-871b-4c92-b285-d99d4036681c\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-TS-Default-To-Main-Printer\r
+ldapDisplayName: msTSDefaultToMainPrinter\r
+attributeId: 1.2.840.113556.1.4.1988\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: c0ffe2bd-cacf-4dc7-88d5-61e9e95766f6\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-TS-ExpireDate\r
+ldapDisplayName: msTSExpireDate\r
+attributeId: 1.2.840.113556.1.4.1993\r
+attributeSyntax: 2.5.5.11\r
+omSyntax: 24\r
+isSingleValued: TRUE\r
+schemaIdGuid: 70004ef5-25c3-446a-97c8-996ae8566776\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+attributeSecurityGuid: 5805bc62-bdc9-4428-a5e2-856a0f4c185e\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+showInAdvancedViewOnly: TRUE\r
+\r
+cn: MS-TS-ExpireDate2\r
+ldapDisplayName: msTSExpireDate2\r
+attributeId: 1.2.840.113556.1.4.2000\r
+attributeSyntax: 2.5.5.11\r
+omSyntax: 24\r
+isSingleValued: TRUE\r
+schemaIdGuid: 54dfcf71-bc3f-4f0b-9d5a-4b2476bb8925\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+attributeSecurityGuid: 5805bc62-bdc9-4428-a5e2-856a0f4c185e\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+showInAdvancedViewOnly: TRUE\r
+\r
+cn: MemberUid\r
+ldapDisplayName: memberUid\r
+attributeId: 1.3.6.1.1.1.1.12\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 22\r
+isSingleValued: FALSE\r
+schemaIdGuid: 03dab236-672e-4f61-ab64-f77d2dc2ffab\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 256000\r
+\r
+cn: MS-TS-ExpireDate3\r
+ldapDisplayName: msTSExpireDate3\r
+attributeId: 1.2.840.113556.1.4.2003\r
+attributeSyntax: 2.5.5.11\r
+omSyntax: 24\r
+isSingleValued: TRUE\r
+schemaIdGuid: 41bc7f04-be72-4930-bd10-1f3439412387\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+attributeSecurityGuid: 5805bc62-bdc9-4428-a5e2-856a0f4c185e\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+showInAdvancedViewOnly: TRUE\r
+\r
+cn: MS-TS-ExpireDate4\r
+ldapDisplayName: msTSExpireDate4\r
+attributeId: 1.2.840.113556.1.4.2006\r
+attributeSyntax: 2.5.5.11\r
+omSyntax: 24\r
+isSingleValued: TRUE\r
+schemaIdGuid: 5e11dc43-204a-4faf-a008-6863621c6f5f\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+attributeSecurityGuid: 5805bc62-bdc9-4428-a5e2-856a0f4c185e\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+showInAdvancedViewOnly: TRUE\r
+\r
+cn: ms-TS-Home-Directory\r
+ldapDisplayName: msTSHomeDirectory\r
+attributeId: 1.2.840.113556.1.4.1977\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 5d3510f0-c4e7-4122-b91f-a20add90e246\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 32767\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-TS-Home-Drive\r
+ldapDisplayName: msTSHomeDrive\r
+attributeId: 1.2.840.113556.1.4.1978\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 5f0a24d9-dffa-4cd9-acbf-a0680c03731e\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 32767\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-TS-Initial-Program\r
+ldapDisplayName: msTSInitialProgram\r
+attributeId: 1.2.840.113556.1.4.1990\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 9201ac6f-1d69-4dfb-802e-d95510109599\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 32767\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-TS-LicenseVersion\r
+ldapDisplayName: msTSLicenseVersion\r
+attributeId: 1.2.840.113556.1.4.1994\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 0ae94a89-372f-4df2-ae8a-c64a2bc47278\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+attributeSecurityGuid: 5805bc62-bdc9-4428-a5e2-856a0f4c185e\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-TS-LicenseVersion2\r
+ldapDisplayName: msTSLicenseVersion2\r
+attributeId: 1.2.840.113556.1.4.2001\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 4b0df103-8d97-45d9-ad69-85c3080ba4e7\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+rangeLower: 0\r
+rangeUpper: 255\r
+attributeSecurityGuid: 5805bc62-bdc9-4428-a5e2-856a0f4c185e\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-TS-LicenseVersion3\r
+ldapDisplayName: msTSLicenseVersion3\r
+attributeId: 1.2.840.113556.1.4.2004\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: f8ba8f81-4cab-4973-a3c8-3a6da62a5e31\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+rangeLower: 0\r
+rangeUpper: 255\r
+attributeSecurityGuid: 5805bc62-bdc9-4428-a5e2-856a0f4c185e\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-TS-LicenseVersion4\r
+ldapDisplayName: msTSLicenseVersion4\r
+attributeId: 1.2.840.113556.1.4.2007\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 70ca5d97-2304-490a-8a27-52678c8d2095\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+rangeLower: 0\r
+rangeUpper: 255\r
+attributeSecurityGuid: 5805bc62-bdc9-4428-a5e2-856a0f4c185e\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-TSLS-Property01\r
+ldapDisplayName: msTSLSProperty01\r
+attributeId: 1.2.840.113556.1.4.2009\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+rangeLower: 0\r
+rangeUpper: 32767\r
+schemaIdGuid: 87e53590-971d-4a52-955b-4794d15a84ae\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MHS-OR-Address\r
+ldapDisplayName: mhsORAddress\r
+attributeId: 1.2.840.113556.1.4.650\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 0296c122-40da-11d1-a9c0-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-TSLS-Property02\r
+ldapDisplayName: msTSLSProperty02\r
+attributeId: 1.2.840.113556.1.4.2010\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+rangeLower: 0\r
+rangeUpper: 32767\r
+schemaIdGuid: 47c77bb0-316e-4e2f-97f1-0d4c48fca9dd\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-TS-ManagingLS\r
+ldapDisplayName: msTSManagingLS\r
+attributeId: 1.2.840.113556.1.4.1995\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: f3bcc547-85b0-432c-9ac0-304506bf2c83\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+attributeSecurityGuid: 5805bc62-bdc9-4428-a5e2-856a0f4c185e\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-TS-ManagingLS2\r
+ldapDisplayName: msTSManagingLS2\r
+attributeId: 1.2.840.113556.1.4.2002\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+systemOnly: FALSE\r
+rangeLower: 0\r
+rangeUpper: 255\r
+schemaIdGuid: 349f0757-51bd-4fc8-9d66-3eceea8a25be\r
+searchFlags: fATTINDEX\r
+attributeSecurityGuid: 5805bc62-bdc9-4428-a5e2-856a0f4c185e\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-TS-ManagingLS3\r
+ldapDisplayName: msTSManagingLS3\r
+attributeId: 1.2.840.113556.1.4.2005\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+systemOnly: FALSE\r
+rangeLower: 0\r
+rangeUpper: 255\r
+schemaIdGuid: fad5dcc1-2130-4c87-a118-75322cd67050\r
+searchFlags: fATTINDEX\r
+attributeSecurityGuid: 5805bc62-bdc9-4428-a5e2-856a0f4c185e\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-TS-ManagingLS4\r
+ldapDisplayName: msTSManagingLS4\r
+attributeId: 1.2.840.113556.1.4.2008\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+systemOnly: FALSE\r
+rangeLower: 0\r
+rangeUpper: 255\r
+schemaIdGuid: f7a3b6a0-2107-4140-b306-75cb521731e5\r
+searchFlags: fATTINDEX\r
+attributeSecurityGuid: 5805bc62-bdc9-4428-a5e2-856a0f4c185e\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-TS-Max-Connection-Time\r
+ldapDisplayName: msTSMaxConnectionTime\r
+attributeId: 1.2.840.113556.1.4.1982\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 1d960ee2-6464-4e95-a781-e3b5cd5f9588\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-TS-Max-Disconnection-Time\r
+ldapDisplayName: msTSMaxDisconnectionTime\r
+attributeId: 1.2.840.113556.1.4.1981\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 326f7089-53d8-4784-b814-46d8535110d2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-TS-Max-Idle-Time\r
+ldapDisplayName: msTSMaxIdleTime\r
+attributeId: 1.2.840.113556.1.4.1983\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: ff739e9c-6bb7-460e-b221-e250f3de0f95\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-TS-Profile-Path\r
+ldapDisplayName: msTSProfilePath\r
+attributeId: 1.2.840.113556.1.4.1976\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: e65c30db-316c-4060-a3a0-387b083f09cd\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 32767\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-TS-Property01\r
+ldapDisplayName: msTSProperty01\r
+attributeId: 1.2.840.113556.1.4.1991\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: faaea977-9655-49d7-853d-f27bb7aaca0f\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+rangeLower: 0\r
+rangeUpper: 32767\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Other-Name\r
+ldapDisplayName: middleName\r
+attributeId: 2.16.840.1.113730.3.1.34\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf9679f2-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 64\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-TS-Property02\r
+ldapDisplayName: msTSProperty02\r
+attributeId: 1.2.840.113556.1.4.1992\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 3586f6ac-51b7-4978-ab42-f936463198e7\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+rangeLower: 0\r
+rangeUpper: 32767\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-TS-Reconnection-Action\r
+ldapDisplayName: msTSReconnectionAction\r
+attributeId: 1.2.840.113556.1.4.1984\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: 366ed7ca-3e18-4c7f-abae-351a01e4b4f7\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-TS-Remote-Control\r
+ldapDisplayName: msTSRemoteControl\r
+attributeId: 1.2.840.113556.1.4.1980\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 15177226-8642-468b-8c48-03ddfd004982\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-TS-Work-Directory\r
+ldapDisplayName: msTSWorkDirectory\r
+attributeId: 1.2.840.113556.1.4.1989\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: a744f666-3d3c-4cc8-834b-9d4f6f687b8b\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 32767\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-Author\r
+ldapDisplayName: msWMI-Author\r
+attributeId: 1.2.840.113556.1.4.1623\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 6366c0c1-6972-4e66-b3a5-1d52ad0c0547\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-ChangeDate\r
+ldapDisplayName: msWMI-ChangeDate\r
+attributeId: 1.2.840.113556.1.4.1624\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: f9cdf7a0-ec44-4937-a79b-cd91522b3aa8\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-Class\r
+ldapDisplayName: msWMI-Class\r
+attributeId: 1.2.840.113556.1.4.1676\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 90c1925f-4a24-4b07-b202-be32eb3c8b74\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-ClassDefinition\r
+ldapDisplayName: msWMI-ClassDefinition\r
+attributeId: 1.2.840.113556.1.4.1625\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 2b9c0ebc-c272-45cb-99d2-4d0e691632e0\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-CreationDate\r
+ldapDisplayName: msWMI-CreationDate\r
+attributeId: 1.2.840.113556.1.4.1626\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 748b0a2e-3351-4b3f-b171-2f17414ea779\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-Genus\r
+ldapDisplayName: msWMI-Genus\r
+attributeId: 1.2.840.113556.1.4.1677\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 50c8673a-8f56-4614-9308-9e1340fb9af3\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Min-Pwd-Age\r
+ldapDisplayName: minPwdAge\r
+attributeId: 1.2.840.113556.1.4.78\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf9679c2-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+attributeSecurityGuid: c7407360-20bf-11d0-a768-00aa006e0529\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-WMI-ID\r
+ldapDisplayName: msWMI-ID\r
+attributeId: 1.2.840.113556.1.4.1627\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 9339a803-94b8-47f7-9123-a853b9ff7e45\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-int8Default\r
+ldapDisplayName: msWMI-Int8Default\r
+attributeId: 1.2.840.113556.1.4.1632\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: f4d8085a-8c5b-4785-959b-dc585566e445\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-int8Max\r
+ldapDisplayName: msWMI-Int8Max\r
+attributeId: 1.2.840.113556.1.4.1633\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: e3d8b547-003d-4946-a32b-dc7cedc96b74\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-int8Min\r
+ldapDisplayName: msWMI-Int8Min\r
+attributeId: 1.2.840.113556.1.4.1634\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: ed1489d1-54cc-4066-b368-a00daa2664f1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-int8ValidValues\r
+ldapDisplayName: msWMI-Int8ValidValues\r
+attributeId: 1.2.840.113556.1.4.1635\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: FALSE\r
+schemaIdGuid: 103519a9-c002-441b-981a-b0b3e012c803\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-intDefault\r
+ldapDisplayName: msWMI-IntDefault\r
+attributeId: 1.2.840.113556.1.4.1628\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 1b0c07f8-76dd-4060-a1e1-70084619dc90\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-intFlags1\r
+ldapDisplayName: msWMI-intFlags1\r
+attributeId: 1.2.840.113556.1.4.1678\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 18e006b9-6445-48e3-9dcf-b5ecfbc4df8e\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-intFlags2\r
+ldapDisplayName: msWMI-intFlags2\r
+attributeId: 1.2.840.113556.1.4.1679\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 075a42c9-c55a-45b1-ac93-eb086b31f610\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-intFlags3\r
+ldapDisplayName: msWMI-intFlags3\r
+attributeId: 1.2.840.113556.1.4.1680\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: f29fa736-de09-4be4-b23a-e734c124bacc\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-intFlags4\r
+ldapDisplayName: msWMI-intFlags4\r
+attributeId: 1.2.840.113556.1.4.1681\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: bd74a7ac-c493-4c9c-bdfa-5c7b119ca6b2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Machine-Wide-Policy\r
+ldapDisplayName: machineWidePolicy\r
+attributeId: 1.2.840.113556.1.4.459\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: 80a67e4f-9f22-11d0-afdd-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+attributeSecurityGuid: a29b8a01-c7e8-11d0-9bae-00c04fd92ef5\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Min-Pwd-Length\r
+ldapDisplayName: minPwdLength\r
+attributeId: 1.2.840.113556.1.4.79\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf9679c3-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+attributeSecurityGuid: c7407360-20bf-11d0-a768-00aa006e0529\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-WMI-intMax\r
+ldapDisplayName: msWMI-IntMax\r
+attributeId: 1.2.840.113556.1.4.1629\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: fb920c2c-f294-4426-8ac1-d24b42aa2bce\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-intMin\r
+ldapDisplayName: msWMI-IntMin\r
+attributeId: 1.2.840.113556.1.4.1630\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 68c2e3ba-9837-4c70-98e0-f0c33695d023\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-intValidValues\r
+ldapDisplayName: msWMI-IntValidValues\r
+attributeId: 1.2.840.113556.1.4.1631\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: FALSE\r
+schemaIdGuid: 6af565f6-a749-4b72-9634-3c5d47e6b4e0\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-Mof\r
+ldapDisplayName: msWMI-Mof\r
+attributeId: 1.2.840.113556.1.4.1638\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 6736809f-2064-443e-a145-81262b1f1366\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-Name\r
+ldapDisplayName: msWMI-Name\r
+attributeId: 1.2.840.113556.1.4.1639\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: c6c8ace5-7e81-42af-ad72-77412c5941c4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-NormalizedClass\r
+ldapDisplayName: msWMI-NormalizedClass\r
+attributeId: 1.2.840.113556.1.4.1640\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: eaba628f-eb8e-4fe9-83fc-693be695559b\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-Parm1\r
+ldapDisplayName: msWMI-Parm1\r
+attributeId: 1.2.840.113556.1.4.1682\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 27e81485-b1b0-4a8b-bedd-ce19a837e26e\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-Parm2\r
+ldapDisplayName: msWMI-Parm2\r
+attributeId: 1.2.840.113556.1.4.1683\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 0003508e-9c42-4a76-a8f4-38bf64bab0de\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-Parm3\r
+ldapDisplayName: msWMI-Parm3\r
+attributeId: 1.2.840.113556.1.4.1684\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 45958fb6-52bd-48ce-9f9f-c2712d9f2bfc\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-Parm4\r
+ldapDisplayName: msWMI-Parm4\r
+attributeId: 1.2.840.113556.1.4.1685\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 3800d5a3-f1ce-4b82-a59a-1528ea795f59\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Min-Ticket-Age\r
+ldapDisplayName: minTicketAge\r
+attributeId: 1.2.840.113556.1.4.80\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf9679c4-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-WMI-PropertyName\r
+ldapDisplayName: msWMI-PropertyName\r
+attributeId: 1.2.840.113556.1.4.1641\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: ab920883-e7f8-4d72-b4a0-c0449897509d\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-Query\r
+ldapDisplayName: msWMI-Query\r
+attributeId: 1.2.840.113556.1.4.1642\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 65fff93e-35e3-45a3-85ae-876c6718297f\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-QueryLanguage\r
+ldapDisplayName: msWMI-QueryLanguage\r
+attributeId: 1.2.840.113556.1.4.1643\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 7d3cfa98-c17b-4254-8bd7-4de9b932a345\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-ScopeGuid\r
+ldapDisplayName: msWMI-ScopeGuid\r
+attributeId: 1.2.840.113556.1.4.1686\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 87b78d51-405f-4b7f-80ed-2bd28786f48d\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-SourceOrganization\r
+ldapDisplayName: msWMI-SourceOrganization\r
+attributeId: 1.2.840.113556.1.4.1644\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 34f7ed6c-615d-418d-aa00-549a7d7be03e\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-stringDefault\r
+ldapDisplayName: msWMI-StringDefault\r
+attributeId: 1.2.840.113556.1.4.1636\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 152e42b6-37c5-4f55-ab48-1606384a9aea\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-stringValidValues\r
+ldapDisplayName: msWMI-StringValidValues\r
+attributeId: 1.2.840.113556.1.4.1637\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 37609d31-a2bf-4b58-8f53-2b64e57a076d\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-TargetClass\r
+ldapDisplayName: msWMI-TargetClass\r
+attributeId: 1.2.840.113556.1.4.1645\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 95b6d8d6-c9e8-4661-a2bc-6a5cabc04c62\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-TargetNameSpace\r
+ldapDisplayName: msWMI-TargetNameSpace\r
+attributeId: 1.2.840.113556.1.4.1646\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 1c4ab61f-3420-44e5-849d-8b5dbf60feb7\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-TargetObject\r
+ldapDisplayName: msWMI-TargetObject\r
+attributeId: 1.2.840.113556.1.4.1647\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: c44f67a5-7de5-4a1f-92d9-662b57364b77\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Phone-Mobile-Primary\r
+ldapDisplayName: mobile\r
+attributeId: 0.9.2342.19200300.100.1.41\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: f0f8ffa3-1191-11d0-a060-00aa006c33ed\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 64\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+mapiID: 14876\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-TargetPath\r
+ldapDisplayName: msWMI-TargetPath\r
+attributeId: 1.2.840.113556.1.4.1648\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 5006a79a-6bfe-4561-9f52-13cf4dd3e560\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-TargetType\r
+ldapDisplayName: msWMI-TargetType\r
+attributeId: 1.2.840.113556.1.4.1649\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: ca2a281e-262b-4ff7-b419-bc123352a4e9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Must-Contain\r
+ldapDisplayName: mustContain\r
+attributeId: 1.2.840.113556.1.2.24\r
+attributeSyntax: 2.5.5.2\r
+omSyntax: 6\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf9679d3-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Modified-Count\r
+ldapDisplayName: modifiedCount\r
+attributeId: 1.2.840.113556.1.4.168\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf9679c5-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+attributeSecurityGuid: b8119fd0-04f6-4762-ab7a-4986c76b3f9a\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Modified-Count-At-Last-Prom\r
+ldapDisplayName: modifiedCountAtLastProm\r
+attributeId: 1.2.840.113556.1.4.81\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf9679c6-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Modify-Time-Stamp\r
+ldapDisplayName: modifyTimeStamp\r
+attributeId: 2.5.18.2\r
+attributeSyntax: 2.5.5.11\r
+omSyntax: 24\r
+isSingleValued: TRUE\r
+schemaIdGuid: 9a7ad94a-ca53-11d1-bbd0-0080c76670c0\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Moniker\r
+ldapDisplayName: moniker\r
+attributeId: 1.2.840.113556.1.4.82\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf9679c7-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Moniker-Display-Name\r
+ldapDisplayName: monikerDisplayName\r
+attributeId: 1.2.840.113556.1.4.83\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf9679c8-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Move-Tree-State\r
+ldapDisplayName: moveTreeState\r
+attributeId: 1.2.840.113556.1.4.1305\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: 1f2ac2c8-3b71-11d2-90cc-00c04fd91ab1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-DS-Consistency-Child-Count\r
+ldapDisplayName: mS-DS-ConsistencyChildCount\r
+attributeId: 1.2.840.113556.1.4.1361\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 178b7bc2-b63a-11d2-90e1-00c04fd91ab1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: E-mail-Addresses\r
+ldapDisplayName: mail\r
+attributeId: 0.9.2342.19200300.100.1.3\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967961-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+rangeLower: 0\r
+rangeUpper: 256\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+mapiID: 14846\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-DS-Consistency-Guid\r
+ldapDisplayName: mS-DS-ConsistencyGuid\r
+attributeId: 1.2.840.113556.1.4.1360\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 23773dc2-b63a-11d2-90e1-00c04fd91ab1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-DS-Creator-SID\r
+ldapDisplayName: mS-DS-CreatorSID\r
+attributeId: 1.2.840.113556.1.4.1410\r
+attributeSyntax: 2.5.5.17\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: c5e60132-1480-11d3-91c1-0000f87a57d4\r
+systemOnly: TRUE\r
+searchFlags: fATTINDEX\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: MS-DS-Machine-Account-Quota\r
+ldapDisplayName: ms-DS-MachineAccountQuota\r
+attributeId: 1.2.840.113556.1.4.1411\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: d064fb68-1480-11d3-91c1-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: MS-DS-Replicates-NC-Reason\r
+ldapDisplayName: mS-DS-ReplicatesNCReason\r
+attributeId: 1.2.840.113556.1.4.1408\r
+attributeSyntax: 2.5.5.7\r
+omSyntax: 127\r
+omObjectClass: 1.2.840.113556.1.1.1.11\r
+isSingleValued: FALSE\r
+schemaIdGuid: 0ea12b84-08b3-11d3-91bc-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: ms-net-ieee-80211-GP-PolicyData\r
+ldapDisplayName: ms-net-ieee-80211-GP-PolicyData\r
+attributeId: 1.2.840.113556.1.4.1952\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 9c1495a5-4d76-468e-991e-1433b0a67855\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 4194304\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-net-ieee-80211-GP-PolicyGUID\r
+ldapDisplayName: ms-net-ieee-80211-GP-PolicyGUID\r
+attributeId: 1.2.840.113556.1.4.1951\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 35697062-1eaf-448b-ac1e-388e0be4fdee\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 64\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-net-ieee-80211-GP-PolicyReserved\r
+ldapDisplayName: ms-net-ieee-80211-GP-PolicyReserved\r
+attributeId: 1.2.840.113556.1.4.1953\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 0f69c62e-088e-4ff5-a53a-e923cec07c0a\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 4194304\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-net-ieee-8023-GP-PolicyData\r
+ldapDisplayName: ms-net-ieee-8023-GP-PolicyData\r
+attributeId: 1.2.840.113556.1.4.1955\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 8398948b-7457-4d91-bd4d-8d7ed669c9f7\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 1048576\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-net-ieee-8023-GP-PolicyGUID\r
+ldapDisplayName: ms-net-ieee-8023-GP-PolicyGUID\r
+attributeId: 1.2.840.113556.1.4.1954\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 94a7b05a-b8b2-4f59-9c25-39e69baa1684\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 64\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-net-ieee-8023-GP-PolicyReserved\r
+ldapDisplayName: ms-net-ieee-8023-GP-PolicyReserved\r
+attributeId: 1.2.840.113556.1.4.1956\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: d3c527c7-2606-4deb-8cfd-18426feec8ce\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 1048576\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: SMTP-Mail-Address\r
+ldapDisplayName: mailAddress\r
+attributeId: 1.2.840.113556.1.4.786\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 26d9736f-6070-11d1-a9c6-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: MS-SQL-Alias\r
+ldapDisplayName: mS-SQL-Alias\r
+attributeId: 1.2.840.113556.1.4.1395\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: e0c6baae-ccee-11d2-9993-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-AllowAnonymousSubscription\r
+ldapDisplayName: mS-SQL-AllowAnonymousSubscription\r
+attributeId: 1.2.840.113556.1.4.1394\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: db77be4a-ccee-11d2-9993-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-AllowImmediateUpdatingSubscription\r
+ldapDisplayName: mS-SQL-AllowImmediateUpdatingSubscription\r
+attributeId: 1.2.840.113556.1.4.1404\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: c4186b6e-d34b-11d2-999a-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-AllowKnownPullSubscription\r
+ldapDisplayName: mS-SQL-AllowKnownPullSubscription\r
+attributeId: 1.2.840.113556.1.4.1403\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: c3bb7054-d34b-11d2-999a-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-AllowQueuedUpdatingSubscription\r
+ldapDisplayName: mS-SQL-AllowQueuedUpdatingSubscription\r
+attributeId: 1.2.840.113556.1.4.1405\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: c458ca80-d34b-11d2-999a-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-AllowSnapshotFilesFTPDownloading\r
+ldapDisplayName: mS-SQL-AllowSnapshotFilesFTPDownloading\r
+attributeId: 1.2.840.113556.1.4.1406\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: c49b8be8-d34b-11d2-999a-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-AppleTalk\r
+ldapDisplayName: mS-SQL-AppleTalk\r
+attributeId: 1.2.840.113556.1.4.1378\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 8fda89f4-ccee-11d2-9993-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-Applications\r
+ldapDisplayName: mS-SQL-Applications\r
+attributeId: 1.2.840.113556.1.4.1400\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: fbcda2ea-ccee-11d2-9993-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-Build\r
+ldapDisplayName: mS-SQL-Build\r
+attributeId: 1.2.840.113556.1.4.1368\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 603e94c4-ccee-11d2-9993-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-CharacterSet\r
+ldapDisplayName: mS-SQL-CharacterSet\r
+attributeId: 1.2.840.113556.1.4.1370\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 696177a6-ccee-11d2-9993-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Managed-By\r
+ldapDisplayName: managedBy\r
+attributeId: 1.2.840.113556.1.4.653\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: 0296c120-40da-11d1-a9c0-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+linkID: 72\r
+mapiID: 32780\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: MS-SQL-Clustered\r
+ldapDisplayName: mS-SQL-Clustered\r
+attributeId: 1.2.840.113556.1.4.1373\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: 7778bd90-ccee-11d2-9993-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-ConnectionURL\r
+ldapDisplayName: mS-SQL-ConnectionURL\r
+attributeId: 1.2.840.113556.1.4.1383\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: a92d23da-ccee-11d2-9993-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-Contact\r
+ldapDisplayName: mS-SQL-Contact\r
+attributeId: 1.2.840.113556.1.4.1365\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 4f6cbdd8-ccee-11d2-9993-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-CreationDate\r
+ldapDisplayName: mS-SQL-CreationDate\r
+attributeId: 1.2.840.113556.1.4.1397\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: ede14754-ccee-11d2-9993-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-Database\r
+ldapDisplayName: mS-SQL-Database\r
+attributeId: 1.2.840.113556.1.4.1393\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: d5a0dbdc-ccee-11d2-9993-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-Description\r
+ldapDisplayName: mS-SQL-Description\r
+attributeId: 1.2.840.113556.1.4.1390\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 8386603c-ccef-11d2-9993-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-GPSHeight\r
+ldapDisplayName: mS-SQL-GPSHeight\r
+attributeId: 1.2.840.113556.1.4.1387\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: bcdd4f0e-ccee-11d2-9993-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-GPSLatitude\r
+ldapDisplayName: mS-SQL-GPSLatitude\r
+attributeId: 1.2.840.113556.1.4.1385\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: b222ba0e-ccee-11d2-9993-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-GPSLongitude\r
+ldapDisplayName: mS-SQL-GPSLongitude\r
+attributeId: 1.2.840.113556.1.4.1386\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: b7577c94-ccee-11d2-9993-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-InformationDirectory\r
+ldapDisplayName: mS-SQL-InformationDirectory\r
+attributeId: 1.2.840.113556.1.4.1392\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: d0aedb2e-ccee-11d2-9993-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Managed-Objects\r
+ldapDisplayName: managedObjects\r
+attributeId: 1.2.840.113556.1.4.654\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 0296c124-40da-11d1-a9c0-0000f80367c1\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+linkID: 73\r
+mapiID: 32804\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+\r
+cn: MS-SQL-InformationURL\r
+ldapDisplayName: mS-SQL-InformationURL\r
+attributeId: 1.2.840.113556.1.4.1382\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: a42cd510-ccee-11d2-9993-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-Keywords\r
+ldapDisplayName: mS-SQL-Keywords\r
+attributeId: 1.2.840.113556.1.4.1401\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 01e9a98a-ccef-11d2-9993-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-Language\r
+ldapDisplayName: mS-SQL-Language\r
+attributeId: 1.2.840.113556.1.4.1389\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: c57f72f4-ccee-11d2-9993-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-LastBackupDate\r
+ldapDisplayName: mS-SQL-LastBackupDate\r
+attributeId: 1.2.840.113556.1.4.1398\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: f2b6abca-ccee-11d2-9993-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-LastDiagnosticDate\r
+ldapDisplayName: mS-SQL-LastDiagnosticDate\r
+attributeId: 1.2.840.113556.1.4.1399\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: f6d6dd88-ccee-11d2-9993-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-LastUpdatedDate\r
+ldapDisplayName: mS-SQL-LastUpdatedDate\r
+attributeId: 1.2.840.113556.1.4.1381\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 9fcc43d4-ccee-11d2-9993-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-Location\r
+ldapDisplayName: mS-SQL-Location\r
+attributeId: 1.2.840.113556.1.4.1366\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 561c9644-ccee-11d2-9993-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-Memory\r
+ldapDisplayName: mS-SQL-Memory\r
+attributeId: 1.2.840.113556.1.4.1367\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: 5b5d448c-ccee-11d2-9993-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-MultiProtocol\r
+ldapDisplayName: mS-SQL-MultiProtocol\r
+attributeId: 1.2.840.113556.1.4.1375\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 8157fa38-ccee-11d2-9993-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-Name\r
+ldapDisplayName: mS-SQL-Name\r
+attributeId: 1.2.840.113556.1.4.1363\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 3532dfd8-ccee-11d2-9993-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DFS-Comment-v2\r
+ldapDisplayName: msDFS-Commentv2\r
+attributeId: 1.2.840.113556.1.4.2036\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 4fb42f00-29bd-4f82-b94b-07c7fa61e449\r
+isMemberOfPartialAttributeSet: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 32766\r
+\r
+cn: ms-DFS-Generation-GUID-v2\r
+ldapDisplayName: msDFS-GenerationGUIDv2\r
+attributeId: 1.2.840.113556.1.4.2032\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 62a45d41-424c-4905-b728-e5ef1fc4fe42\r
+isMemberOfPartialAttributeSet: FALSE\r
+searchFlags: 0\r
+rangeLower: 16\r
+rangeUpper: 16\r
+\r
+cn: ms-DFS-Last-Modified-v2\r
+ldapDisplayName: msDFS-LastModifiedv2\r
+attributeId: 1.2.840.113556.1.4.2034\r
+attributeSyntax: 2.5.5.11\r
+omSyntax: 24\r
+isSingleValued: TRUE\r
+schemaIdGuid: d6147e9b-b369-4b98-9f7b-1f345bb0680a\r
+isMemberOfPartialAttributeSet: FALSE\r
+searchFlags: 0\r
+\r
+cn: ms-DFS-Link-Identity-GUID-v2\r
+ldapDisplayName: msDFS-LinkIdentityGUIDv2\r
+attributeId: 1.2.840.113556.1.4.2041\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 19e2bd91-e8fa-49b2-be2b-7efd5ae5676d\r
+isMemberOfPartialAttributeSet: FALSE\r
+searchFlags: 0\r
+rangeLower:16\r
+rangeUpper: 16\r
+\r
+cn: ms-DFS-Link-Path-v2\r
+ldapDisplayName: msDFS-LinkPathv2\r
+attributeId: 1.2.840.113556.1.4.2039\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 5882bb1e-3101-4845-a21e-1516e59279f2\r
+isMemberOfPartialAttributeSet: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 32766\r
+\r
+cn: ms-DFS-Link-Security-Descriptor-v2\r
+ldapDisplayName: msDFS-LinkSecurityDescriptorv2\r
+attributeId: 1.2.840.113556.1.4.2040\r
+attributeSyntax: 2.5.5.15\r
+omSyntax: 66\r
+isSingleValued: TRUE\r
+schemaIdGuid: d780b945-3caa-4d28-975b-eb3f08e455e1\r
+isMemberOfPartialAttributeSet: FALSE\r
+searchFlags: 0\r
+\r
+cn: ms-DFS-Namespace-Identity-GUID-v2\r
+ldapDisplayName: msDFS-NamespaceIdentityGUIDv2\r
+attributeId: 1.2.840.113556.1.4.2033\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 87011f22-e651-4c27-b55b-51daf9f9d364\r
+isMemberOfPartialAttributeSet: FALSE\r
+searchFlags: 0\r
+rangeLower: 16\r
+rangeUpper: 16\r
+\r
+cn: ms-DFS-Properties-v2\r
+ldapDisplayName: msDFS-Propertiesv2\r
+attributeId: 1.2.840.113556.1.4.2037\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 1c070014-ebf6-4088-95b4-28b16cc31241\r
+isMemberOfPartialAttributeSet: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 1024\r
+\r
+cn: ms-DFS-Schema-Major-Version\r
+ldapDisplayName: msDFS-SchemaMajorVersion\r
+attributeId: 1.2.840.113556.1.4.2030\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 2bcf447b-39d8-4ee8-909a-bb0755cc2f8d\r
+isMemberOfPartialAttributeSet: FALSE\r
+searchFlags: 0\r
+rangeLower: 2\r
+rangeUpper: 2\r
+\r
+cn: ms-DFS-Schema-Minor-Version\r
+ldapDisplayName: msDFS-SchemaMinorVersion\r
+attributeId: 1.2.840.113556.1.4.2031\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: d1e1dafb-8559-4519-866e-89e775557b9c\r
+isMemberOfPartialAttributeSet: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 0\r
+\r
+cn: ms-DFS-Short-Name-Link-Path-v2\r
+ldapDisplayName: msDFS-ShortNameLinkPathv2\r
+attributeId: 1.2.840.113556.1.4.2042\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 52bfc673-9713-4e9b-aafd-56ee72fd16a4\r
+isMemberOfPartialAttributeSet: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 32766\r
+\r
+cn: ms-DFS-Target-List-v2\r
+ldapDisplayName: msDFS-TargetListv2\r
+attributeId: 1.2.840.113556.1.4.2038\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 9649b643-59a7-4791-999d-79100cf871d7\r
+isMemberOfPartialAttributeSet: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 2097152\r
+\r
+cn: ms-DFS-Ttl-v2\r
+ldapDisplayName: msDFS-Ttlv2\r
+attributeId: 1.2.840.113556.1.4.2035\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 81ee1500-467e-4c83-a41a-295d12bdcc23\r
+isMemberOfPartialAttributeSet: FALSE\r
+searchFlags: 0\r
+\r
+cn: ms-DS-Is-User-Cachable-At-Rodc\r
+ldapDisplayName: msDS-IsUserCachableAtRodc\r
+attributeId: 1.2.840.113556.1.4.2025\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: fe01245a-341f-4556-951f-48c033a89050\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: RDN\r
+ldapDisplayName: name\r
+attributeId: 1.2.840.113556.1.4.1\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a0e-0de6-11d0-a285-00aa003049e2\r
+systemOnly: TRUE\r
+searchFlags: fPRESERVEONDELETE| fANR | fATTINDEX\r
+rangeLower: 1\r
+rangeUpper: 255\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+mapiID: 33282\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Netboot-Initialization\r
+ldapDisplayName: netbootInitialization\r
+attributeId: 1.2.840.113556.1.4.358\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 3e978920-8c01-11d0-afda-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: PKI-Key-Usage\r
+ldapDisplayName: pKIKeyUsage\r
+attributeId: 1.2.840.113556.1.4.1328\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: e9b0a87e-3b9d-11d2-90cc-00c04fd91ab1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: PKI-Max-Issuing-Depth\r
+ldapDisplayName: pKIMaxIssuingDepth\r
+attributeId: 1.2.840.113556.1.4.1329\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: f0bfdefa-3b9d-11d2-90cc-00c04fd91ab1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: PKI-Overlap-Period\r
+ldapDisplayName: pKIOverlapPeriod\r
+attributeId: 1.2.840.113556.1.4.1332\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 1219a3ec-3b9e-11d2-90cc-00c04fd91ab1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: PKT\r
+ldapDisplayName: pKT\r
+attributeId: 1.2.840.113556.1.4.206\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 8447f9f1-1027-11d0-a05f-00aa006c33ed\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 10485760\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: PKT-Guid\r
+ldapDisplayName: pKTGuid\r
+attributeId: 1.2.840.113556.1.4.205\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 8447f9f0-1027-11d0-a05f-00aa006c33ed\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 16\r
+rangeUpper: 16\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Policy-Replication-Flags\r
+ldapDisplayName: policyReplicationFlags\r
+attributeId: 1.2.840.113556.1.4.633\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 19405b96-3cfa-11d1-a9c0-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Port-Name\r
+ldapDisplayName: portName\r
+attributeId: 1.2.840.113556.1.4.228\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 281416c4-1968-11d0-a28f-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Possible-Inferiors\r
+ldapDisplayName: possibleInferiors\r
+attributeId: 1.2.840.113556.1.4.915\r
+attributeSyntax: 2.5.5.2\r
+omSyntax: 6\r
+isSingleValued: FALSE\r
+schemaIdGuid: 9a7ad94c-ca53-11d1-bbd0-0080c76670c0\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Poss-Superiors\r
+ldapDisplayName: possSuperiors\r
+attributeId: 1.2.840.113556.1.2.8\r
+attributeSyntax: 2.5.5.2\r
+omSyntax: 6\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf9679fa-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Postal-Address\r
+ldapDisplayName: postalAddress\r
+attributeId: 2.5.4.16\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf9679fc-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+rangeLower: 1\r
+rangeUpper: 4096\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+mapiID: 33036\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: netboot-IntelliMirror-OSes\r
+ldapDisplayName: netbootIntelliMirrorOSes\r
+attributeId: 1.2.840.113556.1.4.857\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 0738307e-91df-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Postal-Code\r
+ldapDisplayName: postalCode\r
+attributeId: 2.5.4.17\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf9679fd-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+rangeLower: 1\r
+rangeUpper: 40\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+mapiID: 14890\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Post-Office-Box\r
+ldapDisplayName: postOfficeBox\r
+attributeId: 2.5.4.18\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf9679fb-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+rangeLower: 1\r
+rangeUpper: 40\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+mapiID: 14891\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Preferred-Delivery-Method\r
+ldapDisplayName: preferredDeliveryMethod\r
+attributeId: 2.5.4.28\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 10\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf9679fe-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+mapiID: 33037\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: preferredLanguage\r
+ldapDisplayName: preferredLanguage\r
+attributeId: 2.16.840.1.113730.3.1.39\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 856be0d0-18e7-46e1-8f5f-7ee4d9020e0d\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+\r
+cn: Preferred-OU\r
+ldapDisplayName: preferredOU\r
+attributeId: 1.2.840.113556.1.4.97\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf9679ff-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Prefix-Map\r
+ldapDisplayName: prefixMap\r
+attributeId: 1.2.840.113556.1.4.538\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 52458022-ca6a-11d0-afff-0000f80367c1\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Presentation-Address\r
+ldapDisplayName: presentationAddress\r
+attributeId: 2.5.4.29\r
+attributeSyntax: 2.5.5.13\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.732\r
+isSingleValued: TRUE\r
+schemaIdGuid: a8df744b-c5ea-11d1-bbcb-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Previous-CA-Certificates\r
+ldapDisplayName: previousCACertificates\r
+attributeId: 1.2.840.113556.1.4.692\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 963d2739-48be-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Previous-Parent-CA\r
+ldapDisplayName: previousParentCA\r
+attributeId: 1.2.840.113556.1.4.694\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 963d273d-48be-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Primary-Group-ID\r
+ldapDisplayName: primaryGroupID\r
+attributeId: 1.2.840.113556.1.4.98\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a00-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: fCOPY| fATTINDEX\r
+attributeSecurityGuid: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: netboot-Limit-Clients\r
+ldapDisplayName: netbootLimitClients\r
+attributeId: 1.2.840.113556.1.4.850\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: 07383077-91df-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Primary-Group-Token\r
+ldapDisplayName: primaryGroupToken\r
+attributeId: 1.2.840.113556.1.4.1412\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: c0ed8738-7efd-4481-84d9-66d2db8be369\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Phone-ISDN-Primary\r
+ldapDisplayName: primaryInternationalISDNNumber\r
+attributeId: 1.2.840.113556.1.4.649\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 0296c11f-40da-11d1-a9c0-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 64\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Telex-Primary\r
+ldapDisplayName: primaryTelexNumber\r
+attributeId: 1.2.840.113556.1.4.648\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 0296c121-40da-11d1-a9c0-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 64\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Print-Attributes\r
+ldapDisplayName: printAttributes\r
+attributeId: 1.2.840.113556.1.4.247\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 281416d7-1968-11d0-a28f-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Print-Bin-Names\r
+ldapDisplayName: printBinNames\r
+attributeId: 1.2.840.113556.1.4.237\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 281416cd-1968-11d0-a28f-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Print-Collate\r
+ldapDisplayName: printCollate\r
+attributeId: 1.2.840.113556.1.4.242\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: 281416d2-1968-11d0-a28f-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Print-Color\r
+ldapDisplayName: printColor\r
+attributeId: 1.2.840.113556.1.4.243\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: 281416d3-1968-11d0-a28f-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Print-Duplex-Supported\r
+ldapDisplayName: printDuplexSupported\r
+attributeId: 1.2.840.113556.1.4.1311\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: 281416cc-1968-11d0-a28f-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Print-End-Time\r
+ldapDisplayName: printEndTime\r
+attributeId: 1.2.840.113556.1.4.234\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 281416ca-1968-11d0-a28f-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Printer-Name\r
+ldapDisplayName: printerName\r
+attributeId: 1.2.840.113556.1.4.300\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 244b296e-5abd-11d0-afd2-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: netboot-Locally-Installed-OSes\r
+ldapDisplayName: netbootLocallyInstalledOSes\r
+attributeId: 1.2.840.113556.1.4.859\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 07383080-91df-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Print-Form-Name\r
+ldapDisplayName: printFormName\r
+attributeId: 1.2.840.113556.1.4.235\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 281416cb-1968-11d0-a28f-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Print-Keep-Printed-Jobs\r
+ldapDisplayName: printKeepPrintedJobs\r
+attributeId: 1.2.840.113556.1.4.275\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: ba305f6d-47e3-11d0-a1a6-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Print-Language\r
+ldapDisplayName: printLanguage\r
+attributeId: 1.2.840.113556.1.4.246\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 281416d6-1968-11d0-a28f-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 256\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Print-MAC-Address\r
+ldapDisplayName: printMACAddress\r
+attributeId: 1.2.840.113556.1.4.288\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: ba305f7a-47e3-11d0-a1a6-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Print-Max-Copies\r
+ldapDisplayName: printMaxCopies\r
+attributeId: 1.2.840.113556.1.4.241\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 281416d1-1968-11d0-a28f-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Print-Max-Resolution-Supported\r
+ldapDisplayName: printMaxResolutionSupported\r
+attributeId: 1.2.840.113556.1.4.238\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 281416cf-1968-11d0-a28f-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Print-Max-X-Extent\r
+ldapDisplayName: printMaxXExtent\r
+attributeId: 1.2.840.113556.1.4.277\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: ba305f6f-47e3-11d0-a1a6-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Print-Max-Y-Extent\r
+ldapDisplayName: printMaxYExtent\r
+attributeId: 1.2.840.113556.1.4.278\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: ba305f70-47e3-11d0-a1a6-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Print-Media-Ready\r
+ldapDisplayName: printMediaReady\r
+attributeId: 1.2.840.113556.1.4.289\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 3bcbfcf5-4d3d-11d0-a1a6-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Print-Media-Supported\r
+ldapDisplayName: printMediaSupported\r
+attributeId: 1.2.840.113556.1.4.299\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 244b296f-5abd-11d0-afd2-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Netboot-Machine-File-Path\r
+ldapDisplayName: netbootMachineFilePath\r
+attributeId: 1.2.840.113556.1.4.361\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 3e978923-8c01-11d0-afda-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Print-Memory\r
+ldapDisplayName: printMemory\r
+attributeId: 1.2.840.113556.1.4.282\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: ba305f74-47e3-11d0-a1a6-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Print-Min-X-Extent\r
+ldapDisplayName: printMinXExtent\r
+attributeId: 1.2.840.113556.1.4.279\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: ba305f71-47e3-11d0-a1a6-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Print-Min-Y-Extent\r
+ldapDisplayName: printMinYExtent\r
+attributeId: 1.2.840.113556.1.4.280\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: ba305f72-47e3-11d0-a1a6-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Print-Network-Address\r
+ldapDisplayName: printNetworkAddress\r
+attributeId: 1.2.840.113556.1.4.287\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: ba305f79-47e3-11d0-a1a6-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Print-Notify\r
+ldapDisplayName: printNotify\r
+attributeId: 1.2.840.113556.1.4.272\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: ba305f6a-47e3-11d0-a1a6-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Print-Number-Up\r
+ldapDisplayName: printNumberUp\r
+attributeId: 1.2.840.113556.1.4.290\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 3bcbfcf4-4d3d-11d0-a1a6-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Print-Orientations-Supported\r
+ldapDisplayName: printOrientationsSupported\r
+attributeId: 1.2.840.113556.1.4.240\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 281416d0-1968-11d0-a28f-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 256\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Print-Owner\r
+ldapDisplayName: printOwner\r
+attributeId: 1.2.840.113556.1.4.271\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: ba305f69-47e3-11d0-a1a6-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Print-Pages-Per-Minute\r
+ldapDisplayName: printPagesPerMinute\r
+attributeId: 1.2.840.113556.1.4.631\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 19405b97-3cfa-11d1-a9c0-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Print-Rate\r
+ldapDisplayName: printRate\r
+attributeId: 1.2.840.113556.1.4.285\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: ba305f77-47e3-11d0-a1a6-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: netboot-Max-Clients\r
+ldapDisplayName: netbootMaxClients\r
+attributeId: 1.2.840.113556.1.4.851\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 07383078-91df-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Print-Rate-Unit\r
+ldapDisplayName: printRateUnit\r
+attributeId: 1.2.840.113556.1.4.286\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: ba305f78-47e3-11d0-a1a6-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Print-Separator-File\r
+ldapDisplayName: printSeparatorFile\r
+attributeId: 1.2.840.113556.1.4.230\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 281416c6-1968-11d0-a28f-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Print-Share-Name\r
+ldapDisplayName: printShareName\r
+attributeId: 1.2.840.113556.1.4.270\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: ba305f68-47e3-11d0-a1a6-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Print-Spooling\r
+ldapDisplayName: printSpooling\r
+attributeId: 1.2.840.113556.1.4.274\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: ba305f6c-47e3-11d0-a1a6-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Print-Stapling-Supported\r
+ldapDisplayName: printStaplingSupported\r
+attributeId: 1.2.840.113556.1.4.281\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: ba305f73-47e3-11d0-a1a6-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Print-Start-Time\r
+ldapDisplayName: printStartTime\r
+attributeId: 1.2.840.113556.1.4.233\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 281416c9-1968-11d0-a28f-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Print-Status\r
+ldapDisplayName: printStatus\r
+attributeId: 1.2.840.113556.1.4.273\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: ba305f6b-47e3-11d0-a1a6-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Priority\r
+ldapDisplayName: priority\r
+attributeId: 1.2.840.113556.1.4.231\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 281416c7-1968-11d0-a28f-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Prior-Set-Time\r
+ldapDisplayName: priorSetTime\r
+attributeId: 1.2.840.113556.1.4.99\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a01-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Prior-Value\r
+ldapDisplayName: priorValue\r
+attributeId: 1.2.840.113556.1.4.100\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a02-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Netboot-Mirror-Data-File\r
+ldapDisplayName: netbootMirrorDataFile\r
+attributeId: 1.2.840.113556.1.4.1241\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 2df90d85-009f-11d2-aa4c-00c04fd7d83a\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Private-Key\r
+ldapDisplayName: privateKey\r
+attributeId: 1.2.840.113556.1.4.101\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a03-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Privilege-Attributes\r
+ldapDisplayName: privilegeAttributes\r
+attributeId: 1.2.840.113556.1.4.636\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 19405b9a-3cfa-11d1-a9c0-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Privilege-Display-Name\r
+ldapDisplayName: privilegeDisplayName\r
+attributeId: 1.2.840.113556.1.4.634\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 19405b98-3cfa-11d1-a9c0-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Privilege-Holder\r
+ldapDisplayName: privilegeHolder\r
+attributeId: 1.2.840.113556.1.4.637\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 19405b9b-3cfa-11d1-a9c0-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+linkID: 70\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Privilege-Value\r
+ldapDisplayName: privilegeValue\r
+attributeId: 1.2.840.113556.1.4.635\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: 19405b99-3cfa-11d1-a9c0-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Product-Code\r
+ldapDisplayName: productCode\r
+attributeId: 1.2.840.113556.1.4.818\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: d9e18317-8939-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 16\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Profile-Path\r
+ldapDisplayName: profilePath\r
+attributeId: 1.2.840.113556.1.4.139\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a05-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+attributeSecurityGuid: 5f202010-79a5-11d0-9020-00c04fc2d4cf\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Proxied-Object-Name\r
+ldapDisplayName: proxiedObjectName\r
+attributeId: 1.2.840.113556.1.4.1249\r
+attributeSyntax: 2.5.5.7\r
+omSyntax: 127\r
+omObjectClass: 1.2.840.113556.1.1.1.11\r
+isSingleValued: TRUE\r
+schemaIdGuid: e1aea402-cd5b-11d0-afff-0000f80367c1\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Proxy-Addresses\r
+ldapDisplayName: proxyAddresses\r
+attributeId: 1.2.840.113556.1.2.210\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf967a06-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: fANR | fATTINDEX\r
+rangeLower: 1\r
+rangeUpper: 1123\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+mapiID: 32783\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Proxy-Generation-Enabled\r
+ldapDisplayName: proxyGenerationEnabled\r
+attributeId: 1.2.840.113556.1.2.523\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: 5fd424d6-1262-11d0-a060-00aa006c33ed\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+mapiID: 33201\r
+\r
+cn: netboot-New-Machine-Naming-Policy\r
+ldapDisplayName: netbootNewMachineNamingPolicy\r
+attributeId: 1.2.840.113556.1.4.855\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 0738307c-91df-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Proxy-Lifetime\r
+ldapDisplayName: proxyLifetime\r
+attributeId: 1.2.840.113556.1.4.103\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a07-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Public-Key-Policy\r
+ldapDisplayName: publicKeyPolicy\r
+attributeId: 1.2.840.113556.1.4.420\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 80a67e28-9f22-11d0-afdd-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+attributeSecurityGuid: a29b89fd-c7e8-11d0-9bae-00c04fd92ef5\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Purported-Search\r
+ldapDisplayName: purportedSearch\r
+attributeId: 1.2.840.113556.1.4.886\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: b4b54e50-943a-11d1-aebd-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 2048\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Pwd-History-Length\r
+ldapDisplayName: pwdHistoryLength\r
+attributeId: 1.2.840.113556.1.4.95\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a09-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 65535\r
+attributeSecurityGuid: c7407360-20bf-11d0-a768-00aa006e0529\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Pwd-Last-Set\r
+ldapDisplayName: pwdLastSet\r
+attributeId: 1.2.840.113556.1.4.96\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a0a-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+attributeSecurityGuid: 4c164200-20c0-11d0-a768-00aa006e0529\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Pwd-Properties\r
+ldapDisplayName: pwdProperties\r
+attributeId: 1.2.840.113556.1.4.93\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a0b-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+attributeSecurityGuid: c7407360-20bf-11d0-a768-00aa006e0529\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Quality-Of-Service\r
+ldapDisplayName: qualityOfService\r
+attributeId: 1.2.840.113556.1.4.458\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 80a67e4e-9f22-11d0-afdd-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+attributeSecurityGuid: a29b8a01-c7e8-11d0-9bae-00c04fd92ef5\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Query-Filter\r
+ldapDisplayName: queryFilter\r
+attributeId: 1.2.840.113556.1.4.1355\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: cbf70a26-7e78-11d2-9921-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: QueryPoint\r
+ldapDisplayName: queryPoint\r
+attributeId: 1.2.840.113556.1.4.680\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 7bfdcb86-4807-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Query-Policy-BL\r
+ldapDisplayName: queryPolicyBL\r
+attributeId: 1.2.840.113556.1.4.608\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: e1aea404-cd5b-11d0-afff-0000f80367c1\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+linkID: 69\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+\r
+cn: netboot-New-Machine-OU\r
+ldapDisplayName: netbootNewMachineOU\r
+attributeId: 1.2.840.113556.1.4.856\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: 0738307d-91df-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Query-Policy-Object\r
+ldapDisplayName: queryPolicyObject\r
+attributeId: 1.2.840.113556.1.4.607\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: e1aea403-cd5b-11d0-afff-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+linkID: 68\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Range-Lower\r
+ldapDisplayName: rangeLower\r
+attributeId: 1.2.840.113556.1.2.34\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a0c-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+mapiID: 33043\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Range-Upper\r
+ldapDisplayName: rangeUpper\r
+attributeId: 1.2.840.113556.1.2.35\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a0d-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+mapiID: 33044\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: RDN-Att-ID\r
+ldapDisplayName: rDNAttID\r
+attributeId: 1.2.840.113556.1.2.26\r
+attributeSyntax: 2.5.5.2\r
+omSyntax: 6\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a0f-0de6-11d0-a285-00aa003049e2\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Registered-Address\r
+ldapDisplayName: registeredAddress\r
+attributeId: 2.5.4.26\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf967a10-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 4096\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+mapiID: 33049\r
+\r
+cn: Remote-Server-Name\r
+ldapDisplayName: remoteServerName\r
+attributeId: 1.2.840.113556.1.4.105\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf967a12-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Remote-Source\r
+ldapDisplayName: remoteSource\r
+attributeId: 1.2.840.113556.1.4.107\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a14-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 1024\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Remote-Source-Type\r
+ldapDisplayName: remoteSourceType\r
+attributeId: 1.2.840.113556.1.4.108\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a15-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Remote-Storage-GUID\r
+ldapDisplayName: remoteStorageGUID\r
+attributeId: 1.2.840.113556.1.4.809\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 2a39c5b0-8960-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Replica-Source\r
+ldapDisplayName: replicaSource\r
+attributeId: 1.2.840.113556.1.4.109\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a18-0de6-11d0-a285-00aa003049e2\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: netboot-SCP-BL\r
+ldapDisplayName: netbootSCPBL\r
+attributeId: 1.2.840.113556.1.4.864\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 07383082-91df-11d1-aebc-0000f80367c1\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+linkID: 101\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+\r
+isSingleValued: TRUE\r
+\r
+cn: Repl-Interval\r
+ldapDisplayName: replInterval\r
+attributeId: 1.2.840.113556.1.4.1336\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 45ba9d1a-56fa-11d2-90d0-00c04fd91ab1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Repl-Property-Meta-Data\r
+ldapDisplayName: replPropertyMetaData\r
+attributeId: 1.2.840.113556.1.4.3\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 281416c0-1968-11d0-a28f-00aa003049e2\r
+systemOnly: TRUE\r
+searchFlags: fPRESERVEONDELETE\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_OPERATIONAL |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER | FLAG_ATTR_NOT_REPLICATED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER | FLAG_ATTR_NOT_REPLICATED\r
+\r
+cn: Repl-Topology-Stay-Of-Execution\r
+ldapDisplayName: replTopologyStayOfExecution\r
+attributeId: 1.2.840.113556.1.4.677\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 7bfdcb83-4807-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Repl-UpToDate-Vector\r
+ldapDisplayName: replUpToDateVector\r
+attributeId: 1.2.840.113556.1.4.4\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a16-0de6-11d0-a285-00aa003049e2\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER | FLAG_ATTR_NOT_REPLICATED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Reps-From\r
+ldapDisplayName: repsFrom\r
+attributeId: 1.2.840.113556.1.2.91\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 127\r
+omObjectClass: 1.2.840.113556.1.1.1.6\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf967a1d-0de6-11d0-a285-00aa003049e2\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER | FLAG_ATTR_NOT_REPLICATED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Reps-To\r
+ldapDisplayName: repsTo\r
+attributeId: 1.2.840.113556.1.2.83\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 127\r
+omObjectClass: 1.2.840.113556.1.1.1.6\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf967a1e-0de6-11d0-a285-00aa003049e2\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER | FLAG_ATTR_NOT_REPLICATED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Required-Categories\r
+ldapDisplayName: requiredCategories\r
+attributeId: 1.2.840.113556.1.4.321\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: 7d6c0e93-7e20-11d0-afd6-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+rangeLower: 16\r
+rangeUpper: 16\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Retired-Repl-DSA-Signatures\r
+ldapDisplayName: retiredReplDSASignatures\r
+attributeId: 1.2.840.113556.1.4.673\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 7bfdcb7f-4807-11d1-a9c3-0000f80367c1\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Revision\r
+ldapDisplayName: revision\r
+attributeId: 1.2.840.113556.1.4.145\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a21-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Rid\r
+ldapDisplayName: rid\r
+attributeId: 1.2.840.113556.1.4.153\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a22-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Name-Service-Flags\r
+ldapDisplayName: nameServiceFlags\r
+attributeId: 1.2.840.113556.1.4.753\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 80212840-4bdc-11d1-a9c4-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: netboot-Server\r
+ldapDisplayName: netbootServer\r
+attributeId: 1.2.840.113556.1.4.860\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: 07383081-91df-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+linkID: 100\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: RID-Allocation-Pool\r
+ldapDisplayName: rIDAllocationPool\r
+attributeId: 1.2.840.113556.1.4.371\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: 66171889-8f3c-11d0-afda-00c04fd930c9\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: RID-Available-Pool\r
+ldapDisplayName: rIDAvailablePool\r
+attributeId: 1.2.840.113556.1.4.370\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: 66171888-8f3c-11d0-afda-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: RID-Manager-Reference\r
+ldapDisplayName: rIDManagerReference\r
+attributeId: 1.2.840.113556.1.4.368\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: 66171886-8f3c-11d0-afda-00c04fd930c9\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: RID-Next-RID\r
+ldapDisplayName: rIDNextRID\r
+attributeId: 1.2.840.113556.1.4.374\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 6617188c-8f3c-11d0-afda-00c04fd930c9\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: RID-Previous-Allocation-Pool\r
+ldapDisplayName: rIDPreviousAllocationPool\r
+attributeId: 1.2.840.113556.1.4.372\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: 6617188a-8f3c-11d0-afda-00c04fd930c9\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: RID-Set-References\r
+ldapDisplayName: rIDSetReferences\r
+attributeId: 1.2.840.113556.1.4.669\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 7bfdcb7b-4807-11d1-a9c3-0000f80367c1\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: RID-Used-Pool\r
+ldapDisplayName: rIDUsedPool\r
+attributeId: 1.2.840.113556.1.4.373\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: 6617188b-8f3c-11d0-afda-00c04fd930c9\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Rights-Guid\r
+ldapDisplayName: rightsGuid\r
+attributeId: 1.2.840.113556.1.4.340\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 8297931c-86d3-11d0-afda-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 36\r
+rangeUpper: 36\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Role-Occupant\r
+ldapDisplayName: roleOccupant\r
+attributeId: 2.5.4.33\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: a8df7465-c5ea-11d1-bbcb-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+mapiID: 33061\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: roomNumber\r
+ldapDisplayName: roomNumber\r
+attributeId: 0.9.2342.19200300.100.1.6\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 81d7f8c2-e327-4a0d-91c6-b42d4009115f\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+\r
+cn: Netboot-SIF-File\r
+ldapDisplayName: netbootSIFFile\r
+attributeId: 1.2.840.113556.1.4.1240\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 2df90d84-009f-11d2-aa4c-00c04fd7d83a\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Root-Trust\r
+ldapDisplayName: rootTrust\r
+attributeId: 1.2.840.113556.1.4.674\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 7bfdcb80-4807-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: rpc-Ns-Annotation\r
+ldapDisplayName: rpcNsAnnotation\r
+attributeId: 1.2.840.113556.1.4.366\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 88611bde-8cf4-11d0-afda-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: rpc-Ns-Bindings\r
+ldapDisplayName: rpcNsBindings\r
+attributeId: 1.2.840.113556.1.4.113\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf967a23-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: rpc-Ns-Codeset\r
+ldapDisplayName: rpcNsCodeset\r
+attributeId: 1.2.840.113556.1.4.367\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 7a0ba0e0-8e98-11d0-afda-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: rpc-Ns-Entry-Flags\r
+ldapDisplayName: rpcNsEntryFlags\r
+attributeId: 1.2.840.113556.1.4.754\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 80212841-4bdc-11d1-a9c4-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: rpc-Ns-Group\r
+ldapDisplayName: rpcNsGroup\r
+attributeId: 1.2.840.113556.1.4.114\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf967a24-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: rpc-Ns-Interface-ID\r
+ldapDisplayName: rpcNsInterfaceID\r
+attributeId: 1.2.840.113556.1.4.115\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a25-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: rpc-Ns-Object-ID\r
+ldapDisplayName: rpcNsObjectID\r
+attributeId: 1.2.840.113556.1.4.312\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 29401c48-7a27-11d0-afd6-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: rpc-Ns-Priority\r
+ldapDisplayName: rpcNsPriority\r
+attributeId: 1.2.840.113556.1.4.117\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf967a27-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: rpc-Ns-Profile-Entry\r
+ldapDisplayName: rpcNsProfileEntry\r
+attributeId: 1.2.840.113556.1.4.118\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a28-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: netboot-Tools\r
+ldapDisplayName: netbootTools\r
+attributeId: 1.2.840.113556.1.4.858\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 0738307f-91df-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: rpc-Ns-Transfer-Syntax\r
+ldapDisplayName: rpcNsTransferSyntax\r
+attributeId: 1.2.840.113556.1.4.314\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 29401c4a-7a27-11d0-afd6-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: SAM-Account-Name\r
+ldapDisplayName: sAMAccountName\r
+attributeId: 1.2.840.113556.1.4.221\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 3e0abfd0-126a-11d0-a060-00aa006c33ed\r
+systemOnly: FALSE\r
+searchFlags: fPRESERVEONDELETE| fANR | fATTINDEX\r
+rangeLower: 0\r
+rangeUpper: 256\r
+attributeSecurityGuid: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: SAM-Account-Type\r
+ldapDisplayName: sAMAccountType\r
+attributeId: 1.2.840.113556.1.4.302\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 6e7b626c-64f2-11d0-afd2-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+attributeSecurityGuid: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: SAM-Domain-Updates\r
+ldapDisplayName: samDomainUpdates\r
+attributeId: 1.2.840.113556.1.4.1969\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 04d2d114-f799-4e9b-bcdc-90e8f5ba7ebe\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 1024\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Schedule\r
+ldapDisplayName: schedule\r
+attributeId: 1.2.840.113556.1.4.211\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: dd712224-10e4-11d0-a05f-00aa006c33ed\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Schema-Flags-Ex\r
+ldapDisplayName: schemaFlagsEx\r
+attributeId: 1.2.840.113556.1.4.120\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a2b-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Schema-ID-GUID\r
+ldapDisplayName: schemaIDGUID\r
+attributeId: 1.2.840.113556.1.4.148\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967923-0de6-11d0-a285-00aa003049e2\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+rangeLower: 16\r
+rangeUpper: 16\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Schema-Info\r
+ldapDisplayName: schemaInfo\r
+attributeId: 1.2.840.113556.1.4.1358\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: f9fb64ae-93b4-11d2-9945-0000f87a57d4\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Schema-Update\r
+ldapDisplayName: schemaUpdate\r
+attributeId: 1.2.840.113556.1.4.481\r
+attributeSyntax: 2.5.5.11\r
+omSyntax: 24\r
+isSingleValued: TRUE\r
+schemaIdGuid: 1e2d06b4-ac8f-11d0-afe3-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+\r
+cn: Schema-Version\r
+ldapDisplayName: schemaVersion\r
+attributeId: 1.2.840.113556.1.2.471\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf967a2c-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+mapiID: 33148\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Network-Address\r
+ldapDisplayName: networkAddress\r
+attributeId: 1.2.840.113556.1.2.459\r
+attributeSyntax: 2.5.5.4\r
+omSyntax: 20\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf9679d9-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 256\r
+mapiID: 33136\r
+\r
+cn: Scope-Flags\r
+ldapDisplayName: scopeFlags\r
+attributeId: 1.2.840.113556.1.4.1354\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 16f3a4c2-7e79-11d2-9921-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Script-Path\r
+ldapDisplayName: scriptPath\r
+attributeId: 1.2.840.113556.1.4.62\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf9679a8-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+attributeSecurityGuid: 5f202010-79a5-11d0-9020-00c04fc2d4cf\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: SD-Rights-Effective\r
+ldapDisplayName: sDRightsEffective\r
+attributeId: 1.2.840.113556.1.4.1304\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: c3dbafa6-33df-11d2-98b2-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+attributeSecurityGuid: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Search-Flags\r
+ldapDisplayName: searchFlags\r
+attributeId: 1.2.840.113556.1.2.334\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 10\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a2d-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+mapiID: 33069\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Search-Guide\r
+ldapDisplayName: searchGuide\r
+attributeId: 2.5.4.14\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf967a2e-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+mapiID: 33070\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: secretary\r
+ldapDisplayName: secretary\r
+attributeId: 0.9.2342.19200300.100.1.21\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 01072d9a-98ad-4a53-9744-e83e287278fb\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+\r
+cn: Security-Identifier\r
+ldapDisplayName: securityIdentifier\r
+attributeId: 1.2.840.113556.1.4.121\r
+attributeSyntax: 2.5.5.17\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a2f-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: See-Also\r
+ldapDisplayName: seeAlso\r
+attributeId: 2.5.4.34\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf967a31-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+mapiID: 33071\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Seq-Notification\r
+ldapDisplayName: seqNotification\r
+attributeId: 1.2.840.113556.1.4.504\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: ddac0cf2-af8f-11d0-afeb-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Serial-Number\r
+ldapDisplayName: serialNumber\r
+attributeId: 2.5.4.5\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 19\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf967a32-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 64\r
+mapiID: 33072\r
+\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Next-Level-Store\r
+ldapDisplayName: nextLevelStore\r
+attributeId: 1.2.840.113556.1.4.214\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf9679da-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Server-Name\r
+ldapDisplayName: serverName\r
+attributeId: 1.2.840.113556.1.4.223\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 09dcb7a0-165f-11d0-a064-00aa006c33ed\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 1024\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Server-Reference\r
+ldapDisplayName: serverReference\r
+attributeId: 1.2.840.113556.1.4.515\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: 26d9736d-6070-11d1-a9c6-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+linkID: 94\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Server-Reference-BL\r
+ldapDisplayName: serverReferenceBL\r
+attributeId: 1.2.840.113556.1.4.516\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 26d9736e-6070-11d1-a9c6-0000f80367c1\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+linkID: 95\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+isSingleValued: TRUE\r
+\r
+cn: Server-Role\r
+ldapDisplayName: serverRole\r
+attributeId: 1.2.840.113556.1.4.157\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a33-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+attributeSecurityGuid: b8119fd0-04f6-4762-ab7a-4986c76b3f9a\r
+\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Server-State\r
+ldapDisplayName: serverState\r
+attributeId: 1.2.840.113556.1.4.154\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a34-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+attributeSecurityGuid: b8119fd0-04f6-4762-ab7a-4986c76b3f9a\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Service-Binding-Information\r
+ldapDisplayName: serviceBindingInformation\r
+attributeId: 1.2.840.113556.1.4.510\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: b7b1311c-b82e-11d0-afee-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Service-Class-ID\r
+ldapDisplayName: serviceClassID\r
+attributeId: 1.2.840.113556.1.4.122\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a35-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Service-Class-Info\r
+ldapDisplayName: serviceClassInfo\r
+attributeId: 1.2.840.113556.1.4.123\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf967a36-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Service-Class-Name\r
+ldapDisplayName: serviceClassName\r
+attributeId: 1.2.840.113556.1.4.509\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: b7b1311d-b82e-11d0-afee-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Service-DNS-Name\r
+ldapDisplayName: serviceDNSName\r
+attributeId: 1.2.840.113556.1.4.657\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 28630eb8-41d5-11d1-a9c1-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Next-Rid\r
+ldapDisplayName: nextRid\r
+attributeId: 1.2.840.113556.1.4.88\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf9679db-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Service-DNS-Name-Type\r
+ldapDisplayName: serviceDNSNameType\r
+attributeId: 1.2.840.113556.1.4.659\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 28630eba-41d5-11d1-a9c1-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 256\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Service-Instance-Version\r
+ldapDisplayName: serviceInstanceVersion\r
+attributeId: 1.2.840.113556.1.4.199\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a37-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 8\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Service-Principal-Name\r
+ldapDisplayName: servicePrincipalName\r
+attributeId: 1.2.840.113556.1.4.771\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: f3a64788-5306-11d1-a9c5-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Setup-Command\r
+ldapDisplayName: setupCommand\r
+attributeId: 1.2.840.113556.1.4.325\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 7d6c0e97-7e20-11d0-afd6-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ShadowExpire\r
+ldapDisplayName: shadowExpire\r
+attributeId: 1.3.6.1.1.1.1.10\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 75159a00-1fff-4cf4-8bff-4ef2695cf643\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+\r
+cn: ShadowFlag\r
+ldapDisplayName: shadowFlag\r
+attributeId: 1.3.6.1.1.1.1.11\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 8dfeb70d-c5db-46b6-b15e-a4389e6cee9b\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+\r
+cn: ShadowInactive\r
+ldapDisplayName: shadowInactive\r
+attributeId: 1.3.6.1.1.1.1.9\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 86871d1f-3310-4312-8efd-af49dcfb2671\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+\r
+cn: ShadowLastChange\r
+ldapDisplayName: shadowLastChange\r
+attributeId: 1.3.6.1.1.1.1.5\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: f8f2689c-29e8-4843-8177-e8b98e15eeac\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+\r
+cn: ShadowMax\r
+ldapDisplayName: shadowMax\r
+attributeId: 1.3.6.1.1.1.1.7\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: f285c952-50dd-449e-9160-3b880d99988d\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+\r
+cn: ShadowMin\r
+ldapDisplayName: shadowMin\r
+attributeId: 1.3.6.1.1.1.1.6\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: a76b8737-e5a1-4568-b057-dc12e04be4b2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+\r
+cn: NisMapEntry\r
+ldapDisplayName: nisMapEntry\r
+attributeId: 1.3.6.1.1.1.1.27\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 22\r
+isSingleValued: TRUE\r
+schemaIdGuid: 4a95216e-fcc0-402e-b57f-5971626148a9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 1024\r
+\r
+cn: ShadowWarning\r
+ldapDisplayName: shadowWarning\r
+attributeId: 1.3.6.1.1.1.1.8\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 7ae89c9c-2976-4a46-bb8a-340f88560117\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+\r
+cn: Shell-Context-Menu\r
+ldapDisplayName: shellContextMenu\r
+attributeId: 1.2.840.113556.1.4.615\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 553fd039-f32e-11d0-b0bc-00c04fd8dca6\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Shell-Property-Pages\r
+ldapDisplayName: shellPropertyPages\r
+attributeId: 1.2.840.113556.1.4.563\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 52458039-ca6a-11d0-afff-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Short-Server-Name\r
+ldapDisplayName: shortServerName\r
+attributeId: 1.2.840.113556.1.4.1209\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 45b01501-c419-11d1-bbc9-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Show-In-Address-Book\r
+ldapDisplayName: showInAddressBook\r
+attributeId: 1.2.840.113556.1.4.644\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 3e74f60e-3e73-11d1-a9c0-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Show-In-Advanced-View-Only\r
+ldapDisplayName: showInAdvancedViewOnly\r
+attributeId: 1.2.840.113556.1.2.169\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967984-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: fCOPY| fATTINDEX\r
+attributeSecurityGuid: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: SID-History\r
+ldapDisplayName: sIDHistory\r
+attributeId: 1.2.840.113556.1.4.609\r
+attributeSyntax: 2.5.5.17\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: 17eb4278-d167-11d0-b002-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+attributeSecurityGuid: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+systemOnly: TRUE\r
+\r
+cn: Signature-Algorithms\r
+ldapDisplayName: signatureAlgorithms\r
+attributeId: 1.2.840.113556.1.4.824\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 2a39c5b2-8960-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Site-GUID\r
+ldapDisplayName: siteGUID\r
+attributeId: 1.2.840.113556.1.4.362\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 3e978924-8c01-11d0-afda-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 16\r
+rangeUpper: 16\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Site-Link-List\r
+ldapDisplayName: siteLinkList\r
+attributeId: 1.2.840.113556.1.4.822\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: d50c2cdd-8951-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+linkID: 142\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: NisMapName\r
+ldapDisplayName: nisMapName\r
+attributeId: 1.3.6.1.1.1.1.26\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 22\r
+isSingleValued: TRUE\r
+schemaIdGuid: 969d3c79-0e9a-4d95-b0ac-bdde7ff8f3a1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 1024\r
+\r
+cn: Site-List\r
+ldapDisplayName: siteList\r
+attributeId: 1.2.840.113556.1.4.821\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: d50c2cdc-8951-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+linkID: 144\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Site-Object\r
+ldapDisplayName: siteObject\r
+attributeId: 1.2.840.113556.1.4.512\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: 3e10944c-c354-11d0-aff8-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+linkID: 46\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Site-Object-BL\r
+ldapDisplayName: siteObjectBL\r
+attributeId: 1.2.840.113556.1.4.513\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 3e10944d-c354-11d0-aff8-0000f80367c1\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+linkID: 47\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+\r
+cn: Site-Server\r
+ldapDisplayName: siteServer\r
+attributeId: 1.2.840.113556.1.4.494\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 1be8f17c-a9ff-11d0-afe2-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Surname\r
+ldapDisplayName: sn\r
+attributeId: 2.5.4.4\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a41-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: fANR | fATTINDEX\r
+rangeLower: 1\r
+rangeUpper: 64\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+mapiID: 14865\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: SPN-Mappings\r
+ldapDisplayName: sPNMappings\r
+attributeId: 1.2.840.113556.1.4.1347\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 2ab0e76c-7041-11d2-9905-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: State-Or-Province-Name\r
+ldapDisplayName: st\r
+attributeId: 2.5.4.8\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a39-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+rangeLower: 1\r
+rangeUpper: 128\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+mapiID: 14888\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Street-Address\r
+ldapDisplayName: street\r
+attributeId: 2.5.4.9\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a3a-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+rangeLower: 1\r
+rangeUpper: 1024\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+mapiID: 33082\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Address\r
+ldapDisplayName: streetAddress\r
+attributeId: 1.2.840.113556.1.2.256\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: f0f8ff84-1191-11d0-a060-00aa006c33ed\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 1024\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+mapiID: 14889\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Structural-Object-Class\r
+ldapDisplayName: structuralObjectClass\r
+attributeId: 2.5.21.9\r
+attributeSyntax: 2.5.5.2\r
+omSyntax: 6\r
+isSingleValued: FALSE\r
+schemaIdGuid: 3860949f-f6a8-4b38-9950-81ecb6bc2982\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: NisNetgroupTriple\r
+ldapDisplayName: nisNetgroupTriple\r
+attributeId: 1.3.6.1.1.1.1.14\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 22\r
+isSingleValued: FALSE\r
+schemaIdGuid: a8032e74-30ef-4ff5-affc-0fc217783fec\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 153600\r
+\r
+cn: Sub-Class-Of\r
+ldapDisplayName: subClassOf\r
+attributeId: 1.2.840.113556.1.2.21\r
+attributeSyntax: 2.5.5.2\r
+omSyntax: 6\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a3b-0de6-11d0-a285-00aa003049e2\r
+systemOnly: TRUE\r
+searchFlags: fPRESERVEONDELETE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Sub-Refs\r
+ldapDisplayName: subRefs\r
+attributeId: 1.2.840.113556.1.2.7\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf967a3c-0de6-11d0-a285-00aa003049e2\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+mapiID: 33083\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER | FLAG_ATTR_NOT_REPLICATED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: SubSchemaSubEntry\r
+ldapDisplayName: subSchemaSubEntry\r
+attributeId: 2.5.18.10\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 9a7ad94d-ca53-11d1-bbd0-0080c76670c0\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Superior-DNS-Root\r
+ldapDisplayName: superiorDNSRoot\r
+attributeId: 1.2.840.113556.1.4.532\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 5245801d-ca6a-11d0-afff-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Super-Scope-Description\r
+ldapDisplayName: superScopeDescription\r
+attributeId: 1.2.840.113556.1.4.711\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 963d274c-48be-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Super-Scopes\r
+ldapDisplayName: superScopes\r
+attributeId: 1.2.840.113556.1.4.710\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 19\r
+isSingleValued: FALSE\r
+schemaIdGuid: 963d274b-48be-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Supplemental-Credentials\r
+ldapDisplayName: supplementalCredentials\r
+attributeId: 1.2.840.113556.1.4.125\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf967a3f-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Supported-Application-Context\r
+ldapDisplayName: supportedApplicationContext\r
+attributeId: 2.5.4.30\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: 1677588f-47f3-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+mapiID: 33085\r
+\r
+cn: Sync-Attributes\r
+ldapDisplayName: syncAttributes\r
+attributeId: 1.2.840.113556.1.4.666\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 037651e4-441d-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Sync-Membership\r
+ldapDisplayName: syncMembership\r
+attributeId: 1.2.840.113556.1.4.665\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 037651e3-441d-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+linkID: 78\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Non-Security-Member\r
+ldapDisplayName: nonSecurityMember\r
+attributeId: 1.2.840.113556.1.4.530\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 52458018-ca6a-11d0-afff-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+linkID: 50\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Sync-With-Object\r
+ldapDisplayName: syncWithObject\r
+attributeId: 1.2.840.113556.1.4.664\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: 037651e2-441d-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Sync-With-SID\r
+ldapDisplayName: syncWithSID\r
+attributeId: 1.2.840.113556.1.4.667\r
+attributeSyntax: 2.5.5.17\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 037651e5-441d-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: System-Auxiliary-Class\r
+ldapDisplayName: systemAuxiliaryClass\r
+attributeId: 1.2.840.113556.1.4.198\r
+attributeSyntax: 2.5.5.2\r
+omSyntax: 6\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf967a43-0de6-11d0-a285-00aa003049e2\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: System-Flags\r
+ldapDisplayName: systemFlags\r
+attributeId: 1.2.840.113556.1.4.375\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: e0fa1e62-9b45-11d0-afdd-00c04fd930c9\r
+systemOnly: TRUE\r
+searchFlags: fPRESERVEONDELETE\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: System-May-Contain\r
+ldapDisplayName: systemMayContain\r
+attributeId: 1.2.840.113556.1.4.196\r
+attributeSyntax: 2.5.5.2\r
+omSyntax: 6\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf967a44-0de6-11d0-a285-00aa003049e2\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: System-Must-Contain\r
+ldapDisplayName: systemMustContain\r
+attributeId: 1.2.840.113556.1.4.197\r
+attributeSyntax: 2.5.5.2\r
+omSyntax: 6\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf967a45-0de6-11d0-a285-00aa003049e2\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: System-Only\r
+ldapDisplayName: systemOnly\r
+attributeId: 1.2.840.113556.1.4.170\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a46-0de6-11d0-a285-00aa003049e2\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: System-Poss-Superiors\r
+ldapDisplayName: systemPossSuperiors\r
+attributeId: 1.2.840.113556.1.4.195\r
+attributeSyntax: 2.5.5.2\r
+omSyntax: 6\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf967a47-0de6-11d0-a285-00aa003049e2\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Telephone-Number\r
+ldapDisplayName: telephoneNumber\r
+attributeId: 2.5.4.20\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a49-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 64\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+mapiID: 14856\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Teletex-Terminal-Identifier\r
+ldapDisplayName: teletexTerminalIdentifier\r
+attributeId: 2.5.4.22\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf967a4a-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+mapiID: 33091\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: NC-Name\r
+ldapDisplayName: nCName\r
+attributeId: 1.2.840.113556.1.2.16\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf9679d6-0de6-11d0-a285-00aa003049e2\r
+systemOnly: TRUE\r
+searchFlags: fPRESERVEONDELETE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Non-Security-Member-BL\r
+ldapDisplayName: nonSecurityMemberBL\r
+attributeId: 1.2.840.113556.1.4.531\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 52458019-ca6a-11d0-afff-0000f80367c1\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+linkID: 51\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+\r
+cn: Telex-Number\r
+ldapDisplayName: telexNumber\r
+attributeId: 2.5.4.21\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf967a4b-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 32\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+mapiID: 14892\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Template-Roots\r
+ldapDisplayName: templateRoots\r
+attributeId: 1.2.840.113556.1.4.1346\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: ed9de9a0-7041-11d2-9905-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Terminal-Server\r
+ldapDisplayName: terminalServer\r
+attributeId: 1.2.840.113556.1.4.885\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 6db69a1c-9422-11d1-aebd-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 20480\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Text-Encoded-OR-Address\r
+ldapDisplayName: textEncodedORAddress\r
+attributeId: 0.9.2342.19200300.100.1.2\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: a8df7489-c5ea-11d1-bbcb-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 1024\r
+mapiID: 35969\r
+\r
+cn: Logo\r
+ldapDisplayName: thumbnailLogo\r
+attributeId: 2.16.840.1.113730.3.1.36\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf9679a9-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 32767\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Picture\r
+ldapDisplayName: thumbnailPhoto\r
+attributeId: 2.16.840.1.113730.3.1.35\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 8d3bca50-1d7e-11d0-a081-00aa006c33ed\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 102400\r
+mapiId: 35998\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Time-Refresh\r
+ldapDisplayName: timeRefresh\r
+attributeId: 1.2.840.113556.1.4.503\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: ddac0cf1-af8f-11d0-afeb-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Time-Vol-Change\r
+ldapDisplayName: timeVolChange\r
+attributeId: 1.2.840.113556.1.4.502\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: ddac0cf0-af8f-11d0-afeb-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Title\r
+ldapDisplayName: title\r
+attributeId: 2.5.4.12\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a55-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 128\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+mapiID: 14871\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Token-Groups\r
+ldapDisplayName: tokenGroups\r
+attributeId: 1.2.840.113556.1.4.1301\r
+attributeSyntax: 2.5.5.17\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: b7c69e6d-2cc7-11d2-854e-00a0c983f608\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+attributeSecurityGuid: 037088f8-0ae1-11d2-b422-00a0c968f939\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Additional-Information\r
+ldapDisplayName: notes\r
+attributeId: 1.2.840.113556.1.4.265\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 6d05fb41-246b-11d0-a9c8-00aa006c33ed\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 32768\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Token-Groups-Global-And-Universal\r
+ldapDisplayName: tokenGroupsGlobalAndUniversal\r
+attributeId: 1.2.840.113556.1.4.1418\r
+attributeSyntax: 2.5.5.17\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: 46a9b11d-60ae-405a-b7e8-ff8a58d456d2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+attributeSecurityGuid: 037088f8-0ae1-11d2-b422-00a0c968f939\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Token-Groups-No-GC-Acceptable\r
+ldapDisplayName: tokenGroupsNoGCAcceptable\r
+attributeId: 1.2.840.113556.1.4.1303\r
+attributeSyntax: 2.5.5.17\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: 040fc392-33df-11d2-98b2-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+attributeSecurityGuid: 037088f8-0ae1-11d2-b422-00a0c968f939\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Tombstone-Lifetime\r
+ldapDisplayName: tombstoneLifetime\r
+attributeId: 1.2.840.113556.1.2.54\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 16c3a860-1273-11d0-a060-00aa006c33ed\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+mapiID: 33093\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Transport-Address-Attribute\r
+ldapDisplayName: transportAddressAttribute\r
+attributeId: 1.2.840.113556.1.4.895\r
+attributeSyntax: 2.5.5.2\r
+omSyntax: 6\r
+isSingleValued: TRUE\r
+schemaIdGuid: c1dc867c-a261-11d1-b606-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Transport-DLL-Name\r
+ldapDisplayName: transportDLLName\r
+attributeId: 1.2.840.113556.1.4.789\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 26d97372-6070-11d1-a9c6-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 1024\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Transport-Type\r
+ldapDisplayName: transportType\r
+attributeId: 1.2.840.113556.1.4.791\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: 26d97374-6070-11d1-a9c6-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Treat-As-Leaf\r
+ldapDisplayName: treatAsLeaf\r
+attributeId: 1.2.840.113556.1.4.806\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: 8fd044e3-771f-11d1-aeae-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Tree-Name\r
+ldapDisplayName: treeName\r
+attributeId: 1.2.840.113556.1.4.660\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 28630ebd-41d5-11d1-a9c1-0000f80367c1\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Trust-Attributes\r
+ldapDisplayName: trustAttributes\r
+attributeId: 1.2.840.113556.1.4.470\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 80a67e5a-9f22-11d0-afdd-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Trust-Auth-Incoming\r
+ldapDisplayName: trustAuthIncoming\r
+attributeId: 1.2.840.113556.1.4.129\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a59-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 32767\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Notification-List\r
+ldapDisplayName: notificationList\r
+attributeId: 1.2.840.113556.1.4.303\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: 19195a56-6da0-11d0-afd3-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Trust-Auth-Outgoing\r
+ldapDisplayName: trustAuthOutgoing\r
+attributeId: 1.2.840.113556.1.4.135\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a5f-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 32767\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Trust-Direction\r
+ldapDisplayName: trustDirection\r
+attributeId: 1.2.840.113556.1.4.132\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a5c-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Trust-Parent\r
+ldapDisplayName: trustParent\r
+attributeId: 1.2.840.113556.1.4.471\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: b000ea7a-a086-11d0-afdd-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Trust-Partner\r
+ldapDisplayName: trustPartner\r
+attributeId: 1.2.840.113556.1.4.133\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a5d-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+rangeLower: 1\r
+rangeUpper: 1024\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Trust-Posix-Offset\r
+ldapDisplayName: trustPosixOffset\r
+attributeId: 1.2.840.113556.1.4.134\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a5e-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Trust-Type\r
+ldapDisplayName: trustType\r
+attributeId: 1.2.840.113556.1.4.136\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a60-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: UAS-Compat\r
+ldapDisplayName: uASCompat\r
+attributeId: 1.2.840.113556.1.4.155\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a61-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+attributeSecurityGuid: b8119fd0-04f6-4762-ab7a-4986c76b3f9a\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: uid\r
+ldapDisplayName: uid\r
+attributeId: 0.9.2342.19200300.100.1.1\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 0bb0fca0-1e89-429f-901a-1413894d9f59\r
+systemOnly: FALSE\r
+searchFlags: fPRESERVEONDELETE\r
+attributeSecurityGuid: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf\r
+\r
+cn: UidNumber\r
+ldapDisplayName: uidNumber\r
+attributeId: 1.3.6.1.1.1.1.0\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 850fcc8f-9c6b-47e1-b671-7c654be4d5b3\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+\r
+cn: UNC-Name\r
+ldapDisplayName: uNCName\r
+attributeId: 1.2.840.113556.1.4.137\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a64-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: NT-Group-Members\r
+ldapDisplayName: nTGroupMembers\r
+attributeId: 1.2.840.113556.1.4.89\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf9679df-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Unicode-Pwd\r
+ldapDisplayName: unicodePwd\r
+attributeId: 1.2.840.113556.1.4.90\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf9679e1-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: uniqueIdentifier\r
+ldapDisplayName: uniqueIdentifier\r
+attributeId: 0.9.2342.19200300.100.1.44\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: ba0184c7-38c5-4bed-a526-75421470580c\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 256\r
+\r
+cn: uniqueMember\r
+ldapDisplayName: uniqueMember\r
+attributeId: 2.5.4.50\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 8f888726-f80a-44d7-b1ee-cb9df21392c8\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+\r
+cn: UnixHomeDirectory\r
+ldapDisplayName: unixHomeDirectory\r
+attributeId: 1.3.6.1.1.1.1.3\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 22\r
+isSingleValued: TRUE\r
+schemaIdGuid: bc2dba12-000f-464d-bf1d-0808465d8843\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 2048\r
+\r
+cn: UnixUserPassword\r
+ldapDisplayName: unixUserPassword\r
+attributeId: 1.2.840.113556.1.4.1910\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: 612cb747-c0e8-4f92-9221-fdd5f15b550d\r
+systemOnly: FALSE\r
+searchFlags:fCONFIDENTIAL\r
+rangeLower: 1\r
+rangeUpper: 128\r
+\r
+cn: unstructuredAddress\r
+ldapDisplayName: unstructuredAddress\r
+attributeId: 1.2.840.113549.1.9.8\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 50950839-cc4c-4491-863a-fcf942d684b7\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 256\r
+\r
+cn: unstructuredName\r
+ldapDisplayName: unstructuredName\r
+attributeId: 1.2.840.113549.1.9.2\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 22\r
+isSingleValued: FALSE\r
+schemaIdGuid: 9c8ef177-41cf-45c9-9673-7716c0c8901b\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 256\r
+\r
+cn: Upgrade-Product-Code\r
+ldapDisplayName: upgradeProductCode\r
+attributeId: 1.2.840.113556.1.4.813\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: d9e18312-8939-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 16\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: UPN-Suffixes\r
+ldapDisplayName: uPNSuffixes\r
+attributeId: 1.2.840.113556.1.4.890\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 032160bf-9824-11d1-aec0-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: WWW-Page-Other\r
+ldapDisplayName: url\r
+attributeId: 1.2.840.113556.1.4.749\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 9a9a0221-4a5b-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+attributeSecurityGuid: e45795b3-9455-11d1-aebd-0000f80367c1\r
+mapiID: 33141\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: NT-Mixed-Domain\r
+ldapDisplayName: nTMixedDomain\r
+attributeId: 1.2.840.113556.1.4.357\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 3e97891f-8c01-11d0-afda-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: User-Account-Control\r
+ldapDisplayName: userAccountControl\r
+attributeId: 1.2.840.113556.1.4.8\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a68-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: fCOPY| fPRESERVEONDELETE | fATTINDEX\r
+attributeSecurityGuid: 4c164200-20c0-11d0-a768-00aa006e0529\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: User-Cert\r
+ldapDisplayName: userCert\r
+attributeId: 1.2.840.113556.1.4.645\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a69-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 32767\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+mapiID: 14882\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: X509-Cert\r
+ldapDisplayName: userCertificate\r
+attributeId: 2.5.4.36\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf967a7f-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 32768\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+mapiID: 35946\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: userClass\r
+ldapDisplayName: userClass\r
+attributeId: 0.9.2342.19200300.100.1.8\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 11732a8a-e14d-4cc5-b92f-d93f51c6d8e4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 256\r
+\r
+cn: User-Parameters\r
+ldapDisplayName: userParameters\r
+attributeId: 1.2.840.113556.1.4.138\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a6d-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 32767\r
+attributeSecurityGuid: 4c164200-20c0-11d0-a768-00aa006e0529\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: User-Password\r
+ldapDisplayName: userPassword\r
+attributeId: 2.5.4.35\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf967a6e-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 128\r
+mapiID: 33107\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: userPKCS12\r
+ldapDisplayName: userPKCS12\r
+attributeId: 2.16.840.1.113730.3.1.216\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: 23998ab5-70f8-4007-a4c1-a84a38311f9a\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+\r
+cn: User-Principal-Name\r
+ldapDisplayName: userPrincipalName\r
+attributeId: 1.2.840.113556.1.4.656\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 28630ebb-41d5-11d1-a9c1-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+rangeUpper: 1024\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: User-Shared-Folder\r
+ldapDisplayName: userSharedFolder\r
+attributeId: 1.2.840.113556.1.4.751\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 9a9a021f-4a5b-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: User-Shared-Folder-Other\r
+ldapDisplayName: userSharedFolderOther\r
+attributeId: 1.2.840.113556.1.4.752\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 9a9a0220-4a5b-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Nt-Pwd-History\r
+ldapDisplayName: ntPwdHistory\r
+attributeId: 1.2.840.113556.1.4.94\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf9679e2-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: User-SMIME-Certificate\r
+ldapDisplayName: userSMIMECertificate\r
+attributeId: 2.16.840.1.113730.3.140\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: e16a9db2-403c-11d1-a9c0-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeUpper: 32768\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+mapiID: 14960\r
+isMemberOfPartialAttributeSet: TRUE\r
+\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: User-Workstations\r
+ldapDisplayName: userWorkstations\r
+attributeId: 1.2.840.113556.1.4.86\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf9679d7-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+rangeLower: 0\r
+rangeUpper: 1024\r
+attributeSecurityGuid: 5f202010-79a5-11d0-9020-00c04fc2d4cf\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: USN-Changed\r
+ldapDisplayName: uSNChanged\r
+attributeId: 1.2.840.113556.1.2.120\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a6f-0de6-11d0-a285-00aa003049e2\r
+systemOnly: TRUE\r
+searchFlags: fPRESERVEONDELETE | fATTINDEX\r
+mapiID: 32809\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER | FLAG_ATTR_NOT_REPLICATED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: USN-Created\r
+ldapDisplayName: uSNCreated\r
+attributeId: 1.2.840.113556.1.2.19\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a70-0de6-11d0-a285-00aa003049e2\r
+systemOnly: TRUE\r
+searchFlags: fPRESERVEONDELETE | fATTINDEX\r
+mapiID: 33108\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER | FLAG_ATTR_NOT_REPLICATED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: USN-DSA-Last-Obj-Removed\r
+ldapDisplayName: uSNDSALastObjRemoved\r
+attributeId: 1.2.840.113556.1.2.267\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a71-0de6-11d0-a285-00aa003049e2\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+mapiID: 33109\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: USN-Intersite\r
+ldapDisplayName: USNIntersite\r
+attributeId: 1.2.840.113556.1.2.469\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: a8df7498-c5ea-11d1-bbcb-0080c76670c0\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+mapiID: 33146\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: USN-Last-Obj-Rem\r
+ldapDisplayName: uSNLastObjRem\r
+attributeId: 1.2.840.113556.1.2.121\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a73-0de6-11d0-a285-00aa003049e2\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+mapiID: 33110\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER | FLAG_ATTR_NOT_REPLICATED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: USN-Source\r
+ldapDisplayName: uSNSource\r
+attributeId: 1.2.840.113556.1.4.896\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: 167758ad-47f3-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+mapiID: 33111\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Valid-Accesses\r
+ldapDisplayName: validAccesses\r
+attributeId: 1.2.840.113556.1.4.1356\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 4d2fa380-7f54-11d2-992a-0000f87a57d4\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Vendor\r
+ldapDisplayName: vendor\r
+attributeId: 1.2.840.113556.1.4.255\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 281416df-1968-11d0-a28f-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 512\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: NT-Security-Descriptor\r
+ldapDisplayName: nTSecurityDescriptor\r
+attributeId: 1.2.840.113556.1.2.281\r
+attributeSyntax: 2.5.5.15\r
+omSyntax: 66\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf9679e3-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: fPRESERVEONDELETE\r
+rangeLower: 0\r
+rangeUpper: 132096\r
+mapiID: 32787\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_OPERATIONAL |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER\r
+\r
+cn: Version-Number\r
+ldapDisplayName: versionNumber\r
+attributeId: 1.2.840.113556.1.4.141\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a76-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Version-Number-Hi\r
+ldapDisplayName: versionNumberHi\r
+attributeId: 1.2.840.113556.1.4.328\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 7d6c0e9a-7e20-11d0-afd6-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Version-Number-Lo\r
+ldapDisplayName: versionNumberLo\r
+attributeId: 1.2.840.113556.1.4.329\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 7d6c0e9b-7e20-11d0-afd6-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Vol-Table-GUID\r
+ldapDisplayName: volTableGUID\r
+attributeId: 1.2.840.113556.1.4.336\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 1f0075fd-7e40-11d0-afd6-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 16\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Vol-Table-Idx-GUID\r
+ldapDisplayName: volTableIdxGUID\r
+attributeId: 1.2.840.113556.1.4.334\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 1f0075fb-7e40-11d0-afd6-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+rangeLower: 0\r
+rangeUpper: 16\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Volume-Count\r
+ldapDisplayName: volumeCount\r
+attributeId: 1.2.840.113556.1.4.507\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 34aaa217-b699-11d0-afee-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Wbem-Path\r
+ldapDisplayName: wbemPath\r
+attributeId: 1.2.840.113556.1.4.301\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 244b2970-5abd-11d0-afd2-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Well-Known-Objects\r
+ldapDisplayName: wellKnownObjects\r
+attributeId: 1.2.840.113556.1.4.618\r
+attributeSyntax: 2.5.5.7\r
+omSyntax: 127\r
+omObjectClass: 1.2.840.113556.1.1.1.11\r
+isSingleValued: FALSE\r
+schemaIdGuid: 05308983-7688-11d1-aded-00c04fd8d5cd\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+rangeLower: 16\r
+rangeUpper: 16\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: When-Changed\r
+ldapDisplayName: whenChanged\r
+attributeId: 1.2.840.113556.1.2.3\r
+attributeSyntax: 2.5.5.11\r
+omSyntax: 24\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a77-0de6-11d0-a285-00aa003049e2\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+mapiID: 12296\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER | FLAG_ATTR_NOT_REPLICATED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: When-Created\r
+ldapDisplayName: whenCreated\r
+attributeId: 1.2.840.113556.1.2.2\r
+attributeSyntax: 2.5.5.11\r
+omSyntax: 24\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a78-0de6-11d0-a285-00aa003049e2\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+mapiID: 12295\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Organization-Name\r
+ldapDisplayName: o\r
+attributeId: 2.5.4.10\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf9679ef-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 64\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+mapiID: 33025\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Winsock-Addresses\r
+ldapDisplayName: winsockAddresses\r
+attributeId: 1.2.840.113556.1.4.142\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf967a79-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: WWW-Home-Page\r
+ldapDisplayName: wWWHomePage\r
+attributeId: 1.2.840.113556.1.2.464\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf967a7a-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 2048\r
+attributeSecurityGuid: e45795b3-9455-11d1-aebd-0000f80367c1\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: X121-Address\r
+ldapDisplayName: x121Address\r
+attributeId: 2.5.4.24\r
+attributeSyntax: 2.5.5.6\r
+omSyntax: 18\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf967a7b-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 15\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+mapiID: 33112\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: x500uniqueIdentifier\r
+ldapDisplayName: x500uniqueIdentifier\r
+attributeId: 2.5.4.45\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: d07da11f-8a3d-42b6-b0aa-76c962be719a\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+\r
+cn: Object-Category\r
+ldapDisplayName: objectCategory\r
+attributeId: 1.2.840.113556.1.4.782\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: 26d97369-6070-11d1-a9c6-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Object-Class\r
+ldapDisplayName: objectClass\r
+attributeId: 2.5.4.0\r
+attributeSyntax: 2.5.5.2\r
+omSyntax: 6\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf9679e5-0de6-11d0-a285-00aa003049e2\r
+systemOnly: TRUE\r
+searchFlags: fPRESERVEONDELETE\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: NETBIOS-Name\r
+ldapDisplayName: nETBIOSName\r
+attributeId: 1.2.840.113556.1.4.87\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf9679d8-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+rangeLower: 1\r
+rangeUpper: 16\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Object-Class-Category\r
+ldapDisplayName: objectClassCategory\r
+attributeId: 1.2.840.113556.1.2.370\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 10\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf9679e6-0de6-11d0-a285-00aa003049e2\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 3\r
+mapiID: 33014\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Object-Classes\r
+ldapDisplayName: objectClasses\r
+attributeId: 2.5.21.6\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 9a7ad94b-ca53-11d1-bbd0-0080c76670c0\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Object-Count\r
+ldapDisplayName: objectCount\r
+attributeId: 1.2.840.113556.1.4.506\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 34aaa216-b699-11d0-afee-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Object-Guid\r
+ldapDisplayName: objectGUID\r
+attributeId: 1.2.840.113556.1.4.2\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf9679e7-0de6-11d0-a285-00aa003049e2\r
+systemOnly: TRUE\r
+searchFlags: fPRESERVEONDELETE | fATTINDEX\r
+rangeLower: 16\r
+rangeUpper: 16\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+mapiID: 35949\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER | FLAG_ATTR_NOT_REPLICATED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Object-Sid\r
+ldapDisplayName: objectSid\r
+attributeId: 1.2.840.113556.1.4.146\r
+attributeSyntax: 2.5.5.17\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf9679e8-0de6-11d0-a285-00aa003049e2\r
+systemOnly: TRUE\r
+searchFlags: fPRESERVEONDELETE | fATTINDEX\r
+rangeLower: 0\r
+rangeUpper: 28\r
+attributeSecurityGuid: 59ba2f42-79a2-11d0-9020-00c04fc2d3cf\r
+mapiID: 32807\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+systemOnly: FALSE\r
+\r
+cn: Object-Version\r
+ldapDisplayName: objectVersion\r
+attributeId: 1.2.840.113556.1.2.76\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 16775848-47f3-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+mapiID: 33015\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: OEM-Information\r
+ldapDisplayName: oEMInformation\r
+attributeId: 1.2.840.113556.1.4.151\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf9679ea-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 32767\r
+attributeSecurityGuid: b8119fd0-04f6-4762-ab7a-4986c76b3f9a\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: OM-Object-Class\r
+ldapDisplayName: oMObjectClass\r
+attributeId: 1.2.840.113556.1.2.218\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf9679ec-0de6-11d0-a285-00aa003049e2\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+mapiID: 33021\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: OM-Syntax\r
+ldapDisplayName: oMSyntax\r
+attributeId: 1.2.840.113556.1.2.231\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf9679ed-0de6-11d0-a285-00aa003049e2\r
+systemOnly: TRUE\r
+searchFlags: fPRESERVEONDELETE\r
+mapiID: 33022\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: OMT-Guid\r
+ldapDisplayName: oMTGuid\r
+attributeId: 1.2.840.113556.1.4.505\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: ddac0cf3-af8f-11d0-afeb-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 0\r
+rangeUpper: 16\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: netboot-Allow-New-Clients\r
+ldapDisplayName: netbootAllowNewClients\r
+attributeId: 1.2.840.113556.1.4.849\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: 07383076-91df-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: OMT-Indx-Guid\r
+ldapDisplayName: oMTIndxGuid\r
+attributeId: 1.2.840.113556.1.4.333\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 1f0075fa-7e40-11d0-afd6-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+rangeLower: 0\r
+rangeUpper: 16\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: OncRpcNumber\r
+ldapDisplayName: oncRpcNumber\r
+attributeId: 1.3.6.1.1.1.1.18\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 966825f5-01d9-4a5c-a011-d15ae84efa55\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+\r
+cn: Operating-System\r
+ldapDisplayName: operatingSystem\r
+attributeId: 1.2.840.113556.1.4.363\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 3e978925-8c01-11d0-afda-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Operating-System-Hotfix\r
+ldapDisplayName: operatingSystemHotfix\r
+attributeId: 1.2.840.113556.1.4.415\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: bd951b3c-9c96-11d0-afdd-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Operating-System-Service-Pack\r
+ldapDisplayName: operatingSystemServicePack\r
+attributeId: 1.2.840.113556.1.4.365\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 3e978927-8c01-11d0-afda-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Operating-System-Version\r
+ldapDisplayName: operatingSystemVersion\r
+attributeId: 1.2.840.113556.1.4.364\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 3e978926-8c01-11d0-afda-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Operator-Count\r
+ldapDisplayName: operatorCount\r
+attributeId: 1.2.840.113556.1.4.144\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf9679ee-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Option-Description\r
+ldapDisplayName: optionDescription\r
+attributeId: 1.2.840.113556.1.4.712\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 963d274d-48be-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Options\r
+ldapDisplayName: options\r
+attributeId: 1.2.840.113556.1.4.307\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 19195a53-6da0-11d0-afd3-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Options-Location\r
+ldapDisplayName: optionsLocation\r
+attributeId: 1.2.840.113556.1.4.713\r
+attributeSyntax: 2.5.5.5\r
+omSyntax: 19\r
+isSingleValued: FALSE\r
+schemaIdGuid: 963d274e-48be-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: netboot-Answer-Only-Valid-Clients\r
+ldapDisplayName: netbootAnswerOnlyValidClients\r
+attributeId: 1.2.840.113556.1.4.854\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: 0738307b-91df-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: organizationalStatus\r
+ldapDisplayName: organizationalStatus\r
+attributeId: 0.9.2342.19200300.100.1.45\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 28596019-7349-4d2f-adff-5a629961f942\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 256\r
+\r
+cn: Original-Display-Table\r
+ldapDisplayName: originalDisplayTable\r
+attributeId: 1.2.840.113556.1.2.445\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 5fd424ce-1262-11d0-a060-00aa006c33ed\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 32768\r
+mapiID: 33027\r
+\r
+cn: Original-Display-Table-MSDOS\r
+ldapDisplayName: originalDisplayTableMSDOS\r
+attributeId: 1.2.840.113556.1.2.214\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 5fd424cf-1262-11d0-a060-00aa006c33ed\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 32768\r
+mapiID: 33028\r
+\r
+cn: Phone-Fax-Other\r
+ldapDisplayName: otherFacsimileTelephoneNumber\r
+attributeId: 1.2.840.113556.1.4.646\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 0296c11d-40da-11d1-a9c0-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 64\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Phone-Home-Other\r
+ldapDisplayName: otherHomePhone\r
+attributeId: 1.2.840.113556.1.2.277\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: f0f8ffa2-1191-11d0-a060-00aa006c33ed\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 64\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+mapiID: 14895\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Phone-Ip-Other\r
+ldapDisplayName: otherIpPhone\r
+attributeId: 1.2.840.113556.1.4.722\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 4d146e4b-48d4-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Other-Login-Workstations\r
+ldapDisplayName: otherLoginWorkstations\r
+attributeId: 1.2.840.113556.1.4.91\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf9679f1-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: fCOPY\r
+rangeLower: 0\r
+rangeUpper: 1024\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Other-Mailbox\r
+ldapDisplayName: otherMailbox\r
+attributeId: 1.2.840.113556.1.4.651\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 0296c123-40da-11d1-a9c0-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+\r
+cn: Phone-Mobile-Other\r
+ldapDisplayName: otherMobile\r
+attributeId: 1.2.840.113556.1.4.647\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 0296c11e-40da-11d1-a9c0-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 64\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Phone-Pager-Other\r
+ldapDisplayName: otherPager\r
+attributeId: 1.2.840.113556.1.2.118\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: f0f8ffa4-1191-11d0-a060-00aa006c33ed\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 64\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+mapiID: 35950\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: netboot-Answer-Requests\r
+ldapDisplayName: netbootAnswerRequests\r
+attributeId: 1.2.840.113556.1.4.853\r
+attributeSyntax: 2.5.5.8\r
+omSyntax: 1\r
+isSingleValued: TRUE\r
+schemaIdGuid: 0738307a-91df-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Phone-Office-Other\r
+ldapDisplayName: otherTelephone\r
+attributeId: 1.2.840.113556.1.2.18\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: f0f8ffa5-1191-11d0-a060-00aa006c33ed\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 64\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+mapiID: 14875\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Other-Well-Known-Objects\r
+ldapDisplayName: otherWellKnownObjects\r
+attributeId: 1.2.840.113556.1.4.1359\r
+attributeSyntax: 2.5.5.7\r
+omSyntax: 127\r
+omObjectClass: 1.2.840.113556.1.1.1.11\r
+isSingleValued: FALSE\r
+schemaIdGuid: 1ea64e5d-ac0f-11d2-90df-00c04fd91ab1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 16\r
+rangeUpper: 16\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Organizational-Unit-Name\r
+ldapDisplayName: ou\r
+attributeId: 2.5.4.11\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf9679f0-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+rangeLower: 1\r
+rangeUpper: 64\r
+attributeSecurityGuid: e48d0154-bcf8-11d1-8702-00c04fb96050\r
+mapiID: 33026\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Owner\r
+ldapDisplayName: owner\r
+attributeId: 2.5.4.32\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf9679f3-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+linkID: 44\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-Exch-Owner-BL\r
+ldapDisplayName: ownerBL\r
+attributeId: 1.2.840.113556.1.2.104\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: bf9679f4-0de6-11d0-a285-00aa003049e2\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+linkID: 45\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+\r
+cn: Package-Flags\r
+ldapDisplayName: packageFlags\r
+attributeId: 1.2.840.113556.1.4.327\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 7d6c0e99-7e20-11d0-afd6-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Package-Name\r
+ldapDisplayName: packageName\r
+attributeId: 1.2.840.113556.1.4.326\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 7d6c0e98-7e20-11d0-afd6-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Package-Type\r
+ldapDisplayName: packageType\r
+attributeId: 1.2.840.113556.1.4.324\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 7d6c0e96-7e20-11d0-afd6-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Phone-Pager-Primary\r
+ldapDisplayName: pager\r
+attributeId: 0.9.2342.19200300.100.1.42\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: f0f8ffa6-1191-11d0-a060-00aa006c33ed\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 64\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+mapiID: 14881\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Parent-CA\r
+ldapDisplayName: parentCA\r
+attributeId: 1.2.840.113556.1.4.557\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: 5245801b-ca6a-11d0-afff-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: netboot-Current-Client-Count\r
+ldapDisplayName: netbootCurrentClientCount\r
+attributeId: 1.2.840.113556.1.4.852\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 07383079-91df-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Parent-CA-Certificate-Chain\r
+ldapDisplayName: parentCACertificateChain\r
+attributeId: 1.2.840.113556.1.4.685\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 963d2733-48be-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Parent-GUID\r
+ldapDisplayName: parentGUID\r
+attributeId: 1.2.840.113556.1.4.1224\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 2df90d74-009f-11d2-aa4c-00c04fd7d83a\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_IS_CONSTRUCTED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Partial-Attribute-Deletion-List\r
+ldapDisplayName: partialAttributeDeletionList\r
+attributeId: 1.2.840.113556.1.4.663\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 28630ec0-41d5-11d1-a9c1-0000f80367c1\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER | FLAG_ATTR_NOT_REPLICATED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Partial-Attribute-Set\r
+ldapDisplayName: partialAttributeSet\r
+attributeId: 1.2.840.113556.1.4.640\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 19405b9e-3cfa-11d1-a9c0-0000f80367c1\r
+systemOnly: TRUE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT |FLAG_ATTR_REQ_PARTIAL_SET_MEMBER | FLAG_ATTR_NOT_REPLICATED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Pek-Key-Change-Interval\r
+ldapDisplayName: pekKeyChangeInterval\r
+attributeId: 1.2.840.113556.1.4.866\r
+attributeSyntax: 2.5.5.16\r
+omSyntax: 65\r
+isSingleValued: TRUE\r
+schemaIdGuid: 07383084-91df-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Pek-List\r
+ldapDisplayName: pekList\r
+attributeId: 1.2.840.113556.1.4.865\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 07383083-91df-11d1-aebc-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT | FLAG_ATTR_NOT_REPLICATED\r
+schemaFlagsEx: FLAG_ATTR_IS_CRITICAL\r
+\r
+cn: Pending-CA-Certificates\r
+ldapDisplayName: pendingCACertificates\r
+attributeId: 1.2.840.113556.1.4.693\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 963d273c-48be-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Pending-Parent-CA\r
+ldapDisplayName: pendingParentCA\r
+attributeId: 1.2.840.113556.1.4.695\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: FALSE\r
+schemaIdGuid: 963d273e-48be-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Per-Msg-Dialog-Display-Table\r
+ldapDisplayName: perMsgDialogDisplayTable\r
+attributeId: 1.2.840.113556.1.2.325\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 5fd424d3-1262-11d0-a060-00aa006c33ed\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 32768\r
+mapiID: 33032\r
+\r
+cn: Per-Recip-Dialog-Display-Table\r
+ldapDisplayName: perRecipDialogDisplayTable\r
+attributeId: 1.2.840.113556.1.2.326\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 5fd424d4-1262-11d0-a060-00aa006c33ed\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 32768\r
+mapiID: 33033\r
+\r
+cn: Netboot-GUID\r
+ldapDisplayName: netbootGUID\r
+attributeId: 1.2.840.113556.1.4.359\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 3e978921-8c01-11d0-afda-00c04fd930c9\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+rangeLower: 16\r
+rangeUpper: 16\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Personal-Title\r
+ldapDisplayName: personalTitle\r
+attributeId: 1.2.840.113556.1.2.615\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: 16775858-47f3-11d1-a9c3-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+rangeLower: 1\r
+rangeUpper: 64\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+mapiID: 35947\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: photo\r
+ldapDisplayName: photo\r
+attributeId: 0.9.2342.19200300.100.1.7\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: FALSE\r
+schemaIdGuid: 9c979768-ba1a-4c08-9632-c6a5c1ed649a\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+\r
+cn: Physical-Delivery-Office-Name\r
+ldapDisplayName: physicalDeliveryOfficeName\r
+attributeId: 2.5.4.19\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: TRUE\r
+schemaIdGuid: bf9679f7-0de6-11d0-a285-00aa003049e2\r
+systemOnly: FALSE\r
+searchFlags: fANR | fATTINDEX\r
+rangeLower: 1\r
+rangeUpper: 128\r
+attributeSecurityGuid: 77b5b886-944a-11d1-aebd-0000f80367c1\r
+mapiID: 14873\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Physical-Location-Object\r
+ldapDisplayName: physicalLocationObject\r
+attributeId: 1.2.840.113556.1.4.514\r
+attributeSyntax: 2.5.5.1\r
+omSyntax: 127\r
+omObjectClass: 1.3.12.2.1011.28.0.714\r
+isSingleValued: TRUE\r
+schemaIdGuid: b7b13119-b82e-11d0-afee-0000f80367c1\r
+systemOnly: FALSE\r
+searchFlags: fATTINDEX\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: PKI-Critical-Extensions\r
+ldapDisplayName: pKICriticalExtensions\r
+attributeId: 1.2.840.113556.1.4.1330\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: fc5a9106-3b9d-11d2-90cc-00c04fd91ab1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: PKI-Default-CSPs\r
+ldapDisplayName: pKIDefaultCSPs\r
+attributeId: 1.2.840.113556.1.4.1334\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 1ef6336e-3b9e-11d2-90cc-00c04fd91ab1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: PKI-Default-Key-Spec\r
+ldapDisplayName: pKIDefaultKeySpec\r
+attributeId: 1.2.840.113556.1.4.1327\r
+attributeSyntax: 2.5.5.9\r
+omSyntax: 2\r
+isSingleValued: TRUE\r
+schemaIdGuid: 426cae6e-3b9d-11d2-90cc-00c04fd91ab1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: PKI-Enrollment-Access\r
+ldapDisplayName: pKIEnrollmentAccess\r
+attributeId: 1.2.840.113556.1.4.1335\r
+attributeSyntax: 2.5.5.15\r
+omSyntax: 66\r
+isSingleValued: FALSE\r
+schemaIdGuid: 926be278-56f9-11d2-90d0-00c04fd91ab1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: PKI-Expiration-Period\r
+ldapDisplayName: pKIExpirationPeriod\r
+attributeId: 1.2.840.113556.1.4.1331\r
+attributeSyntax: 2.5.5.10\r
+omSyntax: 4\r
+isSingleValued: TRUE\r
+schemaIdGuid: 041570d2-3b9e-11d2-90cc-00c04fd91ab1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: PKI-Extended-Key-Usage\r
+ldapDisplayName: pKIExtendedKeyUsage\r
+attributeId: 1.2.840.113556.1.4.1333\r
+attributeSyntax: 2.5.5.12\r
+omSyntax: 64\r
+isSingleValued: FALSE\r
+schemaIdGuid: 18976af6-3b9e-11d2-90cc-00c04fd91ab1\r
+systemOnly: FALSE\r
+searchFlags: 0\r
+isMemberOfPartialAttributeSet: TRUE\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
--- /dev/null
+# © 2008 Microsoft Corporation. All rights reserved\r
+#\r
+# Intellectual Property Rights Notice for Protocol Documentation\r
+#\r
+# Copyrights. \r
+# This protocol documentation is covered by Microsoft\r
+# copyrights. Regardless of any other terms that are contained in the\r
+# terms of use for the Microsoft website that hosts this documentation,\r
+# you may make copies of it in order to develop implementations of the\r
+# protocols, and may distribute portions of it in your implementations\r
+# of the protocols or your documentation as necessary to properly\r
+# document the implementation. You may also distribute in your\r
+# implementation, with or without modification, any schema, IDL's, or\r
+# code samples that are included in the documentation. This permission\r
+# also applies to any documents that are referenced in the protocol\r
+# documentation.\r
+# \r
+# No Trade Secrets. \r
+# Microsoft does not claim any trade secret rights in this documentation.\r
+# \r
+# Patents. \r
+# Microsoft has patents that may cover your implementations of the\r
+# protocols. Neither this notice nor Microsoft's delivery of the\r
+# documentation grants any licenses under those or any other Microsoft\r
+# patents. However, the protocols may be covered by Microsoft\92s Open\r
+# Specification Promise (available here:\r
+# http://www.microsoft.com/interop/osp). If you would prefer a written\r
+# license, or if the protocols are not covered by the OSP, patent\r
+# licenses are available by contacting protocol@microsoft.com.\r
+# \r
+# Trademarks. \r
+# The names of companies and products contained in this documentation\r
+# may be covered by trademarks or similar intellectual property\r
+# rights. This notice does not grant any licenses under those\r
+# rights.Reservation of Rights. All other rights are reserved, and this\r
+# notice does not grant any rights other than specifically described\r
+# above, whether by implication, estoppel, or otherwise.\r
+# \r
+# Tools. \r
+# This protocol documentation is intended for use in conjunction with\r
+# publicly available standard specifications and network programming\r
+# art, and assumes that the reader either is familiar with the\r
+# aforementioned material or has immediate access to it. A protocol\r
+# specification does not require the use of Microsoft programming tools\r
+# or programming environments in order for you to develop an\r
+# implementation. If you have access to Microsoft programming tools and\r
+# environments you are free to take advantage of them.\r
+\r
+cn: account\r
+ldapDisplayName: account\r
+governsId: 0.9.2342.19200300.100.4.5\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+mayContain: uid, host, ou, o, l, seeAlso, description\r
+possSuperiors: organizationalUnit, container\r
+schemaIdGuid:2628a46a-a6ad-4ae0-b854-2b12d9fe6f9e\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLOLORCWOWDSDDTDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=account,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
+cn: Application-Site-Settings\r
+ldapDisplayName: applicationSiteSettings\r
+governsId: 1.2.840.113556.1.5.68\r
+objectClassCategory: 2\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: notificationList, applicationName\r
+systemPossSuperiors: site\r
+schemaIdGuid:19195a5c-6da0-11d0-afd3-00c04fd930c9\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Application-Site-Settings,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DFSR-ReplicationGroup\r
+ldapDisplayName: msDFSR-ReplicationGroup\r
+governsId: 1.2.840.113556.1.6.13.4.5\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+mustContain: msDFSR-ReplicationGroupType\r
+mayContain: msDFSR-Options2, msDFSR-OnDemandExclusionDirectoryFilter,msDFSR-OnDemandExclusionFileFilter,msDFSR-DefaultCompressionExclusionFilter, msDFSR-DeletedSizeInMb,msDFSR-DirectoryFilter, msDFSR-FileFilter, msDFSR-ConflictSizeInMb,msDFSR-StagingSizeInMb, msDFSR-RootSizeInMb, description,msDFSR-TombstoneExpiryInMin, msDFSR-Flags, msDFSR-Options,msDFSR-Extension, msDFSR-Schedule, msDFSR-Version\r
+possSuperiors: msDFSR-GlobalSettings\r
+schemaIdGuid:1c332fe0-0c2a-4f32-afca-23c5e45a9e77\r
+defaultSecurityDescriptor: D:(A;;RPLCLORC;;;AU)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;DA)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;CO)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;SY)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-DFSR-ReplicationGroup,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
+cn: ms-DFSR-Subscriber\r
+ldapDisplayName: msDFSR-Subscriber\r
+governsId: 1.2.840.113556.1.6.13.4.2\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+mustContain: msDFSR-MemberReference, msDFSR-ReplicationGroupGuid\r
+mayContain: msDFSR-Flags, msDFSR-Options, msDFSR-Extension\r
+possSuperiors: msDFSR-LocalSettings\r
+schemaIdGuid:e11505d7-92c4-43e7-bf5c-295832ffc896\r
+defaultSecurityDescriptor: D:(A;;RPLCLORC;;;AU)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;DA)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;CO)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;SY)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-DFSR-Subscriber,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
+cn: ms-DFSR-Subscription\r
+ldapDisplayName: msDFSR-Subscription\r
+governsId: 1.2.840.113556.1.6.13.4.3\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+mustContain: msDFSR-ContentSetGuid, msDFSR-ReplicationGroupGuid\r
+mayContain: msDFSR-StagingCleanupTriggerInPercent, msDFSR-Options2,msDFSR-OnDemandExclusionDirectoryFilter,msDFSR-OnDemandExclusionFileFilter, msDFSR-MaxAgeInCacheInMin,msDFSR-MinDurationCacheInMin, msDFSR-CachePolicy, msDFSR-ReadOnly,msDFSR-DeletedSizeInMb, msDFSR-DeletedPath, msDFSR-RootPath,msDFSR-RootSizeInMb, msDFSR-StagingPath, msDFSR-StagingSizeInMb,msDFSR-ConflictPath, msDFSR-ConflictSizeInMb, msDFSR-Enabled,msDFSR-RootFence, msDFSR-DfsLinkTarget, msDFSR-Flags,msDFSR-Options, msDFSR-Extension\r
+possSuperiors: msDFSR-Subscriber\r
+schemaIdGuid:67212414-7bcc-4609-87e0-088dad8abdee\r
+defaultSecurityDescriptor: D:(A;;RPLCLORC;;;AU)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;DA)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;CO)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;SY)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-DFSR-Subscription,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
+cn: ms-DFSR-Topology\r
+ldapDisplayName: msDFSR-Topology\r
+governsId: 1.2.840.113556.1.6.13.4.8\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+mayContain: msDFSR-Flags, msDFSR-Options, msDFSR-Extension\r
+possSuperiors: msDFSR-ReplicationGroup\r
+schemaIdGuid:04828aa9-6e42-4e80-b962-e2fe00754d17\r
+defaultSecurityDescriptor: D:(A;;RPLCLORC;;;AU)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;DA)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;CO)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;SY)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-DFSR-Topology,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
+cn: ms-DS-App-Configuration\r
+ldapDisplayName: msDS-App-Configuration\r
+governsId: 1.2.840.113556.1.5.220\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: applicationSettings\r
+mayContain: owner, msDS-ObjectReference, msDS-Integer, msDS-DateTime,msDS-ByteArray, managedBy, keywords\r
+possSuperiors: organizationalUnit, computer, container\r
+schemaIdGuid:90df3c3e-1854-4455-a5d7-cad40d56657a\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-DS-App-Configuration,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
+cn: ms-DS-App-Data\r
+ldapDisplayName: msDS-AppData\r
+governsId: 1.2.840.113556.1.5.241\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: applicationSettings\r
+mayContain: owner, msDS-ObjectReference, msDS-Integer, msDS-DateTime,msDS-ByteArray, managedBy, keywords\r
+possSuperiors: organizationalUnit, computer, container\r
+schemaIdGuid:9e67d761-e327-4d55-bc95-682f875e2f8e\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-DS-App-Data,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
+cn: ms-DS-Az-Admin-Manager\r
+ldapDisplayName: msDS-AzAdminManager\r
+governsId: 1.2.840.113556.1.5.234\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: msDS-AzGenericData, msDS-AzObjectGuid,msDS-AzMinorVersion, msDS-AzMajorVersion, msDS-AzApplicationData,msDS-AzGenerateAudits, msDS-AzScriptTimeout,msDS-AzScriptEngineCacheMax, msDS-AzDomainTimeout, description\r
+systemPossSuperiors: domainDNS, organizationalUnit, container\r
+schemaIdGuid:cfee1051-5f28-4bae-a863-5d0cc18a8ed1\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;CO)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-DS-Az-Admin-Manager,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-Az-Application\r
+ldapDisplayName: msDS-AzApplication\r
+governsId: 1.2.840.113556.1.5.235\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: msDS-AzGenericData, msDS-AzObjectGuid,msDS-AzApplicationData, msDS-AzGenerateAudits,msDS-AzApplicationVersion, msDS-AzClassId, msDS-AzApplicationName,description\r
+systemPossSuperiors: msDS-AzAdminManager\r
+schemaIdGuid:ddf8de9b-cba5-4e12-842e-28d8b66f75ec\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;CO)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-DS-Az-Application,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-Az-Operation\r
+ldapDisplayName: msDS-AzOperation\r
+governsId: 1.2.840.113556.1.5.236\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: msDS-AzOperationID\r
+systemMayContain: msDS-AzGenericData, msDS-AzObjectGuid,msDS-AzApplicationData, description\r
+systemPossSuperiors: container, msDS-AzApplication\r
+schemaIdGuid:860abe37-9a9b-4fa4-b3d2-b8ace5df9ec5\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;CO)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-DS-Az-Operation,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-Az-Role\r
+ldapDisplayName: msDS-AzRole\r
+governsId: 1.2.840.113556.1.5.239\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: msDS-AzGenericData, msDS-AzObjectGuid,msDS-AzApplicationData, msDS-TasksForAzRole,msDS-OperationsForAzRole, msDS-MembersForAzRole, description\r
+systemPossSuperiors: container, msDS-AzScope, msDS-AzApplication\r
+schemaIdGuid:8213eac9-9d55-44dc-925c-e9a52b927644\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;CO)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-DS-Az-Role,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Application-Version\r
+ldapDisplayName: applicationVersion\r
+governsId: 1.2.840.113556.1.5.216\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: applicationSettings\r
+mayContain: owner, managedBy, keywords, versionNumberLo,versionNumberHi, versionNumber, vendor, appSchemaVersion\r
+possSuperiors: organizationalUnit, computer, container\r
+schemaIdGuid:ddc790ac-af4d-442a-8f0f-a1d4caa7dd92\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Application-Version,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
+cn: ms-DS-Az-Scope\r
+ldapDisplayName: msDS-AzScope\r
+governsId: 1.2.840.113556.1.5.237\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: msDS-AzScopeName\r
+systemMayContain: msDS-AzGenericData, msDS-AzObjectGuid,msDS-AzApplicationData, description\r
+systemPossSuperiors: msDS-AzApplication\r
+schemaIdGuid:4feae054-ce55-47bb-860e-5b12063a51de\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;CO)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-DS-Az-Scope,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-Az-Task\r
+ldapDisplayName: msDS-AzTask\r
+governsId: 1.2.840.113556.1.5.238\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: msDS-AzGenericData, msDS-AzObjectGuid,msDS-TasksForAzTask, msDS-OperationsForAzTask,msDS-AzApplicationData, msDS-AzTaskIsRoleDefinition,msDS-AzLastImportedBizRulePath, msDS-AzBizRuleLanguage,msDS-AzBizRule, description\r
+systemPossSuperiors: container, msDS-AzScope, msDS-AzApplication\r
+schemaIdGuid:1ed3a473-9b1b-418a-bfa0-3a37b95a5306\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;CO)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-DS-Az-Task,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-Password-Settings\r
+ldapDisplayName: msDS-PasswordSettings\r
+governsId: 1.2.840.113556.1.5.255\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: msDS-MaximumPasswordAge, msDS-MinimumPasswordAge,msDS-MinimumPasswordLength, msDS-PasswordComplexityEnabled,msDS-LockoutObservationWindow, msDS-LockoutDuration,msDS-LockoutThreshold, msDS-PasswordReversibleEncryptionEnabled,msDS-PasswordSettingsPrecedence, msDS-PasswordHistoryLength\r
+systemMayContain: msDS-PSOAppliesTo\r
+systemPossSuperiors: msDS-PasswordSettingsContainer\r
+schemaIdGuid:: 3bcd9db8-f84b-451c-952f-6c52b81f9ec6\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-DS-Password-Settings,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-Password-Settings\r
+ldapDisplayName: msDS-PasswordSettingsContainer\r
+governsId: 1.2.840.113556.1.5.256\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemPossSuperiors: Container\r
+schemaIdGuid:: 5b06b06a-4cf3-44c0-bd16-43bc10a987da\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-DS-Password-Settings-Container,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-Quota-Container\r
+ldapDisplayName: msDS-QuotaContainer\r
+governsId: 1.2.840.113556.1.5.242\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: cn\r
+systemMayContain: msDS-TopQuotaUsage, msDS-QuotaUsed,msDS-QuotaEffective, msDS-TombstoneQuotaFactor, msDS-DefaultQuota\r
+systemPossSuperiors: configuration, domainDNS\r
+schemaIdGuid:da83fc4f-076f-4aea-b4dc-8f4dab9b5993\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPLCLORC;;;BA)(OA;;CR;4ecc03fe-ffc0-4947-b630-eb672a8a9dbc;;WD)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-DS-Quota-Container,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DS-Quota-Control\r
+ldapDisplayName: msDS-QuotaControl\r
+governsId: 1.2.840.113556.1.5.243\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: msDS-QuotaAmount, msDS-QuotaTrustee, cn\r
+systemPossSuperiors: msDS-QuotaContainer\r
+schemaIdGuid:de91fc26-bd02-4b52-ae26-795999e96fc7\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPLCLORC;;;BA)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-DS-Quota-Control,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-Exch-Configuration-Container\r
+ldapDisplayName: msExchConfigurationContainer\r
+governsId: 1.2.840.113556.1.5.176\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: container\r
+systemMayContain: templateRoots, addressBookRoots, globalAddressList,templateRoots2, addressBookRoots2, globalAddressList2\r
+schemaIdGuid:d03d6858-06f4-11d2-aa53-00c04fd7d83a\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-Exch-Configuration-Container,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-FVE-RecoveryInformation\r
+ldapDisplayName: msFVE-RecoveryInformation\r
+governsId: 1.2.840.113556.1.5.253\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: msFVE-RecoveryPassword, msFVE-RecoveryGuid\r
+mayContain: msFVE-KeyPackage, msFVE-VolumeGuid\r
+systemPossSuperiors: computer\r
+schemaIdGuid:ea715d30-8f53-40d0-bd1e-6109186d782c\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-FVE-RecoveryInformation,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-ieee-80211-Policy\r
+ldapDisplayName: msieee80211-Policy\r
+governsId: 1.2.840.113556.1.5.240\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: msieee80211-ID, msieee80211-DataType,msieee80211-Data\r
+systemPossSuperiors: organizationalUnit, container, computer\r
+schemaIdGuid:7b9a2d92-b7eb-4382-9772-c3e0f9baaf94\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-ieee-80211-Policy,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Custom-Recipient\r
+ldapDisplayName: msMQ-Custom-Recipient\r
+governsId: 1.2.840.113556.1.5.218\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: msMQ-Recipient-FormatName\r
+systemPossSuperiors: organizationalUnit, domainDNS, container\r
+schemaIdGuid:876d6817-35cc-436c-acea-5ef7174dd9be\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: FALSE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=MSMQ-Custom-Recipient,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Attribute-Schema\r
+ldapDisplayName: attributeSchema\r
+governsId: 1.2.840.113556.1.3.14\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: schemaIDGUID, oMSyntax, lDAPDisplayName,isSingleValued, cn, attributeSyntax, attributeID\r
+systemMayContain: systemOnly, searchFlags, schemaFlagsEx,rangeUpper, rangeLower, oMObjectClass, msDs-Schema-Extensions,msDS-IntId, mAPIID, linkID, isMemberOfPartialAttributeSet,isEphemeral, isDefunct, extendedCharsAllowed, classDisplayName,attributeSecurityGUID\r
+systemPossSuperiors: dMD\r
+schemaIdGuid:bf967a80-0de6-11d0-a285-00aa003049e2\r
+defaultSecurityDescriptor: D:S:\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Attribute-Schema,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Group\r
+ldapDisplayName: msMQ-Group\r
+governsId: 1.2.840.113556.1.5.219\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: member\r
+systemPossSuperiors: organizationalUnit\r
+schemaIdGuid:46b27aac-aafa-4ffb-b773-e5bf621ee87b\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=MSMQ-Group,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Configuration\r
+ldapDisplayName: mSMQConfiguration\r
+governsId: 1.2.840.113556.1.5.162\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: mSMQSites, mSMQSignKey, mSMQServiceType,mSMQRoutingServices, mSMQQuota, mSMQOwnerID, mSMQOutRoutingServers,mSMQOSType, mSMQJournalQuota, mSMQInRoutingServers, mSMQForeign,mSMQEncryptKey, mSMQDsServices, mSMQDependentClientServices,mSMQComputerTypeEx, mSMQComputerType\r
+systemPossSuperiors: computer\r
+schemaIdGuid:9a0dc344-c100-11d1-bbc5-0080c76670c0\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=MSMQ-Configuration,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Enterprise-Settings\r
+ldapDisplayName: mSMQEnterpriseSettings\r
+governsId: 1.2.840.113556.1.5.163\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: mSMQVersion, mSMQNameStyle, mSMQLongLived,mSMQInterval2, mSMQInterval1, mSMQCSPName\r
+systemPossSuperiors: container\r
+schemaIdGuid:9a0dc345-c100-11d1-bbc5-0080c76670c0\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=MSMQ-Enterprise-Settings,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Migrated-User\r
+ldapDisplayName: mSMQMigratedUser\r
+governsId: 1.2.840.113556.1.5.179\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: mSMQUserSid, mSMQSignCertificatesMig,mSMQSignCertificates, mSMQDigestsMig, mSMQDigests, objectSid\r
+systemPossSuperiors: organizationalUnit, domainDNS, builtinDomain\r
+schemaIdGuid:50776997-3c3d-11d2-90cc-00c04fd91ab1\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=MSMQ-Migrated-User,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Queue\r
+ldapDisplayName: mSMQQueue\r
+governsId: 1.2.840.113556.1.5.161\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: mSMQTransactional, MSMQ-SecuredSource,mSMQQueueType, mSMQQueueQuota, mSMQQueueNameExt,mSMQQueueJournalQuota, mSMQPrivacyLevel, mSMQOwnerID,MSMQ-MulticastAddress, mSMQLabelEx, mSMQLabel, mSMQJournal,mSMQBasePriority, mSMQAuthenticate\r
+systemPossSuperiors: mSMQConfiguration\r
+schemaIdGuid:9a0dc343-c100-11d1-bbc5-0080c76670c0\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: FALSE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=MSMQ-Queue,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Settings\r
+ldapDisplayName: mSMQSettings\r
+governsId: 1.2.840.113556.1.5.165\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: mSMQSiteNameEx, mSMQSiteName, mSMQServices,mSMQRoutingService, mSMQQMID, mSMQOwnerID, mSMQNt4Flags,mSMQMigrated, mSMQDsService, mSMQDependentClientService\r
+systemPossSuperiors: server\r
+schemaIdGuid:9a0dc347-c100-11d1-bbc5-0080c76670c0\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=MSMQ-Settings,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MSMQ-Site-Link\r
+ldapDisplayName: mSMQSiteLink\r
+governsId: 1.2.840.113556.1.5.164\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: mSMQSite2, mSMQSite1, mSMQCost\r
+systemMayContain: mSMQSiteGatesMig, mSMQSiteGates\r
+systemPossSuperiors: mSMQEnterpriseSettings\r
+schemaIdGuid:9a0dc346-c100-11d1-bbc5-0080c76670c0\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: FALSE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=MSMQ-Site-Link,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-PKI-Enterprise-Oid\r
+ldapDisplayName: msPKI-Enterprise-Oid\r
+governsId: 1.2.840.113556.1.5.196\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: msPKI-OID-User-Notice, msPKI-OIDLocalizedName,msPKI-OID-CPS, msPKI-OID-Attribute, msPKI-Cert-Template-OID\r
+systemPossSuperiors: msPKI-Enterprise-Oid, container\r
+schemaIdGuid:37cfd85c-6719-4ad8-8f9e-8678ba627563\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-PKI-Enterprise-Oid,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-PKI-Key-Recovery-Agent\r
+ldapDisplayName: msPKI-Key-Recovery-Agent\r
+governsId: 1.2.840.113556.1.5.195\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: user\r
+systemPossSuperiors: container\r
+schemaIdGuid:26ccf238-a08e-4b86-9a82-a8c9ac7ee5cb\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-PKI-Key-Recovery-Agent,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-PKI-Private-Key-Recovery-Agent\r
+ldapDisplayName: msPKI-PrivateKeyRecoveryAgent\r
+governsId: 1.2.840.113556.1.5.223\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: userCertificate\r
+systemPossSuperiors: container\r
+schemaIdGuid:1562a632-44b9-4a7e-a2d3-e426c96a3acc\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-PKI-Private-Key-Recovery-Agent,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: BootableDevice\r
+ldapDisplayName: bootableDevice\r
+governsId: 1.3.6.1.1.1.2.12\r
+objectClassCategory: 3\r
+rdnAttId: cn\r
+subClassOf: top\r
+mayContain: cn, bootParameter, bootFile\r
+schemaIdGuid:4bcb2477-4bb3-4545-a9fc-fb66e136b435\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=BootableDevice,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
+cn: ms-Print-ConnectionPolicy\r
+ldapDisplayName: msPrint-ConnectionPolicy\r
+governsId: 1.2.840.113556.1.6.23.2\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+mustContain: cn\r
+mayContain: printerName, printAttributes, serverName, uNCName\r
+possSuperiors: container\r
+schemaIdGuid:a16f33c7-7fd6-4828-9364-435138fda08d\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-Print-ConnectionPolicy,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
+cn: msSFU-30-Domain-Info\r
+ldapDisplayName: msSFU30DomainInfo\r
+governsId: 1.2.840.113556.1.6.18.2.215\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+mayContain: msSFU30Domains, msSFU30YpServers, msSFU30SearchContainer,msSFU30IsValidContainer, msSFU30MasterServerName,msSFU30OrderNumber, msSFU30MaxGidNumber, msSFU30MaxUidNumber,msSFU30CryptMethod\r
+possSuperiors: container\r
+schemaIdGuid:36297dce-656b-4423-ab65-dabb2770819e\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=msSFU-30-Domain-Info,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
+cn: msSFU-30-Mail-Aliases\r
+ldapDisplayName: msSFU30MailAliases\r
+governsId: 1.2.840.113556.1.6.18.2.211\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+mayContain: msSFU30Name, msSFU30NisDomain, msSFU30Aliases, nisMapName\r
+possSuperiors: domainDNS, nisMap, container\r
+schemaIdGuid:d6710785-86ff-44b7-85b5-f1f8689522ce\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=msSFU-30-Mail-Aliases,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
+cn: msSFU-30-Net-Id\r
+ldapDisplayName: msSFU30NetId\r
+governsId: 1.2.840.113556.1.6.18.2.212\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+mayContain: msSFU30KeyValues, msSFU30Name, msSFU30NisDomain,nisMapName\r
+possSuperiors: domainDNS, nisMap, container\r
+schemaIdGuid:e263192c-2a02-48df-9792-94f2328781a0\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=msSFU-30-Net-Id,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
+cn: msSFU-30-Network-User\r
+ldapDisplayName: msSFU30NetworkUser\r
+governsId: 1.2.840.113556.1.6.18.2.216\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+mayContain: msSFU30KeyValues, msSFU30Name, msSFU30NisDomain,nisMapName\r
+possSuperiors: domainDNS, nisMap, container\r
+schemaIdGuid:e15334a3-0bf0-4427-b672-11f5d84acc92\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=msSFU-30-Network-User,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
+cn: msSFU-30-NIS-Map-Config\r
+ldapDisplayName: msSFU30NISMapConfig\r
+governsId: 1.2.840.113556.1.6.18.2.217\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+mayContain: msSFU30KeyAttributes, msSFU30FieldSeparator,msSFU30NSMAPFieldPosition, msSFU30IntraFieldSeparator,msSFU30SearchAttributes, msSFU30ResultAttributes, msSFU30MapFilter\r
+possSuperiors: container\r
+schemaIdGuid:faf733d0-f8eb-4dcf-8d75-f1753af6a50b\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=msSFU-30-NIS-Map-Config,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
+cn: ms-TAPI-Rt-Conference\r
+ldapDisplayName: msTAPI-RtConference\r
+governsId: 1.2.840.113556.1.5.221\r
+objectClassCategory: 1\r
+rdnAttId: msTAPI-uid\r
+subClassOf: top\r
+systemMustContain: msTAPI-uid\r
+systemMayContain: msTAPI-ConferenceBlob, msTAPI-ProtocolId\r
+systemPossSuperiors: organizationalUnit\r
+schemaIdGuid:ca7b9735-4b2a-4e49-89c3-99025334dc94\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-TAPI-Rt-Conference,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-TAPI-Rt-Person\r
+ldapDisplayName: msTAPI-RtPerson\r
+governsId: 1.2.840.113556.1.5.222\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: msTAPI-uid, msTAPI-IpAddress\r
+systemPossSuperiors: organization, organizationalUnit\r
+schemaIdGuid:53ea1cb5-b704-4df9-818f-5cb4ec86cac1\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-TAPI-Rt-Person,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-IntRangeParam\r
+ldapDisplayName: msWMI-IntRangeParam\r
+governsId: 1.2.840.113556.1.5.205\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: msWMI-RangeParam\r
+systemMustContain: msWMI-IntDefault\r
+systemMayContain: msWMI-IntMax, msWMI-IntMin\r
+systemPossSuperiors: msWMI-MergeablePolicyTemplate\r
+schemaIdGuid:50ca5d7d-5c8b-4ef3-b9df-5b66d491e526\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-WMI-IntRangeParam,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-IntSetParam\r
+ldapDisplayName: msWMI-IntSetParam\r
+governsId: 1.2.840.113556.1.5.206\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: msWMI-RangeParam\r
+systemMustContain: msWMI-IntDefault\r
+systemMayContain: msWMI-IntValidValues\r
+systemPossSuperiors: msWMI-MergeablePolicyTemplate\r
+schemaIdGuid:292f0d9a-cf76-42b0-841f-b650f331df62\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPCCDCLCLODTRC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-WMI-IntSetParam,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Builtin-Domain\r
+ldapDisplayName: builtinDomain\r
+governsId: 1.2.840.113556.1.5.4\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemAuxiliaryClass: samDomainBase\r
+systemPossSuperiors: domainDNS\r
+schemaIdGuid:bf967a81-0de6-11d0-a285-00aa003049e2\r
+defaultSecurityDescriptor: D:(A;;RPLCLORC;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Builtin-Domain,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-MergeablePolicyTemplate\r
+ldapDisplayName: msWMI-MergeablePolicyTemplate\r
+governsId: 1.2.840.113556.1.5.202\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: msWMI-PolicyTemplate\r
+systemPossSuperiors: container\r
+schemaIdGuid:07502414-fdca-4851-b04a-13645b11d226\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPCCDCLCLODTRC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-WMI-MergeablePolicyTemplate,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-ObjectEncoding\r
+ldapDisplayName: msWMI-ObjectEncoding\r
+governsId: 1.2.840.113556.1.5.217\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: msWMI-Class, msWMI-ScopeGuid, msWMI-Parm1,msWMI-Parm2, msWMI-Parm3, msWMI-Parm4, msWMI-Genus, msWMI-intFlags1,msWMI-intFlags2, msWMI-intFlags3, msWMI-intFlags4, msWMI-ID,msWMI-TargetObject\r
+systemPossSuperiors: container\r
+schemaIdGuid:55dd81c9-c312-41f9-a84d-c6adbdf1e8e1\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-WMI-ObjectEncoding,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-PolicyTemplate\r
+ldapDisplayName: msWMI-PolicyTemplate\r
+governsId: 1.2.840.113556.1.5.200\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: msWMI-NormalizedClass, msWMI-TargetPath,msWMI-TargetClass, msWMI-TargetNameSpace, msWMI-Name, msWMI-ID\r
+systemMayContain: msWMI-TargetType, msWMI-SourceOrganization,msWMI-Parm4, msWMI-Parm3, msWMI-Parm2, msWMI-Parm1, msWMI-intFlags4,msWMI-intFlags3, msWMI-intFlags2, msWMI-intFlags1,msWMI-CreationDate, msWMI-ChangeDate, msWMI-Author\r
+systemPossSuperiors: container\r
+schemaIdGuid:e2bc80f1-244a-4d59-acc6-ca5c4f82e6e1\r
+defaultSecurityDescriptor: D:(A;;RPLCLORC;;;AU)(A;;RPWPCRLCLOCCDCRCWDWOSW;;;DA)(A;;CC;;;PA)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;SY)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-WMI-PolicyTemplate,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-PolicyType\r
+ldapDisplayName: msWMI-PolicyType\r
+governsId: 1.2.840.113556.1.5.211\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: msWMI-TargetObject, msWMI-ID\r
+systemMayContain: msWMI-SourceOrganization, msWMI-Parm4,msWMI-Parm3, msWMI-Parm2, msWMI-Parm1, msWMI-intFlags4,msWMI-intFlags3, msWMI-intFlags2, msWMI-intFlags1,msWMI-CreationDate, msWMI-ChangeDate, msWMI-Author\r
+systemPossSuperiors: container\r
+schemaIdGuid:595b2613-4109-4e77-9013-a3bb4ef277c7\r
+defaultSecurityDescriptor: D:(A;;RPLCLORC;;;AU)(A;;RPWPCRLCLOCCDCRCWDWOSW;;;DA)(A;;CC;;;PA)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;SY)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-WMI-PolicyType,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-RangeParam\r
+ldapDisplayName: msWMI-RangeParam\r
+governsId: 1.2.840.113556.1.5.203\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: msWMI-TargetType, msWMI-TargetClass,msWMI-PropertyName\r
+systemPossSuperiors: msWMI-MergeablePolicyTemplate\r
+schemaIdGuid:45fb5a57-5018-4d0f-9056-997c8c9122d9\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPCCDCLCLODTRC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-WMI-RangeParam,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-RealRangeParam\r
+ldapDisplayName: msWMI-RealRangeParam\r
+governsId: 1.2.840.113556.1.5.209\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: msWMI-RangeParam\r
+systemMustContain: msWMI-Int8Default\r
+systemMayContain: msWMI-Int8Max, msWMI-Int8Min\r
+systemPossSuperiors: msWMI-MergeablePolicyTemplate\r
+schemaIdGuid:6afe8fe2-70bc-4cce-b166-a96f7359c514\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-WMI-RealRangeParam,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-Rule\r
+ldapDisplayName: msWMI-Rule\r
+governsId: 1.2.840.113556.1.5.214\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: msWMI-QueryLanguage, msWMI-TargetNameSpace,msWMI-Query\r
+systemPossSuperiors: msWMI-Som, container\r
+schemaIdGuid:3c7e6f83-dd0e-481b-a0c2-74cd96ef2a66\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-WMI-Rule,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-ShadowObject\r
+ldapDisplayName: msWMI-ShadowObject\r
+governsId: 1.2.840.113556.1.5.212\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: msWMI-TargetObject\r
+systemPossSuperiors: msWMI-PolicyType\r
+schemaIdGuid:f1e44bdf-8dd3-4235-9c86-f91f31f5b569\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-WMI-ShadowObject,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-SimplePolicyTemplate\r
+ldapDisplayName: msWMI-SimplePolicyTemplate\r
+governsId: 1.2.840.113556.1.5.201\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: msWMI-PolicyTemplate\r
+systemMustContain: msWMI-TargetObject\r
+systemPossSuperiors: container\r
+schemaIdGuid:6cc8b2b5-12df-44f6-8307-e74f5cdee369\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPCCDCLCLODTRC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-WMI-SimplePolicyTemplate,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-Som\r
+ldapDisplayName: msWMI-Som\r
+governsId: 1.2.840.113556.1.5.213\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: msWMI-Name, msWMI-ID\r
+systemMayContain: msWMI-SourceOrganization, msWMI-Parm4, msWMI-Parm3,msWMI-Parm2, msWMI-Parm1, msWMI-intFlags4, msWMI-intFlags3,msWMI-intFlags2, msWMI-intFlags1, msWMI-CreationDate,msWMI-ChangeDate, msWMI-Author\r
+systemPossSuperiors: container\r
+schemaIdGuid:ab857078-0142-4406-945b-34c9b6b13372\r
+defaultSecurityDescriptor: D:(A;;RPLCLORC;;;AU)(A;;RPWPCRLCLOCCDCRCWDWOSW;;;DA)(A;;CC;;;PA)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;SY)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-WMI-Som,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Category-Registration\r
+ldapDisplayName: categoryRegistration\r
+governsId: 1.2.840.113556.1.5.74\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: leaf\r
+systemMayContain: managedBy, localizedDescription, localeID,categoryId\r
+systemPossSuperiors: classStore\r
+schemaIdGuid:7d6c0e9d-7e20-11d0-afd6-00c04fd930c9\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Category-Registration,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-StringSetParam\r
+ldapDisplayName: msWMI-StringSetParam\r
+governsId: 1.2.840.113556.1.5.210\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: msWMI-RangeParam\r
+systemMustContain: msWMI-StringDefault\r
+systemMayContain: msWMI-StringValidValues\r
+systemPossSuperiors: msWMI-MergeablePolicyTemplate\r
+schemaIdGuid:0bc579a2-1da7-4cea-b699-807f3b9d63a4\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPCCDCLCLODTRC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-WMI-StringSetParam,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-UintRangeParam\r
+ldapDisplayName: msWMI-UintRangeParam\r
+governsId: 1.2.840.113556.1.5.207\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: msWMI-RangeParam\r
+systemMustContain: msWMI-IntDefault\r
+systemMayContain: msWMI-IntMax, msWMI-IntMin\r
+systemPossSuperiors: msWMI-MergeablePolicyTemplate\r
+schemaIdGuid:d9a799b2-cef3-48b3-b5ad-fb85f8dd3214\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-WMI-UintRangeParam,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-UintSetParam\r
+ldapDisplayName: msWMI-UintSetParam\r
+governsId: 1.2.840.113556.1.5.208\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: msWMI-RangeParam\r
+systemMustContain: msWMI-IntDefault\r
+systemMayContain: msWMI-IntValidValues\r
+systemPossSuperiors: msWMI-MergeablePolicyTemplate\r
+schemaIdGuid:8f4beb31-4e19-46f5-932e-5fa03c339b1d\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPCCDCLCLODTRC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-WMI-UintSetParam,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-UnknownRangeParam\r
+ldapDisplayName: msWMI-UnknownRangeParam\r
+governsId: 1.2.840.113556.1.5.204\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: msWMI-RangeParam\r
+systemMustContain: msWMI-TargetObject, msWMI-NormalizedClass\r
+systemPossSuperiors: msWMI-MergeablePolicyTemplate\r
+schemaIdGuid:b82ac26b-c6db-4098-92c6-49c18a3336e1\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-WMI-UnknownRangeParam,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-WMI-WMIGPO\r
+ldapDisplayName: msWMI-WMIGPO\r
+governsId: 1.2.840.113556.1.5.215\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: msWMI-TargetClass\r
+systemMayContain: msWMI-Parm4, msWMI-Parm3, msWMI-Parm2, msWMI-Parm1,msWMI-intFlags4, msWMI-intFlags3, msWMI-intFlags2, msWMI-intFlags1\r
+systemPossSuperiors: container\r
+schemaIdGuid:05630000-3927-4ede-bf27-ca91f275c26f\r
+defaultSecurityDescriptor: D:(A;;RPLCLORC;;;AU)(A;;RPWPCRLCLOCCDCRCWDWOSW;;;DA)(A;;CC;;;PA)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;SY)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-WMI-WMIGPO,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: NisMap\r
+ldapDisplayName: nisMap\r
+governsId: 1.3.6.1.1.1.2.9\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+mustContain: cn, nisMapName\r
+mayContain: description\r
+possSuperiors: domainDNS, container, organizationalUnit\r
+schemaIdGuid:7672666c-02c1-4f33-9ecf-f649c1dd9b7c\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=NisMap,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
+cn: NisNetgroup\r
+ldapDisplayName: nisNetgroup\r
+governsId: 1.3.6.1.1.1.2.8\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+mustContain: cn\r
+mayContain: description, memberNisNetgroup, nisNetgroupTriple,msSFU30Name, msSFU30NisDomain, nisMapName,msSFU30NetgroupHostAtDomain, msSFU30NetgroupUserAtDomain\r
+possSuperiors: domainDNS, nisMap, container, organizationalUnit\r
+schemaIdGuid:72efbf84-6e7b-4a5c-a8db-8a75a7cad254\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=NisNetgroup,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
+cn: NisObject\r
+ldapDisplayName: nisObject\r
+governsId: 1.3.6.1.1.1.2.10\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+mustContain: cn, nisMapName, nisMapEntry\r
+mayContain: description, msSFU30Name, msSFU30NisDomain\r
+possSuperiors: domainDNS, nisMap, container, organizationalUnit\r
+schemaIdGuid:904f8a93-4954-4c5f-b1e1-53c097a31e13\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=NisObject,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
+cn: NTDS-Connection\r
+ldapDisplayName: nTDSConnection\r
+governsId: 1.2.840.113556.1.5.71\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: leaf\r
+systemMustContain: options, fromServer, enabledConnection\r
+systemMayContain: transportType, schedule, mS-DS-ReplicatesNCReason,generatedConnection\r
+systemPossSuperiors: nTFRSMember, nTFRSReplicaSet, nTDSDSA\r
+schemaIdGuid:19195a60-6da0-11d0-afd3-00c04fd930c9\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=NTDS-Connection,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: NTDS-DSA\r
+ldapDisplayName: nTDSDSA\r
+governsId: 1.2.840.113556.1.5.7000.47\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: applicationSettings\r
+systemMayContain: msDS-IsUserCachableAtRodc, msDS-Sitename,msDS-isRODC, msDS-isGC, msDS-RevealedUsers,msDS-NeverRevealGroup, msDS-RevealOnDemandGroup,msDS-hasFullReplicaNCs, serverReference,msDS-RetiredReplNCSignatures, retiredReplDSASignatures,queryPolicyObject, options, networkAddress, msDS-ReplicationEpoch,msDS-HasInstantiatedNCs, msDS-hasMasterNCs, msDS-HasDomainNCs,msDS-Behavior-Version, managedBy, lastBackupRestorationTime,invocationId, hasPartialReplicaNCs, hasMasterNCs, fRSRootPath,dMDLocation\r
+systemPossSuperiors: organization, server\r
+schemaIdGuid:f0f8ffab-1191-11d0-a060-00aa006c33ed\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: TRUE\r
+defaultObjectCategory: CN=NTDS-DSA,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Certification-Authority\r
+ldapDisplayName: certificationAuthority\r
+governsId: 2.5.6.16\r
+objectClassCategory: 0\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: cn, certificateRevocationList, cACertificate,authorityRevocationList\r
+systemMayContain: teletexTerminalIdentifier,supportedApplicationContext, signatureAlgorithms, searchGuide,previousParentCA, previousCACertificates, pendingParentCA,pendingCACertificates, parentCACertificateChain, parentCA,enrollmentProviders, domainPolicyObject, domainID, dNSHostName,deltaRevocationList, currentParentCA, crossCertificatePair,cRLObject, certificateTemplates, cAWEBURL, cAUsages, cAConnect,cACertificateDN\r
+systemPossSuperiors: container\r
+schemaIdGuid:3fdfee50-47f4-11d1-a9c3-0000f80367c1\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Certification-Authority,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: NTDS-DSA-RO\r
+ldapDisplayName: nTDSDSARO\r
+governsId: 1.2.840.113556.1.5.254\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: nTDSDSA\r
+systemPossSuperiors: server, organization\r
+schemaIdGuid:85d16ec1-0791-4bc8-8ab3-70980602ff8c\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: TRUE\r
+defaultObjectCategory: CN=NTDS-DSA-RO,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: NTDS-Service\r
+ldapDisplayName: nTDSService\r
+governsId: 1.2.840.113556.1.5.72\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: tombstoneLifetime, sPNMappings,replTopologyStayOfExecution, msDS-Other-Settings, garbageCollPeriod,dSHeuristics\r
+systemPossSuperiors: container\r
+schemaIdGuid:19195a5f-6da0-11d0-afd3-00c04fd930c9\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=NTDS-Service,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: NTDS-Site-Settings\r
+ldapDisplayName: nTDSSiteSettings\r
+governsId: 1.2.840.113556.1.5.69\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: applicationSiteSettings\r
+systemMayContain: schedule, queryPolicyObject, options,msDS-Preferred-GC-Site, managedBy, interSiteTopologyRenew,interSiteTopologyGenerator, interSiteTopologyFailover\r
+systemPossSuperiors: site\r
+schemaIdGuid:19195a5d-6da0-11d0-afd3-00c04fd930c9\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=NTDS-Site-Settings,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: NTFRS-Member\r
+ldapDisplayName: nTFRSMember\r
+governsId: 1.2.840.113556.1.5.153\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: serverReference, fRSUpdateTimeout,fRSServiceCommand, fRSRootSecurity, fRSPartnerAuthLevel, fRSFlags,fRSExtensions, fRSControlOutboundBacklog, fRSControlInboundBacklog,fRSControlDataCreation, frsComputerReference\r
+systemPossSuperiors: nTFRSReplicaSet\r
+schemaIdGuid:2a132586-9373-11d1-aebc-0000f80367c1\r
+defaultSecurityDescriptor: D:(A;;RPLCLORC;;;AU)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;DA)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;CO)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;SY)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=NTFRS-Member,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: NTFRS-Replica-Set\r
+ldapDisplayName: nTFRSReplicaSet\r
+governsId: 1.2.840.113556.1.5.102\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: schedule, msFRS-Topology-Pref, msFRS-Hub-Member,managedBy, fRSVersionGUID, fRSServiceCommand, fRSRootSecurity,fRSReplicaSetType, fRSReplicaSetGUID, fRSPrimaryMember,fRSPartnerAuthLevel, fRSLevelLimit, fRSFlags, fRSFileFilter,fRSExtensions, fRSDSPoll, fRSDirectoryFilter\r
+systemPossSuperiors: nTFRSSettings\r
+schemaIdGuid:5245803a-ca6a-11d0-afff-0000f80367c1\r
+defaultSecurityDescriptor: D:(A;;RPLCLORC;;;AU)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;DA)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;CO)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;SY)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=NTFRS-Replica-Set,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: NTFRS-Settings\r
+ldapDisplayName: nTFRSSettings\r
+governsId: 1.2.840.113556.1.5.89\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: applicationSettings\r
+systemMayContain: managedBy, fRSExtensions\r
+systemPossSuperiors: nTFRSSettings, container, organizationalUnit,organization\r
+schemaIdGuid:f780acc2-56f0-11d1-a9c6-0000f80367c1\r
+defaultSecurityDescriptor: D:(A;;RPLCLORC;;;AU)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;DA)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;CO)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;SY)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=NTFRS-Settings,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: NTFRS-Subscriber\r
+ldapDisplayName: nTFRSSubscriber\r
+governsId: 1.2.840.113556.1.5.155\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: fRSStagingPath, fRSRootPath\r
+systemMayContain: schedule, fRSUpdateTimeout,fRSTimeLastConfigChange, fRSTimeLastCommand,fRSServiceCommandStatus, fRSServiceCommand, fRSMemberReference,fRSFlags, fRSFaultCondition, fRSExtensions\r
+systemPossSuperiors: nTFRSSubscriptions\r
+schemaIdGuid:2a132588-9373-11d1-aebc-0000f80367c1\r
+defaultSecurityDescriptor: D:(A;;RPLCLORC;;;AU)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;CO)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=NTFRS-Subscriber,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: NTFRS-Subscriptions\r
+ldapDisplayName: nTFRSSubscriptions\r
+governsId: 1.2.840.113556.1.5.154\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: fRSWorkingPath, fRSVersion, fRSExtensions\r
+systemPossSuperiors: user, computer, nTFRSSubscriptions\r
+schemaIdGuid:2a132587-9373-11d1-aebc-0000f80367c1\r
+defaultSecurityDescriptor: D:(A;;RPLCLORC;;;AU)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;CO)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=NTFRS-Subscriptions,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: OncRpc\r
+ldapDisplayName: oncRpc\r
+governsId: 1.3.6.1.1.1.2.5\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+mustContain: cn, oncRpcNumber\r
+mayContain: description, msSFU30Name, msSFU30NisDomain, nisMapName,msSFU30Aliases\r
+possSuperiors: domainDNS, nisMap, container, organizationalUnit\r
+schemaIdGuid:cadd1e5e-fefc-4f3f-b5a9-70e994204303\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=OncRpc,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
+cn: Organization\r
+ldapDisplayName: organization\r
+governsId: 2.5.6.4\r
+objectClassCategory: 1\r
+rdnAttId: o\r
+subClassOf: top\r
+systemMustContain: o\r
+systemMayContain: x121Address, userPassword, telexNumber,teletexTerminalIdentifier, telephoneNumber, street, st, seeAlso,searchGuide, registeredAddress, preferredDeliveryMethod, postalCode,postalAddress, postOfficeBox, physicalDeliveryOfficeName, l,internationalISDNNumber, facsimileTelephoneNumber,destinationIndicator, businessCategory\r
+systemPossSuperiors: locality, country, domainDNS\r
+schemaIdGuid:bf967aa3-0de6-11d0-a285-00aa003049e2\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: FALSE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Organization,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Class-Registration\r
+ldapDisplayName: classRegistration\r
+governsId: 1.2.840.113556.1.5.10\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: leaf\r
+systemMayContain: requiredCategories, managedBy,implementedCategories, cOMTreatAsClassId, cOMProgID,cOMOtherProgId, cOMInterfaceID, cOMCLSID\r
+systemPossSuperiors: classStore\r
+schemaIdGuid:bf967a82-0de6-11d0-a285-00aa003049e2\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Class-Registration,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Organizational-Person\r
+ldapDisplayName: organizationalPerson\r
+governsId: 2.5.6.7\r
+objectClassCategory: 0\r
+rdnAttId: cn\r
+subClassOf: person\r
+mayContain: msDS-HABSeniorityIndex, msDS-PhoneticDisplayName,msDS-PhoneticCompanyName, msDS-PhoneticDepartment,msDS-PhoneticLastName, msDS-PhoneticFirstName, houseIdentifier,msExchHouseIdentifier, homePostalAddress\r
+systemMayContain: x121Address, comment, title, co,primaryTelexNumber, telexNumber, teletexTerminalIdentifier, street,st, registeredAddress, preferredDeliveryMethod, postalCode,postalAddress, postOfficeBox, thumbnailPhoto,physicalDeliveryOfficeName, pager, otherPager, otherTelephone,mobile, otherMobile, primaryInternationalISDNNumber, ipPhone,otherIpPhone, otherHomePhone, homePhone,otherFacsimileTelephoneNumber, personalTitle, middleName,otherMailbox, ou, o, mhsORAddress, msDS-AllowedToDelegateTo,manager, thumbnailLogo, l, internationalISDNNumber, initials,givenName, generationQualifier, facsimileTelephoneNumber,employeeID, mail, division, destinationIndicator, department, c,countryCode, company, assistant, streetAddress\r
+systemPossSuperiors: organizationalUnit, organization, container\r
+schemaIdGuid:bf967aa4-0de6-11d0-a285-00aa003049e2\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Person,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Organizational-Role\r
+ldapDisplayName: organizationalRole\r
+governsId: 2.5.6.8\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: cn\r
+systemMayContain: x121Address, telexNumber,teletexTerminalIdentifier, telephoneNumber, street, st, seeAlso,roleOccupant, registeredAddress, preferredDeliveryMethod,postalCode, postalAddress, postOfficeBox,physicalDeliveryOfficeName, ou, l, internationalISDNNumber,facsimileTelephoneNumber, destinationIndicator\r
+systemPossSuperiors: organizationalUnit, organization, container\r
+schemaIdGuid:a8df74bf-c5ea-11d1-bbcb-0080c76670c0\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Organizational-Role,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Organizational-Unit\r
+ldapDisplayName: organizationalUnit\r
+governsId: 2.5.6.5\r
+objectClassCategory: 1\r
+rdnAttId: ou\r
+subClassOf: top\r
+systemMustContain: ou\r
+systemMayContain: x121Address, userPassword, uPNSuffixes, co,telexNumber, teletexTerminalIdentifier, telephoneNumber, street, st,seeAlso, searchGuide, registeredAddress, preferredDeliveryMethod,postalCode, postalAddress, postOfficeBox,physicalDeliveryOfficeName, msCOM-UserPartitionSetLink, managedBy,thumbnailLogo, l, internationalISDNNumber, gPOptions, gPLink,facsimileTelephoneNumber, destinationIndicator, desktopProfile,defaultGroup, countryCode, c, businessCategory\r
+systemPossSuperiors: country, organization, organizationalUnit,domainDNS\r
+schemaIdGuid:bf967aa5-0de6-11d0-a285-00aa003049e2\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(OA;;CCDC;bf967a86-0de6-11d0-a285-00aa003049e2;;AO)(OA;;CCDC;bf967aba-0de6-11d0-a285-00aa003049e2;;AO)(OA;;CCDC;bf967a9c-0de6-11d0-a285-00aa003049e2;;AO)(OA;;CCDC;bf967aa8-0de6-11d0-a285-00aa003049e2;;PO)(A;;RPLCLORC;;;AU)(A;;LCRPLORC;;;ED)(OA;;CCDC;4828CC14-1437-45bc-9B07-AD6F015E5F28;;AO)\r
+defaultHidingValue: FALSE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Organizational-Unit,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Package-Registration\r
+ldapDisplayName: packageRegistration\r
+governsId: 1.2.840.113556.1.5.49\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: versionNumberLo, versionNumberHi, vendor,upgradeProductCode, setupCommand, productCode, packageType,packageName, packageFlags, msiScriptSize, msiScriptPath,msiScriptName, msiScript, msiFileList, managedBy,machineArchitecture, localeID, lastUpdateSequence, installUiLevel,iconPath, fileExtPriority, cOMTypelibId, cOMProgID, cOMInterfaceID,cOMClassID, categories, canUpgradeScript\r
+systemPossSuperiors: classStore\r
+schemaIdGuid:bf967aa6-0de6-11d0-a285-00aa003049e2\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Package-Registration,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Person\r
+ldapDisplayName: person\r
+governsId: 2.5.6.6\r
+objectClassCategory: 0\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: cn\r
+mayContain: attributeCertificateAttribute\r
+systemMayContain: userPassword, telephoneNumber, sn, serialNumber,seeAlso\r
+systemPossSuperiors: organizationalUnit, container\r
+schemaIdGuid:bf967aa7-0de6-11d0-a285-00aa003049e2\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Person,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Physical-Location\r
+ldapDisplayName: physicalLocation\r
+governsId: 1.2.840.113556.1.5.97\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: locality\r
+systemMayContain: managedBy\r
+systemPossSuperiors: physicalLocation, configuration\r
+schemaIdGuid:b7b13122-b82e-11d0-afee-0000f80367c1\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Physical-Location,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: PKI-Certificate-Template\r
+ldapDisplayName: pKICertificateTemplate\r
+governsId: 1.2.840.113556.1.5.177\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: pKIOverlapPeriod, pKIMaxIssuingDepth, pKIKeyUsage,pKIExtendedKeyUsage, pKIExpirationPeriod, pKIEnrollmentAccess,pKIDefaultCSPs, pKIDefaultKeySpec, pKICriticalExtensions,msPKI-RA-Signature, msPKI-RA-Policies,msPKI-RA-Application-Policies, msPKI-Template-Schema-Version,msPKI-Template-Minor-Revision, msPKI-Supersede-Templates,msPKI-Private-Key-Flag, msPKI-Minimal-Key-Size,msPKI-Enrollment-Flag, msPKI-Certificate-Policy,msPKI-Certificate-Name-Flag, msPKI-Certificate-Application-Policy,msPKI-Cert-Template-OID, flags, displayName\r
+systemPossSuperiors: container\r
+schemaIdGuid:e5209ca2-3bba-11d2-90cc-00c04fd91ab1\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=PKI-Certificate-Template,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: PKI-Enrollment-Service\r
+ldapDisplayName: pKIEnrollmentService\r
+governsId: 1.2.840.113556.1.5.178\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: signatureAlgorithms, enrollmentProviders,dNSHostName, certificateTemplates, cACertificateDN, cACertificate\r
+systemPossSuperiors: container\r
+schemaIdGuid:ee4aa692-3bba-11d2-90cc-00c04fd91ab1\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=PKI-Enrollment-Service,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: PosixAccount\r
+ldapDisplayName: posixAccount\r
+governsId: 1.3.6.1.1.1.2.0\r
+objectClassCategory: 3\r
+rdnAttId: uid\r
+subClassOf: top\r
+mayContain: uid, cn, uidNumber, gidNumber, unixHomeDirectory,homeDirectory, userPassword, unixUserPassword, loginShell, gecos,description\r
+schemaIdGuid:ad44bb41-67d5-4d88-b575-7b20674e76d8\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=PosixAccount,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
+cn: PosixGroup\r
+ldapDisplayName: posixGroup\r
+governsId: 1.3.6.1.1.1.2.2\r
+objectClassCategory: 3\r
+rdnAttId: cn\r
+subClassOf: top\r
+mayContain: cn, userPassword, unixUserPassword, description,gidNumber, memberUid\r
+schemaIdGuid:2a9350b8-062c-4ed0-9903-dde10d06deba\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=PosixGroup,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
+cn: Class-Schema\r
+ldapDisplayName: classSchema\r
+governsId: 1.2.840.113556.1.3.13\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: subClassOf, schemaIDGUID, objectClassCategory,governsID, defaultObjectCategory, cn\r
+systemMayContain: systemPossSuperiors, systemOnly, systemMustContain,systemMayContain, systemAuxiliaryClass, schemaFlagsEx, rDNAttID,possSuperiors, mustContain, msDs-Schema-Extensions, msDS-IntId,mayContain, lDAPDisplayName, isDefunct, defaultSecurityDescriptor,defaultHidingValue, classDisplayName, auxiliaryClass\r
+systemPossSuperiors: dMD\r
+schemaIdGuid:bf967a83-0de6-11d0-a285-00aa003049e2\r
+defaultSecurityDescriptor: D:S:\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Class-Schema,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Print-Queue\r
+ldapDisplayName: printQueue\r
+governsId: 1.2.840.113556.1.5.23\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: connectionPoint\r
+systemMustContain: versionNumber, uNCName, shortServerName,serverName, printerName\r
+systemMayContain: priority, printStatus, printStartTime,printStaplingSupported, printSpooling, printShareName,printSeparatorFile, printRateUnit, printRate, printPagesPerMinute,printOwner, printOrientationsSupported, printNumberUp, printNotify,printNetworkAddress, printMinYExtent, printMinXExtent, printMemory,printMediaSupported, printMediaReady, printMaxYExtent,printMaxXExtent, printMaxResolutionSupported, printMaxCopies,printMACAddress, printLanguage, printKeepPrintedJobs, printFormName,printEndTime, printDuplexSupported, printColor, printCollate,printBinNames, printAttributes, portName, physicalLocationObject,operatingSystemVersion, operatingSystemServicePack,operatingSystemHotfix, operatingSystem, location, driverVersion,driverName, defaultPriority, bytesPerMinute, assetNumber\r
+systemPossSuperiors: organizationalUnit, domainDNS, container,computer\r
+schemaIdGuid:bf967aa8-0de6-11d0-a285-00aa003049e2\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;PO)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;CO)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: FALSE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Print-Queue,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Query-Policy\r
+ldapDisplayName: queryPolicy\r
+governsId: 1.2.840.113556.1.5.106\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: lDAPIPDenyList, lDAPAdminLimits\r
+systemPossSuperiors: container\r
+schemaIdGuid:83cc7075-cca7-11d0-afff-0000f80367c1\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Query-Policy,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Remote-Mail-Recipient\r
+ldapDisplayName: remoteMailRecipient\r
+governsId: 1.2.840.113556.1.5.24\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemAuxiliaryClass: mailRecipient\r
+systemMayContain: remoteSourceType, remoteSource, managedBy\r
+systemPossSuperiors: organizationalUnit, domainDNS\r
+schemaIdGuid:bf967aa9-0de6-11d0-a285-00aa003049e2\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)(OA;;CR;ab721a55-1e2f-11d0-9819-00aa0040529b;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Remote-Mail-Recipient,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Remote-Storage-Service-Point\r
+ldapDisplayName: remoteStorageServicePoint\r
+governsId: 1.2.840.113556.1.5.146\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: serviceAdministrationPoint\r
+systemMayContain: remoteStorageGUID\r
+systemPossSuperiors: computer\r
+schemaIdGuid:2a39c5bd-8960-11d1-aebc-0000f80367c1\r
+defaultSecurityDescriptor: D:(A;;RPLCLORC;;;AU)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;DA)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;CO)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;SY)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Remote-Storage-Service-Point,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Residential-Person\r
+ldapDisplayName: residentialPerson\r
+governsId: 2.5.6.10\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: person\r
+systemMayContain: x121Address, title, telexNumber,teletexTerminalIdentifier, street, st, registeredAddress,preferredDeliveryMethod, postalCode, postalAddress, postOfficeBox,physicalDeliveryOfficeName, ou, l, internationalISDNNumber,facsimileTelephoneNumber, destinationIndicator, businessCategory\r
+systemPossSuperiors: locality, container\r
+schemaIdGuid:a8df74d6-c5ea-11d1-bbcb-0080c76670c0\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Residential-Person,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: rFC822LocalPart\r
+ldapDisplayName: rFC822LocalPart\r
+governsId: 0.9.2342.19200300.100.4.14\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: domain\r
+mayContain: x121Address, telexNumber, teletexTerminalIdentifier,telephoneNumber, street, sn, seeAlso, registeredAddress,preferredDeliveryMethod, postOfficeBox, postalCode, postalAddress,physicalDeliveryOfficeName, internationalISDNNumber,facsimileTelephoneNumber, destinationIndicator, description, cn\r
+possSuperiors: organizationalUnit, container\r
+schemaIdGuid:b93e3a78-cbae-485e-a07b-5ef4ae505686\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLOLORCWOWDSDDTDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=rFC822LocalPart,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
+cn: RID-Manager\r
+ldapDisplayName: rIDManager\r
+governsId: 1.2.840.113556.1.5.83\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: rIDAvailablePool\r
+systemPossSuperiors: container\r
+schemaIdGuid:6617188d-8f3c-11d0-afda-00c04fd930c9\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)S:(AU;SA;CRWP;;;WD)\r
+defaultHidingValue: TRUE\r
+systemOnly: TRUE\r
+defaultObjectCategory: CN=RID-Manager,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: RID-Set\r
+ldapDisplayName: rIDSet\r
+governsId: 1.2.840.113556.1.5.129\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: rIDUsedPool, rIDPreviousAllocationPool,rIDNextRID, rIDAllocationPool\r
+systemPossSuperiors: user, container, computer\r
+schemaIdGuid:7bfdcb89-4807-11d1-a9c3-0000f80367c1\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: TRUE\r
+defaultObjectCategory: CN=RID-Set,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: room\r
+ldapDisplayName: room\r
+governsId: 0.9.2342.19200300.100.4.7\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+mustContain: cn\r
+mayContain: location, telephoneNumber, seeAlso, description,roomNumber\r
+possSuperiors: organizationalUnit, container\r
+schemaIdGuid:7860e5d2-c8b0-4cbb-bd45-d9455beb9206\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLOLORCWOWDSDDTDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=room,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
+cn: Rpc-Container\r
+ldapDisplayName: rpcContainer\r
+governsId: 1.2.840.113556.1.5.136\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: container\r
+systemMayContain: nameServiceFlags\r
+systemPossSuperiors: container\r
+schemaIdGuid:80212842-4bdc-11d1-a9c4-0000f80367c1\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Rpc-Container,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Class-Store\r
+ldapDisplayName: classStore\r
+governsId: 1.2.840.113556.1.5.44\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: versionNumber, nextLevelStore, lastUpdateSequence,appSchemaVersion\r
+systemPossSuperiors: domainPolicy, computer, group, user, classStore,organizationalUnit, domainDNS, container\r
+schemaIdGuid:bf967a84-0de6-11d0-a285-00aa003049e2\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Class-Store,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: rpc-Entry\r
+ldapDisplayName: rpcEntry\r
+governsId: 1.2.840.113556.1.5.27\r
+objectClassCategory: 2\r
+rdnAttId: cn\r
+subClassOf: connectionPoint\r
+systemPossSuperiors: container\r
+schemaIdGuid:bf967aac-0de6-11d0-a285-00aa003049e2\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=rpc-Entry,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: rpc-Group\r
+ldapDisplayName: rpcGroup\r
+governsId: 1.2.840.113556.1.5.80\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: rpcEntry\r
+systemMayContain: rpcNsObjectID, rpcNsGroup\r
+systemPossSuperiors: container\r
+schemaIdGuid:88611bdf-8cf4-11d0-afda-00c04fd930c9\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=rpc-Group,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: rpc-Profile\r
+ldapDisplayName: rpcProfile\r
+governsId: 1.2.840.113556.1.5.82\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: rpcEntry\r
+systemPossSuperiors: container\r
+schemaIdGuid:88611be1-8cf4-11d0-afda-00c04fd930c9\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=rpc-Profile,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: rpc-Profile-Element\r
+ldapDisplayName: rpcProfileElement\r
+governsId: 1.2.840.113556.1.5.26\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: rpcEntry\r
+systemMustContain: rpcNsPriority, rpcNsInterfaceID\r
+systemMayContain: rpcNsProfileEntry, rpcNsAnnotation\r
+systemPossSuperiors: rpcProfile\r
+schemaIdGuid:f29653cf-7ad0-11d0-afd6-00c04fd930c9\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=rpc-Profile-Element,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: rpc-Server\r
+ldapDisplayName: rpcServer\r
+governsId: 1.2.840.113556.1.5.81\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: rpcEntry\r
+systemMayContain: rpcNsObjectID, rpcNsEntryFlags, rpcNsCodeset\r
+systemPossSuperiors: container\r
+schemaIdGuid:88611be0-8cf4-11d0-afda-00c04fd930c9\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=rpc-Server,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: rpc-Server-Element\r
+ldapDisplayName: rpcServerElement\r
+governsId: 1.2.840.113556.1.5.73\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: rpcEntry\r
+systemMustContain: rpcNsTransferSyntax, rpcNsInterfaceID,rpcNsBindings\r
+systemPossSuperiors: rpcServer\r
+schemaIdGuid:f29653d0-7ad0-11d0-afd6-00c04fd930c9\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=rpc-Server-Element,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: RRAS-Administration-Connection-Point\r
+ldapDisplayName: rRASAdministrationConnectionPoint\r
+governsId: 1.2.840.113556.1.5.150\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: serviceAdministrationPoint\r
+systemMayContain: msRRASAttribute\r
+systemPossSuperiors: computer\r
+schemaIdGuid:2a39c5be-8960-11d1-aebc-0000f80367c1\r
+defaultSecurityDescriptor: D:(A;;RPLCLORC;;;AU)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;DA)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;CO)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;SY)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=RRAS-Administration-Connection-Point,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: RRAS-Administration-Dictionary\r
+ldapDisplayName: rRASAdministrationDictionary\r
+governsId: 1.2.840.113556.1.5.156\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: msRRASVendorAttributeEntry\r
+systemPossSuperiors: container\r
+schemaIdGuid:f39b98ae-938d-11d1-aebd-0000f80367c1\r
+defaultSecurityDescriptor: D:(A;;RPLCLORC;;;AU)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;CO)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=RRAS-Administration-Dictionary,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Sam-Domain\r
+ldapDisplayName: samDomain\r
+governsId: 1.2.840.113556.1.5.3\r
+objectClassCategory: 3\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemAuxiliaryClass: samDomainBase\r
+systemMayContain: treeName, rIDManagerReference, replicaSource,pwdProperties, pwdHistoryLength, privateKey, pekList,pekKeyChangeInterval, nTMixedDomain, nextRid, nETBIOSName,msDS-PerUserTrustTombstonesQuota, msDS-PerUserTrustQuota,ms-DS-MachineAccountQuota, msDS-LogonTimeSyncInterval,msDS-AllUsersTrustQuota, modifiedCountAtLastProm, minPwdLength,minPwdAge, maxPwdAge, lSAModifiedCount, lSACreationTime,lockoutThreshold, lockoutDuration, lockOutObservationWindow,gPOptions, gPLink, eFSPolicy, domainPolicyObject, desktopProfile,description, defaultLocalPolicyObject, creationTime,controlAccessRights, cACertificate, builtinModifiedCount,builtinCreationTime, auditingPolicy\r
+schemaIdGuid:bf967a90-0de6-11d0-a285-00aa003049e2\r
+defaultSecurityDescriptor: D:(A;;RP;;;WD)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6ab-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6ac-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ab-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ac-9c07-11d1-f79f-00c04fc2dcd2;;BA)(A;;RPLCLORC;;;AU)(A;;RPWPCRLCLOCCRCWDWOSW;;;DA)(A;CI;RPWPCRLCLOCCRCWDWOSDSW;;;BA)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;SY)(A;CI;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;EA)(A;CI;LC;;;RU)(OA;CIIO;RP;037088f8-0ae1-11d2-b422-00a0c968f939;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;59ba2f42-79a2-11d0-9020-00c04fc2d3cf;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;bc0ac240-79a9-11d0-9020-00c04fc2d4cf;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;4c164200-20c0-11d0-a768-00aa006e0529;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;5f202010-79a5-11d0-9020-00c04fc2d4cf;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;;RP;c7407360-20bf-11d0-a768-00aa006e0529;;RU)(OA;CIIO;RPLCLORC;;bf967a9c-0de6-11d0-a285-00aa003049e2;RU)(A;;RPRC;;;RU)(OA;CIIO;RPLCLORC;;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(A;;LCRPLORC;;;ED)(OA;CIIO;RP;037088f8-0ae1-11d2-b422-00a0c968f939;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;CIIO;RP;59ba2f42-79a2-11d0-9020-00c04fc2d3cf;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;CIIO;RP;bc0ac240-79a9-11d0-9020-00c04fc2d4cf;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;CIIO;RP;4c164200-20c0-11d0-a768-00aa006e0529;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;CIIO;RP;5f202010-79a5-11d0-9020-00c04fc2d4cf;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;CIIO;RPLCLORC;;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;;RP;b8119fd0-04f6-4762-ab7a-4986c76b3f9a;;RU)(OA;;RP;b8119fd0-04f6-4762-ab7a-4986c76b3f9a;;AU)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967aba-0de6-11d0-a285-00aa003049e2;ED)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967a9c-0de6-11d0-a285-00aa003049e2;ED)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967a86-0de6-11d0-a285-00aa003049e2;ED)(OA;;CR;1131f6ad-9c07-11d1-f79f-00c04fc2dcd2;;DD)(OA;;CR;1131f6ad-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;e2a36dc9-ae17-47c3-b58b-be34c55ba633;;S-1-5-32-557)(OA;;CR;280f369c-67c7-438e-ae98-1d46f3c6f541;;AU)(OA;;CR;ccc2dc7d-a6ad-4a7a-8846-c04e3cc53501;;AU)(OA;;CR;05c74c5e-4deb-43b4-bd9f-86664c2a7fd5;;AU)(OA;;CR;1131f6ae-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6ae-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;CIIO;CRRPWP;91e647de-d96f-4b70-9557-d63ff4f3ccd8;;PS)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;RO)S:(AU;SA;WDWOWP;;;WD)(AU;SA;CR;;;BA)(AU;SA;CR;;;DU)(OU;CISA;WP;f30e3bbe-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)(OU;CISA;WP;f30e3bbf-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Sam-Domain,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Sam-Domain-Base\r
+ldapDisplayName: samDomainBase\r
+governsId: 1.2.840.113556.1.5.2\r
+objectClassCategory: 3\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: uASCompat, serverState, serverRole, revision,pwdProperties, pwdHistoryLength, oEMInformation, objectSid,nTSecurityDescriptor, nextRid, modifiedCountAtLastProm,modifiedCount, minPwdLength, minPwdAge, maxPwdAge, lockoutThreshold,lockoutDuration, lockOutObservationWindow, forceLogoff,domainReplica, creationTime\r
+schemaIdGuid:bf967a91-0de6-11d0-a285-00aa003049e2\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Sam-Domain-Base,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ACS-Policy\r
+ldapDisplayName: aCSPolicy\r
+governsId: 1.2.840.113556.1.5.137\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: aCSTotalNoOfFlows, aCSTimeOfDay, aCSServiceType,aCSPriority, aCSPermissionBits, aCSMinimumDelayVariation,aCSMinimumLatency, aCSMaximumSDUSize, aCSMinimumPolicedSize,aCSMaxTokenRatePerFlow, aCSMaxTokenBucketPerFlow,aCSMaxPeakBandwidthPerFlow, aCSMaxDurationPerFlow,aCSMaxAggregatePeakRatePerUser, aCSIdentityName, aCSDirection,aCSAggregateTokenRatePerUser\r
+systemPossSuperiors: container\r
+schemaIdGuid:7f561288-5301-11d1-a9c5-0000f80367c1\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLOLORCWOWDSDDTDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ACS-Policy,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Com-Connection-Point\r
+ldapDisplayName: comConnectionPoint\r
+governsId: 1.2.840.113556.1.5.11\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: connectionPoint\r
+systemMustContain: cn\r
+systemMayContain: monikerDisplayName, moniker, marshalledInterface\r
+systemPossSuperiors: container\r
+schemaIdGuid:bf967a85-0de6-11d0-a285-00aa003049e2\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Com-Connection-Point,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Sam-Server\r
+ldapDisplayName: samServer\r
+governsId: 1.2.840.113556.1.5.5\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: securityObject\r
+systemMayContain: samDomainUpdates\r
+systemPossSuperiors: domainDNS\r
+schemaIdGuid:bf967aad-0de6-11d0-a285-00aa003049e2\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)(A;;RPLCLORC;;;RU)(OA;;CR;91d67418-0135-4acc-8d79-c08e857cfbec;;AU)(OA;;CR;91d67418-0135-4acc-8d79-c08e857cfbec;;RU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Sam-Server,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Secret\r
+ldapDisplayName: secret\r
+governsId: 1.2.840.113556.1.5.28\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: leaf\r
+systemMayContain: priorValue, priorSetTime, lastSetTime, currentValue\r
+systemPossSuperiors: container\r
+schemaIdGuid:bf967aae-0de6-11d0-a285-00aa003049e2\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Secret,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Security-Object\r
+ldapDisplayName: securityObject\r
+governsId: 1.2.840.113556.1.5.1\r
+objectClassCategory: 2\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: cn\r
+systemPossSuperiors: container\r
+schemaIdGuid:bf967aaf-0de6-11d0-a285-00aa003049e2\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Security-Object,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Security-Principal\r
+ldapDisplayName: securityPrincipal\r
+governsId: 1.2.840.113556.1.5.6\r
+objectClassCategory: 3\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: sAMAccountName, objectSid\r
+systemMayContain: supplementalCredentials, sIDHistory,securityIdentifier, sAMAccountType, rid, tokenGroupsNoGCAcceptable,tokenGroupsGlobalAndUniversal, tokenGroups, nTSecurityDescriptor,msDS-KeyVersionNumber, altSecurityIdentities, accountNameHistory\r
+schemaIdGuid:bf967ab0-0de6-11d0-a285-00aa003049e2\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Security-Principal,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Server\r
+ldapDisplayName: server\r
+governsId: 1.2.840.113556.1.5.17\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: msDS-IsUserCachableAtRodc, msDS-SiteName,msDS-isRODC, msDS-isGC, mailAddress, serverReference, serialNumber,managedBy, dNSHostName, bridgeheadTransportList\r
+systemPossSuperiors: serversContainer\r
+schemaIdGuid:bf967a92-0de6-11d0-a285-00aa003049e2\r
+defaultSecurityDescriptor: D:(A;CI;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Server,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Servers-Container\r
+ldapDisplayName: serversContainer\r
+governsId: 1.2.840.113556.1.5.7000.48\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemPossSuperiors: site\r
+schemaIdGuid:f780acc0-56f0-11d1-a9c6-0000f80367c1\r
+defaultSecurityDescriptor: D:(A;;CC;;;BA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Servers-Container,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Service-Administration-Point\r
+ldapDisplayName: serviceAdministrationPoint\r
+governsId: 1.2.840.113556.1.5.94\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: serviceConnectionPoint\r
+systemPossSuperiors: computer\r
+schemaIdGuid:b7b13123-b82e-11d0-afee-0000f80367c1\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Service-Administration-Point,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Service-Class\r
+ldapDisplayName: serviceClass\r
+governsId: 1.2.840.113556.1.5.29\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: leaf\r
+systemMustContain: serviceClassID, displayName\r
+systemMayContain: serviceClassInfo\r
+systemPossSuperiors: container\r
+schemaIdGuid:bf967ab1-0de6-11d0-a285-00aa003049e2\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Service-Class,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Service-Connection-Point\r
+ldapDisplayName: serviceConnectionPoint\r
+governsId: 1.2.840.113556.1.5.126\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: connectionPoint\r
+systemMayContain: versionNumberLo, versionNumberHi, versionNumber,vendor, serviceDNSNameType, serviceDNSName, serviceClassName,serviceBindingInformation, appSchemaVersion\r
+systemPossSuperiors: organizationalUnit, container, computer\r
+schemaIdGuid:28630ec1-41d5-11d1-a9c1-0000f80367c1\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;CO)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Service-Connection-Point,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Service-Instance\r
+ldapDisplayName: serviceInstance\r
+governsId: 1.2.840.113556.1.5.30\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: connectionPoint\r
+systemMustContain: serviceClassID, displayName\r
+systemMayContain: winsockAddresses, serviceInstanceVersion\r
+systemPossSuperiors: container\r
+schemaIdGuid:bf967ab2-0de6-11d0-a285-00aa003049e2\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Service-Instance,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Computer\r
+ldapDisplayName: computer\r
+governsId: 1.2.840.113556.1.3.30\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: user\r
+auxiliaryClass: ipHost\r
+mayContain: msSFU30Aliases, msSFU30NisDomain, nisMapName,msSFU30Name\r
+systemMayContain: msDS-IsUserCachableAtRodc, msTSProperty02,msTSProperty01, msTPM-OwnerInformation, msDS-RevealOnDemandGroup,msDS-NeverRevealGroup, msDS-PromotionSettings, msDS-SiteName,msDS-isRODC, msDS-isGC, msDS-AuthenticatedAtDC, msDS-RevealedList,msDS-RevealedUsers, msDS-ExecuteScriptPassword, msDS-KrbTgtLink,volumeCount, siteGUID, rIDSetReferences, policyReplicationFlags,physicalLocationObject, operatingSystemVersion,operatingSystemServicePack, operatingSystemHotfix, operatingSystem,networkAddress, netbootSIFFile, netbootMirrorDataFile,netbootMachineFilePath, netbootInitialization, netbootGUID,msDS-AdditionalSamAccountName, msDS-AdditionalDnsHostName,managedBy, machineRole, location, localPolicyFlags, dNSHostName,defaultLocalPolicyObject, cn, catalogs\r
+systemPossSuperiors: container, organizationalUnit, domainDNS\r
+schemaIdGuid:bf967a86-0de6-11d0-a285-00aa003049e2\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;AO)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPCRLCLORCSDDT;;;CO)(OA;;WP;4c164200-20c0-11d0-a768-00aa006e0529;;CO)(A;;RPLCLORC;;;AU)(OA;;CR;ab721a53-1e2f-11d0-9819-00aa0040529b;;WD)(A;;CCDC;;;PS)(OA;;CCDC;bf967aa8-0de6-11d0-a285-00aa003049e2;;PO)(OA;;RPWP;bf967a7f-0de6-11d0-a285-00aa003049e2;;CA)(OA;;SW;f3a64788-5306-11d1-a9c5-0000f80367c1;;PS)(OA;;RPWP;77B5B886-944A-11d1-AEBD-0000F80367C1;;PS)(OA;;SW;72e39547-7b18-11d1-adef-00c04fd8d5cd;;PS)(OA;;SW;72e39547-7b18-11d1-adef-00c04fd8d5cd;;CO)(OA;;SW;f3a64788-5306-11d1-a9c5-0000f80367c1;;CO)(OA;;WP;3e0abfd0-126a-11d0-a060-00aa006c33ed;bf967a86-0de6-11d0-a285-00aa003049e2;CO)(OA;;WP;5f202010-79a5-11d0-9020-00c04fc2d4cf;bf967a86-0de6-11d0-a285-00aa003049e2;CO)(OA;;WP;bf967950-0de6-11d0-a285-00aa003049e2;bf967a86-0de6-11d0-a285-00aa003049e2;CO)(OA;;WP;bf967953-0de6-11d0-a285-00aa003049e2;bf967a86-0de6-11d0-a285-00aa003049e2;CO)(OA;;RP;46a9b11d-60ae-405a-b7e8-ff8a58d456d2;;S-1-5-32-560)\r
+defaultHidingValue: FALSE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Computer,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ShadowAccount\r
+ldapDisplayName: shadowAccount\r
+governsId: 1.3.6.1.1.1.2.1\r
+objectClassCategory: 3\r
+rdnAttId: uid\r
+subClassOf: top\r
+mayContain: uid, userPassword, description, shadowLastChange,shadowMin, shadowMax, shadowWarning, shadowInactive, shadowExpire,shadowFlag\r
+schemaIdGuid:5b6d8467-1a18-4174-b350-9cc6e7b4ac8d\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ShadowAccount,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
+cn: simpleSecurityObject\r
+ldapDisplayName: simpleSecurityObject\r
+governsId: 0.9.2342.19200300.100.4.19\r
+objectClassCategory: 3\r
+rdnAttId: cn\r
+subClassOf: top\r
+mayContain: userPassword\r
+schemaIdGuid:5fe69b0b-e146-4f15-b0ab-c1e5d488e094\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLOLORCWOWDSDDTDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=simpleSecurityObject,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
+cn: Site\r
+ldapDisplayName: site\r
+governsId: 1.2.840.113556.1.5.31\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: notificationList, mSMQSiteID, mSMQSiteForeign,mSMQNt4Stub, mSMQInterval2, mSMQInterval1, managedBy, location,gPOptions, gPLink, msDS-BridgeHeadServersUsed\r
+systemPossSuperiors: sitesContainer\r
+schemaIdGuid:bf967ab3-0de6-11d0-a285-00aa003049e2\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)(A;;LCRPLORC;;;ED)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Site,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Site-Link\r
+ldapDisplayName: siteLink\r
+governsId: 1.2.840.113556.1.5.147\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: siteList\r
+systemMayContain: schedule, replInterval, options, cost\r
+systemPossSuperiors: interSiteTransport\r
+schemaIdGuid:d50c2cde-8951-11d1-aebc-0000f80367c1\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: FALSE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Site-Link,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Site-Link-Bridge\r
+ldapDisplayName: siteLinkBridge\r
+governsId: 1.2.840.113556.1.5.148\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: siteLinkList\r
+systemPossSuperiors: interSiteTransport\r
+schemaIdGuid:d50c2cdf-8951-11d1-aebc-0000f80367c1\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: FALSE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Site-Link-Bridge,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Sites-Container\r
+ldapDisplayName: sitesContainer\r
+governsId: 1.2.840.113556.1.5.107\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemPossSuperiors: configuration\r
+schemaIdGuid:7a4117da-cd67-11d0-afff-0000f80367c1\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Sites-Container,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Storage\r
+ldapDisplayName: storage\r
+governsId: 1.2.840.113556.1.5.33\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: connectionPoint\r
+systemMayContain: monikerDisplayName, moniker, iconPath\r
+systemPossSuperiors: container\r
+schemaIdGuid:bf967ab5-0de6-11d0-a285-00aa003049e2\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Storage,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Subnet\r
+ldapDisplayName: subnet\r
+governsId: 1.2.840.113556.1.5.96\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: siteObject, physicalLocationObject, location\r
+systemPossSuperiors: subnetContainer\r
+schemaIdGuid:b7b13124-b82e-11d0-afee-0000f80367c1\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Subnet,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Subnet-Container\r
+ldapDisplayName: subnetContainer\r
+governsId: 1.2.840.113556.1.5.95\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemPossSuperiors: sitesContainer\r
+schemaIdGuid:b7b13125-b82e-11d0-afee-0000f80367c1\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Subnet-Container,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: SubSchema\r
+ldapDisplayName: subSchema\r
+governsId: 2.5.20.1\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: objectClasses, modifyTimeStamp, extendedClassInfo,extendedAttributeInfo, dITContentRules, attributeTypes\r
+systemPossSuperiors: dMD\r
+schemaIdGuid:5a8b3261-c38d-11d1-bbc9-0080c76670c0\r
+defaultSecurityDescriptor: D:S:\r
+defaultHidingValue: TRUE\r
+systemOnly: TRUE\r
+defaultObjectCategory: CN=SubSchema,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Configuration\r
+ldapDisplayName: configuration\r
+governsId: 1.2.840.113556.1.5.12\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: cn\r
+systemMayContain: gPOptions, gPLink\r
+systemPossSuperiors: domainDNS\r
+schemaIdGuid:bf967a87-0de6-11d0-a285-00aa003049e2\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: TRUE\r
+defaultObjectCategory: CN=Configuration,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Top\r
+ldapDisplayName: top\r
+governsId: 2.5.6.0\r
+objectClassCategory: 2\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: objectClass, objectCategory, nTSecurityDescriptor,instanceType\r
+mayContain: msSFU30PosixMemberOf, msDFSR-ComputerReferenceBL,msDFSR-MemberReferenceBL, msDS-ObjectReferenceBL\r
+systemMayContain: msDS-NcType, msDS-PSOApplied, msDS-PrincipalName,msDS-RevealedListBL, msDS-AuthenticatedToAccountlist,msDS-IsPartialReplicaFor, msDS-IsDomainFor, msDS-IsFullReplicaFor,msDS-RevealedDSAs, msDS-KrbTgtLinkBl, url, wWWHomePage, whenCreated,whenChanged, wellKnownObjects, wbemPath, uSNSource, uSNLastObjRem,USNIntersite, uSNDSALastObjRemoved, uSNCreated, uSNChanged,systemFlags, subSchemaSubEntry, subRefs, structuralObjectClass,siteObjectBL, serverReferenceBL, sDRightsEffective, revision,repsTo, repsFrom, directReports, replUpToDateVector,replPropertyMetaData, name, queryPolicyBL, proxyAddresses,proxiedObjectName, possibleInferiors, partialAttributeSet,partialAttributeDeletionList, otherWellKnownObjects, objectVersion,objectGUID, distinguishedName, nonSecurityMemberBL, netbootSCPBL,ownerBL, msDS-ReplValueMetaData, msDS-ReplAttributeMetaData,msDS-NonMembersBL, msDS-NCReplOutboundNeighbors,msDS-NCReplInboundNeighbors, msDS-NCReplCursors,msDS-TasksForAzRoleBL, msDS-TasksForAzTaskBL,msDS-OperationsForAzRoleBL, msDS-OperationsForAzTaskBL,msDS-MembersForAzRoleBL, msDs-masteredBy, mS-DS-ConsistencyGuid,mS-DS-ConsistencyChildCount, msDS-Approx-Immed-Subordinates,msCOM-PartitionSetLink, msCOM-UserLink, modifyTimeStamp, masteredBy,managedObjects, lastKnownParent, isPrivilegeHolder, memberOf,isDeleted, isCriticalSystemObject, showInAdvancedViewOnly,fSMORoleOwner, fRSMemberReferenceBL, frsComputerReferenceBL,fromEntry, flags, extensionName, dSASignature,dSCorePropagationData, displayNamePrintable, displayName,description, createTimeStamp, cn, canonicalName,bridgeheadServerListBL, allowedChildClassesEffective,allowedChildClasses, allowedAttributesEffective, allowedAttributes,adminDisplayName, adminDescription, msDS-NC-RO-Replica-Locations-BL\r
+systemPossSuperiors: lostAndFound\r
+schemaIdGuid:bf967ab7-0de6-11d0-a285-00aa003049e2\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: TRUE\r
+defaultObjectCategory: CN=Top,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Trusted-Domain\r
+ldapDisplayName: trustedDomain\r
+governsId: 1.2.840.113556.1.5.34\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: leaf\r
+systemMayContain: msDS-SupportedEncryptionTypes, trustType,trustPosixOffset, trustPartner, trustDirection, trustAuthOutgoing,trustAuthIncoming, trustAttributes, securityIdentifier,msDS-TrustForestTrustInfo, mS-DS-CreatorSID, initialAuthOutgoing,initialAuthIncoming, flatName, domainIdentifier, domainCrossRef,additionalTrustedServiceNames\r
+systemPossSuperiors: container\r
+schemaIdGuid:bf967ab8-0de6-11d0-a285-00aa003049e2\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)(OA;;WP;736e4812-af31-11d2-b7df-00805f48caeb;bf967ab8-0de6-11d0-a285-00aa003049e2;CO)(A;;SD;;;CO)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Trusted-Domain,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Type-Library\r
+ldapDisplayName: typeLibrary\r
+governsId: 1.2.840.113556.1.5.53\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: cOMUniqueLIBID, cOMInterfaceID, cOMClassID\r
+systemPossSuperiors: classStore\r
+schemaIdGuid:281416e2-1968-11d0-a28f-00aa003049e2\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Type-Library,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: User\r
+ldapDisplayName: user\r
+governsId: 1.2.840.113556.1.5.9\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: organizationalPerson\r
+auxiliaryClass: shadowAccount, posixAccount\r
+systemAuxiliaryClass: securityPrincipal, mailRecipient\r
+mayContain: msSFU30NisDomain, msSFU30Name, msDS-SourceObjectDN,x500uniqueIdentifier, userSMIMECertificate, userPKCS12, uid,secretary, roomNumber, preferredLanguage, photo, labeledURI,jpegPhoto, homePostalAddress, givenName, employeeType,employeeNumber, displayName, departmentNumber, carLicense, audio\r
+systemMayContain: msDS-ResultantPSO, MSTSLSProperty01,MSTSLSProperty02, msTSManagingLS2, msTSManagingLS3, msTSManagingLS4,msTSLicenseVersion2, msTSLicenseVersion3, msTSLicenseVersion4,msTSExpireDate2, msTSExpireDate3, msTSExpireDate4,msDS-AuthenticatedAtDC, msDS-UserPasswordExpiryTimeComputed,msTSManagingLS, msTSLicenseVersion, msTSExpireDate, msTSProperty02,msTSProperty01, msTSInitialProgram, msTSWorkDirectory,msTSDefaultToMainPrinter, msTSConnectPrinterDrives,msTSConnectClientDrives, msTSBrokenConnectionAction,msTSReconnectionAction, msTSMaxIdleTime, msTSMaxConnectionTime,msTSMaxDisconnectionTime, msTSRemoteControl, msTSAllowLogon,msTSHomeDrive, msTSHomeDirectory, msTSProfilePath,msDS-FailedInteractiveLogonCountAtLastSuccessfulLogon,msDS-FailedInteractiveLogonCount,msDS-LastFailedInteractiveLogonTime,msDS-LastSuccessfulInteractiveLogonTime,msRADIUS-SavedFramedIpv6Route, msRADIUS-FramedIpv6Route,msRADIUS-SavedFramedIpv6Prefix, msRADIUS-FramedIpv6Prefix,msRADIUS-SavedFramedInterfaceId, msRADIUS-FramedInterfaceId,msPKIAccountCredentials, msPKIDPAPIMasterKeys,msPKIRoamingTimeStamp, msDS-SupportedEncryptionTypes,msDS-SecondaryKrbTgtNumber, pager, o, mobile, manager, mail,initials, homePhone, businessCategory, userCertificate,userWorkstations, userSharedFolderOther, userSharedFolder,userPrincipalName, userParameters, userAccountControl, unicodePwd,terminalServer, servicePrincipalName, scriptPath, pwdLastSet,profilePath, primaryGroupID, preferredOU, otherLoginWorkstations,operatorCount, ntPwdHistory, networkAddress, msRASSavedFramedRoute,msRASSavedFramedIPAddress, msRASSavedCallbackNumber,msRADIUSServiceType, msRADIUSFramedRoute, msRADIUSFramedIPAddress,msRADIUSCallbackNumber, msNPSavedCallingStationID,msNPCallingStationID, msNPAllowDialin, mSMQSignCertificatesMig,mSMQSignCertificates, mSMQDigestsMig, mSMQDigests, msIIS-FTPRoot,msIIS-FTPDir, msDS-User-Account-Control-Computed,msDS-Site-Affinity, mS-DS-CreatorSID,msDS-Cached-Membership-Time-Stamp, msDS-Cached-Membership,msDRM-IdentityCertificate, msCOM-UserPartitionSetLink, maxStorage,logonWorkstation, logonHours, logonCount, lockoutTime, localeID,lmPwdHistory, lastLogonTimestamp, lastLogon, lastLogoff, homeDrive,homeDirectory, groupsToIgnore, groupPriority, groupMembershipSAM,dynamicLDAPServer, desktopProfile, defaultClassStore, dBCSPwd,controlAccessRights, codePage, badPwdCount, badPasswordTime,adminCount, aCSPolicyName, accountExpires\r
+schemaIdGuid:bf967aba-0de6-11d0-a285-00aa003049e2\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;AO)(A;;RPLCLORC;;;PS)(OA;;CR;ab721a53-1e2f-11d0-9819-00aa0040529b;;PS)(OA;;CR;ab721a54-1e2f-11d0-9819-00aa0040529b;;PS)(OA;;CR;ab721a56-1e2f-11d0-9819-00aa0040529b;;PS)(OA;;RPWP;77B5B886-944A-11d1-AEBD-0000F80367C1;;PS)(OA;;RPWP;E45795B2-9455-11d1-AEBD-0000F80367C1;;PS)(OA;;RPWP;E45795B3-9455-11d1-AEBD-0000F80367C1;;PS)(OA;;RP;037088f8-0ae1-11d2-b422-00a0c968f939;;RS)(OA;;RP;4c164200-20c0-11d0-a768-00aa006e0529;;RS)(OA;;RP;bc0ac240-79a9-11d0-9020-00c04fc2d4cf;;RS)(A;;RC;;;AU)(OA;;RP;59ba2f42-79a2-11d0-9020-00c04fc2d3cf;;AU)(OA;;RP;77B5B886-944A-11d1-AEBD-0000F80367C1;;AU)(OA;;RP;E45795B3-9455-11d1-AEBD-0000F80367C1;;AU)(OA;;RP;e48d0154-bcf8-11d1-8702-00c04fb96050;;AU)(OA;;CR;ab721a53-1e2f-11d0-9819-00aa0040529b;;WD)(OA;;RP;5f202010-79a5-11d0-9020-00c04fc2d4cf;;RS)(OA;;RPWP;bf967a7f-0de6-11d0-a285-00aa003049e2;;CA)(OA;;RP;46a9b11d-60ae-405a-b7e8-ff8a58d456d2;;S-1-5-32-560)(OA;;WPRP;6db69a1c-9422-11d1-aebd-0000f80367c1;;S-1-5-32-561)\r
+systemPossSuperiors: builtinDomain, organizationalUnit, domainDNS\r
+defaultHidingValue: FALSE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Person,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Volume\r
+ldapDisplayName: volume\r
+governsId: 1.2.840.113556.1.5.36\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: connectionPoint\r
+systemMustContain: uNCName\r
+systemMayContain: lastContentIndexed, contentIndexingAllowed\r
+systemPossSuperiors: organizationalUnit, domainDNS\r
+schemaIdGuid:bf967abb-0de6-11d0-a285-00aa003049e2\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: FALSE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Volume,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Connection-Point\r
+ldapDisplayName: connectionPoint\r
+governsId: 1.2.840.113556.1.5.14\r
+objectClassCategory: 2\r
+rdnAttId: cn\r
+subClassOf: leaf\r
+systemMustContain: cn\r
+systemMayContain: msDS-Settings, managedBy, keywords\r
+systemPossSuperiors: container, computer\r
+schemaIdGuid:5cb41ecf-0e4c-11d0-a286-00aa003049e2\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Connection-Point,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Contact\r
+ldapDisplayName: contact\r
+governsId: 1.2.840.113556.1.5.15\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: organizationalPerson\r
+systemAuxiliaryClass: mailRecipient\r
+systemMustContain: cn\r
+mayContain: msDS-SourceObjectDN\r
+systemMayContain: notes\r
+systemPossSuperiors: organizationalUnit, domainDNS\r
+schemaIdGuid:5cb41ed0-0e4c-11d0-a286-00aa003049e2\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: FALSE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Person,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Container\r
+ldapDisplayName: container\r
+governsId: 1.2.840.113556.1.3.23\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: cn\r
+mayContain: msDS-ObjectReference\r
+systemMayContain: schemaVersion, defaultClassStore\r
+systemPossSuperiors: msDS-AzScope, msDS-AzApplication,msDS-AzAdminManager, subnet, server, nTDSService, domainDNS,organization, configuration, container, organizationalUnit\r
+schemaIdGuid:bf967a8b-0de6-11d0-a285-00aa003049e2\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Container,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Control-Access-Right\r
+ldapDisplayName: controlAccessRight\r
+governsId: 1.2.840.113556.1.5.77\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: validAccesses, rightsGuid, localizationDisplayId,appliesTo\r
+systemPossSuperiors: container\r
+schemaIdGuid:8297931e-86d3-11d0-afda-00c04fd930c9\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Control-Access-Right,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Country\r
+ldapDisplayName: country\r
+governsId: 2.5.6.2\r
+objectClassCategory: 0\r
+rdnAttId: c\r
+subClassOf: top\r
+systemMustContain: c\r
+systemMayContain: co, searchGuide\r
+systemPossSuperiors: domainDNS, organization\r
+schemaIdGuid:bf967a8c-0de6-11d0-a285-00aa003049e2\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Country,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: CRL-Distribution-Point\r
+ldapDisplayName: cRLDistributionPoint\r
+governsId: 2.5.6.19\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: cn\r
+systemMayContain: deltaRevocationList, cRLPartitionedRevocationList,certificateRevocationList, certificateAuthorityObject,authorityRevocationList\r
+systemPossSuperiors: container\r
+schemaIdGuid:167758ca-47f3-11d1-a9c3-0000f80367c1\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=CRL-Distribution-Point,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Cross-Ref\r
+ldapDisplayName: crossRef\r
+governsId: 1.2.840.113556.1.3.11\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: nCName, dnsRoot, cn\r
+systemMayContain: msDS-NC-RO-Replica-Locations, trustParent,superiorDNSRoot, rootTrust, nTMixedDomain, nETBIOSName, Enabled,msDS-SDReferenceDomain,msDS-Replication-Notify-Subsequent-DSA-Delay,msDS-Replication-Notify-First-DSA-Delay, msDS-NC-Replica-Locations,msDS-DnsRootAlias, msDS-Behavior-Version\r
+systemPossSuperiors: crossRefContainer\r
+schemaIdGuid:bf967a8d-0de6-11d0-a285-00aa003049e2\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Cross-Ref,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ACS-Resource-Limits\r
+ldapDisplayName: aCSResourceLimits\r
+governsId: 1.2.840.113556.1.5.191\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: aCSMaxTokenRatePerFlow, aCSServiceType,aCSMaxPeakBandwidthPerFlow, aCSMaxPeakBandwidth,aCSAllocableRSVPBandwidth\r
+systemPossSuperiors: container\r
+schemaIdGuid:2e899b04-2834-11d3-91d4-0000f87a57d4\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLOLORCWOWDSDDTDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ACS-Resource-Limits,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Cross-Ref-Container\r
+ldapDisplayName: crossRefContainer\r
+governsId: 1.2.840.113556.1.5.7000.53\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: msDS-SPNSuffixes, uPNSuffixes, msDS-UpdateScript,msDS-ExecuteScriptPassword, msDS-Behavior-Version\r
+systemPossSuperiors: configuration\r
+schemaIdGuid:ef9e60e0-56f7-11d1-a9c6-0000f80367c1\r
+defaultSecurityDescriptor: D:(A;;GA;;;SY)\r
+defaultHidingValue: FALSE\r
+systemOnly: TRUE\r
+defaultObjectCategory: CN=Cross-Ref-Container,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Device\r
+ldapDisplayName: device\r
+governsId: 2.5.6.14\r
+objectClassCategory: 0\r
+rdnAttId: cn\r
+subClassOf: top\r
+auxiliaryClass: ipHost, ieee802Device, bootableDevice\r
+systemMustContain: cn\r
+mayContain: msSFU30Name, msSFU30NisDomain, nisMapName, msSFU30Aliases\r
+systemMayContain: serialNumber, seeAlso, owner, ou, o, l\r
+systemPossSuperiors: domainDNS, organizationalUnit, organization,container\r
+schemaIdGuid:bf967a8e-0de6-11d0-a285-00aa003049e2\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Device,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Dfs-Configuration\r
+ldapDisplayName: dfsConfiguration\r
+governsId: 1.2.840.113556.1.5.42\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemPossSuperiors: container, domainDNS\r
+schemaIdGuid:8447f9f2-1027-11d0-a05f-00aa006c33ed\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Dfs-Configuration,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: DHCP-Class\r
+ldapDisplayName: dHCPClass\r
+governsId: 1.2.840.113556.1.5.132\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: dhcpUniqueKey, dhcpType, dhcpIdentification,dhcpFlags\r
+systemMayContain: superScopes, superScopeDescription,optionsLocation, optionDescription, networkAddress, mscopeId,dhcpUpdateTime, dhcpSubnets, dhcpState, dhcpSites, dhcpServers,dhcpReservations, dhcpRanges, dhcpProperties, dhcpOptions,dhcpObjName, dhcpObjDescription, dhcpMaxKey, dhcpMask, dhcpClasses\r
+systemPossSuperiors: container\r
+schemaIdGuid:963d2756-48be-11d1-a9c3-0000f80367c1\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=DHCP-Class,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Display-Specifier\r
+ldapDisplayName: displaySpecifier\r
+governsId: 1.2.840.113556.1.5.84\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: treatAsLeaf, shellPropertyPages, shellContextMenu,scopeFlags, queryFilter, iconPath, extraColumns, creationWizard,createWizardExt, createDialog, contextMenu, classDisplayName,attributeDisplayNames, adminPropertyPages,adminMultiselectPropertyPages, adminContextMenu\r
+systemPossSuperiors: container\r
+schemaIdGuid:e0fa1e8a-9b45-11d0-afdd-00c04fd930c9\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Display-Specifier,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Display-Template\r
+ldapDisplayName: displayTemplate\r
+governsId: 1.2.840.113556.1.3.59\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: cn\r
+systemMayContain: originalDisplayTableMSDOS, originalDisplayTable,helpFileName, helpData32, helpData16, addressEntryDisplayTableMSDOS,addressEntryDisplayTable\r
+systemPossSuperiors: container\r
+schemaIdGuid:5fd4250c-1262-11d0-a060-00aa006c33ed\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Display-Template,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
+cn: DMD\r
+ldapDisplayName: dMD\r
+governsId: 1.2.840.113556.1.3.9\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: cn\r
+systemMayContain: schemaUpdate, schemaInfo, prefixMap,msDs-Schema-Extensions, msDS-IntId, dmdName\r
+systemPossSuperiors: configuration\r
+schemaIdGuid:bf967a8f-0de6-11d0-a285-00aa003049e2\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: TRUE\r
+defaultObjectCategory: CN=DMD,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Dns-Node\r
+ldapDisplayName: dnsNode\r
+governsId: 1.2.840.113556.1.5.86\r
+objectClassCategory: 1\r
+rdnAttId: dc\r
+subClassOf: top\r
+systemMustContain: dc\r
+systemMayContain: dNSTombstoned, dnsRecord, dNSProperty\r
+systemPossSuperiors: dnsZone\r
+schemaIdGuid:e0fa1e8c-9b45-11d0-afdd-00c04fd930c9\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;ED)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;CO)(A;;RPLCLORC;;;WD)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Dns-Node,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Dns-Zone\r
+ldapDisplayName: dnsZone\r
+governsId: 1.2.840.113556.1.5.85\r
+objectClassCategory: 1\r
+rdnAttId: dc\r
+subClassOf: top\r
+systemMustContain: dc\r
+systemMayContain: managedBy, dnsSecureSecondaries, dNSProperty,dnsNotifySecondaries, dnsAllowXFR, dnsAllowDynamic\r
+systemPossSuperiors: container\r
+schemaIdGuid:e0fa1e8b-9b45-11d0-afdd-00c04fd930c9\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;ED)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;CC;;;AU)(A;;RPLCLORC;;;WD)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;CO)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Dns-Zone,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: document\r
+ldapDisplayName: document\r
+governsId: 0.9.2342.19200300.100.4.6\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+mayContain: documentIdentifier, documentPublisher, documentLocation,documentAuthor, documentVersion, documentTitle, ou, o, l, seeAlso,description, cn\r
+possSuperiors: organizationalUnit, container\r
+schemaIdGuid:39bad96d-c2d6-4baf-88ab-7e4207600117\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLOLORCWOWDSDDTDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=document,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
+cn: ACS-Subnet\r
+ldapDisplayName: aCSSubnet\r
+governsId: 1.2.840.113556.1.5.138\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: aCSServerList, aCSRSVPLogFilesLocation,aCSRSVPAccountFilesLocation, aCSNonReservedTxSize,aCSNonReservedTxLimit, aCSNonReservedTokenSize,aCSNonReservedPeakRate, aCSNonReservedMinPolicedSize,aCSNonReservedMaxSDUSize, aCSMaxTokenRatePerFlow,aCSMaxSizeOfRSVPLogFile, aCSMaxSizeOfRSVPAccountFile,aCSMaxPeakBandwidthPerFlow, aCSMaxPeakBandwidth, aCSMaxNoOfLogFiles,aCSMaxNoOfAccountFiles, aCSMaxDurationPerFlow, aCSEventLogLevel,aCSEnableRSVPMessageLogging, aCSEnableRSVPAccounting,aCSEnableACSService, aCSDSBMRefresh, aCSDSBMPriority,aCSDSBMDeadTime, aCSCacheTimeout, aCSAllocableRSVPBandwidth\r
+systemPossSuperiors: container\r
+schemaIdGuid:7f561289-5301-11d1-a9c5-0000f80367c1\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ACS-Subnet,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: documentSeries\r
+ldapDisplayName: documentSeries\r
+governsId: 0.9.2342.19200300.100.4.9\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+mustContain: cn\r
+mayContain: telephoneNumber, ou, o, l, seeAlso, description\r
+possSuperiors: organizationalUnit, container\r
+schemaIdGuid:7a2be07c-302f-4b96-bc90-0795d66885f8\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLOLORCWOWDSDDTDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=documentSeries,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
+cn: Domain\r
+ldapDisplayName: domain\r
+governsId: 1.2.840.113556.1.5.66\r
+objectClassCategory: 2\r
+rdnAttId: dc\r
+subClassOf: top\r
+systemMustContain: dc\r
+systemPossSuperiors: domain, organization\r
+schemaIdGuid:19195a5a-6da0-11d0-afd3-00c04fd930c9\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Domain-DNS,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Domain-DNS\r
+ldapDisplayName: domainDNS\r
+governsId: 1.2.840.113556.1.5.67\r
+objectClassCategory: 1\r
+rdnAttId: dc\r
+subClassOf: domain\r
+systemAuxiliaryClass: samDomain\r
+systemMayContain: msDS-Behavior-Version, msDS-AllowedDNSSuffixes,managedBy\r
+systemPossSuperiors: domainDNS\r
+schemaIdGuid:19195a5b-6da0-11d0-afd3-00c04fd930c9\r
+defaultSecurityDescriptor: D:(A;;RP;;;WD)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6ab-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6ac-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ab-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;1131f6ac-9c07-11d1-f79f-00c04fc2dcd2;;BA)(A;;RPLCLORC;;;AU)(A;;RPWPCRLCLOCCRCWDWOSW;;;DA)(A;CI;RPWPCRLCLOCCRCWDWOSDSW;;;BA)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;SY)(A;CI;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;EA)(A;CI;LC;;;RU)(OA;CIIO;RP;037088f8-0ae1-11d2-b422-00a0c968f939;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;59ba2f42-79a2-11d0-9020-00c04fc2d3cf;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;bc0ac240-79a9-11d0-9020-00c04fc2d4cf;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;4c164200-20c0-11d0-a768-00aa006e0529;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIO;RP;5f202010-79a5-11d0-9020-00c04fc2d4cf;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;;RP;c7407360-20bf-11d0-a768-00aa006e0529;;RU)(OA;CIIO;RPLCLORC;;bf967a9c-0de6-11d0-a285-00aa003049e2;RU)(A;;RPRC;;;RU)(OA;CIIO;RPLCLORC;;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(A;;LCRPLORC;;;ED)(OA;CIIO;RP;037088f8-0ae1-11d2-b422-00a0c968f939;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;CIIO;RP;59ba2f42-79a2-11d0-9020-00c04fc2d3cf;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;CIIO;RP;bc0ac240-79a9-11d0-9020-00c04fc2d4cf;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;CIIO;RP;4c164200-20c0-11d0-a768-00aa006e0529;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;CIIO;RP;5f202010-79a5-11d0-9020-00c04fc2d4cf;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;CIIO;RPLCLORC;;4828CC14-1437-45bc-9B07-AD6F015E5F28;RU)(OA;;RP;b8119fd0-04f6-4762-ab7a-4986c76b3f9a;;RU)(OA;;RP;b8119fd0-04f6-4762-ab7a-4986c76b3f9a;;AU)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967aba-0de6-11d0-a285-00aa003049e2;ED)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967a9c-0de6-11d0-a285-00aa003049e2;ED)(OA;CIIO;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967a86-0de6-11d0-a285-00aa003049e2;ED)(OA;;CR;1131f6ad-9c07-11d1-f79f-00c04fc2dcd2;;DD)(OA;;CR;1131f6ad-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;;CR;e2a36dc9-ae17-47c3-b58b-be34c55ba633;;S-1-5-32-557)(OA;;CR;280f369c-67c7-438e-ae98-1d46f3c6f541;;AU)(OA;;CR;ccc2dc7d-a6ad-4a7a-8846-c04e3cc53501;;AU)(OA;;CR;05c74c5e-4deb-43b4-bd9f-86664c2a7fd5;;AU)(OA;;CR;1131f6ae-9c07-11d1-f79f-00c04fc2dcd2;;ED)(OA;;CR;1131f6ae-9c07-11d1-f79f-00c04fc2dcd2;;BA)(OA;CIIO;CRRPWP;91e647de-d96f-4b70-9557-d63ff4f3ccd8;;PS)(OA;;CR;1131f6aa-9c07-11d1-f79f-00c04fc2dcd2;;RO)S:(AU;SA;WDWOWP;;;WD)(AU;SA;CR;;;BA)(AU;SA;CR;;;DU)(OU;CISA;WP;f30e3bbe-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)(OU;CISA;WP;f30e3bbf-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)\r
+defaultHidingValue: FALSE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Domain-DNS,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Domain-Policy\r
+ldapDisplayName: domainPolicy\r
+governsId: 1.2.840.113556.1.5.18\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: leaf\r
+systemMayContain: qualityOfService, pwdProperties, pwdHistoryLength,publicKeyPolicy, proxyLifetime, minTicketAge, minPwdLength,minPwdAge, maxTicketAge, maxRenewAge, maxPwdAge, managedBy,lockoutThreshold, lockoutDuration, lockOutObservationWindow,ipsecPolicyReference, forceLogoff, eFSPolicy, domainWidePolicy,domainPolicyReference, domainCAs, defaultLocalPolicyObject,authenticationOptions\r
+systemPossSuperiors: organizationalUnit, domainDNS, container\r
+schemaIdGuid:bf967a99-0de6-11d0-a285-00aa003049e2\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Domain-Policy,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: domainRelatedObject\r
+ldapDisplayName: domainRelatedObject\r
+governsId: 0.9.2342.19200300.100.4.17\r
+objectClassCategory: 3\r
+rdnAttId: cn\r
+subClassOf: top\r
+mayContain: associatedDomain\r
+schemaIdGuid:8bfd2d3d-efda-4549-852c-f85e137aedc6\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLOLORCWOWDSDDTDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=domainRelatedObject,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
+cn: DSA\r
+ldapDisplayName: dSA\r
+governsId: 2.5.6.13\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: applicationEntity\r
+systemMayContain: knowledgeInformation\r
+systemPossSuperiors: server, computer\r
+schemaIdGuid:3fdfee52-47f4-11d1-a9c3-0000f80367c1\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=DSA,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: DS-UI-Settings\r
+ldapDisplayName: dSUISettings\r
+governsId: 1.2.840.113556.1.5.183\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: msDS-Non-Security-Group-Extra-Classes,msDS-Security-Group-Extra-Classes, msDS-FilterContainers,dSUIShellMaximum, dSUIAdminNotification, dSUIAdminMaximum\r
+systemPossSuperiors: container\r
+schemaIdGuid:09b10f14-6f93-11d2-9905-0000f87a57d4\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=DS-UI-Settings,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Dynamic-Object\r
+ldapDisplayName: dynamicObject\r
+governsId: 1.3.6.1.4.1.1466.101.119.2\r
+objectClassCategory: 3\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: msDS-Entry-Time-To-Die, entryTTL\r
+schemaIdGuid:66d51249-3355-4c1f-b24e-81f252aca23b\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Dynamic-Object,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: File-Link-Tracking\r
+ldapDisplayName: fileLinkTracking\r
+governsId: 1.2.840.113556.1.5.52\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemPossSuperiors: container\r
+schemaIdGuid:dd712229-10e4-11d0-a05f-00aa006c33ed\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=File-Link-Tracking,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: File-Link-Tracking-Entry\r
+ldapDisplayName: fileLinkTrackingEntry\r
+governsId: 1.2.840.113556.1.5.59\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemPossSuperiors: fileLinkTracking\r
+schemaIdGuid:8e4eb2ed-4712-11d0-a1a0-00c04fd930c9\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=File-Link-Tracking-Entry,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Address-Book-Container\r
+ldapDisplayName: addressBookContainer\r
+governsId: 1.2.840.113556.1.5.125\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: displayName\r
+systemMayContain: purportedSearch\r
+systemPossSuperiors: addressBookContainer, configuration\r
+schemaIdGuid:3e74f60f-3e73-11d1-a9c0-0000f80367c1\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)(OA;;CR;a1990816-4298-11d1-ade2-00c04fd8d5cd;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Address-Book-Container,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Foreign-Security-Principal\r
+ldapDisplayName: foreignSecurityPrincipal\r
+governsId: 1.2.840.113556.1.5.76\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: objectSid\r
+systemMayContain: foreignIdentifier\r
+systemPossSuperiors: container\r
+schemaIdGuid:89e31c12-8530-11d0-afda-00c04fd930c9\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;AO)(A;;RPLCLORC;;;PS)(OA;;CR;ab721a53-1e2f-11d0-9819-00aa0040529b;;PS)(OA;;CR;ab721a54-1e2f-11d0-9819-00aa0040529b;;PS)(OA;;CR;ab721a56-1e2f-11d0-9819-00aa0040529b;;PS)(OA;;RPWP;77B5B886-944A-11d1-AEBD-0000F80367C1;;PS)(OA;;RPWP;E45795B2-9455-11d1-AEBD-0000F80367C1;;PS)(OA;;RPWP;E45795B3-9455-11d1-AEBD-0000F80367C1;;PS)(A;;RC;;;AU)(OA;;RP;59ba2f42-79a2-11d0-9020-00c04fc2d3cf;;AU)(OA;;RP;77B5B886-944A-11d1-AEBD-0000F80367C1;;AU)(OA;;RP;E45795B3-9455-11d1-AEBD-0000F80367C1;;AU)(OA;;RP;e48d0154-bcf8-11d1-8702-00c04fb96050;;AU)(OA;;CR;ab721a53-1e2f-11d0-9819-00aa0040529b;;WD)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Foreign-Security-Principal,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: friendlyCountry\r
+ldapDisplayName: friendlyCountry\r
+governsId: 0.9.2342.19200300.100.4.18\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: country\r
+mustContain: co\r
+schemaIdGuid:c498f152-dc6b-474a-9f52-7cdba3d7d351\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLOLORCWOWDSDDTDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=friendlyCountry,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
+cn: FT-Dfs\r
+ldapDisplayName: fTDfs\r
+governsId: 1.2.840.113556.1.5.43\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: remoteServerName, pKTGuid, pKT\r
+systemMayContain: uNCName, managedBy, keywords\r
+systemPossSuperiors: dfsConfiguration\r
+schemaIdGuid:8447f9f3-1027-11d0-a05f-00aa006c33ed\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;CO)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=FT-Dfs,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Group\r
+ldapDisplayName: group\r
+governsId: 1.2.840.113556.1.5.8\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+auxiliaryClass: posixGroup\r
+systemAuxiliaryClass: mailRecipient, securityPrincipal\r
+systemMustContain: groupType\r
+mayContain: msSFU30Name, msSFU30NisDomain, msSFU30PosixMember\r
+systemMayContain: msDS-AzApplicationData,msDS-AzLastImportedBizRulePath, msDS-AzBizRuleLanguage,msDS-AzBizRule, msDS-AzGenericData, msDS-AzObjectGuid,primaryGroupToken, operatorCount, nTGroupMembers, nonSecurityMember,msDS-NonMembers, msDS-AzLDAPQuery, member, managedBy,groupMembershipSAM, groupAttributes, mail, desktopProfile,controlAccessRights, adminCount\r
+systemPossSuperiors: msDS-AzScope, msDS-AzApplication,msDS-AzAdminManager, container, builtinDomain, organizationalUnit,domainDNS\r
+schemaIdGuid:bf967a9c-0de6-11d0-a285-00aa003049e2\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;AO)(A;;RPLCLORC;;;PS)(OA;;CR;ab721a55-1e2f-11d0-9819-00aa0040529b;;AU)(OA;;RP;46a9b11d-60ae-405a-b7e8-ff8a58d456d2;;S-1-5-32-560)\r
+defaultHidingValue: FALSE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Group,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Group-Of-Names\r
+ldapDisplayName: groupOfNames\r
+governsId: 2.5.6.9\r
+objectClassCategory: 0\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: member, cn\r
+systemMayContain: seeAlso, owner, ou, o, businessCategory\r
+systemPossSuperiors: organizationalUnit, locality, organization,container\r
+schemaIdGuid:bf967a9d-0de6-11d0-a285-00aa003049e2\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Group-Of-Names,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: groupOfUniqueNames\r
+ldapDisplayName: groupOfUniqueNames\r
+governsId: 2.5.6.17\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+mustContain: uniqueMember, cn\r
+mayContain: seeAlso, owner, ou, o, description, businessCategory\r
+possSuperiors: domainDNS, organizationalUnit, container\r
+schemaIdGuid:0310a911-93a3-4e21-a7a3-55d85ab2c48b\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;AO)(A;;RPLCLORC;;;PS)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=groupOfUniqueNames,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
+cn: Group-Policy-Container\r
+ldapDisplayName: groupPolicyContainer\r
+governsId: 1.2.840.113556.1.5.157\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: container\r
+systemMayContain: versionNumber, gPCWQLFilter, gPCUserExtensionNames,gPCMachineExtensionNames, gPCFunctionalityVersion, gPCFileSysPath,flags\r
+schemaIdGuid:f30e3bc2-9ff0-11d1-b603-0000f80367c1\r
+defaultSecurityDescriptor: D:P(A;CI;RPWPCCDCLCLOLORCWOWDSDDTSW;;;DA)(A;CI;RPWPCCDCLCLOLORCWOWDSDDTSW;;;EA)(A;CI;RPWPCCDCLCLOLORCWOWDSDDTSW;;;CO)(A;CI;RPWPCCDCLCLORCWOWDSDDTSW;;;SY)(A;CI;RPLCLORC;;;AU)(OA;CI;CR;edacfd8f-ffb3-11d1-b41d-00a0c968f939;;AU)(A;CI;LCRPLORC;;;ED)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Group-Policy-Container,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: IEEE802Device\r
+ldapDisplayName: ieee802Device\r
+governsId: 1.3.6.1.1.1.2.11\r
+objectClassCategory: 3\r
+rdnAttId: cn\r
+subClassOf: top\r
+mayContain: cn, macAddress\r
+schemaIdGuid:a699e529-a637-4b7d-a0fb-5dc466a0b8a7\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=IEEE802Device,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
+cn: Index-Server-Catalog\r
+ldapDisplayName: indexServerCatalog\r
+governsId: 1.2.840.113556.1.5.130\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: connectionPoint\r
+systemMustContain: creator\r
+systemMayContain: uNCName, queryPoint, indexedScopes, friendlyNames\r
+systemPossSuperiors: organizationalUnit, container\r
+schemaIdGuid:7bfdcb8a-4807-11d1-a9c3-0000f80367c1\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Index-Server-Catalog,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: inetOrgPerson\r
+ldapDisplayName: inetOrgPerson\r
+governsId: 2.16.840.1.113730.3.2.2\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: user\r
+mayContain: x500uniqueIdentifier, userSMIMECertificate, userPKCS12,userCertificate, uid, secretary, roomNumber, preferredLanguage,photo, pager, o, mobile, manager, mail, labeledURI, jpegPhoto,initials, homePostalAddress, homePhone, givenName, employeeType,employeeNumber, displayName, departmentNumber, carLicense,businessCategory, audio\r
+possSuperiors: domainDNS, organizationalUnit, container\r
+schemaIdGuid:4828cc14-1437-45bc-9b07-ad6f015e5f28\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;AO)(A;;RPLCLORC;;;PS)(OA;;CR;ab721a53-1e2f-11d0-9819-00aa0040529b;;PS)(OA;;CR;ab721a54-1e2f-11d0-9819-00aa0040529b;;PS)(OA;;CR;ab721a56-1e2f-11d0-9819-00aa0040529b;;PS)(OA;;RPWP;77B5B886-944A-11d1-AEBD-0000F80367C1;;PS)(OA;;RPWP;E45795B2-9455-11d1-AEBD-0000F80367C1;;PS)(OA;;RPWP;E45795B3-9455-11d1-AEBD-0000F80367C1;;PS)(OA;;RP;037088f8-0ae1-11d2-b422-00a0c968f939;;RS)(OA;;RP;4c164200-20c0-11d0-a768-00aa006e0529;;RS)(OA;;RP;bc0ac240-79a9-11d0-9020-00c04fc2d4cf;;RS)(A;;RC;;;AU)(OA;;RP;59ba2f42-79a2-11d0-9020-00c04fc2d3cf;;AU)(OA;;RP;77B5B886-944A-11d1-AEBD-0000F80367C1;;AU)(OA;;RP;E45795B3-9455-11d1-AEBD-0000F80367C1;;AU)(OA;;RP;e48d0154-bcf8-11d1-8702-00c04fb96050;;AU)(OA;;CR;ab721a53-1e2f-11d0-9819-00aa0040529b;;WD)(OA;;RP;5f202010-79a5-11d0-9020-00c04fc2d4cf;;RS)(OA;;RPWP;bf967a7f-0de6-11d0-a285-00aa003049e2;;CA)(OA;;RP;46a9b11d-60ae-405a-b7e8-ff8a58d456d2;;S-1-5-32-560)(OA;;WPRP;6db69a1c-9422-11d1-aebd-0000f80367c1;;S-1-5-32-561)\r
+defaultHidingValue: FALSE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Person,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
+cn: Address-Template\r
+ldapDisplayName: addressTemplate\r
+governsId: 1.2.840.113556.1.3.58\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: displayTemplate\r
+systemMustContain: displayName\r
+systemMayContain: proxyGenerationEnabled, perRecipDialogDisplayTable,perMsgDialogDisplayTable, addressType, addressSyntax\r
+systemPossSuperiors: container\r
+schemaIdGuid:5fd4250a-1262-11d0-a060-00aa006c33ed\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Address-Template,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
+cn: Infrastructure-Update\r
+ldapDisplayName: infrastructureUpdate\r
+governsId: 1.2.840.113556.1.5.175\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: dNReferenceUpdate\r
+systemPossSuperiors: infrastructureUpdate, domain\r
+schemaIdGuid:2df90d89-009f-11d2-aa4c-00c04fd7d83a\r
+defaultSecurityDescriptor: D:(A;;GA;;;SY)\r
+defaultHidingValue: TRUE\r
+systemOnly: TRUE\r
+defaultObjectCategory: CN=Infrastructure-Update,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Intellimirror-Group\r
+ldapDisplayName: intellimirrorGroup\r
+governsId: 1.2.840.113556.1.5.152\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemPossSuperiors: domainDNS, organizationalUnit, container\r
+schemaIdGuid:07383086-91df-11d1-aebc-0000f80367c1\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;CCDC;;;CO)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Intellimirror-Group,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Intellimirror-SCP\r
+ldapDisplayName: intellimirrorSCP\r
+governsId: 1.2.840.113556.1.5.151\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: serviceAdministrationPoint\r
+systemMayContain: netbootTools, netbootServer, netbootNewMachineOU,netbootNewMachineNamingPolicy, netbootMaxClients,netbootMachineFilePath, netbootLocallyInstalledOSes,netbootLimitClients, netbootIntelliMirrorOSes,netbootCurrentClientCount, netbootAnswerRequests,netbootAnswerOnlyValidClients, netbootAllowNewClients\r
+systemPossSuperiors: computer, intellimirrorGroup\r
+schemaIdGuid:07383085-91df-11d1-aebc-0000f80367c1\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Intellimirror-SCP,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Inter-Site-Transport\r
+ldapDisplayName: interSiteTransport\r
+governsId: 1.2.840.113556.1.5.141\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: transportDLLName, transportAddressAttribute\r
+systemMayContain: replInterval, options\r
+systemPossSuperiors: interSiteTransportContainer\r
+schemaIdGuid:26d97376-6070-11d1-a9c6-0000f80367c1\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Inter-Site-Transport,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Inter-Site-Transport-Container\r
+ldapDisplayName: interSiteTransportContainer\r
+governsId: 1.2.840.113556.1.5.140\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemPossSuperiors: sitesContainer\r
+schemaIdGuid:26d97375-6070-11d1-a9c6-0000f80367c1\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Inter-Site-Transport-Container,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: IpHost\r
+ldapDisplayName: ipHost\r
+governsId: 1.3.6.1.1.1.2.6\r
+objectClassCategory: 3\r
+rdnAttId: cn\r
+subClassOf: top\r
+mayContain: manager, cn, description, ipHostNumber, uid, l\r
+schemaIdGuid:ab911646-8827-4f95-8780-5a8f008eb68f\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=IpHost,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
+cn: IpNetwork\r
+ldapDisplayName: ipNetwork\r
+governsId: 1.3.6.1.1.1.2.7\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+mustContain: cn, ipNetworkNumber\r
+mayContain: manager, description, ipNetmaskNumber, uid, l,msSFU30Name, msSFU30NisDomain, nisMapName, msSFU30Aliases\r
+possSuperiors: domainDNS, nisMap, container, organizationalUnit\r
+schemaIdGuid:d95836c3-143e-43fb-992a-b057f1ecadf9\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=IpNetwork,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
+cn: IpProtocol\r
+ldapDisplayName: ipProtocol\r
+governsId: 1.3.6.1.1.1.2.4\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+mustContain: cn, ipProtocolNumber\r
+mayContain: description, msSFU30Name, msSFU30NisDomain, nisMapName,msSFU30Aliases\r
+possSuperiors: domainDNS, nisMap, container, organizationalUnit\r
+schemaIdGuid:9c2dcbd2-fbf0-4dc7-ace0-8356dcd0f013\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=IpProtocol,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
+cn: Ipsec-Base\r
+ldapDisplayName: ipsecBase\r
+governsId: 1.2.840.113556.1.5.7000.56\r
+objectClassCategory: 2\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: ipsecOwnersReference, ipsecName, ipsecID,ipsecDataType, ipsecData\r
+schemaIdGuid:b40ff825-427a-11d1-a9c2-0000f80367c1\r
+defaultSecurityDescriptor: D:\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Ipsec-Base,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Ipsec-Filter\r
+ldapDisplayName: ipsecFilter\r
+governsId: 1.2.840.113556.1.5.118\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: ipsecBase\r
+systemPossSuperiors: organizationalUnit, computer, container\r
+schemaIdGuid:b40ff826-427a-11d1-a9c2-0000f80367c1\r
+defaultSecurityDescriptor: D:\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Ipsec-Filter,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Application-Entity\r
+ldapDisplayName: applicationEntity\r
+governsId: 2.5.6.12\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: presentationAddress, cn\r
+systemMayContain: supportedApplicationContext, seeAlso, ou, o, l\r
+systemPossSuperiors: applicationProcess, organizationalUnit,container\r
+schemaIdGuid:3fdfee4f-47f4-11d1-a9c3-0000f80367c1\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Application-Entity,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Ipsec-ISAKMP-Policy\r
+ldapDisplayName: ipsecISAKMPPolicy\r
+governsId: 1.2.840.113556.1.5.120\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: ipsecBase\r
+systemPossSuperiors: container, computer, organizationalUnit\r
+schemaIdGuid:b40ff828-427a-11d1-a9c2-0000f80367c1\r
+defaultSecurityDescriptor: D:\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Ipsec-ISAKMP-Policy,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Ipsec-Negotiation-Policy\r
+ldapDisplayName: ipsecNegotiationPolicy\r
+governsId: 1.2.840.113556.1.5.119\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: ipsecBase\r
+systemMayContain: iPSECNegotiationPolicyType,iPSECNegotiationPolicyAction\r
+systemPossSuperiors: organizationalUnit, computer, container\r
+schemaIdGuid:b40ff827-427a-11d1-a9c2-0000f80367c1\r
+defaultSecurityDescriptor: D:\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Ipsec-Negotiation-Policy,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Ipsec-NFA\r
+ldapDisplayName: ipsecNFA\r
+governsId: 1.2.840.113556.1.5.121\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: ipsecBase\r
+systemMayContain: ipsecNegotiationPolicyReference,ipsecFilterReference\r
+systemPossSuperiors: container, computer, organizationalUnit\r
+schemaIdGuid:b40ff829-427a-11d1-a9c2-0000f80367c1\r
+defaultSecurityDescriptor: D:\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Ipsec-NFA,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Ipsec-Policy\r
+ldapDisplayName: ipsecPolicy\r
+governsId: 1.2.840.113556.1.5.98\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: ipsecBase\r
+systemMayContain: ipsecNFAReference, ipsecISAKMPReference\r
+systemPossSuperiors: organizationalUnit, computer, container\r
+schemaIdGuid:b7b13121-b82e-11d0-afee-0000f80367c1\r
+defaultSecurityDescriptor: D:\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Ipsec-Policy,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: IpService\r
+ldapDisplayName: ipService\r
+governsId: 1.3.6.1.1.1.2.3\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+mustContain: ipServiceProtocol, ipServicePort, cn\r
+mayContain: description, msSFU30Name, msSFU30NisDomain,msSFU30Aliases, nisMapName\r
+possSuperiors: domainDNS, nisMap, container, organizationalUnit\r
+schemaIdGuid:2517fadf-fa97-48ad-9de6-79ac5721f864\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=IpService,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
+cn: Leaf\r
+ldapDisplayName: leaf\r
+governsId: 1.2.840.113556.1.5.20\r
+objectClassCategory: 2\r
+rdnAttId: cn\r
+subClassOf: top\r
+schemaIdGuid:bf967a9e-0de6-11d0-a285-00aa003049e2\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Leaf,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Licensing-Site-Settings\r
+ldapDisplayName: licensingSiteSettings\r
+governsId: 1.2.840.113556.1.5.78\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: applicationSiteSettings\r
+systemMayContain: siteServer\r
+systemPossSuperiors: site\r
+schemaIdGuid:1be8f17d-a9ff-11d0-afe2-00c04fd930c9\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Licensing-Site-Settings,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Link-Track-Object-Move-Table\r
+ldapDisplayName: linkTrackObjectMoveTable\r
+governsId: 1.2.840.113556.1.5.91\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: fileLinkTracking\r
+systemPossSuperiors: fileLinkTracking\r
+schemaIdGuid:ddac0cf5-af8f-11d0-afeb-00c04fd930c9\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Link-Track-Object-Move-Table,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Link-Track-OMT-Entry\r
+ldapDisplayName: linkTrackOMTEntry\r
+governsId: 1.2.840.113556.1.5.93\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: leaf\r
+systemMayContain: timeRefresh, oMTIndxGuid, oMTGuid, currentLocation,birthLocation\r
+systemPossSuperiors: linkTrackObjectMoveTable\r
+schemaIdGuid:ddac0cf7-af8f-11d0-afeb-00c04fd930c9\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Link-Track-OMT-Entry,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Link-Track-Vol-Entry\r
+ldapDisplayName: linkTrackVolEntry\r
+governsId: 1.2.840.113556.1.5.92\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: leaf\r
+systemMayContain: volTableIdxGUID, volTableGUID, timeVolChange,timeRefresh, seqNotification, objectCount, linkTrackSecret,currMachineId\r
+systemPossSuperiors: linkTrackVolumeTable\r
+schemaIdGuid:ddac0cf6-af8f-11d0-afeb-00c04fd930c9\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Link-Track-Vol-Entry,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Application-Process\r
+ldapDisplayName: applicationProcess\r
+governsId: 2.5.6.11\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: cn\r
+systemMayContain: seeAlso, ou, l\r
+systemPossSuperiors: organizationalUnit, organization, container,computer\r
+schemaIdGuid:5fd4250b-1262-11d0-a060-00aa006c33ed\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: TRUE\r
+defaultObjectCategory: CN=Application-Process,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Link-Track-Volume-Table\r
+ldapDisplayName: linkTrackVolumeTable\r
+governsId: 1.2.840.113556.1.5.90\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: fileLinkTracking\r
+systemPossSuperiors: fileLinkTracking\r
+schemaIdGuid:ddac0cf4-af8f-11d0-afeb-00c04fd930c9\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Link-Track-Volume-Table,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Locality\r
+ldapDisplayName: locality\r
+governsId: 2.5.6.3\r
+objectClassCategory: 1\r
+rdnAttId: l\r
+subClassOf: top\r
+systemMustContain: l\r
+systemMayContain: street, st, seeAlso, searchGuide\r
+systemPossSuperiors: domainDNS, country, organizationalUnit,organization, locality\r
+schemaIdGuid:bf967aa0-0de6-11d0-a285-00aa003049e2\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: FALSE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Locality,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Lost-And-Found\r
+ldapDisplayName: lostAndFound\r
+governsId: 1.2.840.113556.1.5.139\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: moveTreeState\r
+systemPossSuperiors: configuration, domainDNS, dMD\r
+schemaIdGuid:52ab8671-5709-11d1-a9c6-0000f80367c1\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Lost-And-Found,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Mail-Recipient\r
+ldapDisplayName: mailRecipient\r
+governsId: 1.2.840.113556.1.3.46\r
+objectClassCategory: 3\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: cn\r
+mayContain: msDS-PhoneticDisplayName, userSMIMECertificate,secretary, msExchLabeledURI, msExchAssistantName, labeledURI\r
+systemMayContain: userCertificate, userCert, textEncodedORAddress,telephoneNumber, showInAddressBook, legacyExchangeDN,garbageCollPeriod, info\r
+systemPossSuperiors: container\r
+schemaIdGuid:bf967aa1-0de6-11d0-a285-00aa003049e2\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Mail-Recipient,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Meeting\r
+ldapDisplayName: meeting\r
+governsId: 1.2.840.113556.1.5.104\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMustContain: meetingName\r
+systemMayContain: meetingURL, meetingType, meetingStartTime,meetingScope, meetingRecurrence, meetingRating, meetingProtocol,meetingOwner, meetingOriginator, meetingMaxParticipants,meetingLocation, meetingLanguage, meetingKeyword,meetingIsEncrypted, meetingIP, meetingID, meetingEndTime,meetingDescription, meetingContactInfo, meetingBlob,meetingBandwidth, meetingApplication, meetingAdvertiseScope\r
+systemPossSuperiors: container\r
+schemaIdGuid:11b6cc94-48c4-11d1-a9c3-0000f80367c1\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Meeting,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-OLAPCube\r
+ldapDisplayName: mS-SQL-OLAPCube\r
+governsId: 1.2.840.113556.1.5.190\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: mS-SQL-Keywords, mS-SQL-PublicationURL,mS-SQL-InformationURL, mS-SQL-Status, mS-SQL-LastUpdatedDate,mS-SQL-Size, mS-SQL-Description, mS-SQL-Contact, mS-SQL-Name\r
+systemPossSuperiors: mS-SQL-OLAPDatabase\r
+schemaIdGuid:09f0506a-cd28-11d2-9993-0000f87a57d4\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=MS-SQL-OLAPCube,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-OLAPDatabase\r
+ldapDisplayName: mS-SQL-OLAPDatabase\r
+governsId: 1.2.840.113556.1.5.189\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: mS-SQL-Keywords, mS-SQL-PublicationURL,mS-SQL-ConnectionURL, mS-SQL-InformationURL, mS-SQL-Status,mS-SQL-Applications, mS-SQL-LastBackupDate, mS-SQL-LastUpdatedDate,mS-SQL-Size, mS-SQL-Type, mS-SQL-Description, mS-SQL-Contact,mS-SQL-Name\r
+systemPossSuperiors: mS-SQL-OLAPServer\r
+schemaIdGuid:20af031a-ccef-11d2-9993-0000f87a57d4\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=MS-SQL-OLAPDatabase,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-OLAPServer\r
+ldapDisplayName: mS-SQL-OLAPServer\r
+governsId: 1.2.840.113556.1.5.185\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: serviceConnectionPoint\r
+systemMayContain: mS-SQL-Keywords, mS-SQL-PublicationURL,mS-SQL-InformationURL, mS-SQL-Status, mS-SQL-Language,mS-SQL-ServiceAccount, mS-SQL-Contact, mS-SQL-RegisteredOwner,mS-SQL-Build, mS-SQL-Version, mS-SQL-Name\r
+systemPossSuperiors: serviceConnectionPoint\r
+schemaIdGuid:0c7e18ea-ccef-11d2-9993-0000f87a57d4\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=MS-SQL-OLAPServer,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-SQLDatabase\r
+ldapDisplayName: mS-SQL-SQLDatabase\r
+governsId: 1.2.840.113556.1.5.188\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: mS-SQL-Keywords, mS-SQL-InformationURL,mS-SQL-Status, mS-SQL-Applications, mS-SQL-LastDiagnosticDate,mS-SQL-LastBackupDate, mS-SQL-CreationDate, mS-SQL-Size,mS-SQL-Contact, mS-SQL-Alias, mS-SQL-Description, mS-SQL-Name\r
+systemPossSuperiors: mS-SQL-SQLServer\r
+schemaIdGuid:1d08694a-ccef-11d2-9993-0000f87a57d4\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=MS-SQL-SQLDatabase,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-SQLPublication\r
+ldapDisplayName: mS-SQL-SQLPublication\r
+governsId: 1.2.840.113556.1.5.187\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: mS-SQL-ThirdParty,mS-SQL-AllowSnapshotFilesFTPDownloading,mS-SQL-AllowQueuedUpdatingSubscription,mS-SQL-AllowImmediateUpdatingSubscription,mS-SQL-AllowKnownPullSubscription, mS-SQL-Publisher,mS-SQL-AllowAnonymousSubscription, mS-SQL-Database, mS-SQL-Type,mS-SQL-Status, mS-SQL-Description, mS-SQL-Name\r
+systemPossSuperiors: mS-SQL-SQLServer\r
+schemaIdGuid:17c2f64e-ccef-11d2-9993-0000f87a57d4\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=MS-SQL-SQLPublication,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: Application-Settings\r
+ldapDisplayName: applicationSettings\r
+governsId: 1.2.840.113556.1.5.7000.49\r
+objectClassCategory: 2\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: notificationList, msDS-Settings, applicationName\r
+systemPossSuperiors: server\r
+schemaIdGuid:f780acc1-56f0-11d1-a9c6-0000f80367c1\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=Application-Settings,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-SQLRepository\r
+ldapDisplayName: mS-SQL-SQLRepository\r
+governsId: 1.2.840.113556.1.5.186\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: mS-SQL-InformationDirectory, mS-SQL-Version,mS-SQL-Description, mS-SQL-Status, mS-SQL-Build, mS-SQL-Contact,mS-SQL-Name\r
+systemPossSuperiors: mS-SQL-SQLServer\r
+schemaIdGuid:11d43c5c-ccef-11d2-9993-0000f87a57d4\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=MS-SQL-SQLRepository,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: MS-SQL-SQLServer\r
+ldapDisplayName: mS-SQL-SQLServer\r
+governsId: 1.2.840.113556.1.5.184\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: serviceConnectionPoint\r
+systemMayContain: mS-SQL-Keywords, mS-SQL-GPSHeight,mS-SQL-GPSLongitude, mS-SQL-GPSLatitude, mS-SQL-InformationURL,mS-SQL-LastUpdatedDate, mS-SQL-Status, mS-SQL-Vines,mS-SQL-AppleTalk, mS-SQL-TCPIP, mS-SQL-SPX, mS-SQL-MultiProtocol,mS-SQL-NamedPipe, mS-SQL-Clustered, mS-SQL-UnicodeSortOrder,mS-SQL-SortOrder, mS-SQL-CharacterSet, mS-SQL-ServiceAccount,mS-SQL-Build, mS-SQL-Memory, mS-SQL-Location, mS-SQL-Contact,mS-SQL-RegisteredOwner, mS-SQL-Name\r
+systemPossSuperiors: serviceConnectionPoint\r
+schemaIdGuid:05f6c878-ccef-11d2-9993-0000f87a57d4\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=MS-SQL-SQLServer,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-COM-Partition\r
+ldapDisplayName: msCOM-Partition\r
+governsId: 1.2.840.113556.1.5.193\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: msCOM-ObjectId\r
+systemPossSuperiors: domainDNS, organizationalUnit, container\r
+schemaIdGuid:c9010e74-4e58-49f7-8a89-5e3e2340fcf8\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-COM-Partition,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-COM-PartitionSet\r
+ldapDisplayName: msCOM-PartitionSet\r
+governsId: 1.2.840.113556.1.5.194\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+systemMayContain: msCOM-PartitionLink, msCOM-DefaultPartitionLink,msCOM-ObjectId\r
+systemPossSuperiors: domainDNS, organizationalUnit, container\r
+schemaIdGuid:250464ab-c417-497a-975a-9e0d459a7ca1\r
+defaultSecurityDescriptor: D:(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;DA)(A;;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)(A;;RPLCLORC;;;AU)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-COM-PartitionSet,CN=Schema,CN=Configuration,<RootDomainDN>\r
+systemFlags: FLAG_SCHEMA_BASE_OBJECT\r
+\r
+cn: ms-DFSR-Connection\r
+ldapDisplayName: msDFSR-Connection\r
+governsId: 1.2.840.113556.1.6.13.4.10\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+mustContain: fromServer\r
+mayContain: msDFSR-Options2, msDFSR-DisablePacketPrivacy,msDFSR-Priority, msDFSR-Enabled, msDFSR-RdcEnabled,msDFSR-RdcMinFileSizeInKb, msDFSR-Keywords, msDFSR-Schedule,msDFSR-Flags, msDFSR-Options, msDFSR-Extension\r
+possSuperiors: msDFSR-Member\r
+schemaIdGuid:e58f972e-64b5-46ef-8d8b-bbc3e1897eab\r
+defaultSecurityDescriptor: D:(A;;RPLCLORC;;;AU)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;DA)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;CO)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;SY)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-DFSR-Connection,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
+cn: ms-DFSR-Content\r
+ldapDisplayName: msDFSR-Content\r
+governsId: 1.2.840.113556.1.6.13.4.6\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+mayContain: msDFSR-Flags, msDFSR-Options, msDFSR-Extension\r
+possSuperiors: msDFSR-ReplicationGroup\r
+schemaIdGuid:64759b35-d3a1-42e4-b5f1-a3de162109b3\r
+defaultSecurityDescriptor: D:(A;;RPLCLORC;;;AU)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;DA)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;CO)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;SY)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-DFSR-Content,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
+cn: ms-DFSR-ContentSet\r
+ldapDisplayName: msDFSR-ContentSet\r
+governsId: 1.2.840.113556.1.6.13.4.7\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+mayContain: msDFSR-Options2, msDFSR-OnDemandExclusionDirectoryFilter,msDFSR-OnDemandExclusionFileFilter,msDFSR-DefaultCompressionExclusionFilter, msDFSR-DeletedSizeInMb,msDFSR-Priority, msDFSR-ConflictSizeInMb, msDFSR-StagingSizeInMb,msDFSR-RootSizeInMb, description, msDFSR-DfsPath, msDFSR-FileFilter,msDFSR-DirectoryFilter, msDFSR-Flags, msDFSR-Options,msDFSR-Extension\r
+possSuperiors: msDFSR-Content\r
+schemaIdGuid:4937f40d-a6dc-4d48-97ca-06e5fbfd3f16\r
+defaultSecurityDescriptor: D:(A;;RPLCLORC;;;AU)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;DA)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;CO)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;SY)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-DFSR-ContentSet,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
+cn: ms-DFSR-GlobalSettings\r
+ldapDisplayName: msDFSR-GlobalSettings\r
+governsId: 1.2.840.113556.1.6.13.4.4\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+mayContain: msDFSR-Flags, msDFSR-Options, msDFSR-Extension\r
+possSuperiors: container\r
+schemaIdGuid:7b35dbad-b3ec-486a-aad4-2fec9d6ea6f6\r
+defaultSecurityDescriptor: D:(A;;RPLCLORC;;;AU)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;DA)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;CO)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;SY)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-DFSR-GlobalSettings,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
+cn: ms-DFSR-LocalSettings\r
+ldapDisplayName: msDFSR-LocalSettings\r
+governsId: 1.2.840.113556.1.6.13.4.1\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+mayContain: msDFSR-Version, msDFSR-Flags, msDFSR-Options,msDFSR-Extension\r
+possSuperiors: computer\r
+schemaIdGuid:fa85c591-197f-477e-83bd-ea5a43df2239\r
+defaultSecurityDescriptor: D:(A;;RPLCLORC;;;AU)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;DA)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;CO)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;SY)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-DFSR-LocalSettings,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
+cn: ms-DFSR-Member\r
+ldapDisplayName: msDFSR-Member\r
+governsId: 1.2.840.113556.1.6.13.4.9\r
+objectClassCategory: 1\r
+rdnAttId: cn\r
+subClassOf: top\r
+mustContain: msDFSR-ComputerReference\r
+mayContain: serverReference, msDFSR-Keywords, msDFSR-Flags,msDFSR-Options, msDFSR-Extension\r
+possSuperiors: msDFSR-Topology\r
+schemaIdGuid:4229c897-c211-437c-a5ae-dbf705b696e5\r
+defaultSecurityDescriptor: D:(A;;RPLCLORC;;;AU)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;DA)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;CO)(A;;RPWPCRLCLOCCDCRCWDWOSDDTSW;;;SY)\r
+defaultHidingValue: TRUE\r
+systemOnly: FALSE\r
+defaultObjectCategory: CN=ms-DFSR-Member,CN=Schema,CN=Configuration,<RootDomainDN>\r
+\r
--- /dev/null
+NOTE:
+
+The licence on these schema files is not GPL, or a standard Open
+Source licence. Be careful to redistribute thes files as part of
+Samba or 'your implementation', but not alone.
+
+--
+
+Intellectual Property Rights Notice for Protocol Documentation
+
+Copyrights.
+This protocol documentation is covered by Microsoft
+copyrights. Regardless of any other terms that are contained in the
+terms of use for the Microsoft website that hosts this documentation,
+you may make copies of it in order to develop implementations of the
+protocols, and may distribute portions of it in your implementations
+of the protocols or your documentation as necessary to properly
+document the implementation. You may also distribute in your
+implementation, with or without modification, any schema, IDL's, or
+code samples that are included in the documentation. This permission
+also applies to any documents that are referenced in the protocol
+documentation.
+
+No Trade Secrets.
+Microsoft does not claim any trade secret rights in this documentation.
+
+Patents.
+Microsoft has patents that may cover your implementations of the
+protocols. Neither this notice nor Microsoft's delivery of the
+documentation grants any licenses under those or any other Microsoft
+patents. However, the protocols may be covered by Microsoft\92s Open
+Specification Promise (available here:
+http://www.microsoft.com/interop/osp). If you would prefer a written
+license, or if the protocols are not covered by the OSP, patent
+licenses are available by contacting protocol@microsoft.com.
+
+Trademarks.
+The names of companies and products contained in this documentation
+may be covered by trademarks or similar intellectual property
+rights. This notice does not grant any licenses under those
+rights.Reservation of Rights. All other rights are reserved, and this
+notice does not grant any rights other than specifically described
+above, whether by implication, estoppel, or otherwise.
+
+Tools.
+This protocol documentation is intended for use in conjunction with
+publicly available standard specifications and network programming
+art, and assumes that the reader either is familiar with the
+aforementioned material or has immediate access to it. A protocol
+specification does not require the use of Microsoft programming tools
+or programming environments in order for you to develop an
+implementation. If you have access to Microsoft programming tools and
+environments you are free to take advantage of them.
+
import getopt
import optparse
-import os, sys
+import os
+import sys
# Find right directory when running from source tree
sys.path.insert(0, "bin/python")
parser.add_option_group(options.VersionOptions(parser))
credopts = options.CredentialsOptions(parser)
parser.add_option_group(credopts)
+parser.add_option("--interactive", help="Ask for names")
parser.add_option("--setupdir", type="string", metavar="DIR",
help="directory with setup files")
parser.add_option("--realm", type="string", metavar="REALM", help="set realm")
if not opts.quiet:
print text
-if opts.realm is None or opts.domain is None:
+if len(sys.argv) == 1:
+ opts.interactive = True
+
+if not opts.interactive and (opts.realm is None or opts.domain is None):
if opts.realm is None:
print >>sys.stderr, "No realm set"
if opts.domain is None:
parser.print_usage()
sys.exit(1)
+if opts.interactive:
+ from getpass import getpass
+ import readline
+ import socket
+ def ask(prompt, default=None):
+ if default is not None:
+ print "%s [%s]: " % (prompt,default),
+ else:
+ print "%s: " % (prompt,),
+ return sys.stdin.readline().rstrip("\n") or default
+ opts.realm = ask("Realm", socket.gethostname().split(".", 1)[1])
+ opts.domain = ask("Domain", opts.realm)
+ opts.server_role = ask("Server Role (dc, member, standalone)", "dc")
+ for i in range(3):
+ opts.adminpass = getpass("Administrator password: ")
+ if not opts.adminpass:
+ print >>sys.stderr, "Invalid administrator password."
+ else:
+ break
+
lp = sambaopts.get_loadparm()
smbconf = lp.configfile()
/* check req->ntvfs->async_states->status and if not OK then send an error reply */
#define SMB2SRV_CHECK_ASYNC_STATUS_ERR_SIMPLE do { \
req = talloc_get_type(ntvfs->async_states->private_data, struct smb2srv_request); \
+ if (ntvfs->async_states->state & NTVFS_ASYNC_STATE_CLOSE || NT_STATUS_EQUAL(ntvfs->async_states->status, NT_STATUS_NET_WRITE_FAULT)) { \
+ smbsrv_terminate_connection(req->smb_conn, get_friendly_nt_error_msg (ntvfs->async_states->status)); \
+ talloc_free(req); \
+ return; \
+ } \
req->status = ntvfs->async_states->status; \
if (NT_STATUS_IS_ERR(ntvfs->async_states->status)) { \
smb2srv_send_error(req, ntvfs->async_states->status); \
} while (0)
#define SMB2SRV_CHECK_ASYNC_STATUS_SIMPLE do { \
req = talloc_get_type(ntvfs->async_states->private_data, struct smb2srv_request); \
+ if (ntvfs->async_states->state & NTVFS_ASYNC_STATE_CLOSE || NT_STATUS_EQUAL(ntvfs->async_states->status, NT_STATUS_NET_WRITE_FAULT)) { \
+ smbsrv_terminate_connection(req->smb_conn, get_friendly_nt_error_msg (ntvfs->async_states->status)); \
+ talloc_free(req); \
+ return; \
+ } \
req->status = ntvfs->async_states->status; \
if (!NT_STATUS_IS_OK(ntvfs->async_states->status)) { \
smb2srv_send_error(req, ntvfs->async_states->status); \
/* check req->ntvfs->async_states->status and if not OK then send an error reply */
#define SMBSRV_CHECK_ASYNC_STATUS_ERR_SIMPLE do { \
req = talloc_get_type(ntvfs->async_states->private_data, struct smbsrv_request); \
+ if (ntvfs->async_states->state & NTVFS_ASYNC_STATE_CLOSE || NT_STATUS_EQUAL(ntvfs->async_states->status, NT_STATUS_NET_WRITE_FAULT)) { \
+ smbsrv_terminate_connection(req->smb_conn, get_friendly_nt_error_msg (ntvfs->async_states->status)); \
+ talloc_free(req); \
+ return; \
+ } \
if (NT_STATUS_IS_ERR(ntvfs->async_states->status)) { \
smbsrv_send_error(req, ntvfs->async_states->status); \
return; \
} while (0)
#define SMBSRV_CHECK_ASYNC_STATUS_SIMPLE do { \
req = talloc_get_type(ntvfs->async_states->private_data, struct smbsrv_request); \
+ if (ntvfs->async_states->state & NTVFS_ASYNC_STATE_CLOSE || NT_STATUS_EQUAL(ntvfs->async_states->status, NT_STATUS_NET_WRITE_FAULT)) { \
+ smbsrv_terminate_connection(req->smb_conn, get_friendly_nt_error_msg (ntvfs->async_states->status)); \
+ talloc_free(req); \
+ return; \
+ } \
if (!NT_STATUS_IS_OK(ntvfs->async_states->status)) { \
smbsrv_send_error(req, ntvfs->async_states->status); \
return; \
/* zero out some reserved fields in a reply */
#define SMBSRV_VWV_RESERVED(start, count) memset(req->out.vwv + VWV(start), 0, (count)*2)
+
+#include "smb_server/service_smb_proto.h"
smbcli_close(cli1->tree, fnum1);
- correct &= check_delete_on_close(tctx, cli1, fnum2, fname, false, __location__);
+ /* After the first close, the files has the delete on close bit set. */
+ correct &= check_delete_on_close(tctx, cli1, fnum2, fname, true, __location__);
smbcli_close(cli1->tree, fnum2);
- /* See if the file is deleted - shouldn't be.... */
+ /* Make sure the file has been deleted */
fnum1 = smbcli_open(cli1->tree, fname, O_RDWR, DENY_NONE);
- torture_assert(tctx, fnum1 != -1, talloc_asprintf(tctx, "open of %s failed (should succeed) - %s",
+ torture_assert(tctx, fnum1 == -1, talloc_asprintf(tctx, "open of %s failed (should succeed) - %s",
fname, smbcli_errstr(cli1->tree)));
+ CHECK_STATUS(cli1, NT_STATUS_OBJECT_NAME_NOT_FOUND);
+
return correct;
}
torture_assert(tctx, fnum1 != -1, talloc_asprintf(tctx, "open - 1 of %s failed (%s)",
dname, smbcli_errstr(cli1->tree)));
- /* The delete on close bit is *not* reported as being set. */
+ /*
+ * The delete on close bit is *not* reported as being set.
+ * Win2k3/win2k8 should pass this check, but WinXPsp2 reports delete on
+ * close as being set. This causes the subsequent create to fail with
+ * NT_STATUS_DELETE_PENDING.
+ */
correct &= check_delete_on_close(tctx, cli1, fnum1, dname, false, __location__);
/* Now try opening again for read-only. */
torture_assert(tctx, fnum1 != -1,
talloc_asprintf(tctx, "open - 1 of %s failed (%s)", fname, smbcli_errstr(cli1->tree)));
- /* The delete on close bit is *not* reported as being set. */
+ /*
+ * The delete on close bit is *not* reported as being set.
+ * Win2k3/win2k8 should pass this check, but WinXPsp2 reports delete on
+ * close as being set. This causes the subsequent create to fail with
+ * NT_STATUS_DELETE_PENDING.
+ */
correct &= check_delete_on_close(tctx, cli1, fnum1, dname, false, __location__);
/* Now try opening again for read-only. */
RPC_NDR_SRVSVC RPC_NDR_WKSSVC RPC_NDR_ROT RPC_NDR_DSSETUP \
RPC_NDR_REMACT RPC_NDR_OXIDRESOLVER RPC_NDR_NTSVCS WB_HELPER LIBSAMBA-NET \
LIBCLI_AUTH POPT_CREDENTIALS TORTURE_LDAP TORTURE_UTIL TORTURE_RAP \
- dcerpc_server service process_model ntvfs SERVICE_SMB
+ dcerpc_server service process_model ntvfs SERVICE_SMB RPC_NDR_BROWSER
torture_rpc_OBJ_FILES = $(addprefix $(torturesrcdir)/rpc/, \
join.o lsa.o lsa_lookup.o session_key.o echo.o dfs.o drsuapi.o \
eventlog.o epmapper.o winreg.o initshutdown.o oxidresolve.o remact.o mgmt.o \
scanner.o autoidl.o countcalls.o testjoin.o schannel.o netlogon.o remote_pac.o samlogon.o \
samsync.o bind.o dssetup.o alter_context.o bench.o samba3rpc.o rpc.o async_bind.o \
- handles.o frsapi.o object_uuid.o ntsvcs.o)
+ handles.o frsapi.o object_uuid.o ntsvcs.o browser.o)
$(eval $(call proto_header_template,$(torturesrcdir)/rpc/proto.h,$(torture_rpc_OBJ_FILES:.o=.c)))
return ret;
}
+/*
+ test RAW_OPEN_OPENX against an existing directory to
+ ensure it returns NT_STATUS_FILE_IS_A_DIRECTORY.
+ Samba 3.2.0 - 3.2.6 are known to fail this.
+
+*/
+static bool test_openx_over_dir(struct smbcli_state *cli, TALLOC_CTX *tctx)
+{
+ union smb_open io;
+ const char *fname = BASEDIR "\\openx_over_dir";
+ NTSTATUS status;
+ int d_fnum = -1;
+ int fnum = -1;
+ bool ret = true;
+
+ printf("Checking RAW_OPEN_OPENX over an existing directory\n");
+ smbcli_unlink(cli->tree, fname);
+
+ /* Create the Directory */
+ status = create_directory_handle(cli->tree, fname, &d_fnum);
+ smbcli_close(cli->tree, d_fnum);
+
+ /* Prepare to open the file over the directory. */
+ io.openx.level = RAW_OPEN_OPENX;
+ io.openx.in.fname = fname;
+ io.openx.in.flags = OPENX_FLAGS_ADDITIONAL_INFO;
+ io.openx.in.open_mode = OPENX_MODE_ACCESS_RDWR;
+ io.openx.in.open_func = OPENX_OPEN_FUNC_OPEN;
+ io.openx.in.search_attrs = 0;
+ io.openx.in.file_attrs = 0;
+ io.openx.in.write_time = 0;
+ io.openx.in.size = 1024*1024;
+ io.openx.in.timeout = 0;
+
+ status = smb_raw_open(cli->tree, tctx, &io);
+ CHECK_STATUS(status, NT_STATUS_FILE_IS_A_DIRECTORY);
+ fnum = io.openx.out.file.fnum;
+
+done:
+ smbcli_close(cli->tree, fnum);
+ smbcli_unlink(cli->tree, fname);
+
+ return ret;
+}
+
+
/* A little torture test to expose a race condition in Samba 3.0.20 ... :-) */
static bool test_raw_open_multi(struct torture_context *tctx)
ret &= test_ctemp(cli, torture);
ret &= test_chained(cli, torture);
ret &= test_no_leading_slash(cli, torture);
+ ret &= test_openx_over_dir(cli, torture);
ret &= test_open_for_delete(cli, torture);
smb_raw_exit(cli->session);
--- /dev/null
+/*
+ Unix SMB/CIFS implementation.
+
+ test suite for browser rpc operations
+
+ Copyright (C) Stefan Metzmacher 2008
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "includes.h"
+#include "torture/torture.h"
+#include "librpc/gen_ndr/ndr_browser_c.h"
+#include "torture/rpc/rpc.h"
+
+bool test_BrowserrQueryOtherDomains(struct torture_context *tctx,
+ struct dcerpc_pipe *p)
+{
+ struct BrowserrQueryOtherDomains r;
+ struct BrowserrSrvInfo info;
+ struct BrowserrSrvInfo100Ctr ctr100;
+ struct srvsvc_NetSrvInfo100 entries100[1];
+ struct BrowserrSrvInfo101Ctr ctr101;
+ struct srvsvc_NetSrvInfo101 entries101[1];
+ uint32_t total_entries;
+ NTSTATUS status;
+
+ torture_comment(tctx, "dcerpc_BrowserrQueryOtherDomains\n");
+
+ ZERO_STRUCT(r);
+ ZERO_STRUCT(info);
+ ZERO_STRUCT(ctr100);
+ ZERO_STRUCT(entries100);
+ ZERO_STRUCT(ctr101);
+ ZERO_STRUCT(entries101);
+ total_entries = 0;
+
+ r.in.server_unc = talloc_asprintf(tctx,"\\\\%s",dcerpc_server_name(p));
+ r.in.info = &info;
+ r.out.info = &info;
+ r.out.total_entries = &total_entries;
+
+ info.level = 100;
+ info.info.info100 = &ctr100;
+
+ status = dcerpc_BrowserrQueryOtherDomains(p, tctx, &r);
+ torture_assert_ntstatus_ok(tctx, status, "BrowserrQueryOtherDomains failed");
+ torture_assert_werr_ok(tctx, r.out.result, "BrowserrQueryOtherDomains failed");
+ torture_assert_int_equal(tctx, *r.out.total_entries, 0, "BrowserrQueryOtherDomains");
+
+ info.info.info100 = &ctr100;
+ ctr100.entries_read = ARRAY_SIZE(entries100);
+ ctr100.entries = entries100;
+
+ status = dcerpc_BrowserrQueryOtherDomains(p, tctx, &r);
+ torture_assert_ntstatus_ok(tctx, status, "BrowserrQueryOtherDomains failed");
+ torture_assert_werr_ok(tctx, r.out.result, "BrowserrQueryOtherDomains failed");
+ torture_assert_int_equal(tctx, *r.out.total_entries, 0, "BrowserrQueryOtherDomains");
+
+ info.info.info100 = NULL;
+ status = dcerpc_BrowserrQueryOtherDomains(p, tctx, &r);
+ torture_assert_ntstatus_ok(tctx, status, "BrowserrQueryOtherDomains failed");
+ torture_assert_werr_equal(tctx, WERR_INVALID_PARAM, r.out.result,
+ "BrowserrQueryOtherDomains failed");
+
+ info.level = 101;
+ info.info.info101 = &ctr101;
+
+ status = dcerpc_BrowserrQueryOtherDomains(p, tctx, &r);
+ torture_assert_ntstatus_ok(tctx, status, "BrowserrQueryOtherDomains failed");
+ torture_assert_werr_equal(tctx, WERR_UNKNOWN_LEVEL, r.out.result,
+ "BrowserrQueryOtherDomains");
+
+ info.info.info101 = &ctr101;
+ ctr101.entries_read = ARRAY_SIZE(entries101);
+ ctr101.entries = entries101;
+
+ status = dcerpc_BrowserrQueryOtherDomains(p, tctx, &r);
+ torture_assert_ntstatus_ok(tctx, status, "BrowserrQueryOtherDomains failed");
+ torture_assert_werr_equal(tctx, WERR_UNKNOWN_LEVEL, r.out.result,
+ "BrowserrQueryOtherDomains");
+
+ info.info.info101 = NULL;
+ status = dcerpc_BrowserrQueryOtherDomains(p, tctx, &r);
+ torture_assert_ntstatus_ok(tctx, status, "BrowserrQueryOtherDomains failed");
+ torture_assert_werr_equal(tctx, WERR_UNKNOWN_LEVEL, r.out.result,
+ "BrowserrQueryOtherDomains");
+
+ info.level = 102;
+ status = dcerpc_BrowserrQueryOtherDomains(p, tctx, &r);
+ torture_assert_ntstatus_ok(tctx, status, "BrowserrQueryOtherDomains failed");
+ torture_assert_werr_equal(tctx, WERR_UNKNOWN_LEVEL, r.out.result,
+ "BrowserrQueryOtherDomains");
+
+ info.level = 0;
+ status = dcerpc_BrowserrQueryOtherDomains(p, tctx, &r);
+ torture_assert_ntstatus_ok(tctx, status, "BrowserrQueryOtherDomains failed");
+ torture_assert_werr_equal(tctx, WERR_UNKNOWN_LEVEL, r.out.result,
+ "BrowserrQueryOtherDomains");
+
+ return true;
+}
+
+struct torture_suite *torture_rpc_browser(TALLOC_CTX *mem_ctx)
+{
+ struct torture_suite *suite = torture_suite_create(mem_ctx, "BROWSER");
+ struct torture_rpc_tcase *tcase = torture_suite_add_rpc_iface_tcase(suite, "browser", &ndr_table_browser);
+
+ torture_rpc_tcase_add_test(tcase, "BrowserrQueryOtherDomains", test_BrowserrQueryOtherDomains);
+
+ return suite;
+}
+
status = dcerpc_netr_GetAnyDCName(p, tctx, &r);
torture_assert_ntstatus_ok(tctx, status, "GetAnyDCName");
+ torture_assert_werr_ok(tctx, r.out.result, "GetAnyDCName");
if (dcname) {
torture_comment(tctx, "\tDC is at '%s'\n", dcname);
return true;
}
+static bool test_netr_ServerGetTrustInfo(struct torture_context *tctx,
+ struct dcerpc_pipe *p,
+ struct cli_credentials *machine_credentials)
+{
+ NTSTATUS status;
+ struct netr_ServerGetTrustInfo r;
+
+ struct netr_Authenticator a;
+ struct netr_Authenticator return_authenticator;
+ struct samr_Password new_owf_password;
+ struct samr_Password old_owf_password;
+ struct netr_TrustInfo *trust_info;
+
+ struct creds_CredentialState *creds;
+
+ if (!test_SetupCredentials3(p, tctx, NETLOGON_NEG_AUTH2_ADS_FLAGS,
+ machine_credentials, &creds)) {
+ return false;
+ }
+
+ creds_client_authenticator(creds, &a);
+
+ r.in.server_name = talloc_asprintf(tctx, "\\\\%s", dcerpc_server_name(p));
+ r.in.account_name = talloc_asprintf(tctx, "%s$", TEST_MACHINE_NAME);
+ r.in.secure_channel_type = SEC_CHAN_BDC;
+ r.in.computer_name = TEST_MACHINE_NAME;
+ r.in.credential = &a;
+
+ r.out.return_authenticator = &return_authenticator;
+ r.out.new_owf_password = &new_owf_password;
+ r.out.old_owf_password = &old_owf_password;
+ r.out.trust_info = &trust_info;
+
+ status = dcerpc_netr_ServerGetTrustInfo(p, tctx, &r);
+ torture_assert_ntstatus_ok(tctx, status, "failed");
+ torture_assert(tctx, creds_client_check(creds, &return_authenticator.cred), "Credential chaining failed");
+
+ return true;
+}
+
+
static bool test_GetDomainInfo(struct torture_context *tctx,
struct dcerpc_pipe *p,
struct cli_credentials *machine_credentials)
torture_rpc_tcase_add_test(tcase, "DsrGetDcSiteCoverageW", test_netr_DsrGetDcSiteCoverageW);
torture_rpc_tcase_add_test(tcase, "DsRAddressToSitenamesW", test_netr_DsRAddressToSitenamesW);
torture_rpc_tcase_add_test(tcase, "DsRAddressToSitenamesExW", test_netr_DsRAddressToSitenamesExW);
+ torture_rpc_tcase_add_test_creds(tcase, "ServerGetTrustInfo", test_netr_ServerGetTrustInfo);
return suite;
}
torture_suite_add_simple_test(suite, "DRSUAPI", torture_rpc_drsuapi);
torture_suite_add_simple_test(suite, "CRACKNAMES", torture_rpc_drsuapi_cracknames);
torture_suite_add_suite(suite, torture_rpc_dssetup(suite));
+ torture_suite_add_suite(suite, torture_rpc_browser(suite));
torture_suite_add_simple_test(suite, "SAMBA3-REGCONFIG", torture_samba3_regconfig);
torture_suite_add_simple_test(suite, "ALTERCONTEXT", torture_rpc_alter_context);
torture_suite_add_simple_test(suite, "JOIN", torture_rpc_join);
arcfour_crypt_blob(u_info.info23.password.data, 516,
&session_key);
u_info.info23.info.password_expired = 0;
- u_info.info23.info.fields_present = SAMR_FIELD_PASSWORD |
- SAMR_FIELD_PASSWORD2 |
+ u_info.info23.info.fields_present = SAMR_FIELD_NT_PASSWORD_PRESENT |
+ SAMR_FIELD_LM_PASSWORD_PRESENT |
SAMR_FIELD_EXPIRED_FLAG;
sui2.in.user_handle = wks_handle;
sui2.in.info = &u_info;
cli_credentials_get_workstation(wks_creds));
i21->acct_flags = ACB_WSTRUST;
i21->fields_present = SAMR_FIELD_FULL_NAME |
- SAMR_FIELD_ACCT_FLAGS | SAMR_FIELD_PASSWORD;
+ SAMR_FIELD_ACCT_FLAGS | SAMR_FIELD_NT_PASSWORD_PRESENT;
/* this would break the test result expectations
i21->fields_present |= SAMR_FIELD_EXPIRED_FLAG;
i21->password_expired = 1;
SAMR_FIELD_PARAMETERS);
TEST_USERINFO_BINARYSTRING(21, parameters, 20, parameters, "xx21-20 parameters",
SAMR_FIELD_PARAMETERS);
+ /* also empty user parameters are allowed */
+ TEST_USERINFO_BINARYSTRING(20, parameters, 21, parameters, "", 0);
+ TEST_USERINFO_BINARYSTRING(21, parameters, 21, parameters, "",
+ SAMR_FIELD_PARAMETERS);
+ TEST_USERINFO_BINARYSTRING(21, parameters, 20, parameters, "",
+ SAMR_FIELD_PARAMETERS);
TEST_USERINFO_INT(2, country_code, 2, country_code, __LINE__, 0);
TEST_USERINFO_INT(2, country_code, 21, country_code, __LINE__, 0);
return ret;
}
+static bool test_SetUserPass_18(struct dcerpc_pipe *p, struct torture_context *tctx,
+ struct policy_handle *handle, char **password)
+{
+ NTSTATUS status;
+ struct samr_SetUserInfo s;
+ union samr_UserInfo u;
+ bool ret = true;
+ DATA_BLOB session_key;
+ char *newpass;
+ struct samr_GetUserPwInfo pwp;
+ struct samr_PwInfo info;
+ int policy_min_pw_len = 0;
+ uint8_t lm_hash[16], nt_hash[16];
+
+ pwp.in.user_handle = handle;
+ pwp.out.info = &info;
+
+ status = dcerpc_samr_GetUserPwInfo(p, tctx, &pwp);
+ if (NT_STATUS_IS_OK(status)) {
+ policy_min_pw_len = pwp.out.info->min_password_length;
+ }
+ newpass = samr_rand_pass(tctx, policy_min_pw_len);
+
+ s.in.user_handle = handle;
+ s.in.info = &u;
+ s.in.level = 18;
+
+ ZERO_STRUCT(u);
+
+ u.info18.nt_pwd_active = true;
+ u.info18.lm_pwd_active = true;
+
+ E_md4hash(newpass, nt_hash);
+ E_deshash(newpass, lm_hash);
+
+ status = dcerpc_fetch_session_key(p, &session_key);
+ if (!NT_STATUS_IS_OK(status)) {
+ printf("SetUserInfo level %u - no session key - %s\n",
+ s.in.level, nt_errstr(status));
+ return false;
+ }
+
+ {
+ DATA_BLOB in,out;
+ in = data_blob_const(nt_hash, 16);
+ out = data_blob_talloc_zero(tctx, 16);
+ sess_crypt_blob(&out, &in, &session_key, true);
+ memcpy(u.info18.nt_pwd.hash, out.data, out.length);
+ }
+ {
+ DATA_BLOB in,out;
+ in = data_blob_const(lm_hash, 16);
+ out = data_blob_talloc_zero(tctx, 16);
+ sess_crypt_blob(&out, &in, &session_key, true);
+ memcpy(u.info18.lm_pwd.hash, out.data, out.length);
+ }
+
+ torture_comment(tctx, "Testing SetUserInfo level 18 (set password hash)\n");
+
+ status = dcerpc_samr_SetUserInfo(p, tctx, &s);
+ if (!NT_STATUS_IS_OK(status)) {
+ printf("SetUserInfo level %u failed - %s\n",
+ s.in.level, nt_errstr(status));
+ ret = false;
+ } else {
+ *password = newpass;
+ }
+
+ return ret;
+}
+
+static bool test_SetUserPass_21(struct dcerpc_pipe *p, struct torture_context *tctx,
+ struct policy_handle *handle, uint32_t fields_present,
+ char **password)
+{
+ NTSTATUS status;
+ struct samr_SetUserInfo s;
+ union samr_UserInfo u;
+ bool ret = true;
+ DATA_BLOB session_key;
+ char *newpass;
+ struct samr_GetUserPwInfo pwp;
+ struct samr_PwInfo info;
+ int policy_min_pw_len = 0;
+ uint8_t lm_hash[16], nt_hash[16];
+
+ pwp.in.user_handle = handle;
+ pwp.out.info = &info;
+
+ status = dcerpc_samr_GetUserPwInfo(p, tctx, &pwp);
+ if (NT_STATUS_IS_OK(status)) {
+ policy_min_pw_len = pwp.out.info->min_password_length;
+ }
+ newpass = samr_rand_pass(tctx, policy_min_pw_len);
+
+ s.in.user_handle = handle;
+ s.in.info = &u;
+ s.in.level = 21;
+
+ E_md4hash(newpass, nt_hash);
+ E_deshash(newpass, lm_hash);
+
+ ZERO_STRUCT(u);
+
+ u.info21.fields_present = fields_present;
+
+ if (fields_present & SAMR_FIELD_LM_PASSWORD_PRESENT) {
+ u.info21.lm_owf_password.length = 16;
+ u.info21.lm_owf_password.size = 16;
+ u.info21.lm_owf_password.array = (uint16_t *)lm_hash;
+ u.info21.lm_password_set = true;
+ }
+
+ if (fields_present & SAMR_FIELD_NT_PASSWORD_PRESENT) {
+ u.info21.nt_owf_password.length = 16;
+ u.info21.nt_owf_password.size = 16;
+ u.info21.nt_owf_password.array = (uint16_t *)nt_hash;
+ u.info21.nt_password_set = true;
+ }
+
+ status = dcerpc_fetch_session_key(p, &session_key);
+ if (!NT_STATUS_IS_OK(status)) {
+ printf("SetUserInfo level %u - no session key - %s\n",
+ s.in.level, nt_errstr(status));
+ return false;
+ }
+
+ if (fields_present & SAMR_FIELD_LM_PASSWORD_PRESENT) {
+ DATA_BLOB in,out;
+ in = data_blob_const(u.info21.lm_owf_password.array,
+ u.info21.lm_owf_password.length);
+ out = data_blob_talloc_zero(tctx, 16);
+ sess_crypt_blob(&out, &in, &session_key, true);
+ u.info21.lm_owf_password.array = (uint16_t *)out.data;
+ }
+
+ if (fields_present & SAMR_FIELD_NT_PASSWORD_PRESENT) {
+ DATA_BLOB in,out;
+ in = data_blob_const(u.info21.nt_owf_password.array,
+ u.info21.nt_owf_password.length);
+ out = data_blob_talloc_zero(tctx, 16);
+ sess_crypt_blob(&out, &in, &session_key, true);
+ u.info21.nt_owf_password.array = (uint16_t *)out.data;
+ }
+
+ torture_comment(tctx, "Testing SetUserInfo level 21 (set password hash)\n");
+
+ status = dcerpc_samr_SetUserInfo(p, tctx, &s);
+ if (!NT_STATUS_IS_OK(status)) {
+ printf("SetUserInfo level %u failed - %s\n",
+ s.in.level, nt_errstr(status));
+ ret = false;
+ } else {
+ *password = newpass;
+ }
+
+ /* try invalid length */
+ if (fields_present & SAMR_FIELD_NT_PASSWORD_PRESENT) {
+
+ u.info21.nt_owf_password.length++;
+
+ status = dcerpc_samr_SetUserInfo(p, tctx, &s);
+
+ if (!NT_STATUS_EQUAL(status, NT_STATUS_INVALID_PARAMETER)) {
+ printf("SetUserInfo level %u should have failed with NT_STATUS_INVALID_PARAMETER - %s\n",
+ s.in.level, nt_errstr(status));
+ ret = false;
+ }
+ }
+
+ if (fields_present & SAMR_FIELD_LM_PASSWORD_PRESENT) {
+
+ u.info21.lm_owf_password.length++;
+
+ status = dcerpc_samr_SetUserInfo(p, tctx, &s);
+
+ if (!NT_STATUS_EQUAL(status, NT_STATUS_INVALID_PARAMETER)) {
+ printf("SetUserInfo level %u should have failed with NT_STATUS_INVALID_PARAMETER - %s\n",
+ s.in.level, nt_errstr(status));
+ ret = false;
+ }
+ }
+
+ return ret;
+}
+
static bool test_SetUserPass_level_ex(struct dcerpc_pipe *p,
struct torture_context *tctx,
struct policy_handle *handle,
uint16_t level,
uint32_t fields_present,
char **password, uint8_t password_expired,
- bool use_setinfo2, NTSTATUS expected_error)
+ bool use_setinfo2,
+ bool *matched_expected_error)
{
NTSTATUS status;
+ NTSTATUS expected_error = NT_STATUS_OK;
struct samr_SetUserInfo s;
struct samr_SetUserInfo2 s2;
union samr_UserInfo u;
struct samr_PwInfo info;
int policy_min_pw_len = 0;
const char *comment = NULL;
+ uint8_t lm_hash[16], nt_hash[16];
pwp.in.user_handle = handle;
pwp.out.info = &info;
ZERO_STRUCT(u);
switch (level) {
+ case 18:
+ E_md4hash(newpass, nt_hash);
+ E_deshash(newpass, lm_hash);
+
+ u.info18.nt_pwd_active = true;
+ u.info18.lm_pwd_active = true;
+ u.info18.password_expired = password_expired;
+
+ memcpy(u.info18.lm_pwd.hash, lm_hash, 16);
+ memcpy(u.info18.nt_pwd.hash, nt_hash, 16);
+
+ break;
case 21:
+ E_md4hash(newpass, nt_hash);
+ E_deshash(newpass, lm_hash);
+
u.info21.fields_present = fields_present;
u.info21.password_expired = password_expired;
u.info21.comment.string = comment;
+ if (fields_present & SAMR_FIELD_LM_PASSWORD_PRESENT) {
+ u.info21.lm_owf_password.length = 16;
+ u.info21.lm_owf_password.size = 16;
+ u.info21.lm_owf_password.array = (uint16_t *)lm_hash;
+ u.info21.lm_password_set = true;
+ }
+
+ if (fields_present & SAMR_FIELD_NT_PASSWORD_PRESENT) {
+ u.info21.nt_owf_password.length = 16;
+ u.info21.nt_owf_password.size = 16;
+ u.info21.nt_owf_password.array = (uint16_t *)nt_hash;
+ u.info21.nt_password_set = true;
+ }
+
break;
case 23:
u.info23.info.fields_present = fields_present;
MD5Final(confounded_session_key.data, &ctx);
switch (level) {
+ case 18:
+ {
+ DATA_BLOB in,out;
+ in = data_blob_const(u.info18.nt_pwd.hash, 16);
+ out = data_blob_talloc_zero(tctx, 16);
+ sess_crypt_blob(&out, &in, &session_key, true);
+ memcpy(u.info18.nt_pwd.hash, out.data, out.length);
+ }
+ {
+ DATA_BLOB in,out;
+ in = data_blob_const(u.info18.lm_pwd.hash, 16);
+ out = data_blob_talloc_zero(tctx, 16);
+ sess_crypt_blob(&out, &in, &session_key, true);
+ memcpy(u.info18.lm_pwd.hash, out.data, out.length);
+ }
+
+ break;
+ case 21:
+ if (fields_present & SAMR_FIELD_LM_PASSWORD_PRESENT) {
+ DATA_BLOB in,out;
+ in = data_blob_const(u.info21.lm_owf_password.array,
+ u.info21.lm_owf_password.length);
+ out = data_blob_talloc_zero(tctx, 16);
+ sess_crypt_blob(&out, &in, &session_key, true);
+ u.info21.lm_owf_password.array = (uint16_t *)out.data;
+ }
+ if (fields_present & SAMR_FIELD_NT_PASSWORD_PRESENT) {
+ DATA_BLOB in,out;
+ in = data_blob_const(u.info21.nt_owf_password.array,
+ u.info21.nt_owf_password.length);
+ out = data_blob_talloc_zero(tctx, 16);
+ sess_crypt_blob(&out, &in, &session_key, true);
+ u.info21.nt_owf_password.array = (uint16_t *)out.data;
+ }
+ break;
case 23:
arcfour_crypt_blob(u.info23.password.data, 516, &session_key);
break;
status = dcerpc_samr_SetUserInfo(p, tctx, &s);
}
+ if (!NT_STATUS_IS_OK(status)) {
+ if (fields_present == 0) {
+ expected_error = NT_STATUS_INVALID_PARAMETER;
+ }
+ if (fields_present & SAMR_FIELD_LAST_PWD_CHANGE) {
+ expected_error = NT_STATUS_ACCESS_DENIED;
+ }
+ }
+
if (!NT_STATUS_IS_OK(expected_error)) {
if (use_setinfo2) {
torture_assert_ntstatus_equal(tctx,
s.out.result,
expected_error, "SetUserInfo failed");
}
+ *matched_expected_error = true;
return true;
}
use_setinfo2 ? "2":"", level, nt_errstr(status));
ret = false;
} else {
- if (level != 21) {
- *password = newpass;
- }
+ *password = newpass;
}
return ret;
ZERO_STRUCT(u);
- u.info25.info.fields_present = SAMR_FIELD_PASSWORD;
+ u.info25.info.fields_present = SAMR_FIELD_NT_PASSWORD_PRESENT;
set_pw_in_buffer(u.info25.password.data, &new_random_pass);
uint16_t level,
uint32_t fields_present,
uint8_t password_expired,
- NTSTATUS expected_error,
+ bool *matched_expected_error,
bool use_setinfo2,
char **password,
bool use_queryinfo2,
use_setinfo2 ? "2":"", level, password_expired,
fields ? fields : "");
- switch (level) {
- case 21:
- case 23:
- case 24:
- case 25:
- case 26:
- if (!test_SetUserPass_level_ex(p, tctx, handle, level,
- fields_present,
- password,
- password_expired,
- use_setinfo2,
- expected_error)) {
- ret = false;
- }
- break;
- default:
- return false;
+ if (!test_SetUserPass_level_ex(p, tctx, handle, level,
+ fields_present,
+ password,
+ password_expired,
+ use_setinfo2,
+ matched_expected_error)) {
+ ret = false;
}
if (!test_QueryUserInfo_pwdlastset(p, tctx, handle,
struct policy_handle *handle,
char **password)
{
- int i, s = 0, q = 0;
+ int s = 0, q = 0, f = 0, l = 0, z = 0;
bool ret = true;
int delay = 500000;
bool set_levels[] = { false, true };
bool query_levels[] = { false, true };
-
- struct {
- uint16_t level;
- uint8_t password_expired_nonzero;
- uint32_t fields_present;
- bool query_info2;
- bool set_info2;
- NTSTATUS set_error;
- } pwd_tests[] = {
-
- /* level 21 */
- {
- .level = 21,
- .password_expired_nonzero = 1,
- .fields_present = SAMR_FIELD_EXPIRED_FLAG
- },{
- .level = 21,
- .password_expired_nonzero = 1,
- .fields_present = SAMR_FIELD_LAST_PWD_CHANGE,
- .set_error = NT_STATUS_ACCESS_DENIED
- },{
- .level = 21,
- .password_expired_nonzero = 1,
- .fields_present = 0,
- .set_error = NT_STATUS_INVALID_PARAMETER
- },{
- .level = 21,
- .password_expired_nonzero = 1,
- .fields_present = SAMR_FIELD_COMMENT,
-
-#if 0
- /* FIXME */
- },{
- .level = 21,
- .password_expired_nonzero = 1,
- .fields_present = SAMR_FIELD_PASSWORD |
- SAMR_FIELD_PASSWORD2 |
- SAMR_FIELD_LAST_PWD_CHANGE,
- .query_info2 = false,
- .set_error = NT_STATUS_ACCESS_DENIED
-#endif
-
- /* level 23 */
- },{
- .level = 23,
- .password_expired_nonzero = 1,
- .fields_present = SAMR_FIELD_EXPIRED_FLAG
- },{
- .level = 23,
- .password_expired_nonzero = 1,
- .fields_present = SAMR_FIELD_LAST_PWD_CHANGE,
- .set_error = NT_STATUS_ACCESS_DENIED
- },{
- .level = 23,
- .password_expired_nonzero = 1,
- .fields_present = SAMR_FIELD_LAST_PWD_CHANGE |
- SAMR_FIELD_PASSWORD |
- SAMR_FIELD_PASSWORD2,
- .set_error = NT_STATUS_ACCESS_DENIED
- },{
- .level = 23,
- .password_expired_nonzero = 1,
- .fields_present = SAMR_FIELD_LAST_PWD_CHANGE |
- SAMR_FIELD_PASSWORD |
- SAMR_FIELD_PASSWORD2 |
- SAMR_FIELD_EXPIRED_FLAG,
- .set_error = NT_STATUS_ACCESS_DENIED
- },{
- .level = 23,
- .password_expired_nonzero = 1,
- .fields_present = SAMR_FIELD_PASSWORD |
- SAMR_FIELD_PASSWORD2 |
- SAMR_FIELD_EXPIRED_FLAG
- },{
- .level = 23,
- .password_expired_nonzero = 1,
- .fields_present = SAMR_FIELD_PASSWORD |
- SAMR_FIELD_PASSWORD2,
- },{
- .level = 23,
- .password_expired_nonzero = 1,
- .fields_present = SAMR_FIELD_COMMENT,
- },{
- .level = 23,
- .password_expired_nonzero = 1,
- .fields_present = 0,
- .set_error = NT_STATUS_INVALID_PARAMETER
- },{
-
- /* level 24 */
-
- .level = 24,
- .password_expired_nonzero = 1
- },{
- .level = 24,
- .password_expired_nonzero = 24
- },{
-
- /* level 25 */
-
- .level = 25,
- .password_expired_nonzero = 1,
- .fields_present = SAMR_FIELD_LAST_PWD_CHANGE,
- .set_error = NT_STATUS_ACCESS_DENIED
- },{
- .level = 25,
- .password_expired_nonzero = 1,
- .fields_present = SAMR_FIELD_EXPIRED_FLAG,
- },{
- .level = 25,
- .password_expired_nonzero = 1,
- .fields_present = SAMR_FIELD_PASSWORD |
- SAMR_FIELD_PASSWORD2 |
- SAMR_FIELD_EXPIRED_FLAG
- },{
- .level = 25,
- .password_expired_nonzero = 1,
- .fields_present = SAMR_FIELD_PASSWORD |
- SAMR_FIELD_PASSWORD2,
- },{
- .level = 25,
- .password_expired_nonzero = 1,
- .fields_present = SAMR_FIELD_COMMENT,
- },{
-
- /* level 26 */
-
- .level = 26,
- .password_expired_nonzero = 1
- },{
- .level = 26,
- .password_expired_nonzero = 24
- }
+ uint32_t levels[] = { 18, 21, 23, 24, 25, 26 };
+ uint32_t nonzeros[] = { 1, 24 };
+ uint32_t fields_present[] = {
+ 0,
+ SAMR_FIELD_EXPIRED_FLAG,
+ SAMR_FIELD_LAST_PWD_CHANGE,
+ SAMR_FIELD_EXPIRED_FLAG | SAMR_FIELD_LAST_PWD_CHANGE,
+ SAMR_FIELD_COMMENT,
+ SAMR_FIELD_NT_PASSWORD_PRESENT,
+ SAMR_FIELD_NT_PASSWORD_PRESENT | SAMR_FIELD_LAST_PWD_CHANGE,
+ SAMR_FIELD_NT_PASSWORD_PRESENT | SAMR_FIELD_LM_PASSWORD_PRESENT,
+ SAMR_FIELD_NT_PASSWORD_PRESENT | SAMR_FIELD_LM_PASSWORD_PRESENT | SAMR_FIELD_LAST_PWD_CHANGE,
+ SAMR_FIELD_NT_PASSWORD_PRESENT | SAMR_FIELD_EXPIRED_FLAG,
+ SAMR_FIELD_NT_PASSWORD_PRESENT | SAMR_FIELD_LM_PASSWORD_PRESENT | SAMR_FIELD_EXPIRED_FLAG,
+ SAMR_FIELD_NT_PASSWORD_PRESENT | SAMR_FIELD_LM_PASSWORD_PRESENT | SAMR_FIELD_LAST_PWD_CHANGE | SAMR_FIELD_EXPIRED_FLAG
};
if (torture_setting_bool(tctx, "samba3", false)) {
#define TEST_SET_LEVELS 1
#define TEST_QUERY_LEVELS 1
#endif
- for (i=0; i<ARRAY_SIZE(pwd_tests); i++) {
+ for (l=0; l<ARRAY_SIZE(levels); l++) {
+ for (z=0; z<ARRAY_SIZE(nonzeros); z++) {
+ for (f=0; f<ARRAY_SIZE(fields_present); f++) {
#ifdef TEST_SET_LEVELS
for (s=0; s<ARRAY_SIZE(set_levels); s++) {
#endif
#endif
NTTIME pwdlastset_old = 0;
NTTIME pwdlastset_new = 0;
+ bool matched_expected_error = false;
torture_comment(tctx, "------------------------------\n"
"Testing pwdLastSet attribute for flags: 0x%08x "
"(s: %d (l: %d), q: %d)\n",
- acct_flags, s, pwd_tests[i].level, q);
+ acct_flags, s, levels[l], q);
/* set #1 */
* setting the password expired flag to a non-0 value */
if (!test_SetPassword_level(p, tctx, handle,
- pwd_tests[i].level,
- pwd_tests[i].fields_present,
- pwd_tests[i].password_expired_nonzero,
- pwd_tests[i].set_error,
+ levels[l],
+ fields_present[f],
+ nonzeros[z],
+ &matched_expected_error,
set_levels[s],
password,
query_levels[q],
ret = false;
}
- if (!NT_STATUS_IS_OK(pwd_tests[i].set_error)) {
+ if (matched_expected_error == true) {
/* skipping on expected failure */
continue;
}
/* pwdlastset must be 0 afterwards, except for a level 21, 23 and 25
* set without the SAMR_FIELD_EXPIRED_FLAG */
- switch (pwd_tests[i].level) {
+ switch (levels[l]) {
case 21:
case 23:
case 25:
if ((pwdlastset_new != 0) &&
- !(pwd_tests[i].fields_present & SAMR_FIELD_EXPIRED_FLAG)) {
+ !(fields_present[f] & SAMR_FIELD_EXPIRED_FLAG)) {
torture_comment(tctx, "not considering a non-0 "
"pwdLastSet as a an error as the "
"SAMR_FIELD_EXPIRED_FLAG has not "
break;
}
+ switch (levels[l]) {
+ case 21:
+ case 23:
+ case 25:
+ if (((fields_present[f] & SAMR_FIELD_NT_PASSWORD_PRESENT) ||
+ (fields_present[f] & SAMR_FIELD_LM_PASSWORD_PRESENT)) &&
+ (pwdlastset_old > 0) && (pwdlastset_new > 0) &&
+ (pwdlastset_old >= pwdlastset_new)) {
+ torture_warning(tctx, "pwdlastset not increasing\n");
+ ret = false;
+ }
+ break;
+ default:
+ if ((pwdlastset_old > 0) && (pwdlastset_new > 0) &&
+ (pwdlastset_old >= pwdlastset_new)) {
+ torture_warning(tctx, "pwdlastset not increasing\n");
+ ret = false;
+ }
+ break;
+ }
+
usleep(delay);
/* set #2 */
/* set a password, pwdlastset needs to get updated (increased
* value), password_expired value used here is 0 */
- if (!test_SetPassword_level(p, tctx, handle, pwd_tests[i].level,
- pwd_tests[i].fields_present,
+ if (!test_SetPassword_level(p, tctx, handle,
+ levels[l],
+ fields_present[f],
0,
- pwd_tests[i].set_error,
+ &matched_expected_error,
set_levels[s],
password,
query_levels[q],
&pwdlastset_new)) {
-
ret = false;
}
/* when a password has been changed, pwdlastset must not be 0 afterwards
* and must be larger then the old value */
- switch (pwd_tests[i].level) {
+ switch (levels[l]) {
case 21:
case 23:
case 25:
* password has been changed, old and new pwdlastset
* need to be the same value */
- if (!(pwd_tests[i].fields_present & SAMR_FIELD_EXPIRED_FLAG) &&
- !((pwd_tests[i].fields_present & SAMR_FIELD_PASSWORD) ||
- (pwd_tests[i].fields_present & SAMR_FIELD_PASSWORD2)))
+ if (!(fields_present[f] & SAMR_FIELD_EXPIRED_FLAG) &&
+ !((fields_present[f] & SAMR_FIELD_NT_PASSWORD_PRESENT) ||
+ (fields_present[f] & SAMR_FIELD_LM_PASSWORD_PRESENT)))
{
torture_assert_int_equal(tctx, pwdlastset_old,
pwdlastset_new, "pwdlastset must be equal");
}
}
+ switch (levels[l]) {
+ case 21:
+ case 23:
+ case 25:
+ if (((fields_present[f] & SAMR_FIELD_NT_PASSWORD_PRESENT) ||
+ (fields_present[f] & SAMR_FIELD_LM_PASSWORD_PRESENT)) &&
+ (pwdlastset_old > 0) && (pwdlastset_new > 0) &&
+ (pwdlastset_old >= pwdlastset_new)) {
+ torture_warning(tctx, "pwdlastset not increasing\n");
+ ret = false;
+ }
+ break;
+ default:
+ if ((pwdlastset_old > 0) && (pwdlastset_new > 0) &&
+ (pwdlastset_old >= pwdlastset_new)) {
+ torture_warning(tctx, "pwdlastset not increasing\n");
+ ret = false;
+ }
+ break;
+ }
+
pwdlastset_old = pwdlastset_new;
usleep(delay);
+ /* set #2b */
+
+ /* set a password, pwdlastset needs to get updated (increased
+ * value), password_expired value used here is 0 */
+
+ if (!test_SetPassword_level(p, tctx, handle,
+ levels[l],
+ fields_present[f],
+ 0,
+ &matched_expected_error,
+ set_levels[s],
+ password,
+ query_levels[q],
+ &pwdlastset_new)) {
+ ret = false;
+ }
+
+ /* when a password has been changed, pwdlastset must not be 0 afterwards
+ * and must be larger then the old value */
+
+ switch (levels[l]) {
+ case 21:
+ case 23:
+ case 25:
+
+ /* if no password has been changed, old and new pwdlastset
+ * need to be the same value */
+
+ if (!((fields_present[f] & SAMR_FIELD_NT_PASSWORD_PRESENT) ||
+ (fields_present[f] & SAMR_FIELD_LM_PASSWORD_PRESENT)))
+ {
+ torture_assert_int_equal(tctx, pwdlastset_old,
+ pwdlastset_new, "pwdlastset must be equal");
+ break;
+ }
+ default:
+ if (pwdlastset_old >= pwdlastset_new) {
+ torture_warning(tctx, "pwdLastSet test failed: "
+ "expected last pwdlastset (%lld) < new pwdlastset (%lld)\n",
+ pwdlastset_old, pwdlastset_new);
+ ret = false;
+ }
+ if (pwdlastset_new == 0) {
+ torture_warning(tctx, "pwdLastSet test failed: "
+ "expected non-0 pwdlastset, got: %lld\n",
+ pwdlastset_new);
+ ret = false;
+ }
+ }
+
/* set #3 */
/* set a password and force password change (pwdlastset 0) by
* setting the password expired flag to a non-0 value */
- if (!test_SetPassword_level(p, tctx, handle, pwd_tests[i].level,
- pwd_tests[i].fields_present,
- pwd_tests[i].password_expired_nonzero,
- pwd_tests[i].set_error,
+ if (!test_SetPassword_level(p, tctx, handle,
+ levels[l],
+ fields_present[f],
+ nonzeros[z],
+ &matched_expected_error,
set_levels[s],
password,
query_levels[q],
/* pwdlastset must be 0 afterwards, except for a level 21, 23 and 25
* set without the SAMR_FIELD_EXPIRED_FLAG */
- switch (pwd_tests[i].level) {
+ switch (levels[l]) {
case 21:
case 23:
case 25:
if ((pwdlastset_new != 0) &&
- !(pwd_tests[i].fields_present & SAMR_FIELD_EXPIRED_FLAG)) {
+ !(fields_present[f] & SAMR_FIELD_EXPIRED_FLAG)) {
torture_comment(tctx, "not considering a non-0 "
"pwdLastSet as a an error as the "
"SAMR_FIELD_EXPIRED_FLAG has not "
* password has been changed, old and new pwdlastset
* need to be the same value */
- if (!(pwd_tests[i].fields_present & SAMR_FIELD_EXPIRED_FLAG) &&
- !((pwd_tests[i].fields_present & SAMR_FIELD_PASSWORD) ||
- (pwd_tests[i].fields_present & SAMR_FIELD_PASSWORD2)))
+ if (!(fields_present[f] & SAMR_FIELD_EXPIRED_FLAG) &&
+ !((fields_present[f] & SAMR_FIELD_NT_PASSWORD_PRESENT) ||
+ (fields_present[f] & SAMR_FIELD_LM_PASSWORD_PRESENT)))
{
torture_assert_int_equal(tctx, pwdlastset_old,
pwdlastset_new, "pwdlastset must be equal");
}
break;
}
+
+ switch (levels[l]) {
+ case 21:
+ case 23:
+ case 25:
+ if (((fields_present[f] & SAMR_FIELD_NT_PASSWORD_PRESENT) ||
+ (fields_present[f] & SAMR_FIELD_LM_PASSWORD_PRESENT)) &&
+ (pwdlastset_old > 0) && (pwdlastset_new > 0) &&
+ (pwdlastset_old >= pwdlastset_new)) {
+ torture_warning(tctx, "pwdlastset not increasing\n");
+ ret = false;
+ }
+ break;
+ default:
+ if ((pwdlastset_old > 0) && (pwdlastset_new > 0) &&
+ (pwdlastset_old >= pwdlastset_new)) {
+ torture_warning(tctx, "pwdlastset not increasing\n");
+ ret = false;
+ }
+ break;
+ }
+
+ /* if the level we are testing does not have a fields_present
+ * field, skip all fields present tests by setting f to to
+ * arraysize */
+ switch (levels[l]) {
+ case 18:
+ case 24:
+ case 26:
+ f = ARRAY_SIZE(fields_present);
+ break;
+ }
+
#ifdef TEST_QUERY_LEVELS
}
#endif
#ifdef TEST_SET_LEVELS
}
#endif
- }
+ } /* fields present */
+ } /* nonzeros */
+ } /* levels */
#undef TEST_SET_LEVELS
#undef TEST_QUERY_LEVELS
int i;
uint32_t rid;
const uint32_t password_fields[] = {
- SAMR_FIELD_PASSWORD,
- SAMR_FIELD_PASSWORD2,
- SAMR_FIELD_PASSWORD | SAMR_FIELD_PASSWORD2,
+ SAMR_FIELD_NT_PASSWORD_PRESENT,
+ SAMR_FIELD_LM_PASSWORD_PRESENT,
+ SAMR_FIELD_NT_PASSWORD_PRESENT | SAMR_FIELD_LM_PASSWORD_PRESENT,
0
};
ret = false;
}
+ if (torture_setting_bool(tctx, "samba4", false)) {
+ printf("skipping Set Password level 18 and 21 against Samba4\n");
+ } else {
+
+ if (!test_SetUserPass_18(p, tctx, user_handle, &password)) {
+ ret = false;
+ }
+
+ if (!test_ChangePasswordUser3(p, tctx, base_acct_name, 0, &password, NULL, 0, false)) {
+ ret = false;
+ }
+
+ for (i = 0; password_fields[i]; i++) {
+
+ if (password_fields[i] == SAMR_FIELD_LM_PASSWORD_PRESENT) {
+ /* we need to skip as that would break
+ * the ChangePasswordUser3 verify */
+ continue;
+ }
+
+ if (!test_SetUserPass_21(p, tctx, user_handle, password_fields[i], &password)) {
+ ret = false;
+ }
+
+ /* check it was set right */
+ if (!test_ChangePasswordUser3(p, tctx, base_acct_name, 0, &password, NULL, 0, false)) {
+ ret = false;
+ }
+ }
+ }
+
q.in.user_handle = user_handle;
q.in.level = 5;
q.out.info = &info;
switch (which_ops) {
case TORTURE_SAMR_USER_ATTRIBUTES:
case TORTURE_SAMR_PASSWORDS:
- case TORTURE_SAMR_PASSWORDS_PWDLASTSET:
ret &= test_CreateUser2(p, tctx, &domain_handle, sid, which_ops);
ret &= test_CreateUser(p, tctx, &domain_handle, &user_handle, sid, which_ops);
/* This test needs 'complex' users to validate */
printf("Testing PASSWORDS or ATTRIBUTES on domain %s failed!\n", dom_sid_string(tctx, sid));
}
break;
+ case TORTURE_SAMR_PASSWORDS_PWDLASTSET:
+ ret &= test_CreateUser2(p, tctx, &domain_handle, sid, which_ops);
+ ret &= test_CreateUser(p, tctx, &domain_handle, &user_handle, sid, which_ops);
+ if (!ret) {
+ printf("Testing PASSWORDS PWDLASTSET on domain %s failed!\n", dom_sid_string(tctx, sid));
+ }
+ break;
case TORTURE_SAMR_OTHER:
ret &= test_CreateUser(p, tctx, &domain_handle, &user_handle, sid, which_ops);
if (!ret) {
torture_assert(torture, (*psid)->num_auths <= 15,
"invalid sub_auth value");
- (*psid)->sub_auths = talloc_array(mem_ctx, uint32_t,
- (*psid)->num_auths);
- torture_assert(torture, (*psid)->sub_auths != NULL,
- "out of memory");
-
for (i = 0; i < (*psid)->num_auths; i++) {
(*psid)->sub_auths[i] = IVAL(data->data, *offset);
(*offset) += 4;
WINBIND_OBJ_FILES = $(addprefix $(winbindsrcdir)/, \
wb_server.o \
+ wb_setup_domains.o \
wb_irpc.o \
wb_samba3_protocol.o \
wb_samba3_cmd.o \
state->ctx->status = wb_connect_samr_recv(
ctx, state->domain,
&state->domain->libnet_ctx->samr.pipe,
- &state->domain->libnet_ctx->samr.handle,
+ &state->domain->libnet_ctx->samr.connect_handle,
&state->domain->libnet_ctx->samr.handle);
if (!composite_is_ok(state->ctx)) return;
if (!service) goto nomem;
service->task = task;
- service->primary_sid = secrets_get_domain_sid(service,
- task->event_ctx,
- task->lp_ctx,
- lp_workgroup(task->lp_ctx));
- if (service->primary_sid == NULL) {
- task_server_terminate(
- task, nt_errstr(NT_STATUS_CANT_ACCESS_DOMAIN_INFO));
+ status = wbsrv_setup_domains(service);
+ if (!NT_STATUS_IS_OK(status)) {
+ task_server_terminate(task, nt_errstr(status));
return;
}
--- /dev/null
+/*
+ Unix SMB/CIFS implementation.
+
+ Copyright (C) Stefan Metzmacher 2008
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "includes.h"
+#include "winbind/wb_server.h"
+#include "smbd/service_task.h"
+#include "auth/credentials/credentials.h"
+#include "param/secrets.h"
+#include "param/param.h"
+
+NTSTATUS wbsrv_setup_domains(struct wbsrv_service *service)
+{
+ const struct dom_sid *primary_sid;
+
+ primary_sid = secrets_get_domain_sid(service,
+ service->task->event_ctx,
+ service->task->lp_ctx,
+ lp_workgroup(service->task->lp_ctx));
+ if (!primary_sid) {
+ return NT_STATUS_CANT_ACCESS_DOMAIN_INFO;
+ }
+
+ service->primary_sid = primary_sid;
+
+ return NT_STATUS_OK;
+}