Мне нужно импортировать файл .reg, который содержит стандартные параметры конфигурации для серверного продукта. Однако возможно, что один блок Windows может содержать несколько экземпляров сервера. Каждый экземпляр сервера имеет свои ключи конфигурации в реестре Windows.
Первый экземпляр будет иметь раздел реестра по умолчанию:
HKLM\SOFTWARE\<Vendor>\<Product>\Settings
Любые другие экземпляры будут иметь имена вариантов, например:
HKLM\SOFTWARE\<Vendor>\<Product>\Settings-foo
HKLM\SOFTWARE\<Vendor>\<Product>\Settings-bar
HKLM\SOFTWARE\<Vendor>\<Product>\Settings-baz
и т.д ...
Файл реестра содержит параметры, которые необходимо применить к каждому из этих экземпляров сервера. Структура подразделов реестра одинакова для каждого ключа. Итак, процесс ручного развертывания состоит в том, чтобы взять файл .reg и выполнить поиск и замену файла для "SOFTWARE\<Vendor>\<Product>\Settings\"
и заменить его на "SOFTWARE\<Vendor>\<Product>\Settings-foo\"
, а затем импортировать недавно настроенный файл .reg. Промыть и повторить для бара, баз и т.д.
Я хочу написать сценарий PowerShell, который получает список всех ключей «Settings-» и выполняет эквивалентный поиск и замену перед импортом файла .reg. Я не нашел командлет, который может импортировать файлы .reg, поэтому я должен вызывать reg.exe или regedit.exe. Обе эти программы позволяют импортировать содержимое файла .reg, который находится на диске.
У меня вопрос, нужно ли мне на самом деле создавать файлы .reg и записывать их на диск, чтобы я мог затем вызвать reg.exe /Import <filename>
или regedit.exe /S <filename>
? Или есть какой-то способ, которым я могу просто загрузить исходный файл .reg, изменить его в памяти и получить reg.exe или regedit.exe для импорта измененных ключей реестра без необходимости записывать весь стек файлов .reg на диск?