Частично обновить значение реестра через PowerShell - PullRequest
0 голосов
/ 24 октября 2018

Я нахожусь в процессе создания сценария для обновления некоторых значений реестра для приложения через PowerShell.Мне удалось понять каждое значение почти для всего, что мне нужно обновить с помощью ProcMon, однако я не могу понять одно.

Для контекста я ищу, чтобы включить параметр отключения звука в приложении.Я выследил запись в реестре, но похоже, что она выполняет разные функции.Это:

Отключение звука: Тип: REG_SZ, длина: 46, данные: 3 156 156 1441 760 0 0
Включение звука: тип: REG_SZ, длина: 46, данные: 3 156 1561441 760 1 0

Это свойство «главного окна».

Итак, после долгих испытаний понятно, что нужно редактировать.Но остальная часть строки может отличаться.Поэтому мне нужно только отредактировать вторую последнюю цифру, оставив предыдущее значение без изменений.

В настоящее время единственное, что я могу придумать для скрипта, это запросить текущее значение, отредактировать вторую последнюю цифру и затем обновить все значение реестра.

У меня есть несколько серверов для этого.

Мой вопрос: есть ли другой способ найти дополнительную информацию о значении других значений?Или есть способ обновить значение реестра, но изменить только значение «mute».

1 Ответ

0 голосов
/ 24 октября 2018

Вы можете только читать / записывать все значения реестра.Предполагая, что числа в этом строковом значении разделены пробелами, вы можете разбить строку, изменить второй-последний элемент, затем присоединить массив обратно к строке и записать его обратно в реестр.

$key = 'HKCU:\...'
$val = 'something'

$s = Get-ItemProperty -Path $key | Select-Object -Expand $val
$a = $s.Split()
$a[-2] = '1'
Set-ItemProperty -Path $key -Name $val -Value "$a"

Использование "$a" вместо $a (без кавычек) приводит к искажению массива в разделенную пробелами строку (поскольку разделитель выходного поля по умолчанию, определенный в переменной $OFS, является пробелом).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...