svn commit: samba r9153 - in branches/SAMBA_4_0/testprogs/ejs: .
tridge at samba.org
tridge at samba.org
Sat Aug 6 00:36:17 GMT 2005
Author: tridge
Date: 2005-08-06 00:36:17 +0000 (Sat, 06 Aug 2005)
New Revision: 9153
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=9153
Log:
added a sample program for enumerating winreg via js
Added:
branches/SAMBA_4_0/testprogs/ejs/winreg.js
Changeset:
Added: branches/SAMBA_4_0/testprogs/ejs/winreg.js
===================================================================
--- branches/SAMBA_4_0/testprogs/ejs/winreg.js 2005-08-06 00:06:34 UTC (rev 9152)
+++ branches/SAMBA_4_0/testprogs/ejs/winreg.js 2005-08-06 00:36:17 UTC (rev 9153)
@@ -0,0 +1,97 @@
+#!/usr/bin/env smbscript
+/*
+ test winreg calls from ejs
+*/
+
+var options = new Object();
+
+ok = GetOptions(ARGV, options,
+ "POPT_AUTOHELP",
+ "POPT_COMMON_SAMBA",
+ "POPT_COMMON_CREDENTIALS");
+if (ok == false) {
+ println("Failed to parse options: " + options.ERROR);
+ return -1;
+}
+
+libinclude("base.js");
+
+if (options.ARGV.length != 1) {
+ println("Usage: winreg.js <BINDING>");
+ return -1;
+}
+var binding = options.ARGV[0];
+reg = winreg_init();
+security_init(reg);
+
+print("Connecting to " + binding + "\n");
+status = reg.connect(binding);
+if (status.is_ok != true) {
+ print("Failed to connect to " + binding + " - " + status.errstr + "\n");
+ return -1;
+}
+
+
+
+function list(handle, path, name) {
+ var io = irpcObj();
+ var wtime = new Object();
+ wtime.low = 2147483647;
+ wtime.high = 2147483647;
+ var keyname = new Object();
+ keyname.unknown = 522;
+ keyname.key_name = NULL;
+
+ var idx = 0;
+ for (idx=0;idx >= 0;idx++) {
+ io.input.handle = handle;
+ io.input.enum_index = idx;
+ io.input.key_name_len = 0;
+ io.input.unknown = 1044;
+ io.input.in_name = keyname;
+ io.input.class = "";
+ io.input.last_changed_time = wtime;
+ var status = reg.winreg_EnumKey(io);
+ if (!status.is_ok) return;
+ var out = io.output;
+ if (out.result != "WERR_OK") {
+ return;
+ }
+ printf("%s\\%s\n", path, out.out_name.name);
+
+ io = irpcObj();
+ io.input.handle = handle;
+ io.input.keyname = out.out_name.name;
+ io.input.unknown = 0;
+ io.input.access_mask = reg.SEC_FLAG_MAXIMUM_ALLOWED;
+ status = reg.winreg_OpenKey(io);
+ if (!status.is_ok) return;
+ assert(io.output.result == "WERR_OK");
+
+ list(io.output.handle,
+ path + "\\" + out.out_name.name,
+ out.out_name.name);
+ }
+}
+
+function list_tree(name) {
+ var io = irpcObj();
+ io.input.system_name = NULL;
+ io.input.access_required = reg.SEC_FLAG_MAXIMUM_ALLOWED;
+ status = reg.winreg_OpenHKLM(io);
+ assert(status.is_ok);
+
+ var handle = io.output.handle;
+
+ list(handle, "", NULL);
+}
+
+var trees = new Array("HKCR", "HKLM", "HKPD", "HKU");
+
+for (i=0;i<trees.length;i++) {
+ printf("Listing tree '%s'\n", trees[i]);
+ list_tree(trees[i]);
+}
+
+print("All OK\n");
+return 0;
Property changes on: branches/SAMBA_4_0/testprogs/ejs/winreg.js
___________________________________________________________________
Name: svn:executable
+ *
More information about the samba-cvs
mailing list