diff options
author | Günther Deschner <gd@samba.org> | 2009-10-28 14:13:32 +0100 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2009-11-26 11:39:59 +0100 |
commit | e2fdd8c3620fc216bd791a178e9fd490708a75f2 (patch) | |
tree | 9c92d992a41b9e51f5eecd695c18006697f649e6 /source3/rpcclient | |
parent | 962e5aec6815c62ef79577fa3514b259e5b68625 (diff) | |
download | samba-e2fdd8c3620fc216bd791a178e9fd490708a75f2.tar.gz |
s3-rpcclient: add createtrustdom command.
Guenther
(cherry picked from commit fbdda195498a9868b9a11a4e0621fadab1ce0963)
(cherry picked from commit f547c3b997e56cd555f6133a131b1a3c00fc71df)
Diffstat (limited to 'source3/rpcclient')
-rw-r--r-- | source3/rpcclient/cmd_lsarpc.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/source3/rpcclient/cmd_lsarpc.c b/source3/rpcclient/cmd_lsarpc.c index 752881c2210..641b38e3405 100644 --- a/source3/rpcclient/cmd_lsarpc.c +++ b/source3/rpcclient/cmd_lsarpc.c @@ -1836,6 +1836,50 @@ static NTSTATUS cmd_lsa_store_private_data(struct rpc_pipe_client *cli, return status; } +static NTSTATUS cmd_lsa_create_trusted_domain(struct rpc_pipe_client *cli, + TALLOC_CTX *mem_ctx, int argc, + const char **argv) +{ + NTSTATUS status; + struct policy_handle handle, trustdom_handle; + struct lsa_DomainInfo info; + + if (argc < 3) { + printf("Usage: %s name sid\n", argv[0]); + return NT_STATUS_OK; + } + + status = rpccli_lsa_open_policy2(cli, mem_ctx, + true, + SEC_FLAG_MAXIMUM_ALLOWED, + &handle); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + + init_lsa_StringLarge(&info.name, argv[1]); + info.sid = string_sid_talloc(mem_ctx, argv[2]); + + status = rpccli_lsa_CreateTrustedDomain(cli, mem_ctx, + &handle, + &info, + SEC_FLAG_MAXIMUM_ALLOWED, + &trustdom_handle); + if (!NT_STATUS_IS_OK(status)) { + goto done; + } + + done: + if (is_valid_policy_hnd(&trustdom_handle)) { + rpccli_lsa_Close(cli, mem_ctx, &trustdom_handle); + } + + if (is_valid_policy_hnd(&handle)) { + rpccli_lsa_Close(cli, mem_ctx, &handle); + } + + return status; +} /* List of commands exported by this module */ @@ -1872,6 +1916,7 @@ struct cmd_set lsarpc_commands[] = { { "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", "" }, { NULL } }; |