none
Checar um item no registro, se existir, sair, senão, criar este registro. RRS feed

  • Pergunta

  • English:

    I created the script like this:

    $registryPath = 'Caminho do Registro'
    $name = 'Nome da Chave'
    $value = 'Valor'
    
    New-Item -Path $registryPath -Force # will only create if it doesn't exist
    New-ItemProperty -Path $registryPath -Name $name -PropertyType String -Value $value -Force

    This example works, the key appears if it does not exist and if it exists it changes the value, but if I change the $ name being in the same path as the record, it deletes the current one and creates a new one on top, and the logic is to create a new one and do not delete the existing one (if I have to check 2 keys on the same path)

    Some help?

    ______________________________________________________________________________________

    Portuguese:

    Eu criei o script dessa forma:

    $registryPath = 'Caminho do Registro'
    $name = 'Nome da Chave'
    $value = 'Valor'
    
    New-Item -Path $registryPath -Force # will only create if it doesn't exist
    New-ItemProperty -Path $registryPath -Name $name -PropertyType String -Value $value -Force

    Este exemplo funciona, a chave aparece caso não exista e se existir ele altera o valor, porém se eu mudar o $name estando no mesmo caminho do registro, ele apaga a atual e cria um nova por cima, e a lógica é criar uma nova e não apagar a existente (caso eu tenha que checar 2 chaves no mesmo caminho)

    Alguma ajuda?


    sexta-feira, 6 de novembro de 2020 17:31

Todas as Respostas

  • Estou começando agora em powershell mais acredito que o parametro -Force força a criação de uma nova chave caso não tenha sido essa sua intenção.

    R. Bohner

    sexta-feira, 6 de novembro de 2020 19:01
  • Boa noite!

    Veja se esse exemplo te ajuda:

    $registryPath = 'HKLM:\SOFTWARE\Wow6432Node\Citrix\Dazzle'
    $name = "MaxSimultaneousFetches"
    $value = "6"
    $name1 = "MaxSimultaneousSubscribes"
    $value1 = "6"
    
    if (!(Test-Path -Path $registryPath)) {
        [void] (New-Item -Path $registryPath -Force)
        [void] (New-ItemProperty -Path $registryPath -Name $name -Value $value -PropertyType DWORD -Force)
        [void] (New-ItemProperty -Path $registryPath -Name $name1 -Value $value1 -PropertyType DWORD -Force)
    }

    Fonte: https://social.technet.microsoft.com/Forums/en-US/d2d1e77b-98db-47d1-87c4-779be9113666/ps-script-to-check-whether-the-existing-key-is-there-if-not-add-a-registry-key?forum=winserverpowershell

    sexta-feira, 6 de novembro de 2020 22:45