Skip to content

Import/Export configuration #33

@himselfv

Description

@himselfv

Original report by me.

Viper already can generate .reg-file export for service triggers. It needs the ability to export full service configuration, preferably maximally identical to the actual registry key for this service.

It will then provide the ability to export one or more services in this way.

Services exported in this way can be imported by simply importing the .reg files and rebooting.

But it would also be nice to have an UI for that. There are several typical tasks that should be handled:

  1. Import .reg file, create missing services, rewrite existing services.
  2. Choose whether to only update existing services/also create missing ones. In the former case, gray out the services which are missing.
  3. Choose which services to import from a given .reg file.
  4. Choose which configuration elements to import from a given .reg file.

Note:
Services may have additional configuration options and keys under their own key. We may recreate the base key structure with information gathered from SC API, but not these additional keys.
We need to look into actual registry to export these keys. And we'll need to write them back too. This puts additional privilege requirements (SC API may sometimes require less rights that directly editing the key).

  1. We should make these keys a separate configuration element which can be skipped on import, and then we should require less privileges.
  2. We should somehow study the entire service key and figure which parts of it are "non-standard" (should be exported in addition to standard export generated from SC API).
    Or maybe we should just export the entire key from the registry? Including the stuff we might have retrieved via SC API?

Note 2:
Currently Viper has an ability to save/restore autostart configuration for the services in the .svcconf format. I'd like to keep it because this plain text format is easier for comparisons. Or maybe even extend it to table format, or simple line-by-line format, so that multiple properties can be included.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions