guestfs_abort_cb guestfs_add_cdrom guestfs_add_domain guestfs_add_domain_argv guestfs_add_domain_va guestfs_add_drive guestfs_add_drive_opts guestfs_add_drive_opts_argv guestfs_add_drive_opts_va guestfs_add_drive_ro guestfs_add_drive_ro_with_if guestfs_add_drive_with_if guestfs_application guestfs_application_list guestfs_aug_clear guestfs_aug_close guestfs_aug_defnode guestfs_aug_defvar guestfs_aug_get guestfs_aug_init guestfs_aug_insert guestfs_aug_load guestfs_aug_ls guestfs_aug_match guestfs_aug_mv guestfs_aug_rm guestfs_aug_save guestfs_aug_set guestfs_available guestfs_available_all_groups guestfs_base64_in guestfs_base64_out guestfs_blockdev_flushbufs guestfs_blockdev_getbsz guestfs_blockdev_getro guestfs_blockdev_getsize64 guestfs_blockdev_getss guestfs_blockdev_getsz guestfs_blockdev_rereadpt guestfs_blockdev_setbsz guestfs_blockdev_setro guestfs_blockdev_setrw guestfs_case_sensitive_path guestfs_cat guestfs_checksum guestfs_checksum_device guestfs_checksums_out guestfs_chmod guestfs_chown guestfs_close guestfs_command guestfs_command_lines guestfs_config guestfs_copy_size guestfs_cp guestfs_cp_a guestfs_create guestfs_dd guestfs_debug guestfs_debug_cmdline guestfs_debug_upload guestfs_df guestfs_df_h guestfs_dirent guestfs_dirent_list guestfs_dmesg guestfs_download guestfs_download_offset guestfs_drop_caches guestfs_du guestfs_e2fsck_f guestfs_echo_daemon guestfs_egrep guestfs_egrepi guestfs_equal guestfs_error_errno guestfs_error_handler_cb guestfs_exists guestfs_fallocate guestfs_fallocate64 guestfs_fgrep guestfs_fgrepi guestfs_file guestfs_file_architecture guestfs_filesize guestfs_fill guestfs_fill_pattern guestfs_find guestfs_find0 guestfs_findfs_label guestfs_findfs_uuid guestfs_first_private guestfs_fsck guestfs_get_append guestfs_get_attach_method guestfs_get_autosync guestfs_getcon guestfs_get_direct guestfs_get_e2label guestfs_get_e2uuid guestfs_get_error_handler guestfs_get_memsize guestfs_get_network guestfs_get_out_of_memory_handler guestfs_get_path guestfs_get_pid guestfs_get_private guestfs_get_qemu guestfs_get_recovery_proc guestfs_get_selinux guestfs_get_state guestfs_get_trace guestfs_get_umask guestfs_get_verbose guestfs_getxattr guestfs_getxattrs guestfs_glob_expand guestfs_grep guestfs_grepi guestfs_grub_install guestfs_head guestfs_head_n guestfs_hexdump guestfs_initrd_cat guestfs_initrd_list guestfs_inotify_add_watch guestfs_inotify_close guestfs_inotify_event guestfs_inotify_event_list guestfs_inotify_files guestfs_inotify_init guestfs_inotify_read guestfs_inotify_rm_watch guestfs_inspect_get_arch guestfs_inspect_get_distro guestfs_inspect_get_drive_mappings guestfs_inspect_get_filesystems guestfs_inspect_get_format guestfs_inspect_get_hostname guestfs_inspect_get_major_version guestfs_inspect_get_minor_version guestfs_inspect_get_mountpoints guestfs_inspect_get_package_format guestfs_inspect_get_package_management guestfs_inspect_get_product_name guestfs_inspect_get_product_variant guestfs_inspect_get_roots guestfs_inspect_get_type guestfs_inspect_get_windows_current_control_set guestfs_inspect_get_windows_systemroot guestfs_inspect_is_live guestfs_inspect_is_multipart guestfs_inspect_is_netinst guestfs_inspect_list_applications guestfs_inspect_os guestfs_int_application guestfs_int_application_list guestfs_int_bool guestfs_int_bool_list guestfs_int_dirent guestfs_int_dirent_list guestfs_internal_autosync guestfs_int_inotify_event guestfs_int_inotify_event_list guestfs_int_int_bool guestfs_int_int_bool_list guestfs_int_lvm_lv guestfs_int_lvm_lv_list guestfs_int_lvm_pv guestfs_int_lvm_pv_list guestfs_int_lvm_vg guestfs_int_lvm_vg_list guestfs_int_partition guestfs_int_partition_list guestfs_int_stat guestfs_int_stat_list guestfs_int_statvfs guestfs_int_statvfs_list guestfs_int_version guestfs_int_version_list guestfs_int_xattr guestfs_int_xattr_list guestfs_is_blockdev guestfs_is_busy guestfs_is_chardev guestfs_is_config guestfs_is_dir guestfs_is_fifo guestfs_is_file guestfs_is_launching guestfs_is_lv guestfs_is_ready guestfs_is_socket guestfs_is_symlink guestfs_kill_subprocess guestfs_last_errno guestfs_last_error guestfs_launch guestfs_lchown guestfs_lgetxattr guestfs_lgetxattrs guestfs_list_devices guestfs_list_filesystems guestfs_list_partitions guestfs_ll guestfs_ln guestfs_ln_f guestfs_ln_s guestfs_ln_sf guestfs_lremovexattr guestfs_ls guestfs_lsetxattr guestfs_lstat guestfs_lstatlist guestfs_luks_add_key guestfs_luks_close guestfs_luks_format guestfs_luks_format_cipher guestfs_luks_kill_slot guestfs_luks_open guestfs_luks_open_ro guestfs_lvcreate guestfs_lvm_canonical_lv_name guestfs_lvm_clear_filter guestfs_lvm_lv guestfs_lvm_lv_list guestfs_lvm_pv guestfs_lvm_pv_list guestfs_lvm_remove_all guestfs_lvm_set_filter guestfs_lvm_vg guestfs_lvm_vg_list guestfs_lvremove guestfs_lvrename guestfs_lvresize guestfs_lvresize_free guestfs_lvs guestfs_lvs_full guestfs_lvuuid guestfs_lxattrlist guestfs_mkdir guestfs_mkdir_mode guestfs_mkdir_p guestfs_mkdtemp guestfs_mke2fs_J guestfs_mke2fs_JL guestfs_mke2fs_JU guestfs_mke2journal guestfs_mke2journal_L guestfs_mke2journal_U guestfs_mkfifo guestfs_mkfs guestfs_mkfs_b guestfs_mkfs_opts guestfs_mkfs_opts_argv guestfs_mkfs_opts_va guestfs_mkmountpoint guestfs_mknod guestfs_mknod_b guestfs_mknod_c guestfs_mkswap guestfs_mkswap_file guestfs_mkswap_L guestfs_mkswap_U guestfs_modprobe guestfs_mount guestfs_mount_loop guestfs_mount_options guestfs_mountpoints guestfs_mount_ro guestfs_mounts guestfs_mount_vfs guestfs_mv guestfs_next_private guestfs_ntfs_3g_probe guestfs_ntfsresize guestfs_ntfsresize_size guestfs_part_add guestfs_part_del guestfs_part_disk guestfs_part_get_bootable guestfs_part_get_mbr_id guestfs_part_get_parttype guestfs_part_init guestfs_partition guestfs_partition_list guestfs_part_list guestfs_part_set_bootable guestfs_part_set_mbr_id guestfs_part_set_name guestfs_part_to_dev guestfs_perrorf guestfs_ping_daemon guestfs_pread guestfs_pread_device guestfs_protocol guestfs_pvcreate guestfs_pvremove guestfs_pvresize guestfs_pvresize_size guestfs_pvs guestfs_pvs_full guestfs_pvuuid guestfs_pwrite guestfs_pwrite_device guestfs_readdir guestfs_read_file guestfs_read_lines guestfs_readlink guestfs_readlinklist guestfs_realpath guestfs_removexattr guestfs_resize2fs guestfs_resize2fs_M guestfs_resize2fs_size guestfs_rm guestfs_rmdir guestfs_rmmountpoint guestfs_rm_rf guestfs_safe_asprintf guestfs_safe_calloc guestfs_safe_malloc guestfs_safe_memdup guestfs_safe_realloc guestfs_safe_strdup guestfs_safe_strndup guestfs_scrub_device guestfs_scrub_file guestfs_scrub_freespace guestfs_set_append guestfs_set_attach_method guestfs_set_autosync guestfs_setcon guestfs_set_direct guestfs_set_e2label guestfs_set_e2uuid guestfs_set_error_handler guestfs_set_memsize guestfs_set_network guestfs_set_out_of_memory_handler guestfs_set_path guestfs_set_private guestfs_set_qemu guestfs_set_recovery_proc guestfs_set_selinux guestfs_set_trace guestfs_set_verbose guestfs_setxattr guestfs_sfdisk guestfs_sfdisk_disk_geometry guestfs_sfdisk_kernel_geometry guestfs_sfdisk_l guestfs_sfdiskM guestfs_sfdisk_N guestfs_sh guestfs_sh_lines guestfs_sleep guestfs_stat guestfs_stat_list guestfs_statvfs guestfs_statvfs_list guestfs_strings guestfs_strings_e guestfs_swapoff_device guestfs_swapoff_file guestfs_swapoff_label guestfs_swapoff_uuid guestfs_swapon_device guestfs_swapon_file guestfs_swapon_label guestfs_swapon_uuid guestfs_sync guestfs_tail guestfs_tail_n guestfs_tar_in guestfs_tar_ou#!/usr/bin/python # # tool to manipulate a remote registry # Copyright Andrew Tridgell 2005 # Copyright Jelmer Vernooij 2007 # Released under the GNU GPL v3 or later # import sys # Find right directory when running from source tree sys.path.insert(0, "bin/python") from samba.dcerpc import winreg import optparse import samba.getopt as options parser = optparse.OptionParser("%s <BINDING> [path]" % sys.argv[0]) sambaopts = options.SambaOptions(parser) parser.add_option_group(sambaopts) parser.add_option("--createkey", type="string", metavar="KEYNAME", help="create a key") opts, args = parser.parse_args() if len(args) < 1: parser.print_usage() sys.exit(-1) binding = args[0] print "Connecting to " + binding conn = winreg.winreg(binding, sambaopts.get_loadparm()) def list_values(key): (num_values, max_valnamelen, max_valbufsize) = conn.QueryInfoKey(key, winreg.String())[4:8] for i in range(num_values): name = winreg.StringBuf() name.size = max_valnamelen (name, type, data, _, data_len) = conn.EnumValue(key, i, name, 0, "", max_valbufsize, 0) print "\ttype=%-30s size=%4d '%s'" % type, len, name if type in (winreg.REG_SZ, winreg.REG_EXPAND_SZ): print "\t\t'%s'" % data # if (v.type == reg.REG_MULTI_SZ) { # for (j in v.value) { # printf("\t\t'%s'\n", v.value[j]) # } # } # if (v.type == reg.REG_DWORD || v.type == reg.REG_DWORD_BIG_ENDIAN) { # printf("\t\t0x%08x (%d)\n", v.value, v.value) # } # if (v.type == reg.REG_QWORD) { # printf("\t\t0x%llx (%lld)\n", v.value, v.value) # } def list_path(key, path): count = 0 (num_subkeys, max_subkeylen, max_subkeysize) = conn.QueryInfoKey(key, winreg.String())[1:4] for i in range(num_subkeys): name = winreg.StringBuf() name.size = max_subkeysize keyclass = winreg.StringBuf() keyclass.size = max_subkeysize (name, _, _) = conn.EnumKey(key, i, name, keyclass=keyclass, last_changed_time=None)[0] subkey = conn.OpenKey(key, name, 0, winreg.KEY_QUERY_VALUE | winreg.KEY_ENUMERATE_SUB_KEYS) count += list_path(subkey, "%s\\%s" % (path, name)) list_values(subkey) return count if len(args) > 1: root = args[1] else: root = "HKLM" if opts.createkey: reg.create_key("HKLM\\SOFTWARE", opt.createkey) else: print "Listing registry tree '%s'" % root try: root_key = getattr(conn, "Open%s" % root)(None, winreg.KEY_QUERY_VALUE | winreg.KEY_ENUMERATE_SUB_KEYS) except AttributeError: print "Unknown root key name %s" % root sys.exit(1) count = list_path(root_key, root) if count == 0: print "No entries found" sys.exit(1)