Я пытаюсь создать скрипт, который сначала проверяет, есть ли ключ в реестре, и если его нет; создает его.
$path = "HKCU:\Software\Microsoft\Office\16.0\Common\Identity\"
$regkey = "Testkey"
$keyvalue = "0"
if ((Get-ItemProperty $path -Name $regkey -ea 0).$regkey) {
"Property already exists"
} else {
Set-ItemProperty -Path $path -Name $regkey -Value $keyvalue
Write-Output "Created key."
}
Что я ожидаю:
- При запуске скрипта, если есть ключ с таким же именем, скрипт выдаст «Свойство уже существует».
- При запуске скрипта, если нет ключа с таким же именем, скрипт создаст ключ и выведет «Создано».
Что происходит:
- Если ключ существует, но имеет тип DWORD, сценарий просто выводит «Создано». Если я продолжаю запускать скрипт несколько раз, он все равно говорит «Создано».
- Если я удалю ключ и создам его как тип SZ, скрипт будет работать так, как ожидалось.
В общем, по какой-то причине я не могу закодировать скрипт, чтобы также обнаруживать ключи типа DWORD.