Merge branch 'master' of ssh://git.samba.org/data/git/samba
authorAndrew Tridgell <tridge@samba.org>
Tue, 16 Dec 2008 00:41:20 +0000 (11:41 +1100)
committerAndrew Tridgell <tridge@samba.org>
Tue, 16 Dec 2008 00:41:20 +0000 (11:41 +1100)
214 files changed:
docs-xml/Samba3-HOWTO/TOSHARG-TheNetCommand.xml
docs-xml/smbdotconf/misc/socketaddress.xml
docs-xml/smbdotconf/security/accessbasedshareenum.xml [new file with mode: 0644]
lib/util/util_net.c
librpc/idl/browser.idl
librpc/idl/lsa.idl
librpc/idl/misc.idl
librpc/idl/netlogon.idl
librpc/idl/samr.idl
librpc/idl/security.idl
librpc/idl/srvsvc.idl
librpc/idl/winreg.idl
librpc/ndr/ndr_sec_helper.c
packaging/RHEL-CTDB/configure.rpm
packaging/RHEL-CTDB/makerpms.sh
packaging/RHEL-CTDB/makespec.sh [new file with mode: 0755]
packaging/RHEL-CTDB/samba.spec.tmpl
pidl/lib/Parse/Pidl/Compat.pm
pidl/lib/Parse/Pidl/NDR.pm
pidl/lib/Parse/Pidl/Samba4.pm
pidl/lib/Parse/Pidl/Samba4/EJS.pm [deleted file]
pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm
pidl/lib/Parse/Pidl/Samba4/Python.pm
pidl/tests/samba-ejs.pl [deleted file]
source3/Makefile.in
source3/auth/auth_util.c
source3/client/client.c
source3/client/mount.cifs.c
source3/configure.in
source3/include/ads.h
source3/include/async_req.h
source3/include/async_smb.h
source3/include/async_sock.h
source3/include/client.h
source3/include/proto.h
source3/include/smb.h
source3/include/smb_macros.h
source3/include/vfs.h
source3/include/vfs_macros.h
source3/lib/async_req.c
source3/lib/async_sock.c
source3/lib/debug.c
source3/lib/display_sec.c
source3/lib/interface.c
source3/lib/netapi/user.c
source3/lib/popt_common.c
source3/lib/secdesc.c
source3/lib/util.c
source3/lib/util_sock.c
source3/lib/util_str.c
source3/libads/kerberos.c
source3/libads/ldap.c
source3/libads/ndr.c
source3/libnet/libnet_join.c
source3/libnet/libnet_keytab.c
source3/libnet/libnet_samsync.c
source3/librpc/gen_ndr/cli_netlogon.c
source3/librpc/gen_ndr/cli_netlogon.h
source3/librpc/gen_ndr/lsa.h
source3/librpc/gen_ndr/misc.h
source3/librpc/gen_ndr/ndr_drsblobs.c
source3/librpc/gen_ndr/ndr_netlogon.c
source3/librpc/gen_ndr/ndr_netlogon.h
source3/librpc/gen_ndr/ndr_samr.c
source3/librpc/gen_ndr/ndr_security.c
source3/librpc/gen_ndr/ndr_security.h
source3/librpc/gen_ndr/ndr_srvsvc.c
source3/librpc/gen_ndr/ndr_srvsvc.h
source3/librpc/gen_ndr/netlogon.h
source3/librpc/gen_ndr/samr.h
source3/librpc/gen_ndr/security.h
source3/librpc/gen_ndr/srv_netlogon.c
source3/librpc/gen_ndr/srv_netlogon.h
source3/librpc/gen_ndr/srvsvc.h
source3/librpc/gen_ndr/winreg.h
source3/librpc/ndr/sid.c
source3/librpc/rpc/dcerpc.c
source3/libsmb/async_smb.c
source3/libsmb/cliconnect.c
source3/libsmb/clidfs.c
source3/libsmb/clientgen.c
source3/libsmb/clifile.c
source3/libsmb/clilist.c
source3/libsmb/clireadwrite.c
source3/libsmb/clitrans.c
source3/libsmb/dsgetdcname.c
source3/libsmb/libsmb_context.c
source3/libsmb/libsmb_dir.c
source3/libsmb/libsmb_server.c
source3/libsmb/namequery.c
source3/libsmb/namequery_dc.c
source3/libsmb/smb_seal.c
source3/locking/locking.c
source3/modules/gpfs.c
source3/modules/onefs.h
source3/modules/onefs_acl.c
source3/modules/onefs_open.c [new file with mode: 0644]
source3/modules/onefs_system.c [new file with mode: 0644]
source3/modules/vfs_default.c
source3/modules/vfs_full_audit.c
source3/modules/vfs_gpfs.c
source3/modules/vfs_onefs.c
source3/modules/vfs_prealloc.c
source3/nsswitch/libwbclient/wbc_guid.c
source3/nsswitch/libwbclient/wbc_idmap.c
source3/nsswitch/libwbclient/wbc_pam.c
source3/nsswitch/libwbclient/wbc_pwd.c
source3/nsswitch/libwbclient/wbc_sid.c
source3/nsswitch/libwbclient/wbc_util.c
source3/nsswitch/libwbclient/wbclient.c
source3/nsswitch/libwbclient/wbclient.h
source3/nsswitch/pam_winbind.c
source3/nsswitch/wbinfo.c
source3/param/loadparm.c
source3/passdb/pdb_ldap.c
source3/printing/nt_printing.c
source3/printing/printing.c
source3/rpc_client/cli_pipe.c
source3/rpc_client/init_samr.c
source3/rpc_server/srv_netlog_nt.c
source3/rpc_server/srv_samr_nt.c
source3/rpc_server/srv_srvsvc_nt.c
source3/rpcclient/cmd_samr.c
source3/rpcclient/cmd_spoolss.c
source3/rpcclient/rpcclient.c
source3/samba4.mk
source3/smbd/close.c
source3/smbd/dosmode.c
source3/smbd/filename.c
source3/smbd/nttrans.c
source3/smbd/open.c
source3/smbd/pipes.c
source3/smbd/posix_acls.c
source3/smbd/reply.c
source3/smbd/server.c
source3/smbd/sesssetup.c
source3/smbd/share_access.c
source3/smbd/trans2.c
source3/smbd/uid.c
source3/torture/locktest.c
source3/torture/masktest.c
source3/torture/torture.c
source3/utils/net.c
source3/utils/net_ads.c
source3/utils/net_rpc.c
source3/utils/smbcacls.c
source3/utils/smbcquotas.c
source3/utils/smbfilter.c
source3/utils/smbtree.c
source3/web/swat.c
source3/winbindd/winbindd.c
source3/winbindd/winbindd_async.c
source3/winbindd/winbindd_cm.c
source3/winbindd/winbindd_group.c
source3/winbindd/winbindd_proto.h
source3/winbindd/winbindd_reqtrans.c [new file with mode: 0644]
source3/winbindd/winbindd_user.c
source4/auth/auth.h
source4/auth/ntlm/auth_sam.c
source4/auth/sam.c
source4/dsdb/samdb/ldb_modules/kludge_acl.c
source4/dsdb/samdb/ldb_modules/password_hash.c
source4/headermap.txt
source4/kdc/pac-glue.c
source4/libcli/auth/session.c
source4/libcli/resolve/bcast.c
source4/libcli/resolve/host.c
source4/libcli/resolve/nbtlist.c
source4/libcli/resolve/resolve.c
source4/libcli/resolve/resolve.h
source4/libcli/resolve/testsuite.c
source4/libcli/resolve/wins.c
source4/libcli/security/dom_sid.c
source4/libcli/security/sddl.c
source4/libcli/security/security_descriptor.c
source4/libnet/libnet_passwd.c
source4/librpc/config.mk
source4/librpc/idl/dom_sid.idl
source4/librpc/idl/irpc.idl
source4/librpc/ndr/ndr_dom_sid.c [deleted file]
source4/librpc/ndr/py_security.c [new file with mode: 0644]
source4/ntp_signd/README [new file with mode: 0644]
source4/ntp_signd/ntp-dev-4.2.5p125.diff [new file with mode: 0644]
source4/ntvfs/cifs/vfs_cifs.c
source4/ntvfs/ntvfs.h
source4/param/loadparm.c
source4/param/secrets.h
source4/rpc_server/browser/dcesrv_browser.c [new file with mode: 0644]
source4/rpc_server/config.mk
source4/rpc_server/dcerpc_server.c
source4/rpc_server/dcerpc_server.h
source4/rpc_server/netlogon/dcerpc_netlogon.c
source4/rpc_server/samr/dcesrv_samr.c
source4/rpc_server/service_rpc.c
source4/selftest/knownfail
source4/setup/ad-schema/MS-AD_Schema_Attributes_v20080618.txt [new file with mode: 0644]
source4/setup/ad-schema/MS-AD_Schema_Classes_v20080618.txt [new file with mode: 0644]
source4/setup/ad-schema/licence.txt [new file with mode: 0644]
source4/setup/provision
source4/smb_server/smb2/smb2_server.h
source4/smb_server/smb_server.h
source4/torture/basic/delete.c
source4/torture/config.mk
source4/torture/raw/open.c
source4/torture/rpc/browser.c [new file with mode: 0644]
source4/torture/rpc/netlogon.c
source4/torture/rpc/rpc.c
source4/torture/rpc/samba3rpc.c
source4/torture/rpc/samr.c
source4/torture/unix/whoami.c
source4/winbind/config.mk
source4/winbind/wb_init_domain.c
source4/winbind/wb_server.c
source4/winbind/wb_setup_domains.c [new file with mode: 0644]

index b2b3ebd5b15c6647223161b440196e5fe4675b92..d1895829a9569225beff0e8a5cc76d6b4dfbe887 100644 (file)
@@ -1850,7 +1850,7 @@ net idmap dump /var/lib/samba/winbindd_idmap.tdb &gt; idmap_dump.txt
        <para>
        The IDMAP dump file can be restored using the following command:
 <screen>
-net idmap restore &lt;full_path_and_tdb_filename&gt; &lt; 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:
index 7566380e7092011683f73bba9675f293a938063e..17018efd40a682e344cc3f21cd88db27addf379a 100644 (file)
@@ -4,12 +4,14 @@
                 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>
 
diff --git a/docs-xml/smbdotconf/security/accessbasedshareenum.xml b/docs-xml/smbdotconf/security/accessbasedshareenum.xml
new file mode 100644 (file)
index 0000000..c2977c4
--- /dev/null
@@ -0,0 +1,18 @@
+<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>
index 228393a2bbf8cf760b87c6ff4bb17584504b8e21..d1dadc24942de8215f21c26a9df115f53ee01232 100644 (file)
@@ -360,7 +360,7 @@ bool same_net(const struct sockaddr *ip1,
  * 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) {
index 5b05be9cbb930f2d2441f46baf433ce2c1120151..94d4ce6b62afd98ec96bbd6fd83f136969fd9e50 100644 (file)
@@ -1,4 +1,6 @@
-[ 
+import "srvsvc.idl";
+
+[
   uuid("6bffd098-a112-3610-9833-012892020162"),
   version(0.0), 
   helpstring("Browsing"),
@@ -9,50 +11,76 @@ interface browser
 {
        /******************/
        /* 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();
 
 }
index 003641d97a161231bacb487de234934468a2fe7a..db5ca3172044ad76ad30c0dc3d8f2b02f9cd7b48 100644 (file)
@@ -16,7 +16,7 @@ import "misc.idl", "security.idl";
        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;
index 1907195252138962a86cfe75e9701c7f51dbb826..1ef0d913b9c429deb9e3163163010427332126ca 100644 (file)
@@ -7,7 +7,7 @@
 ]
 interface misc
 {
-       typedef [public,noprint,gensize,noejs] struct {
+       typedef [public,noprint,gensize] struct {
                uint32 time_low;
                uint16 time_mid;
                uint16 time_hi_and_version;
index cf4da7adfa9475702f9b4c2411fd1ce16fb3ebe9..f09e51e30f23be18247a4434ffa42e018f3b4e61 100644 (file)
@@ -1500,5 +1500,23 @@ interface netlogon
 
        /****************/
        /* 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
+               );
 }
index 46478ee9e87d363c9616d97cbfe87b4c072cfefd..7d5d877bb1f26bbd5fa494827fc01c5f77ac0662 100644 (file)
@@ -410,8 +410,7 @@ import "misc.idl", "lsa.idl", "security.idl";
        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 {
@@ -880,10 +879,11 @@ import "misc.idl", "lsa.idl", "security.idl";
        } 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 {
@@ -916,8 +916,8 @@ import "misc.idl", "lsa.idl", "security.idl";
                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,
@@ -945,8 +945,8 @@ import "misc.idl", "lsa.idl", "security.idl";
                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;
@@ -959,8 +959,8 @@ import "misc.idl", "lsa.idl", "security.idl";
                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;
index 3f70e2c36e5919d977643d660b2e21bbaadee651..4c6aa235d76b3f6e9467e4fb827f5d97ec453f18 100644 (file)
@@ -7,12 +7,39 @@
 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
@@ -388,4 +415,5 @@ interface security
                KERB_ENCTYPE_AES128_CTS_HMAC_SHA1_96 = 0x00000008,
                KERB_ENCTYPE_AES256_CTS_HMAC_SHA1_96 = 0x00000010
        } kerb_EncTypes;
+
 }
index 3f24402c3f68ce590a24a41a772cd8a5294ed8e0..153d8cfbbe7783c121578e622bcf319ad9e2fd67 100644 (file)
@@ -638,12 +638,12 @@ import "security.idl", "svcctl.idl";
                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;
index 9216f9893bf58a83161ce1249da487794fcdf735..2f108a090bc8f7965789cbb141c488a752baecd7 100644 (file)
@@ -40,7 +40,7 @@ import "lsa.idl", "security.idl";
                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;
index 4b135505d883806337c2c3087aaa7d4c26ae406f..898a4287eaaf8e1fc39aadb364c6033db935a18e 100644 (file)
@@ -23,6 +23,9 @@
 
 #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
@@ -116,3 +119,224 @@ size_t ndr_size_security_descriptor(const struct security_descriptor *sd, int fl
        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;
+}
index 75960402053b6865dfc545f07527aa42b6c334eb..b9a1ee12c2beb6f05065f98916874cec72e1264e 100755 (executable)
@@ -1,37 +1,56 @@
+#!/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 \
@@ -40,3 +59,6 @@ CFLAGS="-Wall -g -D_GNU_SOURCE" ./configure \
        --without-dnsupdate \
        --with-aio-support \
        $*
+
+make showlayout
+
index 219982fda907b8c310b338012336dc153efdf01f..50fa96c2b11248827c7d496bfad556b8ed54abf8 100755 (executable)
@@ -25,8 +25,6 @@ RPMSRCDIR=`rpm --eval %_sourcedir`
 
 DIRNAME=$(dirname $0)
 TOPDIR=${DIRNAME}/../..
-SRCDIR=${TOPDIR}/source
-VERSION_H=${SRCDIR}/include/version.h
 
 SPECFILE="samba.spec"
 DOCS="docs.tar.bz2"
@@ -49,25 +47,14 @@ esac
 ##
 ## 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
diff --git a/packaging/RHEL-CTDB/makespec.sh b/packaging/RHEL-CTDB/makespec.sh
new file mode 100755 (executable)
index 0000000..7d10d55
--- /dev/null
@@ -0,0 +1,36 @@
+#!/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}
+
index b34f01f6598a01b9b9a13c229f6b0c8d52eb22dc..8a583a9bde49d86ec80deb0bb1277659a8b5df8a 100644 (file)
@@ -133,12 +133,11 @@ cd source
 # 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
@@ -149,6 +148,7 @@ CFLAGS="$RPM_OPT_FLAGS $EXTRA -D_GNU_SOURCE" ./configure \
         --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} \
@@ -167,7 +167,7 @@ CFLAGS="$RPM_OPT_FLAGS $EXTRA -D_GNU_SOURCE" ./configure \
         --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 \
@@ -230,8 +230,7 @@ make DESTDIR=$RPM_BUILD_ROOT \
         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 )
@@ -242,8 +241,6 @@ install -m 755 source/nsswitch/libnss_winbind.so $RPM_BUILD_ROOT/%{_libarch}/lib
 #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
@@ -419,6 +416,8 @@ exit 0
 /sbin/mount.cifs
 /sbin/umount.cifs
 
+%{_sbindir}/cifs.upcall
+
 %{_bindir}/rpcclient
 %{_bindir}/smbcacls
 %{_bindir}/findsmb
@@ -432,6 +431,7 @@ exit 0
 
 %{_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*
@@ -512,7 +512,6 @@ exit 0
 %{_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
index 75190211441e5c0db0840baa1361a21c9b1b031e..1b49c439c43bd3fdc4b679c0838d4bd832000949 100644 (file)
@@ -44,7 +44,6 @@ my %supported_properties = (
        "nopush"                => ["FUNCTION", "TYPEDEF"],
        "nopull"                => ["FUNCTION", "TYPEDEF"],
        "noprint"               => ["FUNCTION", "TYPEDEF"],
-       "noejs"                 => ["FUNCTION", "TYPEDEF"],
 
        # union
        "switch_is"             => ["ELEMENT"],
index 9b61a370e219efb1ebabfb4a9abbaec7c6fcc141..5ee26d16b68c76f611c4fedc832aab5671f513e1 100644 (file)
@@ -855,6 +855,7 @@ my %property_list = (
        "endpoint"              => ["INTERFACE"],
        "pointer_default"       => ["INTERFACE"],
        "helper"                => ["INTERFACE"],
+       "pyhelper"              => ["INTERFACE"],
        "authservice"           => ["INTERFACE"],
        "restricted"    => ["INTERFACE"],
 
@@ -890,7 +891,6 @@ my %property_list = (
        "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
index d42e01cdb0424cc51d413fcfa496a934ae534d4e..5bdb91ee2519776433e64227da689ae25697846c 100644 (file)
@@ -7,7 +7,7 @@ package Parse::Pidl::Samba4;
 
 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);
@@ -36,6 +36,14 @@ sub choose_header($$)
        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) = @_;
@@ -57,7 +65,7 @@ sub NumStars($;$)
 
        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++;
        }
 
@@ -87,7 +95,7 @@ sub ArrayBrackets($)
 
        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}]";
        }
 
diff --git a/pidl/lib/Parse/Pidl/Samba4/EJS.pm b/pidl/lib/Parse/Pidl/Samba4/EJS.pm
deleted file mode 100644 (file)
index efb3f28..0000000
+++ /dev/null
@@ -1,874 +0,0 @@
-###################################################
-# 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;
index fb73075f1ad218f07880989860eeb86c85627f83..ee81e51f254bf2dc67cc5f8245ec5486e9275478 100644 (file)
@@ -16,7 +16,7 @@ use Parse::Pidl::Typelist qw(hasType getType mapTypeName typeHasBody);
 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);
 
@@ -376,7 +376,7 @@ sub ParseArrayPullHeader($$$$$$)
                $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);
        }
 
@@ -917,7 +917,7 @@ sub ParseMemCtxPullFlags($$$$)
 
        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);
 
index a3107d4672fcf61e5823e82906778dfb74954fdc..4c598b3ca0da5f45bbcb414cd5e6f4bd0a35401a 100644 (file)
@@ -14,6 +14,7 @@ use Parse::Pidl::Typelist qw(hasType resolveType getType mapTypeName expandAlias
 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);
@@ -223,7 +224,10 @@ sub PythonStruct($$$$$$)
        $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("}");
@@ -279,6 +283,11 @@ sub PythonStruct($$$$$$)
                $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("};");
@@ -289,6 +298,10 @@ sub PythonStruct($$$$$$)
        $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 = {");
@@ -298,7 +311,7 @@ sub PythonStruct($$$$$$)
        $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,");
@@ -623,6 +636,10 @@ sub Interface($$$)
 
        $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}}) {
@@ -942,7 +959,7 @@ sub ConvertObjectFromPythonLevel($$$$$$$$)
                        $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++) {");
diff --git a/pidl/tests/samba-ejs.pl b/pidl/tests/samba-ejs.pl
deleted file mode 100755 (executable)
index 094d37a..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/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");
index 83e94a438238b5c491b7506d7e7ea41aa4b7947c..f53406c39eec6168b93f464cc023b8ed44ed06e9 100644 (file)
@@ -650,7 +650,8 @@ VFS_SYNCOPS_OBJ = modules/vfs_syncops.o
 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
 
@@ -1036,6 +1037,7 @@ IDMAP_ADEX_OBJ = \
 
 WINBINDD_OBJ1 = \
                winbindd/winbindd.o       \
+               winbindd/winbindd_reqtrans.o \
                winbindd/winbindd_user.o  \
                winbindd/winbindd_group.o \
                winbindd/winbindd_util.o  \
index 9220df01c001ea7b8a9e4e3f6c0448f4b7653214..d2a8591ae61e9e97dadc3877dd86b21997f0edad 100644 (file)
@@ -1294,7 +1294,7 @@ NTSTATUS make_serverinfo_from_username(TALLOC_CTX *mem_ctx,
 
 
 struct auth_serversupplied_info *copy_serverinfo(TALLOC_CTX *mem_ctx,
-                                                auth_serversupplied_info *src)
+                                                const auth_serversupplied_info *src)
 {
        auth_serversupplied_info *dst;
 
index 39f8f90bbae06ab0505f7781f03c8ae88eeb8b94..c88b918dc8c0eba265cb384d57668b621fe434ba 100644 (file)
@@ -218,13 +218,12 @@ static int readfile(char *b, int n, XFILE *f)
  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;
        }
@@ -4607,7 +4606,7 @@ static int do_tar_op(const char *base_directory)
  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;
@@ -4623,7 +4622,7 @@ static int do_message_op(void)
        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;
 
@@ -4648,7 +4647,7 @@ static int do_message_op(void)
                return 1;
        }
 
-       send_message();
+       send_message(get_cmdline_auth_info_username(auth_info));
        cli_cm_shutdown();
 
        return 0;
@@ -4695,6 +4694,7 @@ static int do_message_op(void)
                POPT_TABLEEND
        };
        TALLOC_CTX *frame = talloc_stackframe();
+       struct user_auth_info *auth_info;
 
        if (!client_set_cur_dir("\\")) {
                exit(ENOMEM);
@@ -4724,6 +4724,12 @@ static int do_message_op(void)
 
        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>");
@@ -4751,8 +4757,11 @@ static int do_message_op(void)
                }
 
                /* 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) {
@@ -4858,8 +4867,11 @@ static int do_message_op(void)
        }
 
        /* 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 */
@@ -4893,8 +4905,8 @@ static int do_message_op(void)
                        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);
        }
 
@@ -4929,7 +4941,7 @@ static int do_message_op(void)
                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);
@@ -4947,7 +4959,7 @@ static int do_message_op(void)
 
        /* 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));
 
@@ -4980,7 +4992,7 @@ static int do_message_op(void)
        }
 
        if (message) {
-               return do_message_op();
+               return do_message_op(auth_info);
        }
 
        if (process(base_directory)) {
index da2f98bff86e8f1f9ac19962a19cd688165b447c..9f4d1d3fd06abc558fed15d959af6cfe4f0334d2 100644 (file)
@@ -80,6 +80,9 @@
 #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;
@@ -189,12 +192,6 @@ static char * getusername(void) {
        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;
@@ -494,7 +491,7 @@ static int parse_options(char ** optionsp, int * filesys_flags)
                } 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;
@@ -882,23 +879,23 @@ static void replace_char(char *string, char from, char to, int maxlen)
 }
 
 /* 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) {
@@ -939,7 +936,12 @@ continue_unc_parsing:
                                *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 */
 
@@ -954,23 +956,9 @@ continue_unc_parsing:
                                                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");
@@ -1034,10 +1022,11 @@ int main(int argc, char ** argv)
        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;
@@ -1050,10 +1039,14 @@ int main(int argc, char ** argv)
        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, "");
@@ -1245,8 +1238,8 @@ int main(int argc, char ** argv)
                 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;
@@ -1293,7 +1286,13 @@ int main(int argc, char ** argv)
        }
 
        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;
        }
        
@@ -1310,7 +1309,6 @@ int main(int argc, char ** argv)
        }
        /* 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;
@@ -1325,10 +1323,10 @@ mount_retry:
        }
        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 */);
@@ -1338,18 +1336,12 @@ mount_retry:
                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)
@@ -1391,11 +1383,42 @@ mount_retry:
        /* 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");
@@ -1410,64 +1433,64 @@ mount_retry:
                                        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);
@@ -1475,6 +1498,8 @@ mount_exit:
                SAFE_FREE(mountpassword);
        }
 
+       if (addrhead)
+               freeaddrinfo(addrhead);
        SAFE_FREE(options);
        SAFE_FREE(orgoptions);
        SAFE_FREE(resolved_path);
index 40e78e89d93c6448cefacc720f88fa9932ae5d4c..b90b1b3f6043ac8a4ebc5b9d05c672ef678e39e7 100644 (file)
@@ -1052,6 +1052,20 @@ if test x"$samba_cv_HAVE_GPFS" = x"yes"; then
 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... "
index b72d25094025156108c6815f62c44c8a0b141867..abff9eaa8c7268a88d4a078ebb46dfa29cc9cfac 100644 (file)
@@ -80,7 +80,6 @@ typedef struct ads_struct {
                char *server_site_name;
                char *client_site_name;
                time_t current_time;
-               int tried_closest_dc;
                char *schema_path;
                char *config_path;
        } config;
index 2d01b53814cbe60d8bb28f67fb56dc8e9496573d..14a30696c4d0c906ccf404b54573e3449bdb021d 100644 (file)
@@ -134,4 +134,8 @@ bool async_post_status(struct async_req *req, NTSTATUS status);
 
 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
index 4e2061813f533a4f69cc56d805d696d647695f5c..25fd353632aa58af9c57ae1f58570246f25d1c62 100644 (file)
@@ -125,6 +125,10 @@ bool cli_chain_cork(struct cli_state *cli, struct event_context *ev,
                    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,
index 3c9045360161e3b1f256c4c1ad448b4942802ed7..f0cd5fdaa4e9ada828c29b63d7f6c31521160654 100644 (file)
 
 #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
index 8d57fe1eed9da5e48e2319c02d69512453233130..587f3f6c67749274c1bc0fbf85c375c4180f3383 100644 (file)
@@ -52,6 +52,7 @@ struct cli_pipe_auth_data {
 
        char *domain;
        char *user_name;
+       DATA_BLOB user_session_key;
 
        union {
                struct schannel_auth_struct *schannel_auth;
index f2bbb07f926f2c13fb6a6e0fb9ac77a3764baf73..24929f6d7fe1d0e0ec72c801fb223b844fd2425b 100644 (file)
@@ -123,7 +123,7 @@ NTSTATUS make_serverinfo_from_username(TALLOC_CTX *mem_ctx,
                                       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);
@@ -637,6 +637,7 @@ void pidfile_create(const char *program_name);
 
 /* 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  */
 
@@ -723,6 +724,7 @@ bool sec_acl_equal(SEC_ACL *s1, SEC_ACL *s2);
 /* 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,
@@ -1138,22 +1140,28 @@ void gfree_all( void );
 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);
@@ -1396,13 +1404,13 @@ bool is_loopback_ip_v4(struct in_addr ip);
 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);
@@ -2314,15 +2322,7 @@ void ndr_print_dom_sid0(struct ndr_print *ndr, const char *name, const struct do
 
 /* 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  */
 
@@ -2418,7 +2418,7 @@ struct cli_state *cli_cm_open(TALLOC_CTX *ctx,
                                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);
@@ -2983,6 +2983,7 @@ bool namecache_status_fetch(const char *keyname,
 /* 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,
@@ -3454,7 +3455,7 @@ bool is_valid_share_mode_entry(const struct share_mode_entry *e);
 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);
@@ -3464,11 +3465,9 @@ bool remove_share_oplock(struct share_mode_lock *lck, files_struct *fsp);
 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 *,
@@ -3922,7 +3921,7 @@ char *lp_remote_announce(void);
 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);
@@ -4136,6 +4135,7 @@ bool lp_hide_special_files(int );
 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 );
@@ -4252,7 +4252,7 @@ const char *lp_ldap_machine_suffix(void);
 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);
@@ -5672,7 +5672,8 @@ void init_samr_user_info16(struct samr_UserInfo16 *r,
                           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,
@@ -6520,70 +6521,6 @@ bool svcctl_io_r_query_service_config2(const char *desc, SVCCTL_R_QUERY_SERVICE_
 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);
@@ -6604,43 +6541,9 @@ bool parse_logentry( char *line, Eventlog_entry * entry, bool * eor );
 
 /* 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  */
 
@@ -6651,216 +6554,6 @@ bool close_policy_hnd(pipes_struct *p, POLICY_HND *hnd);
 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 );
@@ -6868,137 +6561,7 @@ NTSTATUS rpc_ntsvcs2_init(void);
 
 /* 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  */
 
@@ -7035,145 +6598,6 @@ NTSTATUS np_write(struct files_struct *fsp, const uint8_t *data, size_t len,
 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,
@@ -7333,79 +6757,7 @@ WERROR _spoolss_xcvdataport(pipes_struct *p, SPOOL_Q_XCVDATAPORT *q_u, SPOOL_R_X
 
 /* 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  */
 
@@ -7415,138 +6767,9 @@ NTSTATUS rpc_svcctl2_init(void);
 /* 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  */
 
@@ -7819,6 +7042,7 @@ bool dns_register_smbd_reply(struct dns_reg_state *dns_state,
 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,
@@ -7894,6 +7118,9 @@ NTSTATUS unix_convert(TALLOC_CTX *ctx,
                        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  */
 
@@ -8095,78 +7322,74 @@ NTSTATUS smb1_file_se_access_check(const struct security_descriptor *sd,
                           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  */
 
@@ -8501,10 +7724,10 @@ bool token_contains_name_in_list(const char *username,
                                 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  */
index bcf605ee53fe260e632bf9d7da7bce1d75366f12..891bd4aaf74139b29962cbcf812bda9bce57a0d1 100644 (file)
@@ -209,18 +209,7 @@ typedef uint32 codepoint_t;
  *
  * @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,
@@ -710,7 +699,6 @@ struct pending_message_list {
 };
 
 #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 {
@@ -1895,4 +1883,9 @@ struct smb_extended_info {
        char   samba_version_string[SAMBA_EXTENDED_INFO_VERSION_STRING_LENGTH];
 };
 
+/*
+ * create_file_flags
+ */
+#define CFF_DOS_PATH           0x00000001
+
 #endif /* _SMB_H */
index 119ceeb158c28779264f4c9f04a53f2facb36f17..5149da0cb3dcb9d90edcedaf087820a71b318da9 100644 (file)
@@ -333,7 +333,7 @@ do { \
 /* 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
 
index 4cedb4a9c6bfcc1895323867a7f69e1a6c796584..d02d14b854c689379feec4ed813d2612d1bccb4c 100644 (file)
    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
 
@@ -134,6 +135,8 @@ struct connection_struct;
 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
@@ -170,6 +173,7 @@ typedef enum _vfs_op_type {
        /* File operations */
 
        SMB_VFS_OP_OPEN,
+       SMB_VFS_OP_CREATE_FILE,
        SMB_VFS_OP_CLOSE,
        SMB_VFS_OP_READ,
        SMB_VFS_OP_PREAD,
@@ -206,6 +210,7 @@ typedef enum _vfs_op_type {
        SMB_VFS_OP_CHFLAGS,
        SMB_VFS_OP_FILE_ID_CREATE,
        SMB_VFS_OP_STREAMINFO,
+       SMB_VFS_OP_GET_REAL_FILENAME,
 
        /* NT ACL operations. */
 
@@ -305,6 +310,23 @@ struct vfs_ops {
                /* 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);
@@ -354,6 +376,12 @@ struct vfs_ops {
                                       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,
@@ -452,6 +480,7 @@ struct vfs_ops {
                /* 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;
@@ -488,6 +517,7 @@ struct vfs_ops {
                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. */
 
index 8fbc21b12d426fc1dc238f60172e8735b715b22b..b008d86b3ca624f716356babc1b1ac0f2fbfa566 100644 (file)
@@ -48,6 +48,7 @@
 
 /* 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)))
@@ -84,6 +85,7 @@
 #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)))
index 501a6b5524f470e1f2169f661d48f82b5ffdc286..159666f15c874abbf0ac859afc019e7b0459ec90 100644 (file)
@@ -172,3 +172,26 @@ bool async_req_nomem(const void *p, struct async_req *req)
        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;
+}
index ffba6de83245a147d2b13772aaae38ad3b0d5f8b..225cc7b195e38ff2599ce603fb5ddfd5544f2480 100644 (file)
@@ -177,18 +177,13 @@ static struct async_req *async_fde_syscall_new(
  * @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;
 }
 
 /**
@@ -198,18 +193,13 @@ ssize_t async_syscall_result_ssize_t(struct async_req **req, int *perrno)
  * @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;
 }
 
 /**
@@ -219,18 +209,13 @@ size_t async_syscall_result_size_t(struct async_req **req, int *perrno)
  * @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;
 }
 
 /**
@@ -353,9 +338,9 @@ static void async_sendall_callback(struct event_context *ev,
  * "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;
@@ -377,6 +362,11 @@ struct async_req *async_sendall(TALLOC_CTX *mem_ctx, struct event_context *ev,
        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
@@ -498,9 +488,9 @@ static void async_recvall_callback(struct event_context *ev,
  * 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;
@@ -522,6 +512,11 @@ struct async_req *async_recvall(TALLOC_CTX *mem_ctx, struct event_context *ev,
        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
index d64fcb66d989d56d05d56fa34fabf0466687b0e2..193e9efc965d5aeb3a72cf9d8b819042d9e6d29e 100644 (file)
@@ -851,7 +851,7 @@ void check_log_size( void )
                ret = vasprintf(&msgbuf, format_str, ap);
                va_end(ap);
 
-               if (ret == -1) {
+               if (ret != -1) {
                        syslog(priority, "%s", msgbuf);
                }
                SAFE_FREE(msgbuf);
index a0d93d6fe76ccb6eac85f51d38a65b1e9438fa6f..636639c11d8e36c94b572b7b9e2d14bba4e9df77 100644 (file)
@@ -240,7 +240,7 @@ void display_sec_acl(SEC_ACL *sec_acl)
 
 void display_acl_type(uint16 type)
 {
-       static fstring typestr="";
+       fstring typestr="";
 
        typestr[0] = 0;
 
index f533ec92c780bd1ae8f0039ff0fb4eff5c9813cd..48fa4d32a93a1e01669f17c623e592fa602287da 100644 (file)
@@ -33,7 +33,7 @@ bool ismyaddr(const struct sockaddr *ip)
 {
        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;
                }
        }
@@ -65,7 +65,7 @@ static struct interface *iface_find(const struct sockaddr *ip,
                        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;
                }
        }
@@ -93,7 +93,7 @@ void setup_linklocal_scope_id(struct sockaddr *pss)
 {
        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);
@@ -388,7 +388,7 @@ static void interpret_interface(char *token)
                }
 
                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;
                        }
@@ -441,8 +441,8 @@ static void interpret_interface(char *token)
        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, 
index 2e319cf23cbdb57a21b38ba4cfc56040c173261e..1f4b03f677b4ded0aacf8d8105291c0699504a55 100644 (file)
@@ -46,7 +46,7 @@ static void convert_USER_INFO_X_to_samr_user_info21(struct USER_INFO_X *infoX,
                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;
index 2e6d3b3cb10538809021bf8957ed52eaa83a4914..cad14ec493092ebd18b4fd1a4c48795681e0f9f9 100644 (file)
@@ -166,7 +166,7 @@ struct poptOption popt_common_configfile[] = {
 };
 
 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
 };
@@ -318,7 +318,7 @@ const struct poptOption popt_common_dynconfig[] = {
  * 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;
@@ -377,13 +377,14 @@ static void get_password_file(void)
        }
        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;
@@ -426,9 +427,9 @@ static void get_credentials_file(const char *file)
                        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);
                }
@@ -453,13 +454,16 @@ static void popt_common_credentials_callback(poptContext con,
                                        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")) {
@@ -467,24 +471,25 @@ static void popt_common_credentials_callback(poptContext con,
                        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;
@@ -499,19 +504,22 @@ static void popt_common_credentials_callback(poptContext con,
                        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':
@@ -519,31 +527,40 @@ static void popt_common_credentials_callback(poptContext con,
                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" },
index df853366039f1d4cbb2b1205fec849406234962c..400f5f31b0b98bd00635b128044baea58d71ea80 100644 (file)
@@ -99,6 +99,33 @@ bool sec_desc_equal(SEC_DESC *s1, SEC_DESC *s2)
        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.
index 074b523ae0b8a320076629d7284ebfd0b9f366ff..dd23d547b5d240425617587792ae87aafc6141a2 100644 (file)
@@ -280,135 +280,154 @@ bool init_names(void)
   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;
        }
 
@@ -430,8 +449,8 @@ bool set_cmdline_auth_info_machine_account_creds(void)
                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);
index 5721f412d6225bc1d6976d6a33d6699b6065efd5..605bbf1fb6b4b557e6aff4926cc09f196a87276d 100644 (file)
@@ -52,7 +52,7 @@ bool interpret_string_addr(struct sockaddr_storage *pss,
        }
 #endif
 
-       zero_addr(pss);
+       zero_sockaddr(pss);
 
        if (!interpret_string_addr_internal(&res, str, flags|AI_ADDRCONFIG)) {
                return false;
@@ -81,7 +81,7 @@ bool interpret_string_addr(struct sockaddr_storage *pss,
  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. */
@@ -1254,7 +1254,7 @@ static bool matchname(const char *remotehost,
                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;
@@ -1367,7 +1367,7 @@ const char *get_peer_name(int fd, bool force_lookup)
        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";
        }
 
@@ -1687,7 +1687,7 @@ bool is_myname_or_ipaddr(const char *s)
                }
                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;
                        }
index fde4f825e81416b45ade0b5f08ff7b5eef19f7cf..9358061797abd36cf9f811eb1d5e45cc7703468f 100644 (file)
@@ -24,7 +24,7 @@
 
 #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,
index 4658f66cfdc42b99595326523d148be8c156b297..7dfc19b4628573f7304eaffa595462a65766758c 100644 (file)
@@ -772,7 +772,7 @@ static char *get_kdc_ip_string(char *mem_ctx,
                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;
                        }
@@ -795,13 +795,13 @@ static char *get_kdc_ip_string(char *mem_ctx,
        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;
                        }
index 932e42e0766fbd587cfa05932df8549cc81dbed6..cf8a7ebb1b3750f844df59faa6294d7c2ed38a47 100644 (file)
@@ -162,6 +162,11 @@ bool ads_closest_dc(ADS_STRUCT *ads)
                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));
 
@@ -267,10 +272,12 @@ static bool ads_try_connect(ADS_STRUCT *ads, const char *server, bool gc)
 
 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;
@@ -308,13 +315,44 @@ static NTSTATUS ads_find_dc(ADS_STRUCT *ads)
                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);
@@ -613,9 +651,8 @@ got_connection:
 
        /* 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);
index 6324a22041fdbe713f637b8eeefa282d0191ed54..6ada66ca40d9ccf1eb2a4d5eb8c8fddd71d055a5 100644 (file)
@@ -75,7 +75,6 @@ void ndr_print_ads_struct(struct ndr_print *ndr, const char *name, const struct
        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--;
index 908fb78ab4ddffaa439943cf4970648ad019aa6d..691f6ff8ebb7038d57b8373e6d49385c8c687a51 100644 (file)
@@ -1521,7 +1521,10 @@ static WERROR libnet_join_post_processing(TALLOC_CTX *mem_ctx,
                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) {
@@ -1752,6 +1755,7 @@ static WERROR libnet_DomainJoin(TALLOC_CTX *mem_ctx,
                                     r->in.domain_name,
                                     NULL,
                                     NULL,
+                                    DS_FORCE_REDISCOVERY |
                                     DS_DIRECTORY_SERVICE_REQUIRED |
                                     DS_WRITABLE_REQUIRED |
                                     DS_RETURN_DNS_NAME,
index 990f6f6a6372f8b8781bc2216203ed6378576109..81956942caf05130715782b692b7081cf5680ed9 100644 (file)
@@ -324,7 +324,7 @@ struct libnet_keytab_entry *libnet_keytab_search(struct libnet_keytab_context *c
 
        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;
        }
index 435181016992fb4e02c762c0c31bc5c9da1d871c..73d443974397952939eced9444cd5fa6b003b9b9 100644 (file)
@@ -282,8 +282,8 @@ static const char *samsync_debug_str(TALLOC_CTX *mem_ctx,
  * 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);
 
index 1af32494730d241f78f76be34d7d477b08d63d92..1ce4e67c56a638ec69eb30d0246249e082074023 100644 (file)
@@ -2296,23 +2296,36 @@ NTSTATUS rpccli_netr_LogonSamLogonWithFlags(struct rpc_pipe_client *cli,
        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)) {
@@ -2320,7 +2333,7 @@ NTSTATUS rpccli_netr_NETRSERVERGETTRUSTINFO(struct rpc_pipe_client *cli,
        }
 
        if (DEBUGLEVEL >= 10) {
-               NDR_PRINT_OUT_DEBUG(netr_NETRSERVERGETTRUSTINFO, &r);
+               NDR_PRINT_OUT_DEBUG(netr_ServerGetTrustInfo, &r);
        }
 
        if (NT_STATUS_IS_ERR(status)) {
@@ -2328,12 +2341,12 @@ NTSTATUS rpccli_netr_NETRSERVERGETTRUSTINFO(struct rpc_pipe_client *cli,
        }
 
        /* 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;
 }
 
index 9f5eac15b20b5a0c5ec1a225831553ad112a29b6..3fbc00e9dab12eb505a4661364b31d7155afb71a 100644 (file)
@@ -356,7 +356,15 @@ NTSTATUS rpccli_netr_LogonSamLogonWithFlags(struct rpc_pipe_client *cli,
                                            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__ */
index 0ccbcdf5b0c467930eb2601ac813b28e6c686c5f..ee8a31138d20b371894d33cf237d7d1fd9bee5e4 100644 (file)
@@ -17,7 +17,7 @@ struct lsa_String {
        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))] */
index d1cf64e0ebf6e03d8f194b8c556970ed32beafb9..de4abdcae5932fdf1db707bef0dbaedf17ad4cb9 100644 (file)
@@ -11,7 +11,7 @@ struct GUID {
        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;
index dd8d77ea15a4b65cded03f1c0a66e7f43c4cde34..d965e40bd27cfbaef506b05748f07720618985be 100644 (file)
@@ -2351,7 +2351,6 @@ static enum ndr_err_code ndr_push_AuthInfoNT4Owf(struct ndr_push *ndr, int ndr_f
                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;
 }
@@ -2364,7 +2363,6 @@ static enum ndr_err_code ndr_pull_AuthInfoNT4Owf(struct ndr_pull *ndr, int ndr_f
                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;
 }
@@ -2477,7 +2475,6 @@ static enum ndr_err_code ndr_push_AuthInfo(struct ndr_push *ndr, int ndr_flags,
                        break;
 
                        case TRUST_AUTH_TYPE_NT4OWF:
-                               NDR_CHECK(ndr_push_AuthInfoNT4Owf(ndr, NDR_BUFFERS, &r->nt4owf));
                        break;
 
                        case TRUST_AUTH_TYPE_CLEAR:
@@ -2525,7 +2522,6 @@ static enum ndr_err_code ndr_pull_AuthInfo(struct ndr_pull *ndr, int ndr_flags,
                        break;
 
                        case TRUST_AUTH_TYPE_NT4OWF:
-                               NDR_CHECK(ndr_pull_AuthInfoNT4Owf(ndr, NDR_BUFFERS, &r->nt4owf));
                        break;
 
                        case TRUST_AUTH_TYPE_CLEAR:
@@ -2584,7 +2580,6 @@ _PUBLIC_ enum ndr_err_code ndr_push_AuthenticationInformation(struct ndr_push *n
                }
        }
        if (ndr_flags & NDR_BUFFERS) {
-               NDR_CHECK(ndr_push_AuthInfo(ndr, NDR_BUFFERS, &r->AuthInfo));
        }
        return NDR_ERR_SUCCESS;
 }
@@ -2605,7 +2600,6 @@ _PUBLIC_ enum ndr_err_code ndr_pull_AuthenticationInformation(struct ndr_pull *n
                }
        }
        if (ndr_flags & NDR_BUFFERS) {
-               NDR_CHECK(ndr_pull_AuthInfo(ndr, NDR_BUFFERS, &r->AuthInfo));
        }
        return NDR_ERR_SUCCESS;
 }
@@ -2641,7 +2635,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_trustCurrentPasswords(struct ndr_push *ndr,
                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]));
                        }
                }
        }
@@ -2681,7 +2675,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_trustCurrentPasswords(struct ndr_pull *ndr,
                                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;
                        }
index c4102eba6e927278db94d41207f2f45981d43dfd..81f8ddcab9faabb8faca6fdcc362fb0933389252 100644 (file)
@@ -8617,6 +8617,145 @@ _PUBLIC_ void ndr_print_DcSitesCtr(struct ndr_print *ndr, const char *name, cons
        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) {
@@ -15424,42 +15563,225 @@ _PUBLIC_ void ndr_print_netr_LogonSamLogonWithFlags(struct ndr_print *ndr, const
        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--;
@@ -15835,11 +16157,11 @@ static const struct ndr_interface_call netlogon_calls[] = {
                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 }
index be204486362c4103a79a73825da4646553376627..5858906c1c8c778fb6d7db059684696b222c2f6a 100644 (file)
@@ -104,7 +104,7 @@ extern const struct ndr_interface_table ndr_table_netlogon;
 
 #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);
@@ -226,6 +226,7 @@ void ndr_print_netr_DomainTrust(struct ndr_print *ndr, const char *name, const s
 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);
@@ -276,5 +277,5 @@ void ndr_print_netr_ServerTrustPasswordsGet(struct ndr_print *ndr, const char *n
 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 */
index 975bde334077e85a78428e6d5a7fdcfe1db1b57e..83db0faaef9c90473a3d115ff406faf0099f19d6 100644 (file)
@@ -852,8 +852,7 @@ static enum ndr_err_code ndr_push_samr_DomInfo13(struct ndr_push *ndr, int ndr_f
                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) {
        }
@@ -866,8 +865,7 @@ static enum ndr_err_code ndr_pull_samr_DomInfo13(struct ndr_pull *ndr, int ndr_f
                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) {
        }
@@ -880,8 +878,7 @@ _PUBLIC_ void ndr_print_samr_DomInfo13(struct ndr_print *ndr, const char *name,
        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--;
 }
 
@@ -2652,10 +2649,11 @@ static enum ndr_err_code ndr_push_samr_UserInfo18(struct ndr_push *ndr, int ndr_
 {
        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) {
        }
@@ -2666,10 +2664,11 @@ static enum ndr_err_code ndr_pull_samr_UserInfo18(struct ndr_pull *ndr, int ndr_
 {
        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) {
        }
@@ -2680,10 +2679,11 @@ _PUBLIC_ void ndr_print_samr_UserInfo18(struct ndr_print *ndr, const char *name,
 {
        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--;
 }
 
@@ -2761,8 +2761,8 @@ _PUBLIC_ void ndr_print_samr_FieldsPresent(struct ndr_print *ndr, const char *na
        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);
@@ -2790,8 +2790,8 @@ static enum ndr_err_code ndr_push_samr_UserInfo21(struct ndr_push *ndr, int ndr_
                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));
@@ -2804,8 +2804,8 @@ static enum ndr_err_code ndr_push_samr_UserInfo21(struct ndr_push *ndr, int ndr_
                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));
        }
@@ -2820,8 +2820,8 @@ static enum ndr_err_code ndr_push_samr_UserInfo21(struct ndr_push *ndr, int ndr_
                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));
@@ -2854,8 +2854,8 @@ static enum ndr_err_code ndr_pull_samr_UserInfo21(struct ndr_pull *ndr, int ndr_
                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));
@@ -2873,8 +2873,8 @@ static enum ndr_err_code ndr_pull_samr_UserInfo21(struct ndr_pull *ndr, int ndr_
                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));
        }
@@ -2889,8 +2889,8 @@ static enum ndr_err_code ndr_pull_samr_UserInfo21(struct ndr_pull *ndr, int ndr_
                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);
@@ -2928,8 +2928,8 @@ _PUBLIC_ void ndr_print_samr_UserInfo21(struct ndr_print *ndr, const char *name,
        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);
@@ -2947,8 +2947,8 @@ _PUBLIC_ void ndr_print_samr_UserInfo21(struct ndr_print *ndr, const char *name,
        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--;
index 108f2f689c2907a9ba4fd5ff0dc490d246f8b045..8339a40d40f031d87cd9318f500a41286a2f3500 100644 (file)
@@ -427,7 +427,6 @@ _PUBLIC_ enum ndr_err_code ndr_push_security_ace(struct ndr_push *ndr, int ndr_f
        }
        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;
 }
@@ -621,11 +620,11 @@ _PUBLIC_ enum ndr_err_code ndr_push_security_descriptor(struct ndr_push *ndr, in
                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));
@@ -694,7 +693,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_security_descriptor(struct ndr_pull *ndr, in
                                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;
                        }
@@ -704,7 +703,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_security_descriptor(struct ndr_pull *ndr, in
                                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;
                        }
@@ -855,14 +854,14 @@ _PUBLIC_ enum ndr_err_code ndr_push_security_token(struct ndr_push *ndr, int ndr
        }
        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]));
                        }
                }
        }
@@ -916,13 +915,13 @@ _PUBLIC_ enum ndr_err_code ndr_pull_security_token(struct ndr_pull *ndr, int ndr
                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);
@@ -931,7 +930,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_security_token(struct ndr_pull *ndr, int 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);
                        }
                }
index bddf1bd2b70ce60ae3e19f55b9ba37072b90b093..f8cbf4afa81c4384956e2d4a6ae23cbf4e8c488f 100644 (file)
@@ -8,6 +8,10 @@
 
 #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);
index 9ac3aa82c9125c35e5b02389556192025b12a73d..125542d14a9a97a208b5dab7899ec3050c86c9c4 100644 (file)
@@ -6358,7 +6358,7 @@ _PUBLIC_ void ndr_print_srvsvc_PlatformId(struct ndr_print *ndr, const char *nam
        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));
@@ -6376,7 +6376,7 @@ static enum ndr_err_code ndr_push_srvsvc_NetSrvInfo100(struct ndr_push *ndr, int
        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;
@@ -6421,7 +6421,7 @@ _PUBLIC_ void ndr_print_srvsvc_NetSrvInfo100(struct ndr_print *ndr, const char *
        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));
@@ -6449,7 +6449,7 @@ static enum ndr_err_code ndr_push_srvsvc_NetSrvInfo101(struct ndr_push *ndr, int
        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;
index 33569d187008c412dc1fc32764343b37a828f5dc..126680cad03c1a80fadd86d624da5890a2d591c9 100644 (file)
@@ -186,7 +186,11 @@ void ndr_print_srvsvc_NetShareInfoCtr(struct ndr_print *ndr, const char *name, c
 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);
index 4d9b549e753947c690f6cb39c80e7151a15ef615..7fb253446a60cf812ecd837e37d8458242c9f8b7 100644 (file)
@@ -964,6 +964,13 @@ struct DcSitesCtr {
        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 {
@@ -1706,9 +1713,21 @@ struct netr_LogonSamLogonWithFlags {
 };
 
 
-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;
 
 };
index 537f144940fee54600af28939c0fc5fbe4d4b561..3116f26d8cb12819d402e45a9e5260c1b50d5b9d 100644 (file)
@@ -252,8 +252,7 @@ struct samr_DomInfo12 {
 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 {
@@ -477,10 +476,11 @@ struct samr_Password {
 }/* [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 {
@@ -512,8 +512,8 @@ 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 )
@@ -536,8 +536,8 @@ struct samr_UserInfo21 {
        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)] */
@@ -550,8 +550,8 @@ struct samr_UserInfo21 {
        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;
 };
index fe23347fdf0de61efbc372380bcd33d806267e0f..99e1f4b1c90cd5de70c275076581489fc6fcb8c3 100644 (file)
@@ -4,6 +4,9 @@
 
 #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
  {
index 2cb2978af2d492abad260c960d0d958210b2befa..8cb461e94ddd1e32148fb60fc4ebb7ad476fb2ce 100644 (file)
@@ -3733,18 +3733,18 @@ static bool api_netr_LogonSamLogonWithFlags(pipes_struct *p)
        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;
        }
@@ -3768,10 +3768,35 @@ static bool api_netr_NETRSERVERGETTRUSTINFO(pipes_struct *p)
        }
 
        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);
@@ -3780,7 +3805,7 @@ static bool api_netr_NETRSERVERGETTRUSTINFO(pipes_struct *p)
        }
 
        if (DEBUGLEVEL >= 10) {
-               NDR_PRINT_OUT_DEBUG(netr_NETRSERVERGETTRUSTINFO, r);
+               NDR_PRINT_OUT_DEBUG(netr_ServerGetTrustInfo, r);
        }
 
        push = ndr_push_init_ctx(r, NULL);
@@ -3856,7 +3881,7 @@ static struct api_struct api_netlogon_cmds[] =
        {"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)
index 1fe16c603be3d0b3d93b5d413773609e453cb509..cd68d12f1e6cc9011de2d8c15e48d685db6f3389 100644 (file)
@@ -47,7 +47,7 @@ NTSTATUS _netr_ServerTrustPasswordsGet(pipes_struct *p, struct netr_ServerTrustP
 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__ */
index b50213bb966c38794d881a9982f57d91113ff1c2..6467f72a5be45f21c42cb866fabd867ca16c29a6 100644 (file)
@@ -431,7 +431,7 @@ enum srvsvc_PlatformId
 struct srvsvc_NetSrvInfo100 {
        enum srvsvc_PlatformId platform_id;
        const char *server_name;/* [unique,charset(UTF16)] */
-};
+}/* [public] */;
 
 struct srvsvc_NetSrvInfo101 {
        enum srvsvc_PlatformId platform_id;
@@ -440,7 +440,7 @@ struct srvsvc_NetSrvInfo101 {
        uint32_t version_minor;
        uint32_t server_type;
        const char *comment;/* [unique,charset(UTF16)] */
-};
+}/* [public] */;
 
 struct srvsvc_NetSrvInfo102 {
        enum srvsvc_PlatformId platform_id;
index fbbab33c8d5d3b202fa43ed854aad4b71c14a7e0..a98120ccf5852d12db36539aad627e629d2a478a 100644 (file)
@@ -54,7 +54,7 @@ struct winreg_String {
        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)] */
index 39b7e3cd59dee9b6a536aac10597fb4b8dbd3db6..252da85929102ceb229cab74d99554256251492f 100644 (file)
 
 #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
 */
@@ -123,161 +57,3 @@ char *dom_sid_string(TALLOC_CTX *mem_ctx, const struct dom_sid *sid)
        
        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);
-}
-
index 77bb7b33a2f9a8113faee6b03f33438ab1972172..69bfc6f329a3e91d25f31c386c90e4139125618c 100644 (file)
@@ -117,6 +117,10 @@ NTSTATUS dcerpc_ndr_request_recv(struct rpc_request *req)
        return NT_STATUS_OK;
 }
 
+#if 0
+
+Completely unfinished and unused -- vl :-)
+
 /**
  * Connect to a DCE/RPC interface.
  * 
@@ -178,3 +182,5 @@ _PUBLIC_ NTSTATUS dcerpc_pipe_connect(TALLOC_CTX *parent_ctx, struct dcerpc_pipe
 
        return nt_status;
 }
+
+#endif
index d371e057e370f7d2ab837183114763669ab98e85..fd2fe930f84639c7ecfe190e240383fb950fcf55 100644 (file)
@@ -217,6 +217,118 @@ static bool find_andx_cmd_ofs(char *buf, size_t *pofs)
        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
@@ -286,10 +398,7 @@ static struct async_req *cli_request_chain(TALLOC_CTX *mem_ctx,
                                           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;
 
@@ -313,52 +422,11 @@ static struct async_req *cli_request_chain(TALLOC_CTX *mem_ctx,
        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:
index 8b7ac7d718496812c878fc6ddc4226dc14f936c6..125345fccbb77fb5912e0ab8af41450c5ad56102 100644 (file)
 
 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
@@ -748,19 +747,11 @@ static NTSTATUS cli_session_setup_ntlmssp(struct cli_state *cli, const char *use
 
        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 */
@@ -871,7 +862,7 @@ ADS_STATUS cli_session_setup_spnego(struct cli_state *cli, const char *user,
 
                if (principal == NULL &&
                        !is_ipaddress(cli->desthost) &&
-                       !strequal(star_smbserver_name,
+                       !strequal(STAR_SMBSERVER,
                                cli->desthost)) {
                        char *realm = NULL;
                        char *machine = NULL;
@@ -1229,9 +1220,10 @@ void cli_negprot_send(struct cli_state *cli)
        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);
        }
@@ -1260,18 +1252,23 @@ bool cli_negprot(struct cli_state *cli)
 
        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);
        }
@@ -1503,7 +1500,7 @@ NTSTATUS cli_connect(struct cli_state *cli,
 
        /* reasonable default hostname */
        if (!host) {
-               host = star_smbserver_name;
+               host = STAR_SMBSERVER;
        }
 
        fstrcpy(cli->desthost, host);
@@ -1623,7 +1620,7 @@ NTSTATUS cli_start_connection(struct cli_state **output_cli,
        if (dest_ss) {
                ss = *dest_ss;
        } else {
-               zero_addr(&ss);
+               zero_sockaddr(&ss);
        }
 
 again:
@@ -1651,8 +1648,8 @@ 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;
@@ -1782,7 +1779,7 @@ bool attempt_netbios_session_request(struct cli_state **ppcli, const char *srcho
         */
 
        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);
        }
@@ -1791,7 +1788,7 @@ bool attempt_netbios_session_request(struct cli_state **ppcli, const char *srcho
                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
index 7b63f9535e935d6ba40093153a16f5284d08765c..f0ac39fed0582e435d0c3e5e724c7c891bcd2fb5 100644 (file)
@@ -144,13 +144,13 @@ static struct cli_state *do_connect(TALLOC_CTX *ctx,
 
        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;
 
@@ -471,18 +471,19 @@ static void cm_set_password(const char *newpass)
 /****************************************************************************
 ****************************************************************************/
 
-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);
 }
 
 /****************************************************************************
index 8a5aedfde5697d0907d931c15e10cc3e2595e626..d94427809cecd7d479d1fb7d45f19d335b89fb6a 100644 (file)
@@ -732,12 +732,7 @@ struct async_req *cli_echo_send(TALLOC_CTX *mem_ctx, struct event_context *ev,
 
 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);
 }
 
 /**
index a9e81082eafc0f11b123f4f11db7c154f22c6758..733abb6510ce6f2523005440b5c236ba3b51fc83 100644 (file)
@@ -908,9 +908,8 @@ NTSTATUS cli_open_recv(struct async_req *req, int *fnum)
        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);
@@ -985,10 +984,10 @@ NTSTATUS cli_close_recv(struct async_req *req)
        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);
index 50918458b081010b8211493e1fbf23fea9340fd3..cebafc6919a0d522f38f6ca6a1704a4050746a30 100644 (file)
@@ -417,7 +417,7 @@ int cli_list_new(struct cli_state *cli,const char *Mask,uint16 attribute,
                }
 
                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("");
index cc982683d0896807cef3b1fb51142f9aaf842cf3..1c2a0d56c4cda7919a51d6b066374f54f8b935e7 100644 (file)
@@ -109,12 +109,12 @@ NTSTATUS cli_read_andx_recv(struct async_req *req, ssize_t *received,
        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);
@@ -137,6 +137,24 @@ NTSTATUS cli_read_andx_recv(struct async_req *req, ssize_t *received,
                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;
@@ -405,10 +423,10 @@ NTSTATUS cli_pull_recv(struct async_req *req, SMB_OFF_T *received)
 {
        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;
index bbdfb75fcd1863d3d0e0aba3a53ff78c0064fa89..120b6c0e293b83c7dc7a25d130608de134b15540 100644 (file)
@@ -1316,10 +1316,10 @@ NTSTATUS cli_trans_recv(struct async_req *req, TALLOC_CTX *mem_ctx,
                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) {
index d8c2b70175ccbfaf1b1408c2d1e3dcb4c3a2b144..3491544175a5bedb1891b89936aa3c0a1ffa34b8 100644 (file)
@@ -1119,6 +1119,27 @@ static NTSTATUS dsgetdcname_rediscover(TALLOC_CTX *mem_ctx,
                                  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.
 
@@ -1136,6 +1157,8 @@ NTSTATUS dsgetdcname(TALLOC_CTX *mem_ctx,
        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",
@@ -1163,7 +1186,6 @@ NTSTATUS dsgetdcname(TALLOC_CTX *mem_ctx,
        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;
        }
 
@@ -1176,12 +1198,27 @@ NTSTATUS dsgetdcname(TALLOC_CTX *mem_ctx,
                                        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;
 }
index 19843383de2bc864a130e57d1384b7e3e41c5117..becee17f655658e714ea4d764871bb0ec19e2f3e 100644 (file)
@@ -633,13 +633,19 @@ smbc_set_credentials(char *workgroup,
                      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);
 }
index aa313f2c05b84479386a493bc8ca8ac6562dcb3a..d12e7487f6325cc85faaccfbc71a65a8b5b73390 100644 (file)
@@ -1193,8 +1193,6 @@ SMBC_mkdir_ctx(SMBCCTX *context,
  * 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,
@@ -1203,7 +1201,8 @@ rmdir_list_fn(const char *mnt,
 {
        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;
         }
 }
 
@@ -1292,8 +1291,7 @@ SMBC_rmdir_ctx(SMBCCTX *context,
 
                         /* 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);
@@ -1305,7 +1303,8 @@ SMBC_rmdir_ctx(SMBCCTX *context,
 
                        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: "
index aeec2553500add9ddeeec13088ba25b176209ab0..5e37871deb10cf4bfec8abe240c8250309ae2f2b 100644 (file)
@@ -248,7 +248,7 @@ SMBC_server(TALLOC_CTX *ctx,
         const char *username_used;
        NTSTATUS status;
 
-       zero_addr(&ss);
+       zero_sockaddr(&ss);
        ZERO_STRUCT(c);
 
        if (server[0] == 0) {
@@ -348,7 +348,7 @@ SMBC_server(TALLOC_CTX *ctx,
 
 again:
 
-       zero_addr(&ss);
+       zero_sockaddr(&ss);
 
        /* have to open a new connection */
        if ((c = cli_initialise()) == NULL) {
@@ -595,7 +595,7 @@ SMBC_attr_server(TALLOC_CTX *ctx,
                         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$", "?????",
index e6eed8289e097593761959043561b80ec0fdd34d..05679570d419d573fcaf4bbed41333c469fd8820 100644 (file)
@@ -34,6 +34,8 @@ bool global_in_nmbd = False;
 ****************************************************************************/
 #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)
 {
@@ -44,6 +46,15 @@ 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;
+}
+
 /****************************************************************************
 ****************************************************************************/
 
@@ -69,7 +80,7 @@ bool saf_store( const char *domain, const char *servername )
                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 ));
@@ -81,6 +92,38 @@ bool saf_store( const char *domain, const char *servername )
        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;
@@ -94,15 +137,22 @@ bool saf_delete( const char *domain )
        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;
 }
 
@@ -124,6 +174,18 @@ char *saf_fetch( const char *domain )
        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 );
@@ -331,7 +393,7 @@ bool name_status_find(const char *q_name,
 
        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);
@@ -526,9 +588,9 @@ static int remove_duplicate_addrs2(struct ip_service *iplist, int count )
                }
 
                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);
                        }
                }
        }
@@ -954,7 +1016,7 @@ NTSTATUS name_resolve_bcast(const char *name,
 
        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 );
@@ -1042,7 +1104,7 @@ NTSTATUS resolve_wins(const char *name,
        /* 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) {
@@ -2098,6 +2160,15 @@ NTSTATUS get_sorted_dc_list( const char *domain,
 
        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;
index 306f720a02ece6e4df9673a531911c6c7efa8567..7b0748f86bbdcf4e7ee52e96aa6e04ea61c47ef8 100644 (file)
@@ -134,7 +134,7 @@ static bool ads_dc_name(const char *domain,
 #ifdef HAVE_ADS
        *dc_ss = ads->ldap.ss;
 #else
-       zero_addr(dc_ss);
+       zero_sockaddr(dc_ss);
 #endif
        ads_destroy(&ads);
 
@@ -217,7 +217,7 @@ bool get_dc_name(const char *domain,
        bool ret;
        bool our_domain = False;
 
-       zero_addr(&dc_ss);
+       zero_sockaddr(&dc_ss);
 
        ret = False;
 
index a81ae9afd553643e3460f20334e873e2d32e5818..795c8bc14ca7984ec50bef5f97ad9aab8ac9bb16 100644 (file)
@@ -388,10 +388,17 @@ void common_free_encryption_state(struct smb_trans_enc_state **pp_es)
 
 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;
index 33717f1bb98c112a3f9a23bbafba6583c5e8fce7..a70f9d20feb69d7921f1ec418e8bf8241aaaed07 100644 (file)
@@ -1067,13 +1067,10 @@ static void add_share_mode_entry(struct share_mode_lock *lck,
 }
 
 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);
 }
 
@@ -1271,22 +1268,6 @@ NTSTATUS can_set_delete_on_close(files_struct *fsp, bool delete_on_close,
        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.... ?).
@@ -1380,31 +1361,6 @@ bool set_delete_on_close(files_struct *fsp, bool delete_on_close, UNIX_USER_TOKE
        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;
index 4e76b97ccf59e69778bb9bc887e1a09b6204ff7a..16599005b93082e4e3ed71dbfb5d8aad1a0e3bbb 100644 (file)
@@ -31,6 +31,8 @@ static int (*gpfs_set_share_fn)(int fd, unsigned int allow, unsigned int deny);
 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,
@@ -43,7 +45,7 @@ bool set_gpfs_sharemode(files_struct *fsp, uint32 access_mask,
        if (!gpfs_share_modes) {
                return True;
        }
-       
+
        if (gpfs_set_share_fn == NULL) {
                return False;
        }
@@ -104,7 +106,7 @@ int set_gpfs_lease(int fd, int leasetype)
        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
@@ -134,6 +136,17 @@ int smbd_gpfs_putacl(char *pathname, int flags, void *acl)
        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)
@@ -142,6 +155,9 @@ static bool init_gpfs_function_lib(void *plibhandle_pointer,
        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;
@@ -187,6 +203,8 @@ void init_gpfs(void)
        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);
@@ -226,6 +244,13 @@ int smbd_gpfs_putacl(char *pathname, int flags, void *acl)
        return -1;
 }
 
+int smbd_gpfs_get_realfilename_path(char *pathname, char *fileamep,
+                                   int *buflen)
+{
+       errno = ENOSYS;
+       return -1;
+}
+
 void init_gpfs(void)
 {
        return;
index 965f39509a500ba45de13ef6dcebf2ae89dce73c..8d0f45abdb28a6d5ead9cacfbbe3f2c0a6b14bfb 100644 (file)
 #ifndef _ONEFS_H
 #define _ONEFS_H
 
+#include "includes.h"
+
+#include <sys/isi_acl.h>
+
 /* OneFS Module smb.conf parameters and defaults */
 
 /**
@@ -34,13 +38,6 @@ enum onefs_acl_wire_format
        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
@@ -49,4 +46,61 @@ const struct enum_list enum_onefs_acl_wire_format[] = {
 #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 */
index 3a692c95ab9d72dec175216d69d64e08864c05d6..5351118a87d1df9f3f85d59c1771fe9308d4ed99 100644 (file)
  * 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;
@@ -514,15 +517,22 @@ onefs_fget_nt_acl(vfs_handle_struct *handle, files_struct *fsp,
                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;
                }
@@ -679,22 +689,18 @@ onefs_get_nt_acl(vfs_handle_struct *handle, const char* name,
 }
 
 /**
- * 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;
@@ -759,10 +765,37 @@ onefs_fset_nt_acl(vfs_handle_struct *handle, files_struct *fsp,
 
        /* 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;
@@ -775,16 +808,24 @@ onefs_fset_nt_acl(vfs_handle_struct *handle, files_struct *fsp,
                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;
        }
@@ -792,10 +833,12 @@ onefs_fset_nt_acl(vfs_handle_struct *handle, files_struct *fsp,
         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:
@@ -803,5 +846,5 @@ out:
                close(fd);
 
        aclu_free_sd(&sd, false);
-       return errno ? map_nt_error_from_unix(errno) : NT_STATUS_OK;
+       return status;
 }
diff --git a/source3/modules/onefs_open.c b/source3/modules/onefs_open.c
new file mode 100644 (file)
index 0000000..d0310d0
--- /dev/null
@@ -0,0 +1,2153 @@
+/*
+ * 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;
+}
diff --git a/source3/modules/onefs_system.c b/source3/modules/onefs_system.c
new file mode 100644 (file)
index 0000000..485e7f5
--- /dev/null
@@ -0,0 +1,214 @@
+/*
+ * 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;
+}
index d972828ba974c6e8f5325e526ccdc6f8e6ea6a72..8fa8f6ae0671bc51b9467dd2b078da702a8cf42b 100644 (file)
@@ -208,6 +208,32 @@ static int vfswrap_open(vfs_handle_struct *handle,  const char *fname,
        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;
@@ -1012,6 +1038,16 @@ static NTSTATUS vfswrap_streaminfo(vfs_handle_struct *handle,
        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)
@@ -1359,6 +1395,8 @@ static vfs_op_tuple vfs_default_ops[] = {
 
        {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,
@@ -1431,6 +1469,8 @@ static vfs_op_tuple vfs_default_ops[] = {
         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. */
 
index 6342c4a14e457c2347b79458d6ab1f5a722d03f3..7970bf264460852b677f67a6772b7529bec52ce9 100644 (file)
@@ -109,6 +109,23 @@ static int smb_full_audit_closedir(vfs_handle_struct *handle,
                          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);
@@ -353,6 +370,8 @@ static vfs_op_tuple audit_op_tuples[] = {
 
        {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,
@@ -1087,6 +1106,51 @@ static int smb_full_audit_open(vfs_handle_struct *handle,
        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;
index fa0b4e97a5c1716a3f7635526b2897abb63072dc..1d7cdba01412c975a8635c176bdce0da0b146a92 100644 (file)
@@ -1,26 +1,24 @@
 /*
    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"
@@ -55,14 +53,14 @@ static int vfs_gpfs_setlease(vfs_handle_struct *handle, files_struct *fsp,
                             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 */
@@ -74,7 +72,64 @@ static int vfs_gpfs_setlease(vfs_handle_struct *handle, files_struct *fsp,
        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)
 {
@@ -301,13 +356,13 @@ static bool gpfsacl_process_smbacl(files_struct *fsp, SMB4ACL_T *smbacl)
                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)
@@ -323,9 +378,9 @@ static bool gpfsacl_process_smbacl(files_struct *fsp, SMB4ACL_T *smbacl)
                                  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)
@@ -478,7 +533,7 @@ static SMB_ACL_T gpfsacl_get_posix_acl(const char *path, gpfs_aclType_t type)
                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));
@@ -497,7 +552,6 @@ static SMB_ACL_T gpfsacl_get_posix_acl(const char *path, gpfs_aclType_t type)
 }
 
 SMB_ACL_T gpfsacl_sys_acl_get_file(vfs_handle_struct *handle,
-                                   
                                    const char *path_p,
                                    SMB_ACL_TYPE_T type)
 {
@@ -557,7 +611,7 @@ static struct gpfs_acl *smb2gpfs_acl(const SMB_ACL_T pacl,
        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));
 
@@ -612,7 +666,6 @@ static struct gpfs_acl *smb2gpfs_acl(const SMB_ACL_T pacl,
 }
 
 int gpfsacl_sys_acl_set_file(vfs_handle_struct *handle,
-                             
                              const char *name,
                              SMB_ACL_TYPE_T type,
                              SMB_ACL_T theacl)
@@ -639,7 +692,6 @@ int gpfsacl_sys_acl_set_fd(vfs_handle_struct *handle,
 }
 
 int gpfsacl_sys_acl_delete_def_file(vfs_handle_struct *handle,
-                                    
                                     const char *path)
 {
        errno = ENOTSUP;
@@ -661,11 +713,11 @@ static uint32 gpfsacl_mask_filter(uint32 aceType, uint32 aceMask, uint32 rwx)
        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;
@@ -678,10 +730,10 @@ static uint32 gpfsacl_mask_filter(uint32 aceType, uint32 aceMask, uint32 rwx)
                        else
                                aceMask &= ~nfs4_bits;
                } /* other ace types are unexpected */
-               
+
                posix_mask <<= 1;
        }
-       
+
        return aceMask;
 }
 
@@ -693,30 +745,30 @@ static int gpfsacl_emu_chmod(const char *path, mode_t mode)
        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,
@@ -735,35 +787,35 @@ static int gpfsacl_emu_chmod(const char *path, mode_t mode)
         */
        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;
@@ -774,11 +826,11 @@ static int vfs_gpfs_chmod(vfs_handle_struct *handle, const char *path, mode_t mo
 {
                 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;
@@ -794,7 +846,7 @@ static int vfs_gpfs_fchmod(vfs_handle_struct *handle, files_struct *fsp, mode_t
 {
                 SMB_STRUCT_STAT st;
                 int rc;
-                
+
                 if (SMB_VFS_NEXT_FSTAT(handle, fsp, &st) != 0) {
                         return -1;
                 }
@@ -813,51 +865,55 @@ static int vfs_gpfs_fchmod(vfs_handle_struct *handle, files_struct *fsp, mode_t
 /* 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 },
@@ -871,7 +927,7 @@ NTSTATUS vfs_gpfs_init(void);
 NTSTATUS vfs_gpfs_init(void)
 {
        init_gpfs();
-       
+
        return smb_register_vfs(SMB_VFS_INTERFACE_VERSION, "gpfs",
                                gpfs_op_tuples);
 }
index 193a986cf6ba1b4bcbb96d1fa6bbfb5df41429f1..b51858fbaec0a83e35fd46cef71fd329dff50570 100644 (file)
@@ -1,4 +1,5 @@
 /*
+ * 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,
index 2a06e3d81bd5b7ae84a6520efeb3eb3d6e6dc6e8..5a339dbf8d4c4914271b2131227bea5adc392ad2 100644 (file)
@@ -56,9 +56,9 @@ static int module_debug;
 
 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;
index 0cb33e9868aa5a2f0a0475a7e454f3997002f03e..c343e24351fa07c0722337374844365b7e6ba867 100644 (file)
 
 #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)
 {
@@ -59,14 +52,7 @@ done:
        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)
 {
index 81b369c87ccf4bf05c9e003cdab5f6e59b3a63fd..5b2ab875f62b168fe6ba9195dbe3b53a9661957b 100644 (file)
 
 #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;
@@ -71,30 +63,14 @@ wbcErr wbcSidToUid(const struct wbcDomainSid *sid, uid_t *puid)
        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;
@@ -127,15 +103,7 @@ done:
        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)
 {
@@ -189,14 +157,7 @@ wbcErr wbcSidToGid(const struct wbcDomainSid *sid, gid_t *pgid)
        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)
@@ -204,15 +165,7 @@ wbcErr wbcQuerySidToGid(const struct wbcDomainSid *sid,
        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;
@@ -245,28 +198,14 @@ done:
        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;
@@ -296,13 +235,7 @@ wbcErr wbcAllocateUid(uid_t *puid)
        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;
@@ -336,13 +269,7 @@ wbcErr wbcAllocateGid(gid_t *pgid)
 #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;
@@ -379,13 +306,7 @@ wbcErr wbcSetUidMapping(uid_t uid, const struct wbcDomainSid *sid)
        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;
@@ -422,13 +343,7 @@ wbcErr wbcSetGidMapping(gid_t gid, const struct wbcDomainSid *sid)
        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;
@@ -465,13 +380,7 @@ wbcErr wbcRemoveUidMapping(uid_t uid, const struct wbcDomainSid *sid)
        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;
@@ -508,12 +417,7 @@ wbcErr wbcRemoveGidMapping(gid_t gid, const struct wbcDomainSid *sid)
        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;
@@ -538,12 +442,7 @@ wbcErr wbcSetUidHwm(uid_t uid_hwm)
        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;
index 401d2ad2c3f6b57d4a4168ed114ddbaac93346e7..92c66436317d2d09b189dddc6fd1cb3d9c0ac14e 100644 (file)
 
 #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)
 {
@@ -305,16 +298,7 @@ done:
        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)
@@ -496,16 +480,7 @@ done:
        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)
 {
@@ -547,15 +522,7 @@ wbcErr wbcCheckTrustCredentials(const char *domain,
        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)
 {
@@ -642,18 +609,7 @@ wbcErr wbcLogoffUserEx(const struct wbcLogoffUserParams *params,
        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)
@@ -693,16 +649,7 @@ wbcErr wbcLogoffUser(const char *username,
        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,
@@ -907,15 +854,7 @@ wbcErr wbcChangeUserPasswordEx(const struct wbcChangePasswordParams *params,
        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)
@@ -940,17 +879,7 @@ done:
        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,
@@ -1096,14 +1025,7 @@ done:
        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)
index d54a5af4fc5b9fd927ac06eb1beef58b8d2de189..cd945996c89968414c576ef4a0f0b354ef2d2917 100644 (file)
@@ -126,15 +126,7 @@ done:
        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;
@@ -167,15 +159,7 @@ wbcErr wbcGetpwnam(const char *name, struct passwd **pwd)
        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;
@@ -206,15 +190,7 @@ wbcErr wbcGetpwuid(uid_t uid, struct passwd **pwd)
        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;
@@ -251,15 +227,7 @@ wbcErr wbcGetgrnam(const char *name, struct group **grp)
        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;
@@ -309,11 +277,7 @@ static uint32_t pw_cache_idx;
  */
 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;
@@ -335,11 +299,7 @@ wbcErr wbcSetpwent(void)
        return wbc_status;
 }
 
-/** @brief Close the passwd iterator
- *
- * @return #wbcErr
- **/
-
+/* Close the passwd iterator */
 wbcErr wbcEndpwent(void)
 {
        wbcErr wbc_status = WBC_ERR_UNKNOWN_FAILURE;
@@ -359,13 +319,7 @@ wbcErr wbcEndpwent(void)
        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;
@@ -425,11 +379,7 @@ static uint32_t gr_cache_idx;
  */
 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;
@@ -451,11 +401,7 @@ wbcErr wbcSetgrent(void)
        return wbc_status;
 }
 
-/** @brief Close the group iterator
- *
- * @return #wbcErr
- **/
-
+/* Close the group iterator */
 wbcErr wbcEndgrent(void)
 {
        wbcErr wbc_status = WBC_ERR_UNKNOWN_FAILURE;
@@ -475,13 +421,7 @@ wbcErr wbcEndgrent(void)
        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;
@@ -531,15 +471,7 @@ done:
        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;
@@ -584,14 +516,7 @@ done:
        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)
index ac929b1dd5276fd5d9530dd6c647e1c94103da82..e2157b960971bd9076e3813707cc8af0256d3e13 100644 (file)
 #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)
 {
@@ -40,22 +33,18 @@ wbcErr wbcSidToString(const struct wbcDomainSid *sid,
        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++) {
@@ -66,25 +55,18 @@ wbcErr wbcSidToString(const struct wbcDomainSid *sid,
                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)
 {
@@ -167,17 +149,7 @@ done:
 
 }
 
-/** @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,
@@ -220,17 +192,7 @@ wbcErr wbcLookupName(const char *domain,
        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,
@@ -314,9 +276,7 @@ wbcErr wbcLookupSid(const struct wbcDomainSid *sid,
        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,
@@ -452,10 +412,7 @@ wbcErr wbcLookupRids(struct wbcDomainSid *dom_sid,
        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,
@@ -534,10 +491,7 @@ wbcErr wbcLookupUserSids(const struct wbcDomainSid *user_sid,
        return wbc_status;
 }
 
-/** @brief Lists Users
- *
- **/
-
+/* Lists Users */
 wbcErr wbcListUsers(const char *domain_name,
                    uint32_t *_num_users,
                    const char ***_users)
@@ -605,10 +559,7 @@ wbcErr wbcListUsers(const char *domain_name,
        return wbc_status;
 }
 
-/** @brief Lists Groups
- *
- **/
-
+/* Lists Groups */
 wbcErr wbcListGroups(const char *domain_name,
                     uint32_t *_num_groups,
                     const char ***_groups)
index b4868748aec9d108e1d1412e3ba4463052f0d5a4..7cfb64b87e9d9749a3b788ff3fd3db3459072612 100644 (file)
@@ -119,16 +119,7 @@ done:
 }
 
 
-/** @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;
@@ -189,14 +180,7 @@ wbcErr wbcDomainInfo(const char *domain, struct wbcDomainInfo **dinfo)
 }
 
 
-/** @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;
@@ -229,14 +213,7 @@ wbcErr wbcResolveWinsByName(const char *name, char **ip)
        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;
@@ -401,14 +378,7 @@ static wbcErr process_domain_info_string(TALLOC_CTX *ctx,
        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;
@@ -493,18 +463,7 @@ wbcErr wbcListTrusts(struct wbcDomainInfo **domains, size_t *num_domains)
        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)
@@ -617,18 +576,7 @@ done:
        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,
@@ -690,19 +638,7 @@ done:
        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,
index c0b7e0675aa4b824255bee89bcbb7611f24f10e2..3a9afad15d4c49ab0286c8e877bf2ed11bd73427 100644 (file)
@@ -123,13 +123,7 @@ const char *wbcErrorString(wbcErr error)
        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)
index cb31360407a6137bcb0a2dcda4d2b7f6b26d3bc9..fcad3ff69bd8fb71204af93b6c30f53a61b9f601 100644 (file)
@@ -486,10 +486,17 @@ struct wbcDomainControllerInfoEx {
        const char *client_site_name;
 };
 
-/*
+/**********************************************************
  * Memory Management
- */
+ **********************************************************/
 
+/**
+ * @brief Free library allocated memory
+ *
+ * @param *p Pointer to free
+ *
+ * @return void
+ **/
 void wbcFreeMemory(void*);
 
 
@@ -497,9 +504,25 @@ 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);
 
@@ -507,32 +530,76 @@ wbcErr wbcStringToSid(const char *sid_string,
  * 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,
@@ -540,15 +607,24 @@ wbcErr wbcLookupRids(struct wbcDomainSid *dom_sid,
                     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);
@@ -558,88 +634,324 @@ wbcErr wbcGetDisplayName(const struct wbcDomainSid *sid,
                         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);
 
@@ -665,66 +977,206 @@ wbcErr wbcListTrusts(struct wbcDomainInfo **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,
index be22ff3f5e4e62199103e46bc1cd928cd990c9eb..d049bdb1e7d538bce21ac1628be6282c0502f337 100644 (file)
@@ -93,8 +93,8 @@ static const char *_pam_error_code_str(int err)
                        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:
index d14cfe94b72a0619756a77ede3dc049dbefa79bc..c85e210cc04de2fd999fc2085e3d0a12fc66aaee 100644 (file)
@@ -146,8 +146,8 @@ static bool parse_mapping_arg(char *arg, int *id, char **sid)
                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;
index 217957ab37da6343f3e8a05cb0a997905de727a5..9a55067b017d0135d831340d5e4ac86da1fbcee9 100644 (file)
@@ -425,6 +425,7 @@ struct service {
        bool bHideUnReadable;
        bool bHideUnWriteableFiles;
        bool bBrowseable;
+       bool bAccessBasedShareEnum;
        bool bAvailable;
        bool bRead_only;
        bool bNo_set_dir;
@@ -568,6 +569,7 @@ static struct service sDefault = {
        False,                  /* bHideUnReadable */
        False,                  /* bHideUnWriteableFiles */
        True,                   /* bBrowseable */
+       False,                  /* bAccessBasedShareEnum */
        True,                   /* bAvailable */
        True,                   /* bRead_only */
        True,                   /* bNo_set_dir */
@@ -669,6 +671,8 @@ static void set_server_role(void);
 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"},
@@ -3303,6 +3307,15 @@ static struct parm_struct parm_table[] = {
                .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,
@@ -4573,9 +4586,56 @@ static void init_printer_values(struct service *pService)
 }
 
 /**
- * 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;
 
@@ -4588,27 +4648,22 @@ static void free_parameter(int snum, struct parm_struct parm)
        } 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]);
        }
 }
 
@@ -4617,7 +4672,7 @@ static void free_parameters(int snum)
  */
 static void free_global_parameters(void)
 {
-       free_parameters(GLOBAL_SECTION_SNUM);
+       free_parameters_by_snum(GLOBAL_SECTION_SNUM);
 }
 
 /***************************************************************************
@@ -5063,7 +5118,6 @@ FN_GLOBAL_STRING(lp_remote_announce, &Globals.szRemoteAnnounce)
 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)
@@ -5332,6 +5386,7 @@ FN_LOCAL_BOOL(lp_hide_special_files, bHideSpecialFiles)
 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)
@@ -5728,7 +5783,7 @@ static void free_service(struct service *pservice)
                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);
@@ -5926,6 +5981,7 @@ bool lp_add_home(const char *pszHomename, int iDefaultService,
        /* set the browseable flag from the global default */
 
        ServicePtrs[i]->bBrowseable = sDefault.bBrowseable;
+       ServicePtrs[i]->bAccessBasedShareEnum = sDefault.bAccessBasedShareEnum;
 
        ServicePtrs[i]->autoloaded = True;
 
@@ -7154,14 +7210,24 @@ static void init_copymap(struct service *pservice)
                        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);
 }
 
 /***************************************************************************
@@ -7213,7 +7279,7 @@ bool lp_do_parameter(int snum, const char *pszParmName, const char *pszParmValue
                               pszParmName));
                        return (True);
                }
-               parm_ptr = lp_local_ptr(snum, def_ptr);
+               parm_ptr = lp_local_ptr_by_snum(snum, def_ptr);
        }
 
        if (snum >= 0) {
@@ -9468,3 +9534,18 @@ int lp_min_receive_file_size(void)
        }
        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;
+}
index ddbb53a9b9719b76e1514c60f4731293e6755857..95e9a01ba317c0c2e7df67a95412413fb4dc92dc 100644 (file)
@@ -2014,7 +2014,7 @@ static NTSTATUS ldapsam_rename_sam_account(struct pdb_methods *my_methods,
                                        newname_lower,
                                        true,
                                        true);
-       if (rename_script) {
+       if (!rename_script) {
                return NT_STATUS_NO_MEMORY;
        }
        rename_script = realloc_string_sub2(rename_script,
index 244b3aee03e9f34cfc2e8283539d1b8cc8c1ef1d..ba1fb4352c332455d07ce7f326b36b24252bd77d 100644 (file)
@@ -1344,14 +1344,24 @@ static int file_version_is_newer(connection_struct *conn, fstring new_file, fstr
                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 */
@@ -1385,14 +1395,24 @@ static int file_version_is_newer(connection_struct *conn, fstring new_file, fstr
                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 */
@@ -1528,14 +1548,24 @@ static uint32 get_correct_cversion(struct pipes_struct *p,
                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",
index 3c8c60f0e07204bc29b26ec7fcc53365b2fbaacb..ba88f8ee566fe5f19559bed78f9a115e083bbbee 100644 (file)
@@ -335,7 +335,7 @@ static struct printjob *print_job_find(const char *sharename, uint32 jobid)
        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 ));
 
@@ -350,19 +350,19 @@ static struct printjob *print_job_find(const char *sharename, uint32 jobid)
                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",
@@ -1394,7 +1394,19 @@ main thread of the background lpq updater
 ****************************************************************************/
 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) {
@@ -1406,6 +1418,9 @@ void start_background_queue(void)
                /* 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");
@@ -1420,13 +1435,23 @@ void start_background_queue(void)
 
                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);
                         }
@@ -1437,9 +1462,9 @@ void start_background_queue(void)
                                 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());
 
@@ -1449,6 +1474,8 @@ void start_background_queue(void)
                                                   0);
                }
        }
+
+       close(pause_pipe[1]);
 }
 
 /****************************************************************************
index f0c2f6709efa8a0622fd41fc45737058b4089567..a2d334230dd34df8c86e4c69f93114c167a31554 100644 (file)
@@ -2979,6 +2979,9 @@ NTSTATUS cli_rpc_pipe_open_noauth(struct cli_state *cli,
 
        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);
@@ -3443,6 +3446,10 @@ NTSTATUS cli_get_session_key(TALLOC_CTX *mem_ctx,
                                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;
        }
index 6a9e6d16828b6eb1a2d4e10ff52f652a28e292b2..a6e4ad8a331740a93143805b2d60a2cbc9979751 100644 (file)
@@ -341,7 +341,8 @@ void init_samr_user_info16(struct samr_UserInfo16 *r,
 
 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"));
 
@@ -349,6 +350,7 @@ void init_samr_user_info18(struct samr_UserInfo18 *r,
                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;
 }
 
 /*******************************************************************
@@ -391,8 +393,8 @@ void init_samr_user_info21(struct samr_UserInfo21 *r,
                           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;
@@ -420,8 +422,8 @@ void init_samr_user_info21(struct samr_UserInfo21 *r,
        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;
 }
 
@@ -455,8 +457,8 @@ void init_samr_user_info23(struct samr_UserInfo23 *r,
                           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)
 {
@@ -487,8 +489,8 @@ void init_samr_user_info23(struct samr_UserInfo23 *r,
                              logon_count,
                              country_code,
                              code_page,
-                             nt_password_set,
                              lm_password_set,
+                             nt_password_set,
                              password_expired);
 
        r->password = *pwd_buf;
@@ -538,8 +540,8 @@ void init_samr_user_info25(struct samr_UserInfo25 *r,
                           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)
 {
@@ -572,8 +574,8 @@ void init_samr_user_info25(struct samr_UserInfo25 *r,
                              logon_count,
                              country_code,
                              code_page,
-                             nt_password_set,
                              lm_password_set,
+                             nt_password_set,
                              password_expired);
 
        r->password = *pwd_buf;
index 45acd3ed4857d20647e3f41075a59dd65f2a83ab..038690d0f1945c62f169f2870238cbbf237815f0 100644 (file)
@@ -1402,10 +1402,10 @@ NTSTATUS _netr_LogonSamLogonWithFlags(pipes_struct *p,
 /****************************************************************
 ****************************************************************/
 
-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;
 }
 
index cbcd4de60c37efcf279ecaf0daca4c9aa70d6441..342f432c4ef3d058c65766dacf2662e44e9ee86b 100644 (file)
@@ -2079,7 +2079,7 @@ NTSTATUS _samr_LookupRids(pipes_struct *p,
                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;
@@ -2430,8 +2430,10 @@ static NTSTATUS get_user_info_18(pipes_struct *p,
                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);
 
@@ -2607,8 +2609,8 @@ static NTSTATUS get_user_info_21(TALLOC_CTX *mem_ctx,
                              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;
@@ -2634,7 +2636,7 @@ NTSTATUS _samr_QueryUserInfo(pipes_struct *p,
                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;
@@ -3699,29 +3701,62 @@ static bool set_user_info_16(struct samr_UserInfo16 *id16,
  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);
 }
 
 /*******************************************************************
@@ -3856,8 +3891,8 @@ static NTSTATUS set_user_info_23(TALLOC_CTX *mem_ctx,
                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)));
@@ -4178,9 +4213,10 @@ NTSTATUS _samr_SetUserInfo(pipes_struct *p,
 
                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:
index bf3669022de4af2349b8cf88c918e18c01fd8e76..15af963c4c68191e5f572516c36c3ea46cd30c45 100644 (file)
@@ -492,6 +492,19 @@ static bool is_hidden_share(int snum)
        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.
  ********************************************************************/
@@ -509,6 +522,7 @@ static WERROR init_srv_share_info_ctr(pipes_struct *p,
        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;
 
@@ -521,15 +535,21 @@ static WERROR init_srv_share_info_ctr(pipes_struct *p,
        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;
@@ -547,7 +567,7 @@ static WERROR init_srv_share_info_ctr(pipes_struct *p,
                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);
                        }
@@ -564,7 +584,7 @@ static WERROR init_srv_share_info_ctr(pipes_struct *p,
                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);
                        }
@@ -581,7 +601,7 @@ static WERROR init_srv_share_info_ctr(pipes_struct *p,
                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);
                        }
@@ -598,7 +618,7 @@ static WERROR init_srv_share_info_ctr(pipes_struct *p,
                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);
                        }
@@ -615,7 +635,7 @@ static WERROR init_srv_share_info_ctr(pipes_struct *p,
                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);
                        }
@@ -632,7 +652,7 @@ static WERROR init_srv_share_info_ctr(pipes_struct *p,
                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);
                        }
@@ -649,7 +669,7 @@ static WERROR init_srv_share_info_ctr(pipes_struct *p,
                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);
                        }
@@ -666,7 +686,7 @@ static WERROR init_srv_share_info_ctr(pipes_struct *p,
                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);
                        }
@@ -683,7 +703,7 @@ static WERROR init_srv_share_info_ctr(pipes_struct *p,
                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);
                        }
@@ -700,7 +720,7 @@ static WERROR init_srv_share_info_ctr(pipes_struct *p,
                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);
                        }
@@ -2048,11 +2068,12 @@ WERROR _srvsvc_NetGetFileSecurity(pipes_struct *p,
                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*/
@@ -2162,11 +2183,12 @@ WERROR _srvsvc_NetSetFileSecurity(pipes_struct *p,
                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*/
index eaf5adbfa598f94b15dd2e1023e8917a14e10699..426e7e97448df7bd560989a808dcc5fc10d6c558 100644 (file)
@@ -219,9 +219,8 @@ static void display_sam_dom_info_13(struct samr_DomInfo13 *info13)
        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)
@@ -264,6 +263,35 @@ static void display_sam_info_5(struct samr_DispEntryAscii *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
  */
@@ -649,21 +677,11 @@ static NTSTATUS cmd_samr_query_useraliases(struct rpc_pipe_client *cli,
        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;
@@ -955,20 +973,11 @@ static NTSTATUS cmd_samr_enum_als_groups(struct rpc_pipe_client *cli,
 
        /* 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;
@@ -1107,20 +1116,11 @@ static NTSTATUS cmd_samr_query_aliasmem(struct rpc_pipe_client *cli,
 
        /* 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;
@@ -1197,25 +1197,11 @@ static NTSTATUS cmd_samr_query_aliasinfo(struct rpc_pipe_client *cli,
 
        /* 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;
@@ -1294,20 +1280,11 @@ static NTSTATUS cmd_samr_delete_alias(struct rpc_pipe_client *cli,
 
        /* 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;
@@ -1890,20 +1867,11 @@ static NTSTATUS cmd_samr_lookup_names(struct rpc_pipe_client *cli,
        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;
@@ -1973,20 +1941,11 @@ static NTSTATUS cmd_samr_lookup_rids(struct rpc_pipe_client *cli,
        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;
@@ -2658,6 +2617,241 @@ static NTSTATUS cmd_samr_chgpasswd3(struct rpc_pipe_client *cli,
        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)
@@ -2759,5 +2953,7 @@ struct cmd_set samr_commands[] = {
        { "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 }
 };
index 26a73203b910c79228c80f69ff3172585c4731ab..038acfbcdc89fe3d456b0085714df7633df69422 100644 (file)
@@ -2641,6 +2641,8 @@ done:
 /****************************************************************************
 ****************************************************************************/
 
+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)
@@ -2671,11 +2673,11 @@ static WERROR cmd_spoolss_printercmp(struct rpc_pipe_client *cli,
        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;
index 61d8d7c4851e2a64653a72a6ba60d765ea980776..dc125007e3a0cc8f3898aed4c3aa91da8905498a 100644 (file)
@@ -28,6 +28,8 @@ static enum pipe_auth_type pipe_default_auth_type = PIPE_AUTH_TYPE_NONE;
 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
@@ -560,6 +562,7 @@ static void add_command_set(struct cmd_set *cmd_set)
  * @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)
 {
@@ -589,8 +592,8 @@ static NTSTATUS do_cmd(struct cli_state *cli,
                                        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:
@@ -598,8 +601,8 @@ static NTSTATUS do_cmd(struct cli_state *cli,
                                        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:
@@ -687,7 +690,8 @@ static NTSTATUS do_cmd(struct cli_state *cli,
  *
  * @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;
@@ -713,7 +717,8 @@ static NTSTATUS process_cmd(struct cli_state *cli, char *cmd)
                                        goto out_free;
                                }
 
-                               result = do_cmd(cli, temp_set, argc, argv);
+                               result = do_cmd(cli, auth_info, temp_set,
+                                               argc, argv);
 
                                goto out_free;
                        }
@@ -776,7 +781,7 @@ out_free:
 
        load_case_tables();
 
-       zero_addr(&server_ss);
+       zero_sockaddr(&server_ss);
 
        setlinebuf(stdout);
 
@@ -784,6 +789,12 @@ out_free:
           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,
@@ -850,16 +861,16 @@ out_free:
         * 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);
                }
        }
 
@@ -868,7 +879,7 @@ out_free:
                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;
        }
@@ -877,11 +888,12 @@ out_free:
        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)));
@@ -889,10 +901,10 @@ out_free:
                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)) {
@@ -927,7 +939,7 @@ out_free:
                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);
                 }
@@ -946,7 +958,7 @@ out_free:
                        break;
 
                if (line[0] != '\n')
-                       process_cmd(cli, line);
+                       process_cmd(rpcclient_auth_info, cli, line);
                SAFE_FREE(line);
        }
 
index 032a3d9c35ace9059b084336355c1bc64eda868a..38d1ec2e192f3b4e09797246fcc0fbec64d82c98 100644 (file)
@@ -161,9 +161,11 @@ modules:: $(PLUGINS)
 
 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) \
index ce918ab6a32554bb090be6c9d048b738ca18ddcb..f91f1fcf8fe143391d5d042ac91bcad814400552 100644 (file)
@@ -694,6 +694,13 @@ static NTSTATUS close_directory(struct smb_request *req, files_struct *fsp,
                        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.
         */
index 954cd5a4d27c0f102bd80ec8add71fc9d50e94ca..de0748236966020fdbab46e2341659652667ccb8 100644 (file)
@@ -353,7 +353,7 @@ uint32 dos_mode_msdfs(connection_struct *conn, const char *path,SMB_STRUCT_STAT
  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;
 
index 392264bfc0e7fc8db7bf34b06c8891297854d4c2..d240ecfa647ca8dfc34bb68772b76b3606cf6e9e 100644 (file)
@@ -26,8 +26,6 @@
 
 #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,
@@ -433,8 +431,9 @@ NTSTATUS unix_convert(TALLOC_CTX *ctx,
                         */
 
                        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) {
@@ -768,15 +767,15 @@ static bool fname_equal(const char *name1, const char *name2,
  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);
 
@@ -791,7 +790,7 @@ static bool scan_directory(connection_struct *conn, const char *path,
         */
        if (!mangled && !(conn->fs_capabilities & FILE_CASE_SENSITIVE_SEARCH)) {
                errno = ENOENT;
-               return False;
+               return -1;
        }
 
        /*
@@ -810,10 +809,9 @@ static bool scan_directory(connection_struct *conn, const char *path,
         */
 
        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;
@@ -824,7 +822,7 @@ static bool scan_directory(connection_struct *conn, const char *path,
        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 */
@@ -850,21 +848,21 @@ static bool scan_directory(connection_struct *conn, const char *path,
                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,
index 777073e6ba7d1296d3cee776caf2220bd35fc611..24a14a8c1b8f1f363fcc3804fdbba90915e05fe6 100644 (file)
@@ -474,10 +474,24 @@ void reply_ntcreate_and_X(struct smb_request *req)
                        ? 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)) {
@@ -932,10 +946,24 @@ static void call_nt_transact_create(connection_struct *conn,
                        ? 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)) {
@@ -1158,27 +1186,49 @@ static NTSTATUS copy_internals(TALLOC_CTX *ctx,
        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);
index f98415ee33f350c8831a3e3f0e84009b2f14c2d2..d22eda2bb5490b8bd9afa141ebdbce40a22421f7 100644 (file)
@@ -29,6 +29,23 @@ struct deferred_open_record {
        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.
 ****************************************************************************/
@@ -142,7 +159,7 @@ NTSTATUS fd_close(files_struct *fsp)
  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)
 {
@@ -173,7 +190,7 @@ static void change_file_owner_to_parent(connection_struct *conn,
                  (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)
@@ -482,7 +499,7 @@ static NTSTATUS open_file(files_struct *fsp,
  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") ||
@@ -644,7 +661,7 @@ static void validate_my_share_entries(int num,
 }
 #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|
@@ -845,8 +862,8 @@ static bool delay_for_oplocks(struct share_mode_lock *lck,
        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);
@@ -911,13 +928,13 @@ static void defer_open(struct share_mode_lock *lck,
  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;
 
@@ -961,7 +978,7 @@ static bool open_match_attributes(connection_struct *conn,
  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,
@@ -1031,7 +1048,7 @@ bool map_open_params_to_ntcreate(const char *fname, int deny_mode, int open_func
        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",
@@ -1260,7 +1277,7 @@ static NTSTATUS calculate_access_mask(connection_struct *conn,
  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,
@@ -1964,13 +1981,11 @@ static NTSTATUS open_file_ntcreate_internal(connection_struct *conn,
        }
 
        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)) {
@@ -2056,55 +2071,6 @@ static NTSTATUS open_file_ntcreate_internal(connection_struct *conn,
        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.
@@ -2126,10 +2092,25 @@ NTSTATUS open_file_fchmod(struct smb_request *req, connection_struct *conn,
                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.
@@ -2250,17 +2231,17 @@ static NTSTATUS mkdir_internal(connection_struct *conn,
  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;
@@ -2438,8 +2419,7 @@ NTSTATUS open_directory(connection_struct *conn,
                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. */
@@ -2476,14 +2456,24 @@ NTSTATUS create_directory(connection_struct *conn, struct smb_request *req, cons
 
        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);
@@ -2569,8 +2559,8 @@ static int restore_case_semantics(struct case_semantics_state *state)
 /****************************************************************************
  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;
 
@@ -2708,22 +2698,22 @@ static NTSTATUS open_streams_for_delete(connection_struct *conn,
  * 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;
@@ -2868,7 +2858,8 @@ NTSTATUS create_file_unixpath(connection_struct *conn,
                }
 
                /* 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;
                }
@@ -2890,41 +2881,35 @@ NTSTATUS create_file_unixpath(connection_struct *conn,
                 * 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)) {
@@ -2975,21 +2960,10 @@ NTSTATUS create_file_unixpath(connection_struct *conn,
        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;
 
@@ -3082,23 +3056,114 @@ NTSTATUS create_file_unixpath(connection_struct *conn,
        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;
@@ -3111,7 +3176,7 @@ NTSTATUS create_file(connection_struct *conn,
                  "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,
@@ -3119,94 +3184,22 @@ NTSTATUS create_file(connection_struct *conn,
                  (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;
        }
 
        /*
@@ -3272,10 +3265,9 @@ NTSTATUS create_file(connection_struct *conn,
 
        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);
@@ -3286,6 +3278,15 @@ NTSTATUS create_file(connection_struct *conn,
                        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);
index 261f12cb08195e2f33160769c8e39f194f4db8d6..faabdd795bf820ca954c8a232431dacd4a647064 100644 (file)
@@ -43,7 +43,6 @@ void reply_open_pipe_and_X(connection_struct *conn, struct smb_request *req)
        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;
 
@@ -96,17 +95,12 @@ void reply_open_pipe_and_X(connection_struct *conn, struct smb_request *req)
        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;
index 97fd3b2bbe9aa26f374c0ec5a41945dab5fcf017..b184279259d37840632160fca688993430b991d3 100644 (file)
@@ -3248,17 +3248,24 @@ NTSTATUS append_parent_acl(files_struct *fsp,
                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;
index 11c713ab4ad14df4bc4e59ce9ab71ef235b63472..9f7a1896b83f9be20ecbbd481671814b57e513a1 100644 (file)
@@ -1630,22 +1630,24 @@ void reply_open(struct smb_request *req)
                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)) {
@@ -1774,22 +1776,24 @@ void reply_open_and_X(struct smb_request *req)
                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);
@@ -1972,22 +1976,24 @@ void reply_mknew(struct smb_request *req)
                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);
@@ -2117,14 +2123,24 @@ void reply_ctemp(struct smb_request *req)
        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);
@@ -2309,10 +2325,12 @@ static NTSTATUS do_unlink(connection_struct *conn,
        /* 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*/
@@ -2327,7 +2345,7 @@ static NTSTATUS do_unlink(connection_struct *conn,
                 &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;
        }
@@ -5565,8 +5583,6 @@ NTSTATUS rename_internals_fsp(connection_struct *conn,
                 * 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);
 
@@ -5623,6 +5639,7 @@ NTSTATUS rename_internals(TALLOC_CTX *ctx,
        struct smb_Dir *dir_hnd = NULL;
        const char *dname;
        long offset = 0;
+       int create_options = 0;
 
        ZERO_STRUCT(sbuf1);
        ZERO_STRUCT(sbuf2);
@@ -5736,17 +5753,29 @@ NTSTATUS rename_internals(TALLOC_CTX *ctx,
                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",
@@ -5840,20 +5869,34 @@ NTSTATUS rename_internals(TALLOC_CTX *ctx,
                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;
@@ -6044,14 +6087,24 @@ NTSTATUS copy_file(TALLOC_CTX *ctx,
                }
        }
 
-       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);
@@ -6063,14 +6116,24 @@ NTSTATUS copy_file(TALLOC_CTX *ctx,
                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);
 
index fff05a3aac75a6ce38e785725138388f3fa8fabc..f7bdb58288916b3b9875f0b6d8d4d61f035d8c45 100644 (file)
@@ -469,9 +469,8 @@ static bool open_sockets_smbd(bool is_daemon, bool interactive, const char *smb_
                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
index 24a201013ad5e2c102f9f71638c7465fb4de7b13..a24843ff64c8e9b22c4cb159f9ef733dab3bde16 100644 (file)
@@ -915,7 +915,7 @@ static void reply_spnego_auth(struct smb_request *req,
                        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);
index 9dbacc2998366f3756188d54d67ffa8e93c71b2f..c72251b5a7761367b4f1cf8a726ca5741b2ca6cc 100644 (file)
@@ -192,7 +192,7 @@ bool token_contains_name_in_list(const char *username,
  */
 
 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,
@@ -252,7 +252,7 @@ bool user_ok_token(const char *username, const char *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);
index 7b051d389f98cd76f8c2159ddc281e79c2528297..606e65679549ea5b6a13f40a0e35cd69e0f32db7 100644 (file)
@@ -1006,22 +1006,24 @@ static void call_trans2open(connection_struct *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)) {
@@ -1093,15 +1095,13 @@ static bool exact_match(connection_struct *conn,
 {
        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;
 }
 
 /****************************************************************************
@@ -5057,15 +5057,26 @@ static NTSTATUS smb_set_file_size(connection_struct *conn,
                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;
@@ -5826,14 +5837,25 @@ static NTSTATUS smb_set_file_allocation_info(connection_struct *conn,
 
        /* 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. */
@@ -6257,16 +6279,24 @@ static NTSTATUS smb_posix_mkdir(connection_struct *conn,
        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);
@@ -6423,17 +6453,25 @@ static NTSTATUS smb_posix_open(connection_struct *conn,
                (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;
@@ -6518,6 +6556,7 @@ static NTSTATUS smb_posix_unlink(connection_struct *conn,
        uint16 flags = 0;
        char del = 1;
        int info = 0;
+       int create_options = 0;
        int i;
        struct share_mode_lock *lck = NULL;
 
@@ -6541,30 +6580,28 @@ static NTSTATUS smb_posix_unlink(connection_struct *conn,
                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;
index ca7df264e2fb6f719fa77a57991cb8302b01fb13..5a4b8a52e791bb8a65a802bb765bba72b13c31fb 100644 (file)
@@ -61,22 +61,27 @@ bool change_to_guest(void)
  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);
+                       }
                }
        }
 
@@ -112,33 +117,36 @@ static bool check_user_ok(connection_struct *conn, uint16_t vuid,
                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);
 }
@@ -172,6 +180,7 @@ void conn_clear_vuid_cache(connection_struct *conn, uint16_t vuid)
 
 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;
@@ -207,13 +216,15 @@ bool change_to_user(connection_struct *conn, uint16 vuid)
 
        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;
        }
 
        /*
index b58cb3deec84e5e04d5a448dd4f59f8a9208fe99..247c9abcc18463fe0ea3623498bed35e24004b4d 100644 (file)
@@ -176,7 +176,7 @@ static struct cli_state *connect_one(char *share, int snum)
 
        server_n = server;
 
-       zero_addr(&ss);
+       zero_sockaddr(&ss);
 
        slprintf(myname,sizeof(myname), "lock-%lu-%u", (unsigned long)getpid(), count++);
 
@@ -184,7 +184,7 @@ static struct cli_state *connect_one(char *share, int snum)
        make_nmb_name(&called , server, 0x20);
 
  again:
-        zero_addr(&ss);
+        zero_sockaddr(&ss);
 
        /* have to open a new connection */
        if (!(c=cli_initialise())) {
index c5612fefaa93fcb71b65f98eec0a7e7d5d6357d4..8fea15877f14922a3008fc579640fcd2eb443f45 100644 (file)
@@ -178,13 +178,13 @@ static struct cli_state *connect_one(char *share)
 
        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())) {
index 603426b67cffad9d30385b8cece278095960e66e..382b3b65ebc4aeaf372ce72b8f7460f6c0571816 100644 (file)
@@ -158,7 +158,7 @@ static struct cli_state *open_nbt_connection(void)
        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);
index bab2f41d1171df0cedadd883fea0ec4823929ab8..f1a5be1876b381a420d0efdc9b20a0b6b9002cf0 100644 (file)
@@ -662,7 +662,7 @@ static struct functable net_func[] = {
        };
 
 
-       zero_addr(&c->opt_dest_ip);
+       zero_sockaddr(&c->opt_dest_ip);
 
        load_case_tables();
 
index b03fefe14a1362e15c85d08441bc63e84fd8bec5..27d534665c4c0f1d91cb29c2fb10c010dc6acb58 100644 (file)
@@ -293,7 +293,7 @@ retry:
 
                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);
index 3c8ce0326e66bc4ed8dbd3e09ec07aee7c475228..f69d3f9012eb529b2770f29830a9ded93b94c0a5 100644 (file)
@@ -5250,7 +5250,8 @@ static NTSTATUS rpc_trustdom_add_internals(struct net_context *c,
                                      notime, notime, notime,
                                      NULL, NULL, NULL, NULL, NULL,
                                      NULL, NULL, NULL, NULL, &parameters,
-                                     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);
index 10b55014c227c2b05d0a7c078fec7a873bfe7d8b..f07b5011c8ac10c09d9f9c29f7e87420b8502f61 100644 (file)
@@ -735,6 +735,8 @@ static int owner_set(struct cli_state *cli, enum chown_mode change_mode,
 
        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);
@@ -949,50 +951,51 @@ static int cacl_set(struct cli_state *cli, char *filename,
 /*****************************************************
  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)) {
@@ -1038,6 +1041,7 @@ static struct cli_state *connect_one(const char *server, const char *share)
        TALLOC_CTX *frame = talloc_stackframe();
        const char *owner_username = "";
        char *server;
+       struct user_auth_info *auth_info;
 
        load_case_tables();
 
@@ -1053,6 +1057,12 @@ static struct cli_state *connect_one(const char *server, const char *share)
        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: "
@@ -1129,7 +1139,7 @@ static struct cli_state *connect_one(const char *server, const char *share)
        share++;
 
        if (!test_args) {
-               cli = connect_one(server, share);
+               cli = connect_one(auth_info, server, share);
                if (!cli) {
                        exit(EXIT_FAILED);
                }
index b769c2bce0bd341d39ef4dc15ed95b0a28ee63ff..a95394b125ced5349f90e261175cfa94bf6bce6a 100644 (file)
@@ -37,6 +37,7 @@ static struct cli_state *cli_ipc;
 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);
 
@@ -371,44 +372,44 @@ 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)) {
@@ -475,6 +476,12 @@ FSQFLAGS:QUOTA_ENABLED/DENY_DISK/LOG_SOFTLIMIT/LOG_HARD_LIMIT", "SETSTRING" },
        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");
@@ -537,7 +544,8 @@ FSQFLAGS:QUOTA_ENABLED/DENY_DISK/LOG_SOFTLIMIT/LOG_HARD_LIMIT", "SETSTRING" },
                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);
                }
index d274e0929909b6fdec2e677514dddaf0da31cc16..1e22a402013491fa7e3851173b1059b93b1b1490 100644 (file)
@@ -212,7 +212,7 @@ static void start_filter(char *desthost)
 
        /* 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) {
index 9fc02bac13a07678e36040dccce05f76ba9ccdf6..6c69300e85b205c6125749f6a8a850c5d5600f09 100644 (file)
@@ -272,7 +272,7 @@ static bool print_tree(struct user_auth_info *user_info)
  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" },
@@ -293,6 +293,12 @@ static bool print_tree(struct user_auth_info *user_info)
 
        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);
@@ -303,26 +309,22 @@ static bool print_tree(struct user_auth_info *user_info)
 
        /* 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;
        }
index 27c4b54e2fd1a6e7a6b80b1850278b3606118f59..b729e3b24138e96d84fa9bff6c3919142442c217 100644 (file)
@@ -232,7 +232,7 @@ static void show_parameter(int snum, struct parm_struct *parm)
        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,
@@ -375,7 +375,7 @@ static void show_parameters(int snum, int allparameters, unsigned int parm_filte
                                        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) {
index 82af55800ff901b9f4e35275e3b345ea63226750..0ecf11d0e5e3f236428b5bbfcfd2b1ae73376b38 100644 (file)
@@ -7,17 +7,17 @@
    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/>.
 */
@@ -103,9 +103,9 @@ static void winbindd_status(void)
        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) {
@@ -157,7 +157,7 @@ static void terminate(bool is_parent)
        }
 
        idmap_close();
-       
+
        trustdom_cache_shutdown();
 
 #if 0
@@ -173,35 +173,35 @@ static void terminate(bool is_parent)
        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);
 }
 
@@ -224,7 +224,7 @@ static void msg_shutdown(struct messaging_context *msg,
                         struct server_id server_id,
                         DATA_BLOB *data)
 {
-       do_sigterm = True;
+       do_sigterm = 1;
 }
 
 
@@ -288,7 +288,7 @@ static struct winbindd_dispatch_table {
        void (*fn)(struct winbindd_cli_state *state);
        const char *winbindd_cmd_name;
 } dispatch_table[] = {
-       
+
        /* User functions */
 
        { WINBINDD_GETPWNAM, winbindd_getpwnam, "GETPWNAM" },
@@ -685,9 +685,9 @@ static void new_connection(int listen_sock, bool privileged)
        struct winbindd_cli_state *state;
        socklen_t len;
        int sock;
-       
+
        /* Accept connection */
-       
+
        len = sizeof(sunaddr);
 
        do {
@@ -696,16 +696,16 @@ static void new_connection(int listen_sock, bool privileged)
 
        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);        
@@ -720,7 +720,7 @@ static void new_connection(int listen_sock, bool privileged)
                         request_len_recv, state);
 
        /* Add to connection list */
-       
+
        winbindd_add_client(state);
 }
 
@@ -731,7 +731,7 @@ static void remove_client(struct winbindd_cli_state *state)
        char c = 0;
 
        /* It's a dead client - hold a funeral */
-       
+
        if (state == NULL) {
                return;
        }
@@ -740,14 +740,14 @@ static void remove_client(struct winbindd_cli_state *state)
        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 */
 
@@ -756,9 +756,9 @@ static void remove_client(struct winbindd_cli_state *state)
        TALLOC_FREE(state->mem_ctx);
 
        remove_fd_event(&state->fd_event);
-               
+
        /* Remove from list and free */
-               
+
        winbindd_remove_client(state);
        TALLOC_FREE(state);
 }
@@ -802,7 +802,7 @@ void winbind_check_sighup(const char *lfile)
                flush_caches();
                reload_services_file(lfile);
 
-               do_sighup = False;
+               do_sighup = 0;
        }
 }
 
@@ -893,7 +893,7 @@ static void process_loop(void)
        }
 
        /* Call select */
-        
+
        selret = sys_select(maxfd + 1, &r_fds, &w_fds, NULL, &timeout);
 
        if (selret == 0) {
@@ -944,7 +944,7 @@ static void process_loop(void)
                /* 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) {
@@ -977,13 +977,13 @@ static void process_loop(void)
 
        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);
@@ -1159,7 +1159,7 @@ int main(int argc, char **argv, char **envp)
        BlockSignals(False, SIGCHLD);
 
        /* Setup signal handlers */
-       
+
        CatchSignal(SIGINT, termination_handler);      /* Exit on these sigs */
        CatchSignal(SIGQUIT, termination_handler);
        CatchSignal(SIGTERM, termination_handler);
@@ -1232,13 +1232,13 @@ int main(int argc, char **argv, char **envp)
        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);
index 7500bcbe5b29ffd350bded087f4b897118d8d711..7b93f963b4be903b874bf3fe1756bbca64e969d5 100644 (file)
@@ -5,7 +5,7 @@
 
    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/>.
 */
@@ -166,7 +166,7 @@ static void lookupsid_recv(TALLOC_CTX *mem_ctx, bool success,
                /* 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);
@@ -491,7 +491,7 @@ void winbindd_listent_async(TALLOC_CTX *mem_ctx,
        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)
 {
@@ -509,7 +509,7 @@ enum winbindd_result winbindd_dual_list_users(struct winbindd_domain *domain,
        methods = domain->methods;
        status = methods->query_user_list(domain, state->mem_ctx, 
                                          &num_entries, &info);
-       
+
        if (!NT_STATUS_IS_OK(status))
                return WINBINDD_ERROR;
 
@@ -521,7 +521,7 @@ enum winbindd_result winbindd_dual_list_users(struct winbindd_domain *domain,
           +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;
@@ -530,12 +530,12 @@ enum winbindd_result winbindd_dual_list_users(struct winbindd_domain *domain,
        /* 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));
@@ -904,7 +904,7 @@ enum winbindd_result winbindd_dual_getsidaliases(struct winbindd_domain *domain,
                           (char *)state->response.extra_data.data));
                state->response.length += len+1;
        }
-       
+
        return WINBINDD_OK;
 }
 
@@ -926,7 +926,7 @@ static void gettoken_recvdomgroups(TALLOC_CTX *mem_ctx, bool success,
 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,
@@ -975,7 +975,7 @@ static void gettoken_recvdomgroups(TALLOC_CTX *mem_ctx, 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);
index 3c698597313641cf71b5166ba14f1b5dd974832e..5f592fc6b7785b0d75533c2717c7d0e248e9026a 100644 (file)
@@ -1038,7 +1038,7 @@ static bool add_one_dc_unique(TALLOC_CTX *mem_ctx, const char *domain_name,
 
        /* 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);
index 3422fdba1c6010435816eff1665a9f4a2f117f26..7432bda451f9aa84950fb3bfa64eac855b88b6fa 100644 (file)
@@ -800,7 +800,7 @@ void winbindd_getgrnam(struct winbindd_cli_state *state)
 
        /* 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);
@@ -833,7 +833,7 @@ struct getgrsid_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;
@@ -884,7 +884,7 @@ static void getgrsid_sid2gid_recv(void *private_data, bool success, gid_t gid)
        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,
index 9de385e3b3c5d2cb6246c18a9b7d490f637f59de..92ce1f985095008623b147bcf51106ff3e3a22d3 100644 (file)
@@ -67,6 +67,36 @@ void winbind_check_sighup(const char *lfile);
 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  */
 
 
diff --git a/source3/winbindd/winbindd_reqtrans.c b/source3/winbindd/winbindd_reqtrans.c
new file mode 100644 (file)
index 0000000..ea16c5f
--- /dev/null
@@ -0,0 +1,685 @@
+/*
+   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;
+};
index e5d0a22a7324e03c905d1832fa526de3121f8f56..fd1fdd36998e62aaa5442d9bfcf239089f03d76b 100644 (file)
@@ -456,7 +456,7 @@ void winbindd_getpwnam(struct winbindd_cli_state *state)
 
        /* 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.  "
index af9ed52f782cdab1da43a8bec3d573fb4838d2da..360da50f70a23e798684336b1224f8a7547c8940 100644 (file)
@@ -204,7 +204,8 @@ NTSTATUS authsam_account_ok(TALLOC_CTX *mem_ctx,
                            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,
index d1be5b6e30f91c9fb413de570b1f72ca1b2c6c6d..384d342e00d4143e1b80fa0c26c4b76f13d341a4 100644 (file)
@@ -262,7 +262,8 @@ static NTSTATUS authsam_authenticate(struct auth_context *auth_context,
                                       msgs[0],
                                       msgs_domain_ref[0],
                                       user_info->workstation_name,
-                                      user_info->mapped.account_name);
+                                      user_info->mapped.account_name,
+                                      false);
 
        return nt_status;
 }
index f6a998ae0f1f50b7c87cc57b7402c243aa4dfaf3..4b848cffe0a93d3cabaedbea968c9384d5a210f9 100644 (file)
@@ -144,7 +144,8 @@ _PUBLIC_ NTSTATUS authsam_account_ok(TALLOC_CTX *mem_ctx,
                            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;
@@ -231,11 +232,12 @@ _PUBLIC_ NTSTATUS authsam_account_ok(TALLOC_CTX *mem_ctx,
                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));
index 6acbf45afd8653c7c526fa18b92cf6f4a6b52225..97179a81264d77ab7e9751c99271507d1ebd3af6 100644 (file)
@@ -417,6 +417,32 @@ static int kludge_acl_change(struct ldb_module *module, struct ldb_request *req)
        }
 }
 
+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;
@@ -494,6 +520,6 @@ _PUBLIC_ const struct ldb_module_ops ldb_kludge_acl_module_ops = {
        .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
 };
index cef1bf79f74b58f9345f89653646f93110978f02..1707baba585bbb0269aa1a6575f5f77715101466 100644 (file)
@@ -1641,7 +1641,7 @@ static int password_hash_add(struct ldb_module *module, struct ldb_request *req)
        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);
        }
 
index b6edaac41402160752357d24d7e1142af184bde3..c906282a31bf8dc64df606bc7c860e34769af97d 100644 (file)
@@ -50,7 +50,7 @@ rpc_server/dcerpc_server.h: dcerpc_server.h
 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
index 3f1c1fc63ef2cf9cca62160598d0ae88310995c9..74bec85d023b4a87a334c9c6e0df4661b32ad273 100644 (file)
@@ -270,13 +270,14 @@ krb5_error_code samba_kdc_check_client_access(void *priv,
                }
        }
 
+       /* 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))
index 29af7fafe848edb2bba6570154c9262e177c2a3a..10c728662db392547aee46c452ff94cfe062a4b0 100644 (file)
@@ -29,7 +29,7 @@
   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;
index ca78a2ce43985588b3c50ac87354f630a36dac13..0a71ebed99106fc11757c95178819775a3d7f843 100644 (file)
@@ -73,9 +73,10 @@ struct composite_context *resolve_name_bcast_send(TALLOC_CTX *mem_ctx,
   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 */
@@ -92,7 +93,7 @@ NTSTATUS resolve_name_bcast(struct nbt_name *name,
                            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;
@@ -101,7 +102,7 @@ NTSTATUS resolve_name_bcast(struct nbt_name *name,
        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)
index 7d779b06783bd2a6dd42f278f4bb61c39a9a19fb..7b1aef803e780f054b4698b14a65aa92b564dd4b 100644 (file)
 #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;
@@ -95,7 +96,6 @@ static void pipe_handler(struct event_context *ev, 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
@@ -125,8 +125,15 @@ static void pipe_handler(struct event_context *ev, struct fd_event *fde,
                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);
 }
@@ -200,7 +207,8 @@ struct composite_context *resolve_name_host_send(TALLOC_CTX *mem_ctx,
   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;
 
@@ -208,7 +216,7 @@ NTSTATUS resolve_name_host_recv(struct composite_context *c,
 
        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);
@@ -220,10 +228,10 @@ NTSTATUS resolve_name_host_recv(struct composite_context *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)
index ec4cfb81b414fe5b2a368c4f896d18112c24a5a3..9c53fcb7ecdf5337eef77da3cddf8413a41a31a7 100644 (file)
@@ -26,6 +26,7 @@
 #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"
@@ -38,7 +39,7 @@ struct nbtlist_state {
        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;
 };
 
@@ -71,25 +72,23 @@ static void nbtlist_handler(struct nbt_name_request *req)
        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);
 }
@@ -180,7 +179,8 @@ struct composite_context *resolve_name_nbtlist_send(TALLOC_CTX *mem_ctx,
   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;
 
@@ -188,7 +188,7 @@ NTSTATUS resolve_name_nbtlist_recv(struct composite_context *c,
 
        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);
@@ -205,13 +205,13 @@ NTSTATUS resolve_name_nbtlist(struct nbt_name *name,
                              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);
 }
 
index f57f231bc03ef633e9dec3f2f847898cd11b6a0e..7d1c48cbeecb223c74be56942881e21236685ef4 100644 (file)
@@ -26,6 +26,7 @@
 #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 {
@@ -33,7 +34,7 @@ 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);
@@ -83,7 +84,7 @@ static void resolve_handler(struct composite_context *creq)
        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;
@@ -128,9 +129,9 @@ static struct composite_context *setup_next_method(struct composite_context *c)
 /*
   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;
@@ -157,8 +158,13 @@ struct composite_context *resolve_name_send(struct resolve_context *ctx,
        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;
        }
@@ -177,8 +183,9 @@ struct composite_context *resolve_name_send(struct resolve_context *ctx,
 /*
   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;
 
@@ -186,7 +193,7 @@ NTSTATUS resolve_name_recv(struct composite_context *c,
 
        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);
@@ -196,9 +203,50 @@ NTSTATUS resolve_name_recv(struct composite_context *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);
 }
 
index 22de146c994dcc80d5110c41700d99c69cf53814..01fc930fce85bcb7f7410bed68f6a9bd22d0df4c 100644 (file)
 #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"
index 73a8c841bbd5e320a2d561c9fdb0e563aaf26994..34de1158a54a020377abf95443a2d0fb99a701c8 100644 (file)
@@ -43,7 +43,7 @@ static bool test_async_resolve(struct torture_context *tctx)
        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),
index f787d52d3135614580d681d326cff85144cf2591..ae142f70548c6e141443c4bbbf892b6b7e342ee5 100644 (file)
@@ -23,6 +23,7 @@
 #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 {
@@ -50,9 +51,10 @@ struct composite_context *resolve_name_wins_send(
   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);
 }
 
 /*
@@ -64,7 +66,7 @@ NTSTATUS resolve_name_wins(struct nbt_name *name,
                            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);
@@ -73,7 +75,7 @@ NTSTATUS resolve_name_wins(struct nbt_name *name,
        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)
index 1a7519e362988095b9bb945c7556a5f37f4adceb..d8a83f2abbce97e5f67b85c8523b6c88225a3c8f 100644 (file)
@@ -122,11 +122,6 @@ struct dom_sid *dom_sid_parse_talloc(TALLOC_CTX *mem_ctx, const char *sidstr)
                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;
@@ -183,11 +178,6 @@ struct dom_sid *dom_sid_dup(TALLOC_CTX *mem_ctx, const struct dom_sid *dom_sid)
                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];
@@ -206,7 +196,7 @@ struct dom_sid *dom_sid_dup(TALLOC_CTX *mem_ctx, const struct dom_sid *dom_sid)
 
 /*
   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, 
@@ -219,11 +209,6 @@ struct dom_sid *dom_sid_add_rid(TALLOC_CTX *mem_ctx,
 
        *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++;
 
index 09522f182a8b6f1d8746c5626eb176d24d851b0a..a8d893f0855ff13b544bee3797815d04bdfe8c6f 100644 (file)
@@ -249,7 +249,6 @@ static bool sddl_decode_ace(TALLOC_CTX *mem_ctx, struct security_ace *ace, char
                return false;
        }
        ace->trustee = *sid;
-       talloc_steal(mem_ctx, sid->sub_auths);
        talloc_free(sid);
 
        return true;
index 882284dd9b28ebe7ccd6aa7fae4d269971ccb128..2bce8e8b08a08a2ac3ecdb5583fefdaa291cab3c 100644 (file)
@@ -65,18 +65,6 @@ static struct security_acl *security_acl_dup(TALLOC_CTX *mem_ctx,
                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;
@@ -175,14 +163,6 @@ static NTSTATUS security_descriptor_acl_add(struct security_descriptor *sd,
        }
 
        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:
index 80de6134b58c64dccef29940fa5010da21491024..c2db219a06f55a63d465ec92a6c740dc4f927563 100644 (file)
@@ -360,7 +360,7 @@ static NTSTATUS libnet_SetPassword_samr_handle_25(struct libnet_context *ctx, TA
        /* 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);
@@ -451,7 +451,7 @@ static NTSTATUS libnet_SetPassword_samr_handle_23(struct libnet_context *ctx, TA
        /* 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);
index 97da76083293b7bf54ce320389374c8be03ac4e6..65c473779fb1d4ff23cd7df0fa2df222bc5a9e66 100644 (file)
@@ -54,10 +54,9 @@ PUBLIC_DEPENDENCIES = LIBNDR LIBSECURITY
 
 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]
@@ -448,6 +447,11 @@ PUBLIC_DEPENDENCIES = dcerpc NDR_UNIXINFO
 
 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
 
@@ -732,15 +736,9 @@ PRIVATE_DEPENDENCIES = RPC_NDR_DRSUAPI PYTALLOC param swig_credentials python_dc
 
 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
 
index 80df11dbfea97f849021e7d9a5291d87c75e43c3..172dda4faedfe4509f89a56a8a91389fcac56962 100644 (file)
@@ -1,42 +1,12 @@
-/*
-   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;
-
 }
-
index e3ea7e55e1a8770e29edfe6a51616d1e980987f6..41787355a9b091b8277cdc8e1b1d59e06b34618b 100644 (file)
@@ -14,7 +14,7 @@ import "misc.idl", "security.idl", "nbt.idl";
                IRPC_FLAG_REPLY    = 0x0001
        } irpc_flags;
 
-       typedef [public,noejs] struct {
+       typedef [public] struct {
                GUID uuid;
                uint32 if_version;
                uint32 callnum;
@@ -65,17 +65,17 @@ import "misc.idl", "security.idl", "nbt.idl";
                [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]
diff --git a/source4/librpc/ndr/ndr_dom_sid.c b/source4/librpc/ndr/ndr_dom_sid.c
deleted file mode 100644 (file)
index b986231..0000000
+++ /dev/null
@@ -1,217 +0,0 @@
-/* 
-   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);
-}
-
diff --git a/source4/librpc/ndr/py_security.c b/source4/librpc/ndr/py_security.c
new file mode 100644 (file)
index 0000000..6888f14
--- /dev/null
@@ -0,0 +1,58 @@
+/* 
+   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)" }, \
diff --git a/source4/ntp_signd/README b/source4/ntp_signd/README
new file mode 100644 (file)
index 0000000..585459b
--- /dev/null
@@ -0,0 +1,7 @@
+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
+
diff --git a/source4/ntp_signd/ntp-dev-4.2.5p125.diff b/source4/ntp_signd/ntp-dev-4.2.5p125.diff
new file mode 100644 (file)
index 0000000..40669fb
--- /dev/null
@@ -0,0 +1,579 @@
+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
index d133bbc4801da987bfe4c196337938fd0ca2a32f..e615401e51380ddd2baff5be97f3806bd3f484a3 100644 (file)
@@ -63,7 +63,17 @@ struct async_info {
        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); \
index 0d5738d9f0bd2e350697e2184f1af35e3bd443c6..fc04d976f428ab62072a00e49450590add3bbc61 100644 (file)
@@ -226,6 +226,7 @@ struct ntvfs_context {
 /* 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
index d660141efc82bb5c291301de972f625e6d9ab6ee..ab7d209d102593b87ca07f384a2ee0aab960a67e 100644 (file)
@@ -2296,7 +2296,7 @@ struct loadparm_context *loadparm_init(TALLOC_CTX *mem_ctx)
        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");
index 83b6dc7fdc62937c9e9ca87da59de39cbb481e5d..558a79696768f99afe3513101d80fd7611ba0225 100644 (file)
 #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))"
diff --git a/source4/rpc_server/browser/dcesrv_browser.c b/source4/rpc_server/browser/dcesrv_browser.c
new file mode 100644 (file)
index 0000000..33fed50
--- /dev/null
@@ -0,0 +1,172 @@
+/*
+   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"
index fb697d0c0f11c8e12321b8c5fe87574b6a59859b..76aa6b938aac4e08cacefde46d2588fcaaaa42e0 100644 (file)
@@ -17,7 +17,7 @@ PUBLIC_HEADERS += $(rpc_serversrcdir)/common/common.h
 # 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
 ################################################
@@ -28,7 +28,7 @@ dcerpc_rpcecho_OBJ_FILES = $(rpc_serversrcdir)/echo/rpc_echo.o
 # 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
 ################################################
@@ -39,7 +39,7 @@ dcerpc_epmapper_OBJ_FILES = $(rpc_serversrcdir)/epmapper/rpc_epmapper.o
 # 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
@@ -51,7 +51,7 @@ dcerpc_remote_OBJ_FILES = $(rpc_serversrcdir)/remote/dcesrv_remote.o
 # 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
@@ -66,7 +66,7 @@ $(eval $(call proto_header_template,$(rpc_serversrcdir)/srvsvc/proto.h,$(dcerpc_
 # 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
@@ -78,7 +78,7 @@ dcerpc_wkssvc_OBJ_FILES = $(rpc_serversrcdir)/wkssvc/dcesrv_wkssvc.o
 # Start MODULE dcerpc_unixinfo
 [MODULE::dcerpc_unixinfo]
 INIT_FUNCTION = dcerpc_server_unixinfo_init
-SUBSYSTEM = DCESRV
+SUBSYSTEM = dcerpc_server
 PRIVATE_DEPENDENCIES = \
                DCERPC_COMMON \
                SAMDB \
@@ -94,7 +94,7 @@ dcerpc_unixinfo_OBJ_FILES = $(rpc_serversrcdir)/unixinfo/dcesrv_unixinfo.o
 # Start MODULE dcesrv_samr
 [MODULE::dcesrv_samr]
 INIT_FUNCTION = dcerpc_server_samr_init
-SUBSYSTEM = DCESRV
+SUBSYSTEM = dcerpc_server
 PRIVATE_DEPENDENCIES = \
                SAMDB \
                DCERPC_COMMON \
@@ -110,7 +110,7 @@ $(eval $(call proto_header_template,$(rpc_serversrcdir)/samr/proto.h,$(dcesrv_sa
 # 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
@@ -123,7 +123,7 @@ dcerpc_winreg_OBJ_FILES = $(rpc_serversrcdir)/winreg/rpc_winreg.o
 # Start MODULE dcerpc_netlogon
 [MODULE::dcerpc_netlogon]
 INIT_FUNCTION = dcerpc_server_netlogon_init
-SUBSYSTEM = DCESRV
+SUBSYSTEM = dcerpc_server
 PRIVATE_DEPENDENCIES = \
                DCERPC_COMMON \
                SCHANNELDB \
@@ -138,7 +138,7 @@ dcerpc_netlogon_OBJ_FILES = $(rpc_serversrcdir)/netlogon/dcerpc_netlogon.o
 # Start MODULE dcerpc_lsa
 [MODULE::dcerpc_lsarpc]
 INIT_FUNCTION = dcerpc_server_lsa_init
-SUBSYSTEM = DCESRV
+SUBSYSTEM = dcerpc_server
 PRIVATE_DEPENDENCIES = \
                SAMDB \
                DCERPC_COMMON \
@@ -157,7 +157,7 @@ $(eval $(call proto_header_template,$(rpc_serversrcdir)/lsa/proto.h,$(dcerpc_lsa
 # 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 \
@@ -173,7 +173,7 @@ dcerpc_spoolss_OBJ_FILES = $(rpc_serversrcdir)/spoolss/dcesrv_spoolss.o
 # Start MODULE dcerpc_drsuapi
 [MODULE::dcerpc_drsuapi]
 INIT_FUNCTION = dcerpc_server_drsuapi_init
-SUBSYSTEM = DCESRV
+SUBSYSTEM = dcerpc_server
 PRIVATE_DEPENDENCIES = \
                SAMDB \
                DCERPC_COMMON \
@@ -183,6 +183,19 @@ PRIVATE_DEPENDENCIES = \
 
 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]
index 6e888e5259f755c89c7e2a4af2c99921017c1a89..5f055ae342bde7187440fcf9509f738651e9e114 100644 (file)
@@ -36,7 +36,7 @@
 #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;
 
@@ -288,26 +288,6 @@ _PUBLIC_ NTSTATUS dcesrv_fetch_session_key(struct dcesrv_connection *p,
        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
 */
@@ -355,8 +335,6 @@ _PUBLIC_ NTSTATUS dcesrv_endpoint_connect(struct dcesrv_context *dce_ctx,
        p->state_flags = state_flags;
        ZERO_STRUCT(p->transport);
 
-       talloc_set_destructor(p, dcesrv_endpoint_destructor);
-
        *_p = p;
        return NT_STATUS_OK;
 }
@@ -531,6 +509,16 @@ static NTSTATUS dcesrv_bind_nak(struct dcesrv_call_state *call, uint32_t reason)
        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
@@ -558,7 +546,8 @@ static NTSTATUS dcesrv_bind(struct dcesrv_call_state *call)
         * 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);        
        }
 
@@ -609,10 +598,29 @@ static NTSTATUS dcesrv_bind(struct dcesrv_call_state *call)
                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) {
@@ -627,6 +635,8 @@ static NTSTATUS dcesrv_bind(struct dcesrv_call_state *call)
 
        /* 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);
        }
 
@@ -638,8 +648,7 @@ static NTSTATUS dcesrv_bind(struct dcesrv_call_state *call)
        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);
@@ -649,6 +658,8 @@ static NTSTATUS dcesrv_bind(struct dcesrv_call_state *call)
        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;
@@ -658,27 +669,22 @@ static NTSTATUS dcesrv_bind(struct dcesrv_call_state *call)
 
        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;
        }
 
@@ -747,16 +753,20 @@ static NTSTATUS dcesrv_alter_new_context(struct dcesrv_call_state *call, uint32_
        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;
@@ -784,15 +794,26 @@ static NTSTATUS dcesrv_alter(struct dcesrv_call_state *call)
        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;
@@ -801,7 +822,11 @@ static NTSTATUS dcesrv_alter(struct dcesrv_call_state *call)
        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) {
@@ -1398,6 +1423,38 @@ const struct dcesrv_endpoint_server *dcesrv_ep_server_byname(const char *name)
        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
@@ -1430,6 +1487,8 @@ _PUBLIC_ NTSTATUS dcesrv_init_ipc_context(TALLOC_CTX *mem_ctx, struct loadparm_c
        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);
 
index 4788fb3a51ab4b7a127a6b4634545237a62d071a..bcd3d61f134c7d1a1fb09af7f45a13f8700ef1ac 100644 (file)
@@ -153,6 +153,8 @@ struct dcesrv_connection_context {
        struct dcesrv_connection_context *next, *prev;
        uint32_t context_id;
 
+       uint32_t assoc_group_id;
+
        /* the connection this is on */
        struct dcesrv_connection *conn;
 
index ccc1fc515fb5af3da6e179a65d91665a152fe24c..a2367c8a9b0b2a7a05b05360d11ee34bd2de138c 100644 (file)
@@ -803,7 +803,40 @@ static NTSTATUS dcesrv_netr_AccountSync(struct dcesrv_call_state *dce_call, TALL
 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;
 }
 
 
@@ -823,7 +856,18 @@ static WERROR dcesrv_netr_LogonControl(struct dcesrv_call_state *dce_call, TALLO
 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;
 }
 
 
@@ -1383,11 +1427,11 @@ static WERROR dcesrv_netr_GetForestTrustInformation(struct dcesrv_call_state *dc
 }
 
 
-/* 
-  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);
 }
index e1fb187c5208b044c6084def3c02f663777c9f42..df23e11a67b553ae2f5d3217797a507d8981047a 100644 (file)
 
 #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)
 
 
@@ -763,8 +765,7 @@ static NTSTATUS dcesrv_samr_info_DomInfo13(struct samr_domain_state *state,
        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;
 }
@@ -3512,14 +3513,14 @@ static NTSTATUS dcesrv_samr_SetUserInfo(struct dcesrv_call_state *dce_call, TALL
                        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,
@@ -3568,14 +3569,14 @@ static NTSTATUS dcesrv_samr_SetUserInfo(struct dcesrv_call_state *dce_call, TALL
                        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,
index bb4d6bdaf2a0d2062ff20cb60cdb261449dfbffa..6c19b2346bac1c9d5a7ba74524bb91865fba06b8 100644 (file)
@@ -425,25 +425,8 @@ static void dcesrv_task_init(struct task_server *task)
        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]");
 
index 9649a1f644a9f766ae6bdfd28f059d246654a541..b05cc1e39d733fe4f560dccf40b7e5a3fb40decf 100644 (file)
@@ -5,8 +5,10 @@
 # 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
@@ -23,10 +25,8 @@ rpc.netlogon.*.LogonUasLogon
 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
@@ -36,6 +36,7 @@ rpc.netlogon.*.DsRAddressToSitenamesExW
 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
diff --git a/source4/setup/ad-schema/MS-AD_Schema_Attributes_v20080618.txt b/source4/setup/ad-schema/MS-AD_Schema_Attributes_v20080618.txt
new file mode 100644 (file)
index 0000000..324a5bf
--- /dev/null
@@ -0,0 +1,15652 @@
+# Â© 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
diff --git a/source4/setup/ad-schema/MS-AD_Schema_Classes_v20080618.txt b/source4/setup/ad-schema/MS-AD_Schema_Classes_v20080618.txt
new file mode 100644 (file)
index 0000000..cd784ed
--- /dev/null
@@ -0,0 +1,3418 @@
+# Â© 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
diff --git a/source4/setup/ad-schema/licence.txt b/source4/setup/ad-schema/licence.txt
new file mode 100644 (file)
index 0000000..9db9664
--- /dev/null
@@ -0,0 +1,54 @@
+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.
+
index 7bd61fc1d882060db500596dad3930eb5bd57431..882a92ad481ffdd72f133398f8462b2e64349b17 100755 (executable)
@@ -24,7 +24,8 @@
 
 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")
@@ -46,6 +47,7 @@ parser.add_option_group(sambaopts)
 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")
@@ -108,7 +110,10 @@ def message(text):
        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:
@@ -116,6 +121,26 @@ if opts.realm is None or 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()
 
index 431add4ed910bb9843962ebcf14d6dcc63b1eca9..ba3021a3a9a2b64ec521915d98664f76823eb8e4 100644 (file)
@@ -153,6 +153,11 @@ struct smbsrv_request;
 /* 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); \
@@ -165,6 +170,11 @@ struct smbsrv_request;
 } 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); \
index e3e55ae040477c375f9e9e181cabbc9a9bbaaf49..227c298008e42e6fe1816facbc7054ad6a94cfe0 100644 (file)
@@ -483,6 +483,11 @@ struct loadparm_context;
 /* 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; \
@@ -494,6 +499,11 @@ struct loadparm_context;
 } 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; \
@@ -506,3 +516,5 @@ struct loadparm_context;
 
 /* 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"
index b71c85aeb875bf98b694261801fed950cdb6e1e7..c1ac62f1b1eac34cc4cbdb2b4090045977b5a77b 100644 (file)
@@ -950,15 +950,18 @@ static bool deltest17(struct torture_context *tctx, struct smbcli_state *cli1, s
 
        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;
 }
 
@@ -994,7 +997,12 @@ static bool deltest18(struct torture_context *tctx, struct smbcli_state *cli1, s
        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. */
@@ -1082,7 +1090,12 @@ static bool deltest19(struct torture_context *tctx, struct smbcli_state *cli1, s
        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. */
index 4b4664f10166568c0ca11495d0264273c8f51db6..eaff5d5fdab3c710acdd828dbcd16538cc6fe23f 100644 (file)
@@ -108,7 +108,7 @@ PRIVATE_DEPENDENCIES = \
                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 \
@@ -117,7 +117,7 @@ torture_rpc_OBJ_FILES = $(addprefix $(torturesrcdir)/rpc/, \
                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)))
 
index ef0fa5138a78e02184742a8e231cfaa1bed5912d..9f35aae4d0a87de2a9a5152e583a61a67408d9eb 100644 (file)
@@ -1422,6 +1422,52 @@ done:
        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)
@@ -1624,6 +1670,7 @@ bool torture_raw_open(struct torture_context *torture, struct smbcli_state *cli)
        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);
diff --git a/source4/torture/rpc/browser.c b/source4/torture/rpc/browser.c
new file mode 100644 (file)
index 0000000..32b552a
--- /dev/null
@@ -0,0 +1,124 @@
+/*
+   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;
+}
+
index 953f9d126d57799fb9e2a653861bedc30d091dd7..306c271511e24c4ddea6de5cc59d58d34b5f4352 100644 (file)
@@ -1523,6 +1523,7 @@ static bool test_GetAnyDCName(struct torture_context *tctx,
 
        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);
@@ -2050,6 +2051,47 @@ static bool test_netr_DsRAddressToSitenamesExW(struct torture_context *tctx,
        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)
@@ -2316,6 +2358,7 @@ struct torture_suite *torture_rpc_netlogon(TALLOC_CTX *mem_ctx)
        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;
 }
index 7f6b06d0008817cfa7b2fe473167ab66d36276a7..f3ed3fdeb06982f0783e8486b4f700feafd55e83 100644 (file)
@@ -433,6 +433,7 @@ NTSTATUS torture_rpc_init(void)
        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);
index f1e7e5a367013ffe6ced2c95c1dbf32172733a91..2207786f1799ca9dca18abac96a66a2fdadd74f5 100644 (file)
@@ -580,8 +580,8 @@ static bool create_user(TALLOC_CTX *mem_ctx, struct smbcli_state *cli,
                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;
@@ -767,7 +767,7 @@ static bool join3(struct smbcli_state *cli,
                        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;
index 01ff01674c4159e5504a636613bd49a72df868e4..291262874446fe7605e52cdcacda44b0a4b2bd57 100644 (file)
@@ -409,6 +409,12 @@ static bool test_SetUserInfo(struct dcerpc_pipe *p, struct torture_context *tctx
                           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);
@@ -849,15 +855,203 @@ static bool test_SetUserPass_25(struct dcerpc_pipe *p, struct torture_context *t
        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;
@@ -871,6 +1065,7 @@ static bool test_SetUserPass_level_ex(struct dcerpc_pipe *p,
        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;
@@ -898,11 +1093,40 @@ static bool test_SetUserPass_level_ex(struct dcerpc_pipe *p,
        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;
@@ -949,6 +1173,41 @@ static bool test_SetUserPass_level_ex(struct dcerpc_pipe *p,
        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;
@@ -971,6 +1230,15 @@ static bool test_SetUserPass_level_ex(struct dcerpc_pipe *p,
                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,
@@ -981,6 +1249,7 @@ static bool test_SetUserPass_level_ex(struct dcerpc_pipe *p,
                                s.out.result,
                                expected_error, "SetUserInfo failed");
                }
+               *matched_expected_error = true;
                return true;
        }
 
@@ -989,9 +1258,7 @@ static bool test_SetUserPass_level_ex(struct dcerpc_pipe *p,
                       use_setinfo2 ? "2":"", level, nt_errstr(status));
                ret = false;
        } else {
-               if (level != 21) {
-                       *password = newpass;
-               }
+               *password = newpass;
        }
 
        return ret;
@@ -2074,7 +2341,7 @@ bool test_ChangePasswordRandomBytes(struct dcerpc_pipe *p, struct torture_contex
 
        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);
 
@@ -2364,7 +2631,7 @@ static bool test_SetPassword_level(struct dcerpc_pipe *p,
                                   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,
@@ -2389,23 +2656,13 @@ static bool test_SetPassword_level(struct dcerpc_pipe *p,
                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,
@@ -2423,144 +2680,26 @@ static bool test_SetPassword_pwdlastset(struct dcerpc_pipe *p,
                                        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)) {
@@ -2576,7 +2715,9 @@ static bool test_SetPassword_pwdlastset(struct dcerpc_pipe *p,
 #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
@@ -2585,11 +2726,12 @@ static bool test_SetPassword_pwdlastset(struct dcerpc_pipe *p,
 #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 */
 
@@ -2597,10 +2739,10 @@ static bool test_SetPassword_pwdlastset(struct dcerpc_pipe *p,
                 * 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],
@@ -2608,7 +2750,7 @@ static bool test_SetPassword_pwdlastset(struct dcerpc_pipe *p,
                        ret = false;
                }
 
-               if (!NT_STATUS_IS_OK(pwd_tests[i].set_error)) {
+               if (matched_expected_error == true) {
                        /* skipping on expected failure */
                        continue;
                }
@@ -2616,12 +2758,12 @@ static bool test_SetPassword_pwdlastset(struct dcerpc_pipe *p,
                /* 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 "
@@ -2638,6 +2780,27 @@ static bool test_SetPassword_pwdlastset(struct dcerpc_pipe *p,
                        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 */
@@ -2645,22 +2808,22 @@ static bool test_SetPassword_pwdlastset(struct dcerpc_pipe *p,
                /* 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:
@@ -2669,9 +2832,9 @@ static bool test_SetPassword_pwdlastset(struct dcerpc_pipe *p,
                         * 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");
@@ -2692,19 +2855,91 @@ static bool test_SetPassword_pwdlastset(struct dcerpc_pipe *p,
                        }
                }
 
+               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],
@@ -2715,12 +2950,12 @@ static bool test_SetPassword_pwdlastset(struct dcerpc_pipe *p,
                /* 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 "
@@ -2732,9 +2967,9 @@ static bool test_SetPassword_pwdlastset(struct dcerpc_pipe *p,
                         * 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");
@@ -2757,13 +2992,48 @@ static bool test_SetPassword_pwdlastset(struct dcerpc_pipe *p,
                        }
                        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
@@ -2787,9 +3057,9 @@ static bool test_user_ops(struct dcerpc_pipe *p,
        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
        };
        
@@ -2894,6 +3164,37 @@ static bool test_user_ops(struct dcerpc_pipe *p,
                        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;
@@ -5153,7 +5454,6 @@ static bool test_OpenDomain(struct dcerpc_pipe *p, struct torture_context *tctx,
        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 */
@@ -5162,6 +5462,13 @@ static bool test_OpenDomain(struct dcerpc_pipe *p, struct torture_context *tctx,
                        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) {
index 5e5a5e81cde1e8f38434e83b44f03a54b972a66c..b72b9fcb099de0af12dc993c121d8976d7ae6fe6 100644 (file)
@@ -127,11 +127,6 @@ static bool sid_parse(void *mem_ctx,
        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;
index f719f00853d3aa981801ed21e64e785ef8252f2e..865ff90567a22243eeb2c5491d29a947a601b1f9 100644 (file)
@@ -20,6 +20,7 @@ PRIVATE_DEPENDENCIES = \
 
 WINBIND_OBJ_FILES = $(addprefix $(winbindsrcdir)/, \
                wb_server.o \
+               wb_setup_domains.o \
                wb_irpc.o \
                wb_samba3_protocol.o \
                wb_samba3_cmd.o \
index 531647def80e465ee84ceb6e6a0ac47180615884..8011cba19c20b63847ce814c0d1baa152f652db7 100644 (file)
@@ -396,7 +396,7 @@ static void init_domain_recv_samr(struct composite_context *ctx)
        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;
 
index b8309597d7b89c38f474aa0a90a7fd8e6679bf24..9ffcd467eebc5ef17719e252d0f8dbf0f6eab16c 100644 (file)
@@ -147,13 +147,9 @@ static void winbind_task_init(struct task_server *task)
        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;
        }
 
diff --git a/source4/winbind/wb_setup_domains.c b/source4/winbind/wb_setup_domains.c
new file mode 100644 (file)
index 0000000..92b91c1
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+   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;
+}