Dela via


Lägga till eller uppdatera ett registernyckelvärde

Description

Det här exemplet visar hur du kan använda resursen Registry för att säkerställa att ett registernyckelvärde anges.

Med Se till inställt på Present, värdenamn inställt på MyValueoch Nyckel inställt på lägger resursen MyValue till HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environmentregisternyckelvärdet under Environment nyckeln om det inte finns.

Med ValueType inställt på Binary, värdedata inställt på 0x00och Framtvinga inställt på $trueanger resursen registernyckelvärdet till 0 även om det finns med ett annat värde.

Med Invoke-DscResource

Det här skriptet visar hur du kan använda resursen med cmdleten Invoke-DscResource för att se Environment till att registernyckeln MyValue har värdet inställt på 0.Registry

[CmdletBinding()]
param()

begin {
    $SharedParameters = @{
        Name       = 'Registry'
        ModuleName = 'PSDscResource'
        Properties = @{
            Key       = 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment'
            Ensure    = 'Present'
            ValueName = 'MyValue'
            ValueType = 'Binary'
            ValueData = '0x00'
            Force     = $true
        }
    }

    $NonGetProperties = @(
        'Ensure'
        'ValueType'
        'ValueData'
        'Force'
    )
}

process {
    $TestResult = Invoke-DscResource -Method Test @SharedParameters

    if ($TestResult.InDesiredState) {
        $QueryParameters = $SharedParameters.Clone()

        foreach ($Property in $NonGetProperties) {
            $QueryParameters.Properties.Remove($Property)
        }

        Invoke-DscResource -Method Get @QueryParameters
    } else {
        Invoke-DscResource -Method Set @SharedParameters
    }
}

Med en konfiguration

Det här kodfragmentet visar hur du kan definiera en med ett Registry resursblock för att säkerställa Environment att registernyckeln MyValue har värdet inställt på 0.Configuration

Configuration AddOrModifyValue {
    Import-DscResource -ModuleName 'PSDscResources'

    Node localhost {
        Registry ExampleRegistry {
            Key       = 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment'
            Ensure    = 'Present'
            ValueName = 'MyValue'
            ValueType = 'Binary'
            ValueData = '0x00'
            Force     = $true
        }
    }
}