arbeta med registerposter

  • 06/05/2017
  • 5 minuter att läsa
    • j
    • s
    • k
    • m
    • b

    olika tillvägagångssätt när man arbetar med dem.

    lista registerposter

    det finns många olika sätt att undersöka registerposter. Det enklaste sättet är att få fastighetennamn associerade med en nyckel. För att till exempel se namnen på posterna i registernyckelnHKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion, använd Get-Item. Registernycklarha en egenskap med det generiska namnet ”egenskap” som är en lista över registerposter i nyckeln.Följande kommando väljer Fastighetsegenskapen och expanderar objekten så att de visas i en lista:

    DevicePathMediaPathUnexpandedProgramFilesDirCommonFilesDirProductId

    För att visa registerposterna i en mer läsbar form, använd Get-ItemProperty:

    Get-ItemProperty -Path Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion

    Windows PowerShell-relaterade egenskaper för nyckeln är alla prefixade med ”PS”, till exempel asPSPath, PSParentPath, pschildname och psprovider.

    Du kan använda*.* för att hänvisa till den aktuella platsen. Du kan använda Set-Locationför att ändra till CurrentVersion registerbehållaren först:

    Set-Location -Path Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion

    Alternativt kan du använda den inbyggda HKLM PSDrive med Set-Location:

    Set-Location -Path hklm:\SOFTWARE\Microsoft\Windows\CurrentVersion

    Du kan sedan använda *.* Nuvarande plats för att lista egenskaperna utanspecificera en fullständig sökväg:

    Get-ItemProperty -Path .
    ...DevicePath : C:\WINDOWS\infMediaPathUnexpanded : C:\WINDOWS\MediaProgramFilesDir : C:\Program Files...

    Path expansion fungerar på samma sätt som det gör inom filsystemet, så från den här platsen kan du getthe itemproperty notering för HKLM:\SOFTWARE\Microsoft\Windows\Help genom att användaGet-ItemProperty -Path ..\Help.

    hämta en enda registerpost

    Om du vill hämta en specifik post i en registernyckel kan du använda en av flera möjliga tillvägagångssätt. Detta exempel hittar värdet på DevicePath iHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion.

    användGet-ItemProperty, använd Path-parametern för att ange namnet på nyckeln och theName-parametern för att ange namnet på DevicePath-posten.

    Get-ItemProperty -Path HKLM:\Software\Microsoft\Windows\CurrentVersion -Name DevicePath

    detta kommando returnerar standard Windows PowerShell egenskaper samt DevicePathproperty.

    Obs

    Även omGet-ItemProperty har Filter, inkluderar och utesluter parametrar, kan de inteanvändas för att filtrera efter egenskapsnamn. Dessa parametrar hänvisar till registernycklar, som är objektvägar och inte registerposter, som är objektegenskaper.

    ett annat alternativ är att använda Reg.exe kommandoradsverktyg. För hjälp med reg.exe, skriv reg.exe /?vid en kommandotolk. För att hitta DevicePath-posten, använd reg.exe som visas i följande kommando:

    reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion /v DevicePath

    Du kan också använda wshshell COM-objektet för att hitta några registerposter, även om dettaMetod fungerar inte med stora binära data eller med registerpostnamn som innehåller teckensåsom”\”). Lägg till egenskapsnamnet på objektvägen med en \ separator:

    (New-Object -ComObject WScript.Shell).RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DevicePath")
    %SystemRoot%\inf

    ställa in en enda registerpost

    Om du vill ändra en specifik post i en registernyckel kan du använda en av flera möjliga tillvägagångssätt. Detta exempel ändrar sökvägsposten under HKEY_CURRENT_USER\Environment. ThePath-posten anger var du ska hitta körbara filer.

    1. hämta det aktuella värdet för sökvägsposten medGet-ItemProperty.
    2. Lägg till det nya värdet, separera det med ett ;.
    3. använd Set-ItemProperty med den angivna nyckeln, inmatningsnamnet och värdet för att ändra registryentry.

    Obs

    Även omSet-ItemProperty har Filter, inkludera och utesluta parametrar, kan de inte användas för att filtrera efter egenskapsnamn. Dessa parametrar hänvisar till registernycklar—som är itempaths—och inte registerposter—som är objektegenskaper.

    ett annat alternativ är att använda Reg.exe kommandoradsverktyg. För hjälp med reg.exe, skriv reg.exe/?vid en kommandotolk.

    följande exempel ändrar posten sökväg genom att ta bort den sökväg som läggs till i exemplet ovan.Get-ItemProperty används fortfarande för att hämta det aktuella värdet för att undvika att behöva analysera strängreturned från reg query. Metoderna SubString och LastIndexOf används för att hämta den senaste sökvägen som läggs till i Sökvägsposten.

    The operation completed successfully.

    skapa nya registerposter

    för att lägga till en ny post med namnet” PowerShellPath”till CurrentVersion-tangenten, använd New-ItemPropertymed sökvägen till nyckeln, inmatningsnamnet och värdet på posten. För det här exemplet kommer vi attta värdet på Windows PowerShell-variabeln $PSHome, som lagrar sökvägen tillinstallationskatalog för Windows PowerShell.

    Du kan lägga till den nya posten till nyckeln med hjälp av följande kommando, och kommandot returnerar ocksåinformation om den nya posten:

    Egenskapentyp måste vara namnet på en Microsoft.Win32.RegistryValueKind uppräkningsmedlemfrån följande tabell:

    PropertyType Value Meaning
    Binary Binary data
    DWord A number that is a valid UInt32
    ExpandString A string that can contain environment variables that are dynamically expanded
    MultiString A multiline string
    String Any string value
    QWord 8 bytes of binary data

    Obs

    Du kan lägga till en registerpost på flera platser genom att ange en rad värden för path-parametern:

    Du kan också skriva över ett befintligt registerpostvärde genom att lägga till kraftparametern till någotNew-ItemProperty kommando.

    byta namn på registerposter

    för att byta namn på PowerShellPath-posten till ”PSHome”, använd Rename-ItemProperty:

    Rename-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion -Name PowerShellPath -NewName PSHome

    för att visa det döpta värdet, Lägg till parametern PassThru till kommandot.

    Rename-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion -Name PowerShellPath -NewName PSHome -passthru

    radera registerposter

    för att radera både pshome-och PowerShellPath-registerposter, använd Remove-ItemProperty:

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *