summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/include/proto.h2
-rw-r--r--source3/rpc_client/cli_pipe.c14
-rw-r--r--source3/rpcclient/cmd_dfs.c24
-rw-r--r--source3/rpcclient/cmd_drsuapi.c12
-rw-r--r--source3/rpcclient/cmd_dssetup.c5
-rw-r--r--source3/rpcclient/cmd_echo.c16
-rw-r--r--source3/rpcclient/cmd_epmapper.c6
-rw-r--r--source3/rpcclient/cmd_eventlog.c40
-rw-r--r--source3/rpcclient/cmd_lsarpc.c124
-rw-r--r--source3/rpcclient/cmd_netlogon.c100
-rw-r--r--source3/rpcclient/cmd_ntsvcs.c35
-rw-r--r--source3/rpcclient/cmd_samr.c136
-rw-r--r--source3/rpcclient/cmd_shutdown.c13
-rw-r--r--source3/rpcclient/cmd_spoolss.c175
-rw-r--r--source3/rpcclient/cmd_srvsvc.c65
-rw-r--r--source3/rpcclient/cmd_test.c2
-rw-r--r--source3/rpcclient/cmd_wkssvc.c20
-rw-r--r--source3/rpcclient/rpcclient.c73
-rw-r--r--source3/rpcclient/rpcclient.h3
19 files changed, 662 insertions, 203 deletions
diff --git a/source3/include/proto.h b/source3/include/proto.h
index e57ffdd571..2364360d4f 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -5706,6 +5706,8 @@ bool prs_data_blob(prs_struct *prs, DATA_BLOB *blob, TALLOC_CTX *mem_ctx);
bool smb_register_ndr_interface(const struct ndr_interface_table *interface);
const struct ndr_interface_table *get_iface_from_syntax(
const struct ndr_syntax_id *syntax);
+bool ndr_syntax_from_string(const char *s, uint32_t version,
+ struct ndr_syntax_id *syntax);
const char *get_pipe_name_from_syntax(TALLOC_CTX *mem_ctx,
const struct ndr_syntax_id *syntax);
void init_rpc_hdr(RPC_HDR *hdr, enum dcerpc_pkt_type pkt_type, uint8 flags,
diff --git a/source3/rpc_client/cli_pipe.c b/source3/rpc_client/cli_pipe.c
index 9ff84f8b6d..bd7bf325c4 100644
--- a/source3/rpc_client/cli_pipe.c
+++ b/source3/rpc_client/cli_pipe.c
@@ -195,6 +195,20 @@ const char *get_pipe_name_from_syntax(TALLOC_CTX *mem_ctx,
return result;
}
+bool ndr_syntax_from_string(const char *s, uint32_t version,
+ struct ndr_syntax_id *syntax)
+{
+ NTSTATUS status;
+ status = GUID_from_string(s, &syntax->uuid);
+ if (!NT_STATUS_IS_OK(status)) {
+ DEBUG(10, ("GUID_from_string returned %s\n",
+ nt_errstr(status)));
+ return false;
+ }
+ syntax->if_version = version;
+ return true;
+}
+
/********************************************************************
Map internal value to wire value.
********************************************************************/
diff --git a/source3/rpcclient/cmd_dfs.c b/source3/rpcclient/cmd_dfs.c
index d55261bea3..8fdc77215e 100644
--- a/source3/rpcclient/cmd_dfs.c
+++ b/source3/rpcclient/cmd_dfs.c
@@ -318,12 +318,24 @@ struct cmd_set dfs_commands[] = {
{ "DFS" },
- { "dfsversion", RPC_RTYPE_WERROR, NULL, cmd_dfs_version, &ndr_table_netdfs.syntax_id, NULL, "Query DFS support", "" },
- { "dfsadd", RPC_RTYPE_WERROR, NULL, cmd_dfs_add, &ndr_table_netdfs.syntax_id, NULL, "Add a DFS share", "" },
- { "dfsremove", RPC_RTYPE_WERROR, NULL, cmd_dfs_remove, &ndr_table_netdfs.syntax_id, NULL, "Remove a DFS share", "" },
- { "dfsgetinfo", RPC_RTYPE_WERROR, NULL, cmd_dfs_getinfo, &ndr_table_netdfs.syntax_id, NULL, "Query DFS share info", "" },
- { "dfsenum", RPC_RTYPE_WERROR, NULL, cmd_dfs_enum, &ndr_table_netdfs.syntax_id, NULL, "Enumerate dfs shares", "" },
- { "dfsenumex", RPC_RTYPE_WERROR, NULL, cmd_dfs_enumex, &ndr_table_netdfs.syntax_id, NULL, "Enumerate dfs shares", "" },
+ { "dfsversion", RPC_RTYPE_WERROR, NULL, cmd_dfs_version,
+ NDR_NETDFS_UUID, NDR_NETDFS_VERSION, NULL,
+ "Query DFS support", "" },
+ { "dfsadd", RPC_RTYPE_WERROR, NULL, cmd_dfs_add,
+ NDR_NETDFS_UUID, NDR_NETDFS_VERSION, NULL,
+ "Add a DFS share", "" },
+ { "dfsremove", RPC_RTYPE_WERROR, NULL, cmd_dfs_remove,
+ NDR_NETDFS_UUID, NDR_NETDFS_VERSION, NULL,
+ "Remove a DFS share", "" },
+ { "dfsgetinfo", RPC_RTYPE_WERROR, NULL, cmd_dfs_getinfo,
+ NDR_NETDFS_UUID, NDR_NETDFS_VERSION, NULL,
+ "Query DFS share info", "" },
+ { "dfsenum", RPC_RTYPE_WERROR, NULL, cmd_dfs_enum,
+ NDR_NETDFS_UUID, NDR_NETDFS_VERSION, NULL,
+ "Enumerate dfs shares", "" },
+ { "dfsenumex", RPC_RTYPE_WERROR, NULL, cmd_dfs_enumex,
+ NDR_NETDFS_UUID, NDR_NETDFS_VERSION, NULL,
+ "Enumerate dfs shares", "" },
{ NULL }
};
diff --git a/source3/rpcclient/cmd_drsuapi.c b/source3/rpcclient/cmd_drsuapi.c
index 8fbd798ed0..b760ce3c4d 100644
--- a/source3/rpcclient/cmd_drsuapi.c
+++ b/source3/rpcclient/cmd_drsuapi.c
@@ -566,8 +566,14 @@ static WERROR cmd_drsuapi_getncchanges(struct rpc_pipe_client *cli,
struct cmd_set drsuapi_commands[] = {
{ "DRSUAPI" },
- { "dscracknames", RPC_RTYPE_WERROR, NULL, cmd_drsuapi_cracknames, &ndr_table_drsuapi.syntax_id, NULL, "Crack Name", "" },
- { "dsgetdcinfo", RPC_RTYPE_WERROR, NULL, cmd_drsuapi_getdcinfo, &ndr_table_drsuapi.syntax_id, NULL, "Get Domain Controller Info", "" },
- { "dsgetncchanges", RPC_RTYPE_WERROR, NULL, cmd_drsuapi_getncchanges, &ndr_table_drsuapi.syntax_id, NULL, "Get NC Changes", "" },
+ { "dscracknames", RPC_RTYPE_WERROR, NULL, cmd_drsuapi_cracknames,
+ NDR_DRSUAPI_UUID, NDR_DRSUAPI_VERSION, NULL,
+ "Crack Name", "" },
+ { "dsgetdcinfo", RPC_RTYPE_WERROR, NULL, cmd_drsuapi_getdcinfo,
+ NDR_DRSUAPI_UUID, NDR_DRSUAPI_VERSION, NULL,
+ "Get Domain Controller Info", "" },
+ { "dsgetncchanges", RPC_RTYPE_WERROR, NULL, cmd_drsuapi_getncchanges,
+ NDR_DRSUAPI_UUID, NDR_DRSUAPI_VERSION, NULL,
+ "Get NC Changes", "" },
{ NULL }
};
diff --git a/source3/rpcclient/cmd_dssetup.c b/source3/rpcclient/cmd_dssetup.c
index f2fd124967..c8332e6311 100644
--- a/source3/rpcclient/cmd_dssetup.c
+++ b/source3/rpcclient/cmd_dssetup.c
@@ -63,7 +63,10 @@ struct cmd_set ds_commands[] = {
{ "LSARPC-DS" },
- { "dsroledominfo", RPC_RTYPE_WERROR, NULL, cmd_ds_dsrole_getprimarydominfo, &ndr_table_dssetup.syntax_id, NULL, "Get Primary Domain Information", "" },
+ { "dsroledominfo", RPC_RTYPE_WERROR, NULL,
+ cmd_ds_dsrole_getprimarydominfo,
+ NDR_DSSETUP_UUID, NDR_DSSETUP_VERSION, NULL,
+ "Get Primary Domain Information", "" },
{ NULL }
};
diff --git a/source3/rpcclient/cmd_echo.c b/source3/rpcclient/cmd_echo.c
index d90ef3499f..846b2d6a86 100644
--- a/source3/rpcclient/cmd_echo.c
+++ b/source3/rpcclient/cmd_echo.c
@@ -176,9 +176,17 @@ struct cmd_set echo_commands[] = {
{ "ECHO" },
- { "echoaddone", RPC_RTYPE_NTSTATUS, cmd_echo_add_one, NULL, &ndr_table_rpcecho.syntax_id, NULL, "Add one to a number", "" },
- { "echodata", RPC_RTYPE_NTSTATUS, cmd_echo_data, NULL, &ndr_table_rpcecho.syntax_id, NULL, "Echo data", "" },
- { "sinkdata", RPC_RTYPE_NTSTATUS, cmd_echo_sink_data, NULL, &ndr_table_rpcecho.syntax_id, NULL, "Sink data", "" },
- { "sourcedata", RPC_RTYPE_NTSTATUS, cmd_echo_source_data, NULL, &ndr_table_rpcecho.syntax_id, NULL, "Source data", "" },
+ { "echoaddone", RPC_RTYPE_NTSTATUS, cmd_echo_add_one, NULL,
+ NDR_RPCECHO_UUID, NDR_RPCECHO_VERSION, NULL,
+ "Add one to a number", "" },
+ { "echodata", RPC_RTYPE_NTSTATUS, cmd_echo_data, NULL,
+ NDR_RPCECHO_UUID, NDR_RPCECHO_VERSION, NULL,
+ "Echo data", "" },
+ { "sinkdata", RPC_RTYPE_NTSTATUS, cmd_echo_sink_data, NULL,
+ NDR_RPCECHO_UUID, NDR_RPCECHO_VERSION, NULL,
+ "Sink data", "" },
+ { "sourcedata", RPC_RTYPE_NTSTATUS, cmd_echo_source_data, NULL,
+ NDR_RPCECHO_UUID, NDR_RPCECHO_VERSION, NULL,
+ "Source data", "" },
{ NULL }
};
diff --git a/source3/rpcclient/cmd_epmapper.c b/source3/rpcclient/cmd_epmapper.c
index cb334165f2..89462d7a52 100644
--- a/source3/rpcclient/cmd_epmapper.c
+++ b/source3/rpcclient/cmd_epmapper.c
@@ -126,8 +126,10 @@ struct cmd_set epmapper_commands[] = {
{ "EPMAPPER" },
{ "epmmap", RPC_RTYPE_NTSTATUS, cmd_epmapper_map, NULL,
- &ndr_table_epmapper.syntax_id, NULL, "Map a binding", "" },
+ NDR_EPMAPPER_UUID, NDR_EPMAPPER_VERSION, NULL,
+ "Map a binding", "" },
{ "epmlookup", RPC_RTYPE_NTSTATUS, cmd_epmapper_lookup, NULL,
- &ndr_table_epmapper.syntax_id, NULL, "Lookup bindings", "" },
+ NDR_EPMAPPER_UUID, NDR_EPMAPPER_VERSION, NULL,
+ "Lookup bindings", "" },
{ NULL }
};
diff --git a/source3/rpcclient/cmd_eventlog.c b/source3/rpcclient/cmd_eventlog.c
index d839bf4263..94e5bfd1f8 100644
--- a/source3/rpcclient/cmd_eventlog.c
+++ b/source3/rpcclient/cmd_eventlog.c
@@ -491,13 +491,37 @@ static NTSTATUS cmd_eventlog_loginfo(struct rpc_pipe_client *cli,
struct cmd_set eventlog_commands[] = {
{ "EVENTLOG" },
- { "eventlog_readlog", RPC_RTYPE_NTSTATUS, cmd_eventlog_readlog, NULL, &ndr_table_eventlog.syntax_id, NULL, "Read Eventlog", "" },
- { "eventlog_numrecord", RPC_RTYPE_NTSTATUS, cmd_eventlog_numrecords, NULL, &ndr_table_eventlog.syntax_id, NULL, "Get number of records", "" },
- { "eventlog_oldestrecord", RPC_RTYPE_NTSTATUS, cmd_eventlog_oldestrecord, NULL, &ndr_table_eventlog.syntax_id, NULL, "Get oldest record", "" },
- { "eventlog_reportevent", RPC_RTYPE_NTSTATUS, cmd_eventlog_reportevent, NULL, &ndr_table_eventlog.syntax_id, NULL, "Report event", "" },
- { "eventlog_reporteventsource", RPC_RTYPE_NTSTATUS, cmd_eventlog_reporteventsource, NULL, &ndr_table_eventlog.syntax_id, NULL, "Report event and source", "" },
- { "eventlog_registerevsource", RPC_RTYPE_NTSTATUS, cmd_eventlog_registerevsource, NULL, &ndr_table_eventlog.syntax_id, NULL, "Register event source", "" },
- { "eventlog_backuplog", RPC_RTYPE_NTSTATUS, cmd_eventlog_backuplog, NULL, &ndr_table_eventlog.syntax_id, NULL, "Backup Eventlog File", "" },
- { "eventlog_loginfo", RPC_RTYPE_NTSTATUS, cmd_eventlog_loginfo, NULL, &ndr_table_eventlog.syntax_id, NULL, "Get Eventlog Information", "" },
+ { "eventlog_readlog", RPC_RTYPE_NTSTATUS,
+ cmd_eventlog_readlog, NULL,
+ NDR_EVENTLOG_UUID, NDR_EVENTLOG_VERSION, NULL,
+ "Read Eventlog", "" },
+ { "eventlog_numrecord", RPC_RTYPE_NTSTATUS,
+ cmd_eventlog_numrecords, NULL,
+ NDR_EVENTLOG_UUID, NDR_EVENTLOG_VERSION, NULL,
+ "Get number of records", "" },
+ { "eventlog_oldestrecord", RPC_RTYPE_NTSTATUS,
+ cmd_eventlog_oldestrecord, NULL,
+ NDR_EVENTLOG_UUID, NDR_EVENTLOG_VERSION, NULL,
+ "Get oldest record", "" },
+ { "eventlog_reportevent", RPC_RTYPE_NTSTATUS,
+ cmd_eventlog_reportevent, NULL,
+ NDR_EVENTLOG_UUID, NDR_EVENTLOG_VERSION, NULL,
+ "Report event", "" },
+ { "eventlog_reporteventsource", RPC_RTYPE_NTSTATUS,
+ cmd_eventlog_reporteventsource, NULL,
+ NDR_EVENTLOG_UUID, NDR_EVENTLOG_VERSION, NULL,
+ "Report event and source", "" },
+ { "eventlog_registerevsource", RPC_RTYPE_NTSTATUS,
+ cmd_eventlog_registerevsource, NULL,
+ NDR_EVENTLOG_UUID, NDR_EVENTLOG_VERSION, NULL,
+ "Register event source", "" },
+ { "eventlog_backuplog", RPC_RTYPE_NTSTATUS,
+ cmd_eventlog_backuplog, NULL,
+ NDR_EVENTLOG_UUID, NDR_EVENTLOG_VERSION, NULL,
+ "Backup Eventlog File", "" },
+ { "eventlog_loginfo", RPC_RTYPE_NTSTATUS,
+ cmd_eventlog_loginfo, NULL,
+ NDR_EVENTLOG_UUID, NDR_EVENTLOG_VERSION, NULL,
+ "Get Eventlog Information", "" },
{ NULL }
};
diff --git a/source3/rpcclient/cmd_lsarpc.c b/source3/rpcclient/cmd_lsarpc.c
index 45868bf5a9..d86015d00c 100644
--- a/source3/rpcclient/cmd_lsarpc.c
+++ b/source3/rpcclient/cmd_lsarpc.c
@@ -1975,38 +1975,98 @@ struct cmd_set lsarpc_commands[] = {
{ "LSARPC" },
- { "lsaquery", RPC_RTYPE_NTSTATUS, cmd_lsa_query_info_policy, NULL, &ndr_table_lsarpc.syntax_id, NULL, "Query info policy", "" },
- { "lookupsids", RPC_RTYPE_NTSTATUS, cmd_lsa_lookup_sids, NULL, &ndr_table_lsarpc.syntax_id, NULL, "Convert SIDs to names", "" },
- { "lookupsids3", RPC_RTYPE_NTSTATUS, cmd_lsa_lookup_sids3, NULL, &ndr_table_lsarpc.syntax_id, NULL, "Convert SIDs to names", "" },
- { "lookupnames", RPC_RTYPE_NTSTATUS, cmd_lsa_lookup_names, NULL, &ndr_table_lsarpc.syntax_id, NULL, "Convert names to SIDs", "" },
- { "lookupnames4", RPC_RTYPE_NTSTATUS, cmd_lsa_lookup_names4, NULL, &ndr_table_lsarpc.syntax_id, NULL, "Convert names to SIDs", "" },
- { "lookupnames_level", RPC_RTYPE_NTSTATUS, cmd_lsa_lookup_names_level, NULL, &ndr_table_lsarpc.syntax_id, NULL, "Convert names to SIDs", "" },
- { "enumtrust", RPC_RTYPE_NTSTATUS, cmd_lsa_enum_trust_dom, NULL, &ndr_table_lsarpc.syntax_id, NULL, "Enumerate trusted domains", "Usage: [preferred max number] [enum context (0)]" },
- { "enumprivs", RPC_RTYPE_NTSTATUS, cmd_lsa_enum_privilege, NULL, &ndr_table_lsarpc.syntax_id, NULL, "Enumerate privileges", "" },
- { "getdispname", RPC_RTYPE_NTSTATUS, cmd_lsa_get_dispname, NULL, &ndr_table_lsarpc.syntax_id, NULL, "Get the privilege name", "" },
- { "lsaenumsid", RPC_RTYPE_NTSTATUS, cmd_lsa_enum_sids, NULL, &ndr_table_lsarpc.syntax_id, NULL, "Enumerate the LSA SIDS", "" },
- { "lsacreateaccount", RPC_RTYPE_NTSTATUS, cmd_lsa_create_account, NULL, &ndr_table_lsarpc.syntax_id, NULL, "Create a new lsa account", "" },
- { "lsaenumprivsaccount", RPC_RTYPE_NTSTATUS, cmd_lsa_enum_privsaccounts, NULL, &ndr_table_lsarpc.syntax_id, NULL, "Enumerate the privileges of an SID", "" },
- { "lsaenumacctrights", RPC_RTYPE_NTSTATUS, cmd_lsa_enum_acct_rights, NULL, &ndr_table_lsarpc.syntax_id, NULL, "Enumerate the rights of an SID", "" },
- { "lsaaddpriv", RPC_RTYPE_NTSTATUS, cmd_lsa_add_priv, NULL, &ndr_table_lsarpc.syntax_id, NULL, "Assign a privilege to a SID", "" },
- { "lsadelpriv", RPC_RTYPE_NTSTATUS, cmd_lsa_del_priv, NULL, &ndr_table_lsarpc.syntax_id, NULL, "Revoke a privilege from a SID", "" },
- { "lsaaddacctrights", RPC_RTYPE_NTSTATUS, cmd_lsa_add_acct_rights, NULL, &ndr_table_lsarpc.syntax_id, NULL, "Add rights to an account", "" },
- { "lsaremoveacctrights", RPC_RTYPE_NTSTATUS, cmd_lsa_remove_acct_rights, NULL, &ndr_table_lsarpc.syntax_id, NULL, "Remove rights from an account", "" },
- { "lsalookupprivvalue", RPC_RTYPE_NTSTATUS, cmd_lsa_lookup_priv_value, NULL, &ndr_table_lsarpc.syntax_id, NULL, "Get a privilege value given its name", "" },
- { "lsaquerysecobj", RPC_RTYPE_NTSTATUS, cmd_lsa_query_secobj, NULL, &ndr_table_lsarpc.syntax_id, NULL, "Query LSA security object", "" },
- { "lsaquerytrustdominfo",RPC_RTYPE_NTSTATUS, cmd_lsa_query_trustdominfo, NULL, &ndr_table_lsarpc.syntax_id, NULL, "Query LSA trusted domains info (given a SID)", "" },
- { "lsaquerytrustdominfobyname",RPC_RTYPE_NTSTATUS, cmd_lsa_query_trustdominfobyname, NULL, &ndr_table_lsarpc.syntax_id, NULL, "Query LSA trusted domains info (given a name), only works for Windows > 2k", "" },
- { "lsaquerytrustdominfobysid",RPC_RTYPE_NTSTATUS, cmd_lsa_query_trustdominfobysid, NULL, &ndr_table_lsarpc.syntax_id, NULL, "Query LSA trusted domains info (given a SID)", "" },
- { "getusername", RPC_RTYPE_NTSTATUS, cmd_lsa_get_username, NULL, &ndr_table_lsarpc.syntax_id, NULL, "Get username", "" },
- { "createsecret", RPC_RTYPE_NTSTATUS, cmd_lsa_create_secret, NULL, &ndr_table_lsarpc.syntax_id, NULL, "Create Secret", "" },
- { "deletesecret", RPC_RTYPE_NTSTATUS, cmd_lsa_delete_secret, NULL, &ndr_table_lsarpc.syntax_id, NULL, "Delete Secret", "" },
- { "querysecret", RPC_RTYPE_NTSTATUS, cmd_lsa_query_secret, NULL, &ndr_table_lsarpc.syntax_id, NULL, "Query Secret", "" },
- { "setsecret", RPC_RTYPE_NTSTATUS, cmd_lsa_set_secret, NULL, &ndr_table_lsarpc.syntax_id, NULL, "Set Secret", "" },
- { "retrieveprivatedata", RPC_RTYPE_NTSTATUS, cmd_lsa_retrieve_private_data, NULL, &ndr_table_lsarpc.syntax_id, NULL, "Retrieve Private Data", "" },
- { "storeprivatedata", RPC_RTYPE_NTSTATUS, cmd_lsa_store_private_data, NULL, &ndr_table_lsarpc.syntax_id, NULL, "Store Private Data", "" },
- { "createtrustdom", RPC_RTYPE_NTSTATUS, cmd_lsa_create_trusted_domain, NULL, &ndr_table_lsarpc.syntax_id, NULL, "Create Trusted Domain", "" },
- { "deletetrustdom", RPC_RTYPE_NTSTATUS, cmd_lsa_delete_trusted_domain, NULL, &ndr_table_lsarpc.syntax_id, NULL, "Delete Trusted Domain", "" },
-
+ { "lsaquery", RPC_RTYPE_NTSTATUS, cmd_lsa_query_info_policy,
+ NULL, NDR_LSARPC_UUID, NDR_LSARPC_VERSION, NULL,
+ "Query info policy", "" },
+ { "lookupsids", RPC_RTYPE_NTSTATUS, cmd_lsa_lookup_sids,
+ NULL, NDR_LSARPC_UUID, NDR_LSARPC_VERSION, NULL,
+ "Convert SIDs to names", "" },
+ { "lookupsids3", RPC_RTYPE_NTSTATUS, cmd_lsa_lookup_sids3,
+ NULL, NDR_LSARPC_UUID, NDR_LSARPC_VERSION, NULL,
+ "Convert SIDs to names", "" },
+ { "lookupnames", RPC_RTYPE_NTSTATUS, cmd_lsa_lookup_names,
+ NULL, NDR_LSARPC_UUID, NDR_LSARPC_VERSION, NULL,
+ "Convert names to SIDs", "" },
+ { "lookupnames4", RPC_RTYPE_NTSTATUS, cmd_lsa_lookup_names4,
+ NULL, NDR_LSARPC_UUID, NDR_LSARPC_VERSION, NULL,
+ "Convert names to SIDs", "" },
+ { "lookupnames_level", RPC_RTYPE_NTSTATUS, cmd_lsa_lookup_names_level,
+ NULL, NDR_LSARPC_UUID, NDR_LSARPC_VERSION, NULL,
+ "Convert names to SIDs", "" },
+ { "enumtrust", RPC_RTYPE_NTSTATUS, cmd_lsa_enum_trust_dom,
+ NULL, NDR_LSARPC_UUID, NDR_LSARPC_VERSION, NULL,
+ "Enumerate trusted domains", "Usage: [preferred max number] [enum context (0)]" },
+ { "enumprivs", RPC_RTYPE_NTSTATUS, cmd_lsa_enum_privilege,
+ NULL, NDR_LSARPC_UUID, NDR_LSARPC_VERSION, NULL,
+ "Enumerate privileges", "" },
+ { "getdispname", RPC_RTYPE_NTSTATUS, cmd_lsa_get_dispname,
+ NULL, NDR_LSARPC_UUID, NDR_LSARPC_VERSION, NULL,
+ "Get the privilege name", "" },
+ { "lsaenumsid", RPC_RTYPE_NTSTATUS, cmd_lsa_enum_sids,
+ NULL, NDR_LSARPC_UUID, NDR_LSARPC_VERSION, NULL,
+ "Enumerate the LSA SIDS", "" },
+ { "lsacreateaccount", RPC_RTYPE_NTSTATUS, cmd_lsa_create_account,
+ NULL, NDR_LSARPC_UUID, NDR_LSARPC_VERSION, NULL,
+ "Create a new lsa account", "" },
+ { "lsaenumprivsaccount", RPC_RTYPE_NTSTATUS, cmd_lsa_enum_privsaccounts,
+ NULL, NDR_LSARPC_UUID, NDR_LSARPC_VERSION, NULL,
+ "Enumerate the privileges of an SID", "" },
+ { "lsaenumacctrights", RPC_RTYPE_NTSTATUS, cmd_lsa_enum_acct_rights,
+ NULL, NDR_LSARPC_UUID, NDR_LSARPC_VERSION, NULL,
+ "Enumerate the rights of an SID", "" },
+ { "lsaaddpriv", RPC_RTYPE_NTSTATUS, cmd_lsa_add_priv,
+ NULL, NDR_LSARPC_UUID, NDR_LSARPC_VERSION, NULL,
+ "Assign a privilege to a SID", "" },
+ { "lsadelpriv", RPC_RTYPE_NTSTATUS, cmd_lsa_del_priv,
+ NULL, NDR_LSARPC_UUID, NDR_LSARPC_VERSION, NULL,
+ "Revoke a privilege from a SID", "" },
+ { "lsaaddacctrights", RPC_RTYPE_NTSTATUS, cmd_lsa_add_acct_rights,
+ NULL, NDR_LSARPC_UUID, NDR_LSARPC_VERSION, NULL,
+ "Add rights to an account", "" },
+ { "lsaremoveacctrights", RPC_RTYPE_NTSTATUS, cmd_lsa_remove_acct_rights,
+ NULL, NDR_LSARPC_UUID, NDR_LSARPC_VERSION, NULL,
+ "Remove rights from an account", "" },
+ { "lsalookupprivvalue", RPC_RTYPE_NTSTATUS, cmd_lsa_lookup_priv_value,
+ NULL, NDR_LSARPC_UUID, NDR_LSARPC_VERSION, NULL,
+ "Get a privilege value given its name", "" },
+ { "lsaquerysecobj", RPC_RTYPE_NTSTATUS, cmd_lsa_query_secobj,
+ NULL, NDR_LSARPC_UUID, NDR_LSARPC_VERSION, NULL,
+ "Query LSA security object", "" },
+ { "lsaquerytrustdominfo",RPC_RTYPE_NTSTATUS, cmd_lsa_query_trustdominfo,
+ NULL, NDR_LSARPC_UUID, NDR_LSARPC_VERSION, NULL,
+ "Query LSA trusted domains info (given a SID)", "" },
+ { "lsaquerytrustdominfobyname",RPC_RTYPE_NTSTATUS, cmd_lsa_query_trustdominfobyname,
+ NULL, NDR_LSARPC_UUID, NDR_LSARPC_VERSION, NULL,
+ "Query LSA trusted domains info (given a name), only works for Windows > 2k", "" },
+ { "lsaquerytrustdominfobysid",RPC_RTYPE_NTSTATUS, cmd_lsa_query_trustdominfobysid,
+ NULL, NDR_LSARPC_UUID, NDR_LSARPC_VERSION, NULL,
+ "Query LSA trusted domains info (given a SID)", "" },
+ { "getusername", RPC_RTYPE_NTSTATUS, cmd_lsa_get_username,
+ NULL, NDR_LSARPC_UUID, NDR_LSARPC_VERSION, NULL,
+ "Get username", "" },
+ { "createsecret", RPC_RTYPE_NTSTATUS, cmd_lsa_create_secret,
+ NULL, NDR_LSARPC_UUID, NDR_LSARPC_VERSION, NULL,
+ "Create Secret", "" },
+ { "deletesecret", RPC_RTYPE_NTSTATUS, cmd_lsa_delete_secret,
+ NULL, NDR_LSARPC_UUID, NDR_LSARPC_VERSION, NULL,
+ "Delete Secret", "" },
+ { "querysecret", RPC_RTYPE_NTSTATUS, cmd_lsa_query_secret,
+ NULL, NDR_LSARPC_UUID, NDR_LSARPC_VERSION, NULL,
+ "Query Secret", "" },
+ { "setsecret", RPC_RTYPE_NTSTATUS, cmd_lsa_set_secret,
+ NULL, NDR_LSARPC_UUID, NDR_LSARPC_VERSION, NULL,
+ "Set Secret", "" },
+ { "retrieveprivatedata", RPC_RTYPE_NTSTATUS, cmd_lsa_retrieve_private_data,
+ NULL, NDR_LSARPC_UUID, NDR_LSARPC_VERSION, NULL,
+ "Retrieve Private Data", "" },
+ { "storeprivatedata", RPC_RTYPE_NTSTATUS, cmd_lsa_store_private_data,
+ NULL, NDR_LSARPC_UUID, NDR_LSARPC_VERSION, NULL,
+ "Store Private Data", "" },
+ { "createtrustdom", RPC_RTYPE_NTSTATUS, cmd_lsa_create_trusted_domain,
+ NULL, NDR_LSARPC_UUID, NDR_LSARPC_VERSION, NULL, "Create Trusted Domain", "" },
+ { "deletetrustdom", RPC_RTYPE_NTSTATUS, cmd_lsa_delete_trusted_domain,
+ NULL, NDR_LSARPC_UUID, NDR_LSARPC_VERSION, NULL,
+ "Delete Trusted Domain", "" },
{ NULL }
};
diff --git a/source3/rpcclient/cmd_netlogon.c b/source3/rpcclient/cmd_netlogon.c
index 2fbadf2a75..736668f5f9 100644
--- a/source3/rpcclient/cmd_netlogon.c
+++ b/source3/rpcclient/cmd_netlogon.c
@@ -1156,28 +1156,84 @@ struct cmd_set netlogon_commands[] = {
{ "NETLOGON" },
- { "logonctrl2", RPC_RTYPE_WERROR, NULL, cmd_netlogon_logon_ctrl2, &ndr_table_netlogon.syntax_id, NULL, "Logon Control 2", "" },
- { "getanydcname", RPC_RTYPE_WERROR, NULL, cmd_netlogon_getanydcname, &ndr_table_netlogon.syntax_id, NULL, "Get trusted DC name", "" },
- { "getdcname", RPC_RTYPE_WERROR, NULL, cmd_netlogon_getdcname, &ndr_table_netlogon.syntax_id, NULL, "Get trusted PDC name", "" },
- { "dsr_getdcname", RPC_RTYPE_WERROR, NULL, cmd_netlogon_dsr_getdcname, &ndr_table_netlogon.syntax_id, NULL, "Get trusted DC name", "" },
- { "dsr_getdcnameex", RPC_RTYPE_WERROR, NULL, cmd_netlogon_dsr_getdcnameex, &ndr_table_netlogon.syntax_id, NULL, "Get trusted DC name", "" },
- { "dsr_getdcnameex2", RPC_RTYPE_WERROR, NULL, cmd_netlogon_dsr_getdcnameex2, &ndr_table_netlogon.syntax_id, NULL, "Get trusted DC name", "" },
- { "dsr_getsitename", RPC_RTYPE_WERROR, NULL, cmd_netlogon_dsr_getsitename, &ndr_table_netlogon.syntax_id, NULL, "Get sitename", "" },
- { "dsr_getforesttrustinfo", RPC_RTYPE_WERROR, NULL, cmd_netlogon_dsr_getforesttrustinfo, &ndr_table_netlogon.syntax_id, NULL, "Get Forest Trust Info", "" },
- { "logonctrl", RPC_RTYPE_WERROR, NULL, cmd_netlogon_logon_ctrl, &ndr_table_netlogon.syntax_id, NULL, "Logon Control", "" },
- { "samsync", RPC_RTYPE_NTSTATUS, cmd_netlogon_sam_sync, NULL, &ndr_table_netlogon.syntax_id, NULL, "Sam Synchronisation", "" },
- { "samdeltas", RPC_RTYPE_NTSTATUS, cmd_netlogon_sam_deltas, NULL, &ndr_table_netlogon.syntax_id, NULL, "Query Sam Deltas", "" },
- { "samlogon", RPC_RTYPE_NTSTATUS, cmd_netlogon_sam_logon, NULL, &ndr_table_netlogon.syntax_id, NULL, "Sam Logon", "" },
- { "change_trust_pw", RPC_RTYPE_NTSTATUS, cmd_netlogon_change_trust_pw, NULL, &ndr_table_netlogon.syntax_id, NULL, "Change Trust Account Password", "" },
- { "gettrustrid", RPC_RTYPE_WERROR, NULL, cmd_netlogon_gettrustrid, &ndr_table_netlogon.syntax_id, NULL, "Get trust rid", "" },
- { "dsr_enumtrustdom", RPC_RTYPE_WERROR, NULL, cmd_netlogon_dsr_enumtrustdom, &ndr_table_netlogon.syntax_id, NULL, "Enumerate trusted domains", "" },
- { "dsenumdomtrusts", RPC_RTYPE_WERROR, NULL, cmd_netlogon_dsr_enumtrustdom, &ndr_table_netlogon.syntax_id, NULL, "Enumerate all trusted domains in an AD forest", "" },
- { "deregisterdnsrecords", RPC_RTYPE_WERROR, NULL, cmd_netlogon_deregisterdnsrecords, &ndr_table_netlogon.syntax_id, NULL, "Deregister DNS records", "" },
- { "netrenumtrusteddomains", RPC_RTYPE_WERROR, NULL, cmd_netlogon_enumtrusteddomains, &ndr_table_netlogon.syntax_id, NULL, "Enumerate trusted domains", "" },
- { "netrenumtrusteddomainsex", RPC_RTYPE_WERROR, NULL, cmd_netlogon_enumtrusteddomainsex, &ndr_table_netlogon.syntax_id, NULL, "Enumerate trusted domains", "" },
- { "getdcsitecoverage", RPC_RTYPE_WERROR, NULL, cmd_netlogon_getdcsitecoverage, &ndr_table_netlogon.syntax_id, NULL, "Get the Site-Coverage from a DC", "" },
- { "database_redo", RPC_RTYPE_NTSTATUS, cmd_netlogon_database_redo, NULL, &ndr_table_netlogon.syntax_id, NULL, "Replicate single object from a DC", "" },
- { "capabilities", RPC_RTYPE_NTSTATUS, cmd_netlogon_capabilities, NULL, &ndr_table_netlogon.syntax_id, NULL, "Return Capabilities", "" },
+ { "logonctrl2", RPC_RTYPE_WERROR, NULL, cmd_netlogon_logon_ctrl2,
+ NDR_NETLOGON_UUID, NDR_NETLOGON_VERSION, NULL,
+ "Logon Control 2", "" },
+ { "getanydcname", RPC_RTYPE_WERROR, NULL, cmd_netlogon_getanydcname,
+ NDR_NETLOGON_UUID, NDR_NETLOGON_VERSION, NULL,
+ "Get trusted DC name", "" },
+ { "getdcname", RPC_RTYPE_WERROR, NULL, cmd_netlogon_getdcname,
+ NDR_NETLOGON_UUID, NDR_NETLOGON_VERSION, NULL,
+ "Get trusted PDC name", "" },
+ { "dsr_getdcname", RPC_RTYPE_WERROR, NULL, cmd_netlogon_dsr_getdcname,
+ NDR_NETLOGON_UUID, NDR_NETLOGON_VERSION, NULL,
+ "Get trusted DC name", "" },
+ { "dsr_getdcnameex", RPC_RTYPE_WERROR, NULL,
+ cmd_netlogon_dsr_getdcnameex,
+ NDR_NETLOGON_UUID, NDR_NETLOGON_VERSION, NULL,
+ "Get trusted DC name", "" },
+ { "dsr_getdcnameex2", RPC_RTYPE_WERROR, NULL,
+ cmd_netlogon_dsr_getdcnameex2,
+ NDR_NETLOGON_UUID, NDR_NETLOGON_VERSION, NULL,
+ "Get trusted DC name", "" },
+ { "dsr_getsitename", RPC_RTYPE_WERROR, NULL,
+ cmd_netlogon_dsr_getsitename,
+ NDR_NETLOGON_UUID, NDR_NETLOGON_VERSION, NULL,
+ "Get sitename", "" },
+ { "dsr_getforesttrustinfo", RPC_RTYPE_WERROR, NULL,
+ cmd_netlogon_dsr_getforesttrustinfo,
+ NDR_NETLOGON_UUID, NDR_NETLOGON_VERSION, NULL,
+ "Get Forest Trust Info", "" },
+ { "logonctrl", RPC_RTYPE_WERROR, NULL, cmd_netlogon_logon_ctrl,
+ NDR_NETLOGON_UUID, NDR_NETLOGON_VERSION, NULL,
+ "Logon Control", "" },
+ { "samsync", RPC_RTYPE_NTSTATUS, cmd_netlogon_sam_sync, NULL,
+ NDR_NETLOGON_UUID, NDR_NETLOGON_VERSION, NULL,
+ "Sam Synchronisation", "" },
+ { "samdeltas", RPC_RTYPE_NTSTATUS, cmd_netlogon_sam_deltas, NULL,
+ NDR_NETLOGON_UUID, NDR_NETLOGON_VERSION, NULL,
+ "Query Sam Deltas", "" },
+ { "samlogon", RPC_RTYPE_NTSTATUS, cmd_netlogon_sam_logon, NULL,
+ NDR_NETLOGON_UUID, NDR_NETLOGON_VERSION, NULL,
+ "Sam Logon", "" },
+ { "change_trust_pw", RPC_RTYPE_NTSTATUS,
+ cmd_netlogon_change_trust_pw, NULL,
+ NDR_NETLOGON_UUID, NDR_NETLOGON_VERSION, NULL,
+ "Change Trust Account Password", "" },
+ { "gettrustrid", RPC_RTYPE_WERROR, NULL, cmd_netlogon_gettrustrid,
+ NDR_NETLOGON_UUID, NDR_NETLOGON_VERSION, NULL,
+ "Get trust rid", "" },
+ { "dsr_enumtrustdom", RPC_RTYPE_WERROR, NULL,
+ cmd_netlogon_dsr_enumtrustdom,
+ NDR_NETLOGON_UUID, NDR_NETLOGON_VERSION, NULL,
+ "Enumerate trusted domains", "" },
+ { "dsenumdomtrusts", RPC_RTYPE_WERROR, NULL,
+ cmd_netlogon_dsr_enumtrustdom,
+ NDR_NETLOGON_UUID, NDR_NETLOGON_VERSION, NULL,
+ "Enumerate all trusted domains in an AD forest", "" },
+ { "deregisterdnsrecords", RPC_RTYPE_WERROR, NULL,
+ cmd_netlogon_deregisterdnsrecords,
+ NDR_NETLOGON_UUID, NDR_NETLOGON_VERSION, NULL,
+ "Deregister DNS records", "" },
+ { "netrenumtrusteddomains", RPC_RTYPE_WERROR, NULL,
+ cmd_netlogon_enumtrusteddomains,
+ NDR_NETLOGON_UUID, NDR_NETLOGON_VERSION, NULL,
+ "Enumerate trusted domains", "" },
+ { "netrenumtrusteddomainsex", RPC_RTYPE_WERROR, NULL,
+ cmd_netlogon_enumtrusteddomainsex,
+ NDR_NETLOGON_UUID, NDR_NETLOGON_VERSION, NULL,
+ "Enumerate trusted domains", "" },
+ { "getdcsitecoverage", RPC_RTYPE_WERROR, NULL,
+ cmd_netlogon_getdcsitecoverage,
+ NDR_NETLOGON_UUID, NDR_NETLOGON_VERSION, NULL,
+ "Get the Site-Coverage from a DC", "" },
+ { "database_redo", RPC_RTYPE_NTSTATUS,
+ cmd_netlogon_database_redo, NULL,
+ NDR_NETLOGON_UUID, NDR_NETLOGON_VERSION, NULL,
+ "Replicate single object from a DC", "" },
+ { "capabilities", RPC_RTYPE_NTSTATUS, cmd_netlogon_capabilities, NULL,
+ NDR_NETLOGON_UUID, NDR_NETLOGON_VERSION, NULL,
+ "Return Capabilities", "" },
{ NULL }
};
diff --git a/source3/rpcclient/cmd_ntsvcs.c b/source3/rpcclient/cmd_ntsvcs.c
index a345cdc8bf..88018258df 100644
--- a/source3/rpcclient/cmd_ntsvcs.c
+++ b/source3/rpcclient/cmd_ntsvcs.c
@@ -275,12 +275,33 @@ static WERROR cmd_ntsvcs_get_dev_list(struct rpc_pipe_client *cli,
struct cmd_set ntsvcs_commands[] = {
{ "NTSVCS" },
- { "ntsvcs_getversion", RPC_RTYPE_WERROR, NULL, cmd_ntsvcs_get_version, &ndr_table_ntsvcs.syntax_id, NULL, "Query NTSVCS version", "" },
- { "ntsvcs_validatedevinst", RPC_RTYPE_WERROR, NULL, cmd_ntsvcs_validate_dev_inst, &ndr_table_ntsvcs.syntax_id, NULL, "Query NTSVCS device instance", "" },
- { "ntsvcs_hwprofflags", RPC_RTYPE_WERROR, NULL, cmd_ntsvcs_hw_prof_flags, &ndr_table_ntsvcs.syntax_id, NULL, "Query NTSVCS HW prof flags", "" },
- { "ntsvcs_hwprofinfo", RPC_RTYPE_WERROR, NULL, cmd_ntsvcs_get_hw_prof_info, &ndr_table_ntsvcs.syntax_id, NULL, "Query NTSVCS HW prof info", "" },
- { "ntsvcs_getdevregprop", RPC_RTYPE_WERROR, NULL, cmd_ntsvcs_get_dev_reg_prop, &ndr_table_ntsvcs.syntax_id, NULL, "Query NTSVCS device registry property", "" },
- { "ntsvcs_getdevlistsize", RPC_RTYPE_WERROR, NULL, cmd_ntsvcs_get_dev_list_size, &ndr_table_ntsvcs.syntax_id, NULL, "Query NTSVCS device list size", "" },
- { "ntsvcs_getdevlist", RPC_RTYPE_WERROR, NULL, cmd_ntsvcs_get_dev_list, &ndr_table_ntsvcs.syntax_id, NULL, "Query NTSVCS device list", "" },
+ { "ntsvcs_getversion", RPC_RTYPE_WERROR, NULL,
+ cmd_ntsvcs_get_version,
+ NDR_NTSVCS_UUID, NDR_NTSVCS_VERSION, NULL,
+ "Query NTSVCS version", "" },
+ { "ntsvcs_validatedevinst", RPC_RTYPE_WERROR, NULL,
+ cmd_ntsvcs_validate_dev_inst,
+ NDR_NTSVCS_UUID, NDR_NTSVCS_VERSION, NULL,
+ "Query NTSVCS device instance", "" },
+ { "ntsvcs_hwprofflags", RPC_RTYPE_WERROR, NULL,
+ cmd_ntsvcs_hw_prof_flags,
+ NDR_NTSVCS_UUID, NDR_NTSVCS_VERSION, NULL,
+ "Query NTSVCS HW prof flags", "" },
+ { "ntsvcs_hwprofinfo", RPC_RTYPE_WERROR, NULL,
+ cmd_ntsvcs_get_hw_prof_info,
+ NDR_NTSVCS_UUID, NDR_NTSVCS_VERSION, NULL,
+ "Query NTSVCS HW prof info", "" },
+ { "ntsvcs_getdevregprop", RPC_RTYPE_WERROR, NULL,
+ cmd_ntsvcs_get_dev_reg_prop,
+ NDR_NTSVCS_UUID, NDR_NTSVCS_VERSION, NULL,
+ "Query NTSVCS device registry property", "" },
+ { "ntsvcs_getdevlistsize", RPC_RTYPE_WERROR, NULL,
+ cmd_ntsvcs_get_dev_list_size,
+ NDR_NTSVCS_UUID, NDR_NTSVCS_VERSION, NULL,
+ "Query NTSVCS device list size", "" },
+ { "ntsvcs_getdevlist", RPC_RTYPE_WERROR, NULL,
+ cmd_ntsvcs_get_dev_list,
+ NDR_NTSVCS_UUID, NDR_NTSVCS_VERSION, NULL,
+ "Query NTSVCS device list", "" },
{ NULL }
};
diff --git a/source3/rpcclient/cmd_samr.c b/source3/rpcclient/cmd_samr.c
index e52411f8f7..f1a04efe17 100644
--- a/source3/rpcclient/cmd_samr.c
+++ b/source3/rpcclient/cmd_samr.c
@@ -2916,40 +2916,106 @@ struct cmd_set samr_commands[] = {
{ "SAMR" },
- { "queryuser", RPC_RTYPE_NTSTATUS, cmd_samr_query_user, NULL, &ndr_table_samr.syntax_id, NULL, "Query user info", "" },
- { "querygroup", RPC_RTYPE_NTSTATUS, cmd_samr_query_group, NULL, &ndr_table_samr.syntax_id, NULL, "Query group info", "" },
- { "queryusergroups", RPC_RTYPE_NTSTATUS, cmd_samr_query_usergroups, NULL, &ndr_table_samr.syntax_id, NULL, "Query user groups", "" },
- { "queryuseraliases", RPC_RTYPE_NTSTATUS, cmd_samr_query_useraliases, NULL, &ndr_table_samr.syntax_id, NULL, "Query user aliases", "" },
- { "querygroupmem", RPC_RTYPE_NTSTATUS, cmd_samr_query_groupmem, NULL, &ndr_table_samr.syntax_id, NULL, "Query group membership", "" },
- { "queryaliasmem", RPC_RTYPE_NTSTATUS, cmd_samr_query_aliasmem, NULL, &ndr_table_samr.syntax_id, NULL, "Query alias membership", "" },
- { "queryaliasinfo", RPC_RTYPE_NTSTATUS, cmd_samr_query_aliasinfo, NULL, &ndr_table_samr.syntax_id, NULL, "Query alias info", "" },
- { "deletealias", RPC_RTYPE_NTSTATUS, cmd_samr_delete_alias, NULL, &ndr_table_samr.syntax_id, NULL, "Delete an alias", "" },
- { "querydispinfo", RPC_RTYPE_NTSTATUS, cmd_samr_query_dispinfo, NULL, &ndr_table_samr.syntax_id, NULL, "Query display info", "" },
- { "querydispinfo2", RPC_RTYPE_NTSTATUS, cmd_samr_query_dispinfo2, NULL, &ndr_table_samr.syntax_id, NULL, "Query display info", "" },
- { "querydispinfo3", RPC_RTYPE_NTSTATUS, cmd_samr_query_dispinfo3, NULL, &ndr_table_samr.syntax_id, NULL, "Query display info", "" },
- { "querydominfo", RPC_RTYPE_NTSTATUS, cmd_samr_query_dominfo, NULL, &ndr_table_samr.syntax_id, NULL, "Query domain info", "" },
- { "enumdomusers", RPC_RTYPE_NTSTATUS, cmd_samr_enum_dom_users, NULL, &ndr_table_samr.syntax_id, NULL, "Enumerate domain users", "" },
- { "enumdomgroups", RPC_RTYPE_NTSTATUS, cmd_samr_enum_dom_groups, NULL, &ndr_table_samr.syntax_id, NULL, "Enumerate domain groups", "" },
- { "enumalsgroups", RPC_RTYPE_NTSTATUS, cmd_samr_enum_als_groups, NULL, &ndr_table_samr.syntax_id, NULL, "Enumerate alias groups", "" },
- { "enumdomains", RPC_RTYPE_NTSTATUS, cmd_samr_enum_domains, NULL, &ndr_table_samr.syntax_id, NULL, "Enumerate domains", "" },
-
- { "createdomuser", RPC_RTYPE_NTSTATUS, cmd_samr_create_dom_user, NULL, &ndr_table_samr.syntax_id, NULL, "Create domain user", "" },
- { "createdomgroup", RPC_RTYPE_NTSTATUS, cmd_samr_create_dom_group, NULL, &ndr_table_samr.syntax_id, NULL, "Create domain group", "" },
- { "createdomalias", RPC_RTYPE_NTSTATUS, cmd_samr_create_dom_alias, NULL, &ndr_table_samr.syntax_id, NULL, "Create domain alias", "" },
- { "samlookupnames", RPC_RTYPE_NTSTATUS, cmd_samr_lookup_names, NULL, &ndr_table_samr.syntax_id, NULL, "Look up names", "" },
- { "samlookuprids", RPC_RTYPE_NTSTATUS, cmd_samr_lookup_rids, NULL, &ndr_table_samr.syntax_id, NULL, "Look up names", "" },
- { "deletedomgroup", RPC_RTYPE_NTSTATUS, cmd_samr_delete_dom_group, NULL, &ndr_table_samr.syntax_id, NULL, "Delete domain group", "" },
- { "deletedomuser", RPC_RTYPE_NTSTATUS, cmd_samr_delete_dom_user, NULL, &ndr_table_samr.syntax_id, NULL, "Delete domain user", "" },
- { "samquerysecobj", RPC_RTYPE_NTSTATUS, cmd_samr_query_sec_obj, NULL, &ndr_table_samr.syntax_id, NULL, "Query SAMR security object", "" },
- { "getdompwinfo", RPC_RTYPE_NTSTATUS, cmd_samr_get_dom_pwinfo, NULL, &ndr_table_samr.syntax_id, NULL, "Retrieve domain password info", "" },
- { "getusrdompwinfo", RPC_RTYPE_NTSTATUS, cmd_samr_get_usrdom_pwinfo, NULL, &ndr_table_samr.syntax_id, NULL, "Retrieve user domain password info", "" },
-
- { "lookupdomain", RPC_RTYPE_NTSTATUS, cmd_samr_lookup_domain, NULL, &ndr_table_samr.syntax_id, NULL, "Lookup Domain Name", "" },
- { "chgpasswd", RPC_RTYPE_NTSTATUS, cmd_samr_chgpasswd, NULL, &ndr_table_samr.syntax_id, NULL, "Change user password", "" },
- { "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", "" },
+ { "queryuser", RPC_RTYPE_NTSTATUS, cmd_samr_query_user,
+ NULL, NDR_SAMR_UUID, NDR_SAMR_VERSION, NULL,
+ "Query user info", "" },
+ { "querygroup", RPC_RTYPE_NTSTATUS, cmd_samr_query_group,
+ NULL, NDR_SAMR_UUID, NDR_SAMR_VERSION, NULL,
+ "Query group info", "" },
+ { "queryusergroups", RPC_RTYPE_NTSTATUS, cmd_samr_query_usergroups,
+ NULL, NDR_SAMR_UUID, NDR_SAMR_VERSION, NULL,
+ "Query user groups", "" },
+ { "queryuseraliases", RPC_RTYPE_NTSTATUS, cmd_samr_query_useraliases,
+ NULL, NDR_SAMR_UUID, NDR_SAMR_VERSION, NULL,
+ "Query user aliases", "" },
+ { "querygroupmem", RPC_RTYPE_NTSTATUS, cmd_samr_query_groupmem,
+ NULL, NDR_SAMR_UUID, NDR_SAMR_VERSION, NULL,
+ "Query group membership", "" },
+ { "queryaliasmem", RPC_RTYPE_NTSTATUS, cmd_samr_query_aliasmem,
+ NULL, NDR_SAMR_UUID, NDR_SAMR_VERSION, NULL,
+ "Query alias membership", "" },
+ { "queryaliasinfo", RPC_RTYPE_NTSTATUS, cmd_samr_query_aliasinfo,
+ NULL, NDR_SAMR_UUID, NDR_SAMR_VERSION, NULL,
+ "Query alias info", "" },
+ { "deletealias", RPC_RTYPE_NTSTATUS, cmd_samr_delete_alias,
+ NULL, NDR_SAMR_UUID, NDR_SAMR_VERSION, NULL,
+ "Delete an alias", "" },
+ { "querydispinfo", RPC_RTYPE_NTSTATUS, cmd_samr_query_dispinfo,
+ NULL, NDR_SAMR_UUID, NDR_SAMR_VERSION, NULL,
+ "Query display info", "" },
+ { "querydispinfo2", RPC_RTYPE_NTSTATUS, cmd_samr_query_dispinfo2,
+ NULL, NDR_SAMR_UUID, NDR_SAMR_VERSION, NULL,
+ "Query display info", "" },
+ { "querydispinfo3", RPC_RTYPE_NTSTATUS, cmd_samr_query_dispinfo3,
+ NULL, NDR_SAMR_UUID, NDR_SAMR_VERSION, NULL,
+ "Query display info", "" },
+ { "querydominfo", RPC_RTYPE_NTSTATUS, cmd_samr_query_dominfo,
+ NULL, NDR_SAMR_UUID, NDR_SAMR_VERSION, NULL,
+ "Query domain info", "" },
+ { "enumdomusers", RPC_RTYPE_NTSTATUS, cmd_samr_enum_dom_users,
+ NULL, NDR_SAMR_UUID, NDR_SAMR_VERSION, NULL,
+ "Enumerate domain users", "" },
+ { "enumdomgroups", RPC_RTYPE_NTSTATUS, cmd_samr_enum_dom_groups,
+ NULL, NDR_SAMR_UUID, NDR_SAMR_VERSION, NULL,
+ "Enumerate domain groups", "" },
+ { "enumalsgroups", RPC_RTYPE_NTSTATUS, cmd_samr_enum_als_groups,
+ NULL, NDR_SAMR_UUID, NDR_SAMR_VERSION, NULL,
+ "Enumerate alias groups", "" },
+ { "enumdomains", RPC_RTYPE_NTSTATUS, cmd_samr_enum_domains,
+ NULL, NDR_SAMR_UUID, NDR_SAMR_VERSION, NULL,
+ "Enumerate domains", "" },
+
+ { "createdomuser", RPC_RTYPE_NTSTATUS, cmd_samr_create_dom_user,
+ NULL, NDR_SAMR_UUID, NDR_SAMR_VERSION, NULL,
+ "Create domain user", "" },
+ { "createdomgroup", RPC_RTYPE_NTSTATUS, cmd_samr_create_dom_group,
+ NULL, NDR_SAMR_UUID, NDR_SAMR_VERSION, NULL,
+ "Create domain group", "" },
+ { "createdomalias", RPC_RTYPE_NTSTATUS, cmd_samr_create_dom_alias,
+ NULL, NDR_SAMR_UUID, NDR_SAMR_VERSION, NULL,
+ "Create domain alias", "" },
+ { "samlookupnames", RPC_RTYPE_NTSTATUS, cmd_samr_lookup_names,
+ NULL, NDR_SAMR_UUID, NDR_SAMR_VERSION, NULL,
+ "Look up names", "" },
+ { "samlookuprids", RPC_RTYPE_NTSTATUS, cmd_samr_lookup_rids,
+ NULL, NDR_SAMR_UUID, NDR_SAMR_VERSION, NULL,
+ "Look up names", "" },
+ { "deletedomgroup", RPC_RTYPE_NTSTATUS, cmd_samr_delete_dom_group,
+ NULL, NDR_SAMR_UUID, NDR_SAMR_VERSION, NULL,
+ "Delete domain group", "" },
+ { "deletedomuser", RPC_RTYPE_NTSTATUS, cmd_samr_delete_dom_user,
+ NULL, NDR_SAMR_UUID, NDR_SAMR_VERSION, NULL,
+ "Delete domain user", "" },
+ { "samquerysecobj", RPC_RTYPE_NTSTATUS, cmd_samr_query_sec_obj,
+ NULL, NDR_SAMR_UUID, NDR_SAMR_VERSION, NULL,
+ "Query SAMR security object", "" },
+ { "getdompwinfo", RPC_RTYPE_NTSTATUS, cmd_samr_get_dom_pwinfo,
+ NULL, NDR_SAMR_UUID, NDR_SAMR_VERSION, NULL,
+ "Retrieve domain password info", "" },
+ { "getusrdompwinfo", RPC_RTYPE_NTSTATUS, cmd_samr_get_usrdom_pwinfo,
+ NULL, NDR_SAMR_UUID, NDR_SAMR_VERSION, NULL,
+ "Retrieve user domain password info", "" },
+
+ { "lookupdomain", RPC_RTYPE_NTSTATUS, cmd_samr_lookup_domain,
+ NULL, NDR_SAMR_UUID, NDR_SAMR_VERSION, NULL,
+ "Lookup Domain Name", "" },
+ { "chgpasswd", RPC_RTYPE_NTSTATUS, cmd_samr_chgpasswd,
+ NULL, NDR_SAMR_UUID, NDR_SAMR_VERSION, NULL,
+ "Change user password", "" },
+ { "chgpasswd2", RPC_RTYPE_NTSTATUS, cmd_samr_chgpasswd2,
+ NULL, NDR_SAMR_UUID, NDR_SAMR_VERSION, NULL,
+ "Change user password", "" },
+ { "chgpasswd3", RPC_RTYPE_NTSTATUS, cmd_samr_chgpasswd3,
+ NULL, NDR_SAMR_UUID, NDR_SAMR_VERSION, NULL,
+ "Change user password", "" },
+ { "getdispinfoidx", RPC_RTYPE_NTSTATUS, cmd_samr_get_dispinfo_idx,
+ NULL, NDR_SAMR_UUID, NDR_SAMR_VERSION, NULL,
+ "Get Display Information Index", "" },
+ { "setuserinfo", RPC_RTYPE_NTSTATUS, cmd_samr_setuserinfo,
+ NULL, NDR_SAMR_UUID, NDR_SAMR_VERSION, NULL,
+ "Set user info", "" },
+ { "setuserinfo2", RPC_RTYPE_NTSTATUS, cmd_samr_setuserinfo2,
+ NULL, NDR_SAMR_UUID, NDR_SAMR_VERSION, NULL,
+ "Set user info2", "" },
{ NULL }
};
diff --git a/source3/rpcclient/cmd_shutdown.c b/source3/rpcclient/cmd_shutdown.c
index f79c9aad02..451c26e35a 100644
--- a/source3/rpcclient/cmd_shutdown.c
+++ b/source3/rpcclient/cmd_shutdown.c
@@ -107,11 +107,14 @@ struct cmd_set shutdown_commands[] = {
{ "SHUTDOWN" },
#if 0
- { "shutdowninit", RPC_RTYPE_NTSTATUS, cmd_shutdown_init, NULL, &ndr_table_initshutdown.syntax_id, "Remote Shutdown (over shutdown pipe)",
- "syntax: shutdown [-m message] [-t timeout] [-r] [-h] [-f] (-r == reboot, -h == halt, -f == force)" },
-
- { "shutdownabort", RPC_RTYPE_NTSTATUS, cmd_shutdown_abort, NULL, &ndr_table_initshutdown.syntax_id, "Abort Shutdown (over shutdown pipe)",
- "syntax: shutdownabort" },
+ { "shutdowninit", RPC_RTYPE_NTSTATUS, cmd_shutdown_init, NULL,
+ NDR_INITSHUTDOWN_UUID, NDR_INITSHUTDOWN_VERSION,
+ "Remote Shutdown (over shutdown pipe)",
+ "syntax: shutdown [-m message] [-t timeout] [-r] [-h] [-f] (-r == reboot, -h == halt, -f == force)" },
+ { "shutdownabort", RPC_RTYPE_NTSTATUS, cmd_shutdown_abort, NULL,
+ NDR_INITSHUTDOWN_UUID, NDR_INITSHUTDOWN_VERSION,
+ "Abort Shutdown (over shutdown pipe)",
+ "syntax: shutdownabort" },
#endif
{ NULL }
};
diff --git a/source3/rpcclient/cmd_spoolss.c b/source3/rpcclient/cmd_spoolss.c
index 8b1a6eac03..4c142566b3 100644
--- a/source3/rpcclient/cmd_spoolss.c
+++ b/source3/rpcclient/cmd_spoolss.c
@@ -3474,41 +3474,146 @@ struct cmd_set spoolss_commands[] = {
{ "SPOOLSS" },
- { "adddriver", RPC_RTYPE_WERROR, NULL, cmd_spoolss_addprinterdriver, &ndr_table_spoolss.syntax_id, NULL, "Add a print driver", "" },
- { "addprinter", RPC_RTYPE_WERROR, NULL, cmd_spoolss_addprinterex, &ndr_table_spoolss.syntax_id, NULL, "Add a printer", "" },
- { "deldriver", RPC_RTYPE_WERROR, NULL, cmd_spoolss_deletedriver, &ndr_table_spoolss.syntax_id, NULL, "Delete a printer driver", "" },
- { "deldriverex", RPC_RTYPE_WERROR, NULL, cmd_spoolss_deletedriverex, &ndr_table_spoolss.syntax_id, NULL, "Delete a printer driver with files", "" },
- { "enumdata", RPC_RTYPE_WERROR, NULL, cmd_spoolss_enum_data, &ndr_table_spoolss.syntax_id, NULL, "Enumerate printer data", "" },
- { "enumdataex", RPC_RTYPE_WERROR, NULL, cmd_spoolss_enum_data_ex, &ndr_table_spoolss.syntax_id, NULL, "Enumerate printer data for a key", "" },
- { "enumkey", RPC_RTYPE_WERROR, NULL, cmd_spoolss_enum_printerkey, &ndr_table_spoolss.syntax_id, NULL, "Enumerate printer keys", "" },
- { "enumjobs", RPC_RTYPE_WERROR, NULL, cmd_spoolss_enum_jobs, &ndr_table_spoolss.syntax_id, NULL, "Enumerate print jobs", "" },
- { "getjob", RPC_RTYPE_WERROR, NULL, cmd_spoolss_get_job, &ndr_table_spoolss.syntax_id, NULL, "Get print job", "" },
- { "setjob", RPC_RTYPE_WERROR, NULL, cmd_spoolss_set_job, &ndr_table_spoolss.syntax_id, NULL, "Set print job", "" },
- { "enumports", RPC_RTYPE_WERROR, NULL, cmd_spoolss_enum_ports, &ndr_table_spoolss.syntax_id, NULL, "Enumerate printer ports", "" },
- { "enumdrivers", RPC_RTYPE_WERROR, NULL, cmd_spoolss_enum_drivers, &ndr_table_spoolss.syntax_id, NULL, "Enumerate installed printer drivers", "" },
- { "enumprinters", RPC_RTYPE_WERROR, NULL, cmd_spoolss_enum_printers, &ndr_table_spoolss.syntax_id, NULL, "Enumerate printers", "" },
- { "getdata", RPC_RTYPE_WERROR, NULL, cmd_spoolss_getprinterdata, &ndr_table_spoolss.syntax_id, NULL, "Get print driver data", "" },
- { "getdataex", RPC_RTYPE_WERROR, NULL, cmd_spoolss_getprinterdataex, &ndr_table_spoolss.syntax_id, NULL, "Get printer driver data with keyname", ""},
- { "getdriver", RPC_RTYPE_WERROR, NULL, cmd_spoolss_getdriver, &ndr_table_spoolss.syntax_id, NULL, "Get print driver information", "" },
- { "getdriverdir", RPC_RTYPE_WERROR, NULL, cmd_spoolss_getdriverdir, &ndr_table_spoolss.syntax_id, NULL, "Get print driver upload directory", "" },
- { "getprinter", RPC_RTYPE_WERROR, NULL, cmd_spoolss_getprinter, &ndr_table_spoolss.syntax_id, NULL, "Get printer info", "" },
- { "openprinter", RPC_RTYPE_WERROR, NULL, cmd_spoolss_open_printer_ex, &ndr_table_spoolss.syntax_id, NULL, "Open printer handle", "" },
- { "setdriver", RPC_RTYPE_WERROR, NULL, cmd_spoolss_setdriver, &ndr_table_spoolss.syntax_id, NULL, "Set printer driver", "" },
- { "getprintprocdir", RPC_RTYPE_WERROR, NULL, cmd_spoolss_getprintprocdir, &ndr_table_spoolss.syntax_id, NULL, "Get print processor directory", "" },
- { "addform", RPC_RTYPE_WERROR, NULL, cmd_spoolss_addform, &ndr_table_spoolss.syntax_id, NULL, "Add form", "" },
- { "setform", RPC_RTYPE_WERROR, NULL, cmd_spoolss_setform, &ndr_table_spoolss.syntax_id, NULL, "Set form", "" },
- { "getform", RPC_RTYPE_WERROR, NULL, cmd_spoolss_getform, &ndr_table_spoolss.syntax_id, NULL, "Get form", "" },
- { "deleteform", RPC_RTYPE_WERROR, NULL, cmd_spoolss_deleteform, &ndr_table_spoolss.syntax_id, NULL, "Delete form", "" },
- { "enumforms", RPC_RTYPE_WERROR, NULL, cmd_spoolss_enum_forms, &ndr_table_spoolss.syntax_id, NULL, "Enumerate forms", "" },
- { "setprinter", RPC_RTYPE_WERROR, NULL, cmd_spoolss_setprinter, &ndr_table_spoolss.syntax_id, NULL, "Set printer comment", "" },
- { "setprintername", RPC_RTYPE_WERROR, NULL, cmd_spoolss_setprintername, &ndr_table_spoolss.syntax_id, NULL, "Set printername", "" },
- { "setprinterdata", RPC_RTYPE_WERROR, NULL, cmd_spoolss_setprinterdata, &ndr_table_spoolss.syntax_id, NULL, "Set REG_SZ printer data", "" },
- { "rffpcnex", RPC_RTYPE_WERROR, NULL, cmd_spoolss_rffpcnex, &ndr_table_spoolss.syntax_id, NULL, "Rffpcnex test", "" },
- { "printercmp", RPC_RTYPE_WERROR, NULL, cmd_spoolss_printercmp, &ndr_table_spoolss.syntax_id, NULL, "Printer comparison test", "" },
- { "enumprocs", RPC_RTYPE_WERROR, NULL, cmd_spoolss_enum_procs, &ndr_table_spoolss.syntax_id, NULL, "Enumerate Print Processors", "" },
- { "enumprocdatatypes", RPC_RTYPE_WERROR, NULL, cmd_spoolss_enum_proc_data_types, &ndr_table_spoolss.syntax_id, NULL, "Enumerate Print Processor Data Types", "" },
- { "enummonitors", RPC_RTYPE_WERROR, NULL, cmd_spoolss_enum_monitors, &ndr_table_spoolss.syntax_id, NULL, "Enumerate Print Monitors", "" },
- { "createprinteric", RPC_RTYPE_WERROR, NULL, cmd_spoolss_create_printer_ic, &ndr_table_spoolss.syntax_id, NULL, "Create Printer IC", "" },
+ { "adddriver", RPC_RTYPE_WERROR, NULL,
+ cmd_spoolss_addprinterdriver,
+ NDR_SPOOLSS_UUID, NDR_SPOOLSS_VERSION, NULL,
+ "Add a print driver", "" },
+ { "addprinter", RPC_RTYPE_WERROR, NULL,
+ cmd_spoolss_addprinterex,
+ NDR_SPOOLSS_UUID, NDR_SPOOLSS_VERSION, NULL,
+ "Add a printer", "" },
+ { "deldriver", RPC_RTYPE_WERROR, NULL,
+ cmd_spoolss_deletedriver,
+ NDR_SPOOLSS_UUID, NDR_SPOOLSS_VERSION, NULL,
+ "Delete a printer driver", "" },
+ { "deldriverex", RPC_RTYPE_WERROR, NULL,
+ cmd_spoolss_deletedriverex,
+ NDR_SPOOLSS_UUID, NDR_SPOOLSS_VERSION, NULL,
+ "Delete a printer driver with files", "" },
+ { "enumdata", RPC_RTYPE_WERROR, NULL,
+ cmd_spoolss_enum_data,
+ NDR_SPOOLSS_UUID, NDR_SPOOLSS_VERSION, NULL,
+ "Enumerate printer data", "" },
+ { "enumdataex", RPC_RTYPE_WERROR, NULL,
+ cmd_spoolss_enum_data_ex,
+ NDR_SPOOLSS_UUID, NDR_SPOOLSS_VERSION, NULL,
+ "Enumerate printer data for a key", "" },
+ { "enumkey", RPC_RTYPE_WERROR, NULL,
+ cmd_spoolss_enum_printerkey,
+ NDR_SPOOLSS_UUID, NDR_SPOOLSS_VERSION, NULL,
+ "Enumerate printer keys", "" },
+ { "enumjobs", RPC_RTYPE_WERROR, NULL,
+ cmd_spoolss_enum_jobs,
+ NDR_SPOOLSS_UUID, NDR_SPOOLSS_VERSION, NULL,
+ "Enumerate print jobs", "" },
+ { "getjob", RPC_RTYPE_WERROR, NULL,
+ cmd_spoolss_get_job,
+ NDR_SPOOLSS_UUID, NDR_SPOOLSS_VERSION, NULL,
+ "Get print job", "" },
+ { "setjob", RPC_RTYPE_WERROR, NULL,
+ cmd_spoolss_set_job,
+ NDR_SPOOLSS_UUID, NDR_SPOOLSS_VERSION, NULL,
+ "Set print job", "" },
+ { "enumports", RPC_RTYPE_WERROR, NULL,
+ cmd_spoolss_enum_ports,
+ NDR_SPOOLSS_UUID, NDR_SPOOLSS_VERSION, NULL,
+ "Enumerate printer ports", "" },
+ { "enumdrivers", RPC_RTYPE_WERROR, NULL,
+ cmd_spoolss_enum_drivers,
+ NDR_SPOOLSS_UUID, NDR_SPOOLSS_VERSION, NULL,
+ "Enumerate installed printer drivers", "" },
+ { "enumprinters", RPC_RTYPE_WERROR, NULL,
+ cmd_spoolss_enum_printers,
+ NDR_SPOOLSS_UUID, NDR_SPOOLSS_VERSION, NULL,
+ "Enumerate printers", "" },
+ { "getdata", RPC_RTYPE_WERROR, NULL,
+ cmd_spoolss_getprinterdata,
+ NDR_SPOOLSS_UUID, NDR_SPOOLSS_VERSION, NULL,
+ "Get print driver data", "" },
+ { "getdataex", RPC_RTYPE_WERROR, NULL,
+ cmd_spoolss_getprinterdataex,
+ NDR_SPOOLSS_UUID, NDR_SPOOLSS_VERSION, NULL,
+ "Get printer driver data with keyname", ""},
+ { "getdriver", RPC_RTYPE_WERROR, NULL,
+ cmd_spoolss_getdriver,
+ NDR_SPOOLSS_UUID, NDR_SPOOLSS_VERSION, NULL,
+ "Get print driver information", "" },
+ { "getdriverdir", RPC_RTYPE_WERROR, NULL,
+ cmd_spoolss_getdriverdir,
+ NDR_SPOOLSS_UUID, NDR_SPOOLSS_VERSION, NULL,
+ "Get print driver upload directory", "" },
+ { "getprinter", RPC_RTYPE_WERROR, NULL,
+ cmd_spoolss_getprinter,
+ NDR_SPOOLSS_UUID, NDR_SPOOLSS_VERSION, NULL,
+ "Get printer info", "" },
+ { "openprinter", RPC_RTYPE_WERROR, NULL,
+ cmd_spoolss_open_printer_ex,
+ NDR_SPOOLSS_UUID, NDR_SPOOLSS_VERSION, NULL,
+ "Open printer handle", "" },
+ { "setdriver", RPC_RTYPE_WERROR, NULL,
+ cmd_spoolss_setdriver,
+ NDR_SPOOLSS_UUID, NDR_SPOOLSS_VERSION, NULL,
+ "Set printer driver", "" },
+ { "getprintprocdir", RPC_RTYPE_WERROR, NULL,
+ cmd_spoolss_getprintprocdir,
+ NDR_SPOOLSS_UUID, NDR_SPOOLSS_VERSION, NULL,
+ "Get print processor directory", "" },
+ { "addform", RPC_RTYPE_WERROR, NULL,
+ cmd_spoolss_addform,
+ NDR_SPOOLSS_UUID, NDR_SPOOLSS_VERSION, NULL,
+ "Add form", "" },
+ { "setform", RPC_RTYPE_WERROR, NULL,
+ cmd_spoolss_setform,
+ NDR_SPOOLSS_UUID, NDR_SPOOLSS_VERSION, NULL,
+ "Set form", "" },
+ { "getform", RPC_RTYPE_WERROR, NULL,
+ cmd_spoolss_getform,
+ NDR_SPOOLSS_UUID, NDR_SPOOLSS_VERSION, NULL,
+ "Get form", "" },
+ { "deleteform", RPC_RTYPE_WERROR, NULL,
+ cmd_spoolss_deleteform,
+ NDR_SPOOLSS_UUID, NDR_SPOOLSS_VERSION, NULL,
+ "Delete form", "" },
+ { "enumforms", RPC_RTYPE_WERROR, NULL,
+ cmd_spoolss_enum_forms,
+ NDR_SPOOLSS_UUID, NDR_SPOOLSS_VERSION, NULL,
+ "Enumerate forms", "" },
+ { "setprinter", RPC_RTYPE_WERROR, NULL,
+ cmd_spoolss_setprinter,
+ NDR_SPOOLSS_UUID, NDR_SPOOLSS_VERSION, NULL,
+ "Set printer comment", "" },
+ { "setprintername", RPC_RTYPE_WERROR, NULL,
+ cmd_spoolss_setprintername,
+ NDR_SPOOLSS_UUID, NDR_SPOOLSS_VERSION, NULL,
+ "Set printername", "" },
+ { "setprinterdata", RPC_RTYPE_WERROR, NULL,
+ cmd_spoolss_setprinterdata,
+ NDR_SPOOLSS_UUID, NDR_SPOOLSS_VERSION, NULL,
+ "Set REG_SZ printer data", "" },
+ { "rffpcnex", RPC_RTYPE_WERROR, NULL,
+ cmd_spoolss_rffpcnex,
+ NDR_SPOOLSS_UUID, NDR_SPOOLSS_VERSION, NULL,
+ "Rffpcnex test", "" },
+ { "printercmp", RPC_RTYPE_WERROR, NULL,
+ cmd_spoolss_printercmp,
+ NDR_SPOOLSS_UUID, NDR_SPOOLSS_VERSION, NULL,
+ "Printer comparison test", "" },
+ { "enumprocs", RPC_RTYPE_WERROR, NULL,
+ cmd_spoolss_enum_procs,
+ NDR_SPOOLSS_UUID, NDR_SPOOLSS_VERSION, NULL,
+ "Enumerate Print Processors", "" },
+ { "enumprocdatatypes", RPC_RTYPE_WERROR, NULL,
+ cmd_spoolss_enum_proc_data_types,
+ NDR_SPOOLSS_UUID, NDR_SPOOLSS_VERSION, NULL,
+ "Enumerate Print Processor Data Types", "" },
+ { "enummonitors", RPC_RTYPE_WERROR, NULL,
+ cmd_spoolss_enum_monitors,
+ NDR_SPOOLSS_UUID, NDR_SPOOLSS_VERSION, NULL,
+ "Enumerate Print Monitors", "" },
+ { "createprinteric", RPC_RTYPE_WERROR, NULL,
+ cmd_spoolss_create_printer_ic,
+ NDR_SPOOLSS_UUID, NDR_SPOOLSS_VERSION, NULL,
+ "Create Printer IC", "" },
{ NULL }
};
diff --git a/source3/rpcclient/cmd_srvsvc.c b/source3/rpcclient/cmd_srvsvc.c
index 10017fa19b..bea498202a 100644
--- a/source3/rpcclient/cmd_srvsvc.c
+++ b/source3/rpcclient/cmd_srvsvc.c
@@ -873,19 +873,58 @@ struct cmd_set srvsvc_commands[] = {
{ "SRVSVC" },
- { "srvinfo", RPC_RTYPE_WERROR, NULL, cmd_srvsvc_srv_query_info, &ndr_table_srvsvc.syntax_id, NULL, "Server query info", "" },
- { "netshareenum",RPC_RTYPE_WERROR, NULL, cmd_srvsvc_net_share_enum, &ndr_table_srvsvc.syntax_id, NULL, "Enumerate shares", "" },
- { "netshareenumall",RPC_RTYPE_WERROR, NULL, cmd_srvsvc_net_share_enum_all, &ndr_table_srvsvc.syntax_id, NULL, "Enumerate all shares", "" },
- { "netsharegetinfo",RPC_RTYPE_WERROR, NULL, cmd_srvsvc_net_share_get_info, &ndr_table_srvsvc.syntax_id, NULL, "Get Share Info", "" },
- { "netsharesetinfo",RPC_RTYPE_WERROR, NULL, cmd_srvsvc_net_share_set_info, &ndr_table_srvsvc.syntax_id, NULL, "Set Share Info", "" },
- { "netfileenum", RPC_RTYPE_WERROR, NULL, cmd_srvsvc_net_file_enum, &ndr_table_srvsvc.syntax_id, NULL, "Enumerate open files", "" },
- { "netremotetod",RPC_RTYPE_WERROR, NULL, cmd_srvsvc_net_remote_tod, &ndr_table_srvsvc.syntax_id, NULL, "Fetch remote time of day", "" },
- { "netnamevalidate", RPC_RTYPE_WERROR, NULL, cmd_srvsvc_net_name_validate, &ndr_table_srvsvc.syntax_id, NULL, "Validate sharename", "" },
- { "netfilegetsec", RPC_RTYPE_WERROR, NULL, cmd_srvsvc_net_file_get_sec, &ndr_table_srvsvc.syntax_id, NULL, "Get File security", "" },
- { "netsessdel", RPC_RTYPE_WERROR, NULL, cmd_srvsvc_net_sess_del, &ndr_table_srvsvc.syntax_id, NULL, "Delete Session", "" },
- { "netsessenum", RPC_RTYPE_WERROR, NULL, cmd_srvsvc_net_sess_enum, &ndr_table_srvsvc.syntax_id, NULL, "Enumerate Sessions", "" },
- { "netdiskenum", RPC_RTYPE_WERROR, NULL, cmd_srvsvc_net_disk_enum, &ndr_table_srvsvc.syntax_id, NULL, "Enumerate Disks", "" },
- { "netconnenum", RPC_RTYPE_WERROR, NULL, cmd_srvsvc_net_conn_enum, &ndr_table_srvsvc.syntax_id, NULL, "Enumerate Connections", "" },
+ { "srvinfo", RPC_RTYPE_WERROR, NULL,
+ cmd_srvsvc_srv_query_info,
+ NDR_SRVSVC_UUID, NDR_SRVSVC_VERSION,
+ NULL, "Server query info", "" },
+ { "netshareenum",RPC_RTYPE_WERROR, NULL,
+ cmd_srvsvc_net_share_enum,
+ NDR_SRVSVC_UUID, NDR_SRVSVC_VERSION, NULL,
+ "Enumerate shares", "" },
+ { "netshareenumall",RPC_RTYPE_WERROR, NULL,
+ cmd_srvsvc_net_share_enum_all,
+ NDR_SRVSVC_UUID, NDR_SRVSVC_VERSION, NULL,
+ "Enumerate all shares", "" },
+ { "netsharegetinfo",RPC_RTYPE_WERROR, NULL,
+ cmd_srvsvc_net_share_get_info,
+ NDR_SRVSVC_UUID, NDR_SRVSVC_VERSION, NULL,
+ "Get Share Info", "" },
+ { "netsharesetinfo",RPC_RTYPE_WERROR, NULL,
+ cmd_srvsvc_net_share_set_info,
+ NDR_SRVSVC_UUID, NDR_SRVSVC_VERSION, NULL,
+ "Set Share Info", "" },
+ { "netfileenum", RPC_RTYPE_WERROR, NULL,
+ cmd_srvsvc_net_file_enum,
+ NDR_SRVSVC_UUID, NDR_SRVSVC_VERSION, NULL,
+ "Enumerate open files", "" },
+ { "netremotetod",RPC_RTYPE_WERROR, NULL,
+ cmd_srvsvc_net_remote_tod,
+ NDR_SRVSVC_UUID, NDR_SRVSVC_VERSION, NULL,
+ "Fetch remote time of day", "" },
+ { "netnamevalidate", RPC_RTYPE_WERROR, NULL,
+ cmd_srvsvc_net_name_validate,
+ NDR_SRVSVC_UUID, NDR_SRVSVC_VERSION, NULL,
+ "Validate sharename", "" },
+ { "netfilegetsec", RPC_RTYPE_WERROR, NULL,
+ cmd_srvsvc_net_file_get_sec,
+ NDR_SRVSVC_UUID, NDR_SRVSVC_VERSION, NULL,
+ "Get File security", "" },
+ { "netsessdel", RPC_RTYPE_WERROR, NULL,
+ cmd_srvsvc_net_sess_del,
+ NDR_SRVSVC_UUID, NDR_SRVSVC_VERSION, NULL,
+ "Delete Session", "" },
+ { "netsessenum", RPC_RTYPE_WERROR, NULL,
+ cmd_srvsvc_net_sess_enum,
+ NDR_SRVSVC_UUID, NDR_SRVSVC_VERSION, NULL,
+ "Enumerate Sessions", "" },
+ { "netdiskenum", RPC_RTYPE_WERROR, NULL,
+ cmd_srvsvc_net_disk_enum,
+ NDR_SRVSVC_UUID, NDR_SRVSVC_VERSION, NULL,
+ "Enumerate Disks", "" },
+ { "netconnenum", RPC_RTYPE_WERROR, NULL,
+ cmd_srvsvc_net_conn_enum,
+ NDR_SRVSVC_UUID, NDR_SRVSVC_VERSION, NULL,
+ "Enumerate Connections", "" },
{ NULL }
};
diff --git a/source3/rpcclient/cmd_test.c b/source3/rpcclient/cmd_test.c
index 85e90a19b5..ac65a16574 100644
--- a/source3/rpcclient/cmd_test.c
+++ b/source3/rpcclient/cmd_test.c
@@ -69,7 +69,7 @@ struct cmd_set test_commands[] = {
{ "TESTING" },
{ "testme", RPC_RTYPE_NTSTATUS, cmd_testme, NULL,
- NULL, NULL, "Sample test", "testme" },
+ NULL, 0, NULL, "Sample test", "testme" },
{ NULL }
};
diff --git a/source3/rpcclient/cmd_wkssvc.c b/source3/rpcclient/cmd_wkssvc.c
index 7a34c450ab..fe12afd080 100644
--- a/source3/rpcclient/cmd_wkssvc.c
+++ b/source3/rpcclient/cmd_wkssvc.c
@@ -162,9 +162,21 @@ static WERROR cmd_wkssvc_enumeratecomputernames(struct rpc_pipe_client *cli,
struct cmd_set wkssvc_commands[] = {
{ "WKSSVC" },
- { "wkssvc_wkstagetinfo", RPC_RTYPE_WERROR, NULL, cmd_wkssvc_wkstagetinfo, &ndr_table_wkssvc.syntax_id, NULL, "Query WKSSVC Workstation Information", "" },
- { "wkssvc_getjoininformation", RPC_RTYPE_WERROR, NULL, cmd_wkssvc_getjoininformation, &ndr_table_wkssvc.syntax_id, NULL, "Query WKSSVC Join Information", "" },
- { "wkssvc_messagebuffersend", RPC_RTYPE_WERROR, NULL, cmd_wkssvc_messagebuffersend, &ndr_table_wkssvc.syntax_id, NULL, "Send WKSSVC message", "" },
- { "wkssvc_enumeratecomputernames", RPC_RTYPE_WERROR, NULL, cmd_wkssvc_enumeratecomputernames, &ndr_table_wkssvc.syntax_id, NULL, "Enumerate WKSSVC computer names", "" },
+ { "wkssvc_wkstagetinfo", RPC_RTYPE_WERROR, NULL,
+ cmd_wkssvc_wkstagetinfo,
+ NDR_WKSSVC_UUID, NDR_WKSSVC_VERSION, NULL,
+ "Query WKSSVC Workstation Information", "" },
+ { "wkssvc_getjoininformation", RPC_RTYPE_WERROR, NULL,
+ cmd_wkssvc_getjoininformation,
+ NDR_WKSSVC_UUID, NDR_WKSSVC_VERSION, NULL,
+ "Query WKSSVC Join Information", "" },
+ { "wkssvc_messagebuffersend", RPC_RTYPE_WERROR, NULL,
+ cmd_wkssvc_messagebuffersend,
+ NDR_WKSSVC_UUID, NDR_WKSSVC_VERSION, NULL,
+ "Send WKSSVC message", "" },
+ { "wkssvc_enumeratecomputernames", RPC_RTYPE_WERROR, NULL,
+ cmd_wkssvc_enumeratecomputernames,
+ NDR_WKSSVC_UUID, NDR_WKSSVC_VERSION, NULL,
+ "Enumerate WKSSVC computer names", "" },
{ NULL }
};
diff --git a/source3/rpcclient/rpcclient.c b/source3/rpcclient/rpcclient.c
index dbf7f1ff7e..e6523af089 100644
--- a/source3/rpcclient/rpcclient.c
+++ b/source3/rpcclient/rpcclient.c
@@ -536,26 +536,45 @@ static struct cmd_set rpcclient_commands[] = {
{ "GENERAL OPTIONS" },
- { "help", RPC_RTYPE_NTSTATUS, cmd_help, NULL, NULL, NULL, "Get help on commands", "[command]" },
- { "?", RPC_RTYPE_NTSTATUS, cmd_help, NULL, NULL, NULL, "Get help on commands", "[command]" },
- { "debuglevel", RPC_RTYPE_NTSTATUS, cmd_debuglevel, NULL, NULL, NULL, "Set debug level", "level" },
- { "debug", RPC_RTYPE_NTSTATUS, cmd_debuglevel, NULL, NULL, NULL, "Set debug level", "level" },
- { "list", RPC_RTYPE_NTSTATUS, cmd_listcommands, NULL, NULL, NULL, "List available commands on <pipe>", "pipe" },
- { "exit", RPC_RTYPE_NTSTATUS, cmd_quit, NULL, NULL, NULL, "Exit program", "" },
- { "quit", RPC_RTYPE_NTSTATUS, cmd_quit, NULL, NULL, NULL, "Exit program", "" },
- { "sign", RPC_RTYPE_NTSTATUS, cmd_sign, NULL, NULL, NULL, "Force RPC pipe connections to be signed", "" },
- { "seal", RPC_RTYPE_NTSTATUS, cmd_seal, NULL, NULL, NULL, "Force RPC pipe connections to be sealed", "" },
- { "schannel", RPC_RTYPE_NTSTATUS, cmd_schannel, NULL, NULL, NULL, "Force RPC pipe connections to be sealed with 'schannel'. Assumes valid machine account to this domain controller.", "" },
- { "schannelsign", RPC_RTYPE_NTSTATUS, cmd_schannel_sign, NULL, NULL, NULL, "Force RPC pipe connections to be signed (not sealed) with 'schannel'. Assumes valid machine account to this domain controller.", "" },
- { "timeout", RPC_RTYPE_NTSTATUS, cmd_timeout, NULL, NULL, NULL, "Set timeout (in milliseonds) for RPC operations", "" },
- { "transport", RPC_RTYPE_NTSTATUS, cmd_choose_transport, NULL, NULL, NULL, "Choose ncacn transport for RPC operations", "" },
- { "none", RPC_RTYPE_NTSTATUS, cmd_none, NULL, NULL, NULL, "Force RPC pipe connections to have no special properties", "" },
+ { "help", RPC_RTYPE_NTSTATUS, cmd_help, NULL, NULL, 0,
+ NULL, "Get help on commands", "[command]" },
+ { "?", RPC_RTYPE_NTSTATUS, cmd_help, NULL, NULL, 0,
+ NULL, "Get help on commands", "[command]" },
+ { "debuglevel", RPC_RTYPE_NTSTATUS, cmd_debuglevel, NULL, NULL, 0,
+ NULL, "Set debug level", "level" },
+ { "debug", RPC_RTYPE_NTSTATUS, cmd_debuglevel, NULL, NULL, 0,
+ NULL, "Set debug level", "level" },
+ { "list", RPC_RTYPE_NTSTATUS, cmd_listcommands, NULL, NULL, 0,
+ NULL, "List available commands on <pipe>", "pipe" },
+ { "exit", RPC_RTYPE_NTSTATUS, cmd_quit, NULL, NULL, 0,
+ NULL, "Exit program", "" },
+ { "quit", RPC_RTYPE_NTSTATUS, cmd_quit, NULL, NULL, 0,
+ NULL, "Exit program", "" },
+ { "sign", RPC_RTYPE_NTSTATUS, cmd_sign, NULL, NULL, 0,
+ NULL, "Force RPC pipe connections to be signed", "" },
+ { "seal", RPC_RTYPE_NTSTATUS, cmd_seal, NULL, NULL, 0,
+ NULL, "Force RPC pipe connections to be sealed", "" },
+ { "schannel", RPC_RTYPE_NTSTATUS, cmd_schannel, NULL, NULL, 0,
+ NULL, "Force RPC pipe connections to be sealed with 'schannel'. "
+ "Assumes valid machine account to this domain controller.", "" },
+ { "schannelsign", RPC_RTYPE_NTSTATUS, cmd_schannel_sign, NULL, NULL, 0,
+ NULL, "Force RPC pipe connections to be signed (not sealed) with "
+ "'schannel'. Assumes valid machine account to this domain "
+ "controller.", "" },
+ { "timeout", RPC_RTYPE_NTSTATUS, cmd_timeout, NULL, NULL, 0,
+ NULL, "Set timeout (in milliseonds) for RPC operations", "" },
+ { "transport", RPC_RTYPE_NTSTATUS, cmd_choose_transport, NULL, NULL, 0,
+ NULL, "Choose ncacn transport for RPC operations", "" },
+ { "none", RPC_RTYPE_NTSTATUS, cmd_none, NULL, NULL, 0,
+ NULL, "Force RPC pipe connections to have no special properties",
+ "" },
{ NULL }
};
static struct cmd_set separator_command[] = {
- { "---------------", MAX_RPC_RETURN_TYPE, NULL, NULL, NULL, NULL, "----------------------" },
+ { "---------------", MAX_RPC_RETURN_TYPE, NULL, NULL, NULL, 0, NULL,
+ "----------------------" },
{ NULL }
};
@@ -640,16 +659,22 @@ static NTSTATUS do_cmd(struct cli_state *cli,
/* Open pipe */
if ((cmd_entry->interface != NULL) && (cmd_entry->rpc_pipe == NULL)) {
+ struct ndr_syntax_id interface;
+
+ if (!ndr_syntax_from_string(cmd_entry->interface,
+ cmd_entry->interface_version,
+ &interface)) {
+ return NT_STATUS_INTERNAL_ERROR;
+ }
switch (pipe_default_auth_type) {
case PIPE_AUTH_TYPE_NONE:
ntresult = cli_rpc_pipe_open_noauth_transport(
- cli, default_transport,
- cmd_entry->interface,
+ cli, default_transport, &interface,
&cmd_entry->rpc_pipe);
break;
case PIPE_AUTH_TYPE_SPNEGO_NTLMSSP:
ntresult = cli_rpc_pipe_open_spnego_ntlmssp(
- cli, cmd_entry->interface,
+ cli, &interface,
default_transport,
pipe_default_auth_level,
get_cmdline_auth_info_domain(auth_info),
@@ -659,7 +684,7 @@ static NTSTATUS do_cmd(struct cli_state *cli,
break;
case PIPE_AUTH_TYPE_NTLMSSP:
ntresult = cli_rpc_pipe_open_ntlmssp(
- cli, cmd_entry->interface,
+ cli, &interface,
default_transport,
pipe_default_auth_level,
get_cmdline_auth_info_domain(auth_info),
@@ -669,7 +694,7 @@ static NTSTATUS do_cmd(struct cli_state *cli,
break;
case PIPE_AUTH_TYPE_SCHANNEL:
ntresult = cli_rpc_pipe_open_schannel(
- cli, cmd_entry->interface,
+ cli, &interface,
default_transport,
pipe_default_auth_level,
get_cmdline_auth_info_domain(auth_info),
@@ -680,19 +705,19 @@ static NTSTATUS do_cmd(struct cli_state *cli,
"auth type %u\n",
get_pipe_name_from_syntax(
talloc_tos(),
- cmd_entry->interface),
+ &interface),
pipe_default_auth_type ));
return NT_STATUS_UNSUCCESSFUL;
}
if (!NT_STATUS_IS_OK(ntresult)) {
DEBUG(0, ("Could not initialise %s. Error was %s\n",
get_pipe_name_from_syntax(
- talloc_tos(), cmd_entry->interface),
+ talloc_tos(), &interface),
nt_errstr(ntresult) ));
return ntresult;
}
- if (ndr_syntax_id_equal(cmd_entry->interface,
+ if (ndr_syntax_id_equal(&interface,
&ndr_table_netlogon.syntax_id)) {
uint32_t neg_flags = NETLOGON_NEG_AUTH2_ADS_FLAGS;
enum netr_SchannelType sec_channel_type;
@@ -719,7 +744,7 @@ static NTSTATUS do_cmd(struct cli_state *cli,
DEBUG(0, ("Could not initialise credentials for %s.\n",
get_pipe_name_from_syntax(
talloc_tos(),
- cmd_entry->interface)));
+ &interface)));
return ntresult;
}
}
diff --git a/source3/rpcclient/rpcclient.h b/source3/rpcclient/rpcclient.h
index 91810b63a9..926204ceca 100644
--- a/source3/rpcclient/rpcclient.h
+++ b/source3/rpcclient/rpcclient.h
@@ -33,7 +33,8 @@ struct cmd_set {
NTSTATUS (*ntfn)(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, int argc,
const char **argv);
WERROR (*wfn)(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, int argc, const char **argv);
- const struct ndr_syntax_id *interface;
+ const char *interface;
+ uint32_t interface_version;
struct rpc_pipe_client *rpc_pipe;
const char *description;
const char *usage;