void print_registry_value_with_name(const char *valname, const struct registry_value *valvalue) { d_printf("Valuename = %s\n", valname); print_registry_value(valvalue); d_printf("\n"); }
static int net_registry_getvaluesraw(struct net_context *c, int argc, const char **argv) { WERROR werr; int ret = -1; struct registry_key *key = NULL; TALLOC_CTX *ctx = talloc_stackframe(); uint32_t idx; if (argc != 1 || c->display_usage) { d_fprintf(stderr, "usage: net rpc registry getvaluesraw " "<key>\n"); goto done; } werr = open_key(ctx, argv[0], REG_KEY_READ, &key); if (!W_ERROR_IS_OK(werr)) { d_fprintf(stderr, "open_key failed: %s\n", win_errstr(werr)); goto done; } idx = 0; while (true) { struct registry_value *val; werr = reg_enumvalue(talloc_tos(), key, idx, NULL, &val); if (W_ERROR_EQUAL(werr, WERR_NO_MORE_ITEMS)) { ret = 0; break; } if (!W_ERROR_IS_OK(werr)) { break; } print_registry_value(val, true); TALLOC_FREE(val); idx += 1; } done: TALLOC_FREE(ctx); return ret; }
static int net_registry_getvalue_internal(struct net_context *c, int argc, const char **argv, bool raw) { WERROR werr; int ret = -1; struct registry_key *key = NULL; struct registry_value *value = NULL; TALLOC_CTX *ctx = talloc_stackframe(); if (argc != 2 || c->display_usage) { d_fprintf(stderr, "%s\n%s", _("Usage:"), _("net registry getvalue <key> <valuename>\n")); goto done; } werr = open_key(ctx, argv[0], REG_KEY_READ, &key); if (!W_ERROR_IS_OK(werr)) { d_fprintf(stderr, _("open_key failed: %s\n"), win_errstr(werr)); goto done; } werr = reg_queryvalue(ctx, key, argv[1], &value); if (!W_ERROR_IS_OK(werr)) { d_fprintf(stderr, _("reg_queryvalue failed: %s\n"), win_errstr(werr)); goto done; } print_registry_value(value, raw); ret = 0; done: TALLOC_FREE(ctx); return ret; }