diff options
author | Luke Leighton <lkcl@samba.org> | 1999-08-29 16:36:21 +0000 |
---|---|---|
committer | Luke Leighton <lkcl@samba.org> | 1999-08-29 16:36:21 +0000 |
commit | 42fdd41b1d3e59f9052a9b382d0369315f77e718 (patch) | |
tree | 36f659072199e6bfef3f5ea528e5bc1581cb54da /source3/rpcclient | |
parent | 53b4095d2ceb91ae45efd04ab30626d6c352f72a (diff) | |
download | samba-42fdd41b1d3e59f9052a9b382d0369315f77e718.tar.gz samba-42fdd41b1d3e59f9052a9b382d0369315f77e718.tar.bz2 samba-42fdd41b1d3e59f9052a9b382d0369315f77e718.zip |
improved "dominfo" rpcclient command
(This used to be commit 65a54b6e16c40ec40727547593154b341d98fc83)
Diffstat (limited to 'source3/rpcclient')
-rw-r--r-- | source3/rpcclient/cmd_samr.c | 11 | ||||
-rw-r--r-- | source3/rpcclient/display.c | 82 | ||||
-rw-r--r-- | source3/rpcclient/rpcclient.c | 2 |
3 files changed, 91 insertions, 4 deletions
diff --git a/source3/rpcclient/cmd_samr.c b/source3/rpcclient/cmd_samr.c index d38d1d0646..045160f78c 100644 --- a/source3/rpcclient/cmd_samr.c +++ b/source3/rpcclient/cmd_samr.c @@ -988,7 +988,7 @@ void cmd_sam_add_groupmem(struct client_info *info) fstrcat(srv_name, info->dest_host); strupper(srv_name); - res = next_token(NULL, group_name, NULL, sizeof(group_name)) != NULL; + res = next_token(NULL, group_name, NULL, sizeof(group_name)); group_names[0] = group_name; while (res && next_token(NULL, tmp, NULL, sizeof(tmp))) @@ -1054,7 +1054,8 @@ void cmd_sam_add_groupmem(struct client_info *info) if (group_type == SID_NAME_ALIAS) { - fprintf(out_hnd, "%s is a local alias, not a group. Use addaliasmem command instead\n"); + fprintf(out_hnd, "%s is a local alias, not a group. Use addaliasmem command instead\n", + group_name); return; } res1 = res2 ? samr_query_lookup_names(smb_cli, fnum, @@ -1575,6 +1576,7 @@ void cmd_sam_query_dominfo(struct client_info *info) fstring info_str; uint32 switch_value = 2; uint32 ace_perms = 0x304; /* absolutely no idea. */ + SAM_UNK_CTR ctr; sid_to_string(sid, &info->dom.level5_sid); fstrcpy(domain, info->dom.level5_dom); @@ -1615,7 +1617,7 @@ void cmd_sam_query_dominfo(struct client_info *info) /* send a samr 0x8 command */ res = res ? samr_query_dom_info(smb_cli, fnum, - &info->dom.samr_pol_open_domain, switch_value) : False; + &info->dom.samr_pol_open_domain, switch_value, &ctr) : False; res = res ? samr_close(smb_cli, fnum, &info->dom.samr_pol_connect) : False; @@ -1629,6 +1631,9 @@ void cmd_sam_query_dominfo(struct client_info *info) if (res) { DEBUG(5,("cmd_sam_query_dominfo: succeeded\n")); + display_sam_unk_ctr(out_hnd, ACTION_HEADER , switch_value, &ctr); + display_sam_unk_ctr(out_hnd, ACTION_ENUMERATE, switch_value, &ctr); + display_sam_unk_ctr(out_hnd, ACTION_FOOTER , switch_value, &ctr); } else { diff --git a/source3/rpcclient/display.c b/source3/rpcclient/display.c index 55010390b4..70a9f76f90 100644 --- a/source3/rpcclient/display.c +++ b/source3/rpcclient/display.c @@ -2190,6 +2190,88 @@ void display_sam_sync(FILE *out_hnd, enum action_type action, } } +/**************************************************************************** + display sam sync structure + ****************************************************************************/ +void display_sam_unk_info_2(FILE *out_hnd, enum action_type action, + SAM_UNK_INFO_2 *info2) +{ + switch (action) + { + case ACTION_HEADER: + { + break; + } + case ACTION_ENUMERATE: + { + fstring name; + unistr2_to_ascii(name, &(info2->uni_domain), sizeof(name)-1); + fprintf(out_hnd, "Domain:\t%s\n", name); + + unistr2_to_ascii(name, &(info2->uni_server), sizeof(name)-1); + fprintf(out_hnd, "Server:\t%s\n", name); + + fprintf(out_hnd, "Total Users:\t%d\n", info2->num_domain_usrs); + fprintf(out_hnd, "Total Groups:\t%d\n", info2->num_domain_grps); + fprintf(out_hnd, "Total Aliases:\t%d\n", info2->num_local_grps); + + fprintf(out_hnd, "Sequence No:\t%d\n", info2->seq_num); + + fprintf(out_hnd, "Unknown 0:\t0x%x\n", info2->unknown_0); + fprintf(out_hnd, "Unknown 1:\t0x%x\n", info2->unknown_1); + fprintf(out_hnd, "Unknown 2:\t0x%x\n", info2->unknown_2); + fprintf(out_hnd, "Unknown 3:\t0x%x\n", info2->unknown_3); + fprintf(out_hnd, "Unknown 4:\t0x%x\n", info2->unknown_4); + fprintf(out_hnd, "Unknown 5:\t0x%x\n", info2->unknown_5); + fprintf(out_hnd, "Unknown 6:\t0x%x\n", info2->unknown_6); + + break; + } + case ACTION_FOOTER: + { + fprintf(out_hnd, "\n"); + break; + } + } +} + +/**************************************************************************** + display sam sync structure + ****************************************************************************/ +void display_sam_unk_ctr(FILE *out_hnd, enum action_type action, + uint32 switch_value, SAM_UNK_CTR *ctr) +{ + switch (action) + { + case ACTION_HEADER: + { + fprintf(out_hnd, "\tSAM Domain Info\n"); + fprintf(out_hnd, "\t---------------\n"); + + break; + } + case ACTION_ENUMERATE: + { + switch (switch_value) + { + case 2: + { + display_sam_unk_info_2(out_hnd, ACTION_HEADER , &ctr->info.inf2); + display_sam_unk_info_2(out_hnd, ACTION_ENUMERATE, &ctr->info.inf2); + display_sam_unk_info_2(out_hnd, ACTION_FOOTER , &ctr->info.inf2); + break; + } + } + break; + } + case ACTION_FOOTER: + { + fprintf(out_hnd, "\n"); + break; + } + } +} + #if COPY_THIS_TEMPLATE /**************************************************************************** diff --git a/source3/rpcclient/rpcclient.c b/source3/rpcclient/rpcclient.c index 2530020352..c598777426 100644 --- a/source3/rpcclient/rpcclient.c +++ b/source3/rpcclient/rpcclient.c @@ -145,7 +145,7 @@ struct {"samtest", cmd_sam_test , "SAM User Encrypted RPC test (experimental!)"}, {"enumaliases",cmd_sam_enum_aliases, "SAM Aliases Database Query (experimental!)"}, {"enumgroups", cmd_sam_enum_groups, "SAM Group Database Query (experimental!)"}, - {"samgroups", cmd_sam_query_dominfo, "SAM Query Domain Info(experimental!)"}, + {"dominfo", cmd_sam_query_dominfo, "SAM Query Domain Info(experimental!)"}, {"querysecret", cmd_lsa_query_secret, "LSA Query Secret (developer use)"}, {"samsync", cmd_sam_sync, "SAM Synchronization Test (experimental)"}, {"quit", cmd_quit, "logoff the server"}, |