Poser une questionPoser une question
 

TraitéeSet/Create Registry Values

  • mardi 30 juin 2009 19:20AnthonyP100 Médailles de l'utilisateurMédailles de l'utilisateurMédailles de l'utilisateurMédailles de l'utilisateurMédailles de l'utilisateur
     
    I am trying to search registry values and either create a value if
    it's not there or set the cirrect value it should have via the
    following function:

    function Compare2([string]$TermtoMatch, [string]$RegType, [int]
    $RegValue, [string]$RegistryPath) {
            $value = Get-ItemProperty -path $RegistryPath
            if ($value -match $TermtoMatch) { Set-ItemProperty $RegistryPath -
    Name $TermtoMatch -value $RegValue }
            Else { New-ItemProperty $RegistryPath -Name $TermtoMatch -value
    $RegValue -propertyType RegType }

     

    }

    Here's a snippet of the code calling the function:

    $RegistryPath = "HKLM:\SOFTWARE\Intel\LANDesk
    \VirusProtect6\CurrentVersion\Storages\FileSystem\RealTimeScan"

    Compare2("ConfigRestart", "dword", 1, $RegistryPath)

    Here's the error:
    Get-ItemProperty : Cannot bind argument to parameter 'Path' because it
    is an empty string.
    At C:\script.ps1:2 char:33
    + $value = Get-ItemProperty -Path <<<< $RegistryPath
    The '-match' operator failed: parsing "ConfigRestart dword 1 "HKLM:
    \SOFTWARE\Intel\LANDesk\VirusProtect6\CurrentVersion\Storages
    \FileSystem\RealTimeScan" - Unrecognized escape sequence \I..
    At C:\script.ps1:3 char:19
    + if ($value -match <<<< $TermtoMatch) {

    Any ideas what I'm missing here?  I'm thinking it has something to do
    with my casting.  When I manually put the values in for the variables
    it seems to work just fine.

    Thanks.

Réponses

Toutes les réponses