1 #!/usr/bin/env smbscript
3 test samr calls from ejs
6 var options = GetOptions(ARGV,
9 "POPT_COMMON_CREDENTIALS");
10 if (options == undefined) {
11 println("Failed to parse options");
15 libinclude("base.js");
16 libinclude("samr.js");
20 test the samr_Connect interface
22 function test_Connect(samr)
24 print("Testing samr_Connect\n");
25 return samrConnect(samr);
30 test the samr_LookupDomain interface
32 function test_LookupDomain(samr, handle, domain)
34 print("Testing samr_LookupDomain\n");
35 return samrLookupDomain(samr, handle, domain);
39 test the samr_OpenDomain interface
41 function test_OpenDomain(samr, handle, sid)
43 print("Testing samr_OpenDomain\n");
44 return samrOpenDomain(samr, handle, sid);
48 test the samr_EnumDomainUsers interface
50 function test_EnumDomainUsers(samr, dom_handle)
53 print("Testing samr_EnumDomainUsers\n");
54 users = samrEnumDomainUsers(samr, dom_handle);
55 print("Found " + users.length + " users\n");
56 for (i=0;i<users.length;i++) {
57 println("\t" + users[i].name + "\t(" + users[i].idx + ")");
62 test the samr_EnumDomainGroups interface
64 function test_EnumDomainGroups(samr, dom_handle)
66 print("Testing samr_EnumDomainGroups\n");
67 var i, groups = samrEnumDomainGroups(samr, dom_handle);
68 print("Found " + groups.length + " groups\n");
69 for (i=0;i<groups.length;i++) {
70 println("\t" + groups[i].name + "\t(" + groups[i].idx + ")");
75 test domain specific ops
77 function test_domain_ops(samr, dom_handle)
79 test_EnumDomainUsers(samr, dom_handle);
80 test_EnumDomainGroups(samr, dom_handle);
86 test the samr_EnumDomains interface
88 function test_EnumDomains(samr, handle)
91 print("Testing samr_EnumDomains\n");
93 domains = samrEnumDomains(samr, handle);
94 print("Found " + domains.length + " domains\n");
95 for (i=0;i<domains.length;i++) {
96 print("\t" + domains[i].name + "\n");
98 for (i=0;i<domains.length;i++) {
99 print("Testing domain " + domains[i].name + "\n");
100 sid = samrLookupDomain(samr, handle, domains[i].name);
101 dom_handle = test_OpenDomain(samr, handle, sid);
102 test_domain_ops(samr, dom_handle);
103 samrClose(samr, dom_handle);
107 if (options.ARGV.length != 1) {
108 println("Usage: samr.js <BINDING>");
111 var binding = options.ARGV[0];
112 var samr = samr_init();
114 print("Connecting to " + binding + "\n");
115 status = samr.connect(binding);
116 if (status.is_ok != true) {
117 print("Failed to connect to " + binding + " - " + status.errstr + "\n");
121 handle = test_Connect(samr);
122 test_EnumDomains(samr, handle);
123 samrClose(samr, handle);