1 #!/usr/bin/env smbscript
3 test samr calls from ejs
6 var options = new Object();
8 ok = GetOptions(ARGV, options,
11 "POPT_COMMON_CREDENTIALS");
13 println("Failed to parse options: " + options.ERROR);
17 libinclude("base.js");
18 libinclude("samr.js");
22 test the samr_Connect interface
24 function test_Connect(conn)
26 print("Testing samr_Connect\n");
27 return samrConnect(conn);
32 test the samr_LookupDomain interface
34 function test_LookupDomain(conn, handle, domain)
36 print("Testing samr_LookupDomain\n");
37 return samrLookupDomain(conn, handle, domain);
41 test the samr_OpenDomain interface
43 function test_OpenDomain(conn, handle, sid)
45 print("Testing samr_OpenDomain\n");
46 return samrOpenDomain(conn, handle, sid);
50 test the samr_EnumDomainUsers interface
52 function test_EnumDomainUsers(conn, dom_handle)
55 print("Testing samr_EnumDomainUsers\n");
56 users = samrEnumDomainUsers(conn, dom_handle);
57 print("Found " + users.length + " users\n");
58 for (i=0;i<users.length;i++) {
59 println("\t" + users[i].name + "\t(" + users[i].idx + ")");
64 test the samr_EnumDomainGroups interface
66 function test_EnumDomainGroups(conn, dom_handle)
68 print("Testing samr_EnumDomainGroups\n");
69 var i, groups = samrEnumDomainGroups(conn, dom_handle);
70 print("Found " + groups.length + " groups\n");
71 for (i=0;i<groups.length;i++) {
72 println("\t" + groups[i].name + "\t(" + groups[i].idx + ")");
77 test domain specific ops
79 function test_domain_ops(conn, dom_handle)
81 test_EnumDomainUsers(conn, dom_handle);
82 test_EnumDomainGroups(conn, dom_handle);
88 test the samr_EnumDomains interface
90 function test_EnumDomains(conn, handle)
93 print("Testing samr_EnumDomains\n");
95 domains = samrEnumDomains(conn, handle);
96 print("Found " + domains.length + " domains\n");
97 for (i=0;i<domains.length;i++) {
98 print("\t" + domains[i].name + "\n");
100 for (i=0;i<domains.length;i++) {
101 print("Testing domain " + domains[i].name + "\n");
102 sid = samrLookupDomain(conn, handle, domains[i].name);
103 dom_handle = test_OpenDomain(conn, handle, sid);
104 test_domain_ops(conn, dom_handle);
105 samrClose(conn, dom_handle);
109 if (options.ARGV.length != 1) {
110 println("Usage: samr.js <BINDING>");
113 var binding = options.ARGV[0];
114 var conn = new Object();
116 print("Connecting to " + binding + "\n");
117 status = rpc_connect(conn, binding, "samr");
118 if (status.is_ok != true) {
119 print("Failed to connect to " + binding + " - " + status.errstr + "\n");
123 handle = test_Connect(conn);
124 test_EnumDomains(conn, handle);
125 samrClose(conn, handle);