#define REGISTER 0
#endif
+extern pstring debugf;
extern pstring scope;
extern pstring global_myname;
extern pstring user_socket_options;
-extern pstring debugf;
extern int DEBUGLEVEL;
{
bzero(smb_cli, sizeof(smb_cli));
cli_initialise(smb_cli);
- smb_cli->capabilities |= CAP_NT_SMBS;
+ smb_cli->capabilities |= CAP_NT_SMBS | CAP_STATUS32;
}
/****************************************************************************
char *description;
} commands[] =
{
-#if 0
- {"ntlogin", cmd_netlogon_login_test, "<username> NT Domain login test"},
-#endif
- {"wksinfo", cmd_wks_query_info, "DCE/RPC - Workstation Query Info"},
- {"srvinfo", cmd_srv_query_info, "DCE/RPC - Server Query Info"},
- {"srvsessions",cmd_srv_enum_sess, "DCE/RPC - List sessions on a server"},
- {"srvshares", cmd_srv_enum_shares, "DCE/RPC - List shares on a server"},
- {"srvconnections",cmd_srv_enum_conn, "DCE/RPC - List connections on a server"},
- {"srvfiles", cmd_srv_enum_files, "DCE/RPC - List files on a server"},
+ {"svcenum", cmd_svc_enum, "[-i] Lists Services Manager"},
+ {"regenum", cmd_reg_enum, "<keyname> Registry Enumeration (keys, values)"},
+ {"regdeletekey",cmd_reg_delete_key, "<keyname> Registry Key Delete"},
+ {"regcreatekey",cmd_reg_create_key, "<keyname> [keyclass] Registry Key Create"},
+ {"shutdown",cmd_reg_shutdown, "[-m message] [-t timeout] [-r or --reboot] Server Shutdown"},
+ {"regquerykey",cmd_reg_query_key, "<keyname> Registry Key Query"},
+ {"regdeleteval",cmd_reg_delete_val, "<valname> Registry Value Delete"},
+ {"regcreateval",cmd_reg_create_val, "<valname> <valtype> <value> Registry Key Create"},
+ {"reggetsec", cmd_reg_get_key_sec, "<keyname> Registry Key Security"},
+ {"regtestsec", cmd_reg_test_key_sec, "<keyname> Test Registry Key Security"},
+ {"ntlogin", cmd_netlogon_login_test, "[username] [password] NT Domain login test"},
+ {"wksinfo", cmd_wks_query_info, "Workstation Query Info"},
+ {"srvinfo", cmd_srv_query_info, "Server Query Info"},
+ {"srvsessions",cmd_srv_enum_sess, "List sessions on a server"},
+ {"srvshares", cmd_srv_enum_shares, "List shares on a server"},
+ {"srvconnections",cmd_srv_enum_conn, "List connections on a server"},
+ {"srvfiles", cmd_srv_enum_files, "List files on a server"},
{"lsaquery", cmd_lsa_query_info, "Query Info Policy (domain member or server)"},
{"lookupsids", cmd_lsa_lookup_sids, "Resolve names from SIDs"},
+ {"lookupnames",cmd_lsa_lookup_names, "Resolve SIDs from names"},
+ {"lookupdomain",cmd_sam_lookup_domain, "Obtain SID for a local domain"},
{"enumusers", cmd_sam_enum_users, "SAM User Database Query (experimental!)"},
+ {"addgroupmem",cmd_sam_add_groupmem,"<group rid> [member rid1] [member rid2] ... SAM Add Domain Group Member"},
+ {"addaliasmem",cmd_sam_add_aliasmem,"<alias rid> [member sid1] [member sid2] ... SAM Add Domain Alias Member"},
+ {"creategroup",cmd_sam_create_dom_group,"SAM Create Domain Group"},
+ {"createalias",cmd_sam_create_dom_alias,"SAM Create Domain Alias"},
+ {"delgroup", cmd_sam_delete_dom_group,"SAM Delete Domain Group"},
+ {"delalias", cmd_sam_delete_dom_alias,"SAM Delete Domain Alias"},
+ {"ntpass", cmd_sam_ntchange_pwd, "NT SAM Password Change"},
{"samuser", cmd_sam_query_user, "<username> SAM User Query (experimental!)"},
{"samtest", cmd_sam_test , "SAM User Encrypted RPC test (experimental!)"},
{"enumaliases",cmd_sam_enum_aliases, "SAM Aliases Database Query (experimental!)"},
-#if 0
{"enumgroups", cmd_sam_enum_groups, "SAM Group Database Query (experimental!)"},
-#endif
- {"samgroups", cmd_sam_query_groups, "SAM Group Database Query (experimental!)"},
+ {"samgroups", cmd_sam_query_dominfo, "SAM Query Domain Info(experimental!)"},
{"quit", cmd_quit, "logoff the server"},
{"q", cmd_quit, "logoff the server"},
{"exit", cmd_quit, "logoff the server"},
smb_mem_write_status(dbf);
smb_mem_write_errors(dbf);
smb_mem_write_verbose(dbf);
+ dbgflush();
}
#endif
exit(0);
****************************************************************************/
int main(int argc,char *argv[])
{
- char *pname = argv[0];
+ BOOL interactive = True;
+
int opt;
extern FILE *dbf;
extern char *optarg;
pstring password; /* local copy only, if one is entered */
out_hnd = stdout;
+ fstrcpy(debugf, argv[0]);
rpcclient_init();
pstrcpy(cli_info.share, "");
pstrcpy(cli_info.service, "");
- pstrcpy(cli_info.dom.level3_sid, "");
- pstrcpy(cli_info.dom.level3_dom, "");
- pstrcpy(cli_info.dom.level5_sid, "");
- pstrcpy(cli_info.dom.level5_dom, "");
-
- smb_cli->nt_pipe_fnum = 0xffff;
-
- setup_logging(pname, True);
+ ZERO_STRUCT(cli_info.dom.level3_sid);
+ ZERO_STRUCT(cli_info.dom.level5_sid);
+ fstrcpy(cli_info.dom.level3_dom, "");
+ fstrcpy(cli_info.dom.level5_dom, "");
TimeInit();
charset_initialise();
- crc32_build_table();
myumask = umask(0);
umask(myumask);
+ if (!get_myname(global_myname, NULL))
+ {
+ fprintf(stderr, "Failed to get my hostname.\n");
+ }
+
if (getenv("USER"))
{
pstrcpy(smb_cli->user_name,getenv("USER"));
if (argc < 2)
{
- usage(pname);
+ usage(argv[0]);
exit(1);
}
argc--;
argv++;
- DEBUG(1,("service: %s\n", cli_info.service));
+ fprintf(out_hnd, "service: %s\n", cli_info.service);
if (count_chars(cli_info.service,'\\') < 3)
{
- usage(pname);
+ usage(argv[0]);
printf("\n%s: Not enough '\\' characters in service\n", cli_info.service);
exit(1);
}
cli_action = CLIENT_SVC;
}
- while ((opt = getopt(argc, argv,"s:B:O:M:S:i:N:d:l:hI:EB:U:L:t:m:W:T:D:c:")) != EOF)
+ while ((opt = getopt(argc, argv,"s:B:O:M:S:i:N:n:d:l:hI:EB:U:L:t:m:W:T:D:c:")) != EOF)
{
switch (opt)
{
break;
}
+ case 'n':
+ {
+ fstrcpy(global_myname, optarg);
+ break;
+ }
+
case 'N':
{
got_pass = True;
case 'l':
{
slprintf(debugf, sizeof(debugf)-1,
- "%s.client",optarg);
+ "%s.client", optarg);
+ interactive = False;
break;
}
case 'h':
{
- usage(pname);
+ usage(argv[0]);
exit(0);
break;
}
default:
{
- usage(pname);
+ usage(argv[0]);
exit(1);
break;
}
}
}
+ setup_logging(debugf, interactive);
+
if (cli_action == CLIENT_NONE)
{
- usage(pname);
+ usage(argv[0]);
exit(1);
}
- DEBUG(3,("%s client started (version %s)\n",timestring(),VERSION));
-
- if (!get_myname(cli_info.myhostname, NULL))
- {
- fprintf(stderr, "Failed to get my hostname.\n");
- }
-
- fstrcpy(global_myname, cli_info.myhostname);
strupper(global_myname);
+ fstrcpy(cli_info.myhostname, global_myname);
+
+ DEBUG(3,("%s client started (version %s)\n",timestring(),VERSION));
if (!lp_load(servicesf,True, False, False))
{
}
else
{
- pwd_make_lm_nt_16(&(smb_cli->pwd), password); /* generate 16 byte hashes */
+ /* generate 16 byte hashes */
+ pwd_make_lm_nt_16(&(smb_cli->pwd), password);
}
}
else