PowerShell: как пройти через значения реестра с именами «SQLArg1», «SQLArg2» и т. Д.? - PullRequest
0 голосов
/ 11 декабря 2011

Я работаю над функцией PowerShell, которая должна проверять, установлены ли два значения в реестре с именами «SQLArg4» и «SQLArg5» (или два других числа) на определенное значение содержимого, и устанавливать их, если нет.

Проблема в том, что я не могу перечислить значения, чтобы пройти через них, чтобы сравнить их все, а затем добавить мои два значения значения, если они отсутствуют.

Я пытался создать строку из «SQLArg» и индекса $ i, но PowerShell не позволил бы мне использовать эту строку в качестве поля переменной.

Есть идеи?

1 Ответ

0 голосов
/ 12 декабря 2011

Похоже, вам нужно работать только с одним ключом реестра (без рекурсии). Попробуйте этот код. Он получит все значения в $ key, которые начинаются с «SQLArgs», и сохранит их в $ values. Он проходит по последовательности чисел и проверяет наличие значений ключей с именем SQLArgs #. Когда он находит его, он устанавливает данные значения ключа.

$key = "HKCU:\Andy"

$values = Get-ItemProperty -Path $key -Name SQLArg*

1..20 | % {
    if ($values."SQLArg$_" -ne $null) {
        Set-ItemProperty -Path $key -Name "SQLArg$_" -Value "Powershell Rocks"
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...