about_Registry_Provider

Sağlayıcı adı

Kayıt defteri

Drives

HKLM:, HKCU:

Capabilities

ShouldProcessUseTransactions

Kısa açıklama

PowerShell'de kayıt defteri anahtarları, girdileri ve değerlerine erişim sağlar.

Ayrıntılı açıklama

Bu bilgiler yalnızca Windows üzerinde çalışan PowerShell için geçerlidir.

PowerShell Kayıt Defteri sağlayıcısı, PowerShell'de kayıt defteri anahtarlarını, girdilerini ve değerlerini almanıza, eklemenize, değiştirmenize, temizlemenize ve silmenize olanak tanır.

Kayıt Defteri sürücüleri, bilgisayarınızdaki kayıt defteri anahtarlarını ve alt anahtarları içeren hiyerarşik bir ad alanıdır. Kayıt defteri girdileri ve değerleri bu hiyerarşinin bileşenleri değildir. Bunun yerine, anahtarların her birinin özellikleridir.

Kayıt Defteri sağlayıcısı aşağıdaki cmdlet'leri destekler:

  • Get-Location
  • Konum Ayarlama
  • Öğe al
  • Get-ChildItem
  • Invoke-Item
  • Öğe Taşı
  • Yeni Öğe
  • Öğe kaldırma
  • Clear-ItemProperty
  • Get-ItemProperty
  • New-ItemProperty
  • Remove-ItemProperty
  • Set-ItemProperty
  • Get-Acl
  • Set-Acl

Bu sağlayıcı tarafından kullanıma sunulan türler

Kayıt Defteri sağlayıcısı kayıt defteri verilerini iki türden birinde döndürür:

  • Kayıt defteri anahtarları için Microsoft.Win32.RegistryKey
  • Kayıt defteri değerleri için PSCustomObject

Kayıt Defteri sağlayıcısı, veri deposunu iki varsayılan sürücü olarak kullanıma sunar.

  • HKLM: HKEY_LOCAL_MACHINE kayıt defteri kovanı ile eşler
  • HKCU: HKEY_CURRENT_USER kayıt defteri kovanı ile eşler

Kayıt defteriyle çalışmak için aşağıdaki komutu kullanarak konumunuzu HKLM: sürücüsüne değiştirebilirsiniz.

Set-Location HKLM:

Bir dosya sistemi sürücüsüne dönmek için sürücü adını yazın. Örneğin, şunu yazın:

Set-Location C:

Kayıt Defteri sağlayıcısıyla başka bir PowerShell sürücüsünden de çalışabilirsiniz. Başka bir konumdan kayıt defteri anahtarına başvurmak için yoldaki sürücü adını (HKLM:, HKCU:) kullanın. \ sürücüsünün düzeyini belirtmek için ters eğik çizgi (/) veya eğik çizgi () kullanın.

PS C:\> cd HKLM:\Software

Not

PowerShell, sağlayıcı yollarıyla çalışmak için tanıdık bir yol sağlamak için diğer adları kullanır. dir ve ls gibi komutlar, Get-ChildItem için diğer adlardır cdKonum Ayarlaiçin bir diğer addır ve pwdGet-Locationiçin bir diğer addır.

Bu son örnekte, Kayıt Defteri sağlayıcısında gezinmek için kullanabileceğiniz başka bir yol söz dizimi gösterilmektedir. Bu söz dizimi, sağlayıcı adını ve ardından iki iki nokta üst üste ::kullanır. Bu söz dizimi, HKLMeşlenen sürücü adı yerine tam HIVE adını kullanmanıza olanak tanır.

cd "Registry::HKEY_LOCAL_MACHINE\Software"

Kayıt defteri anahtarlarının içeriğini görüntüleme

Kayıt defteri anahtarlara, alt anahtarlara ve girdilere ayrılır. Kayıt defteri yapısı hakkında daha fazla bilgi için bkz. Kayıt Defteri yapısı.

Kayıt Defteri sürücüsünde her anahtar bir kapsayıcıdır. Bir anahtar, istediğiniz sayıda anahtar içerebilir. Üst anahtarı olan kayıt defteri anahtarına alt anahtar adı verilir. Get-ChildItem kullanarak kayıt defteri anahtarlarını görüntüleyebilir ve Set-Location bir anahtar yoluna gidebilirsiniz.

Kayıt defteri değerleri, bir kayıt defteri anahtarının öznitelikleridir. Kayıt Defteri sürücüsünde bunlara Öğe Özellikleriadı verilir. Kayıt defteri anahtarı hem alt anahtarlara hem de öğe özelliklerine sahip olabilir.

Bu örnekte, Get-Item ile Get-ChildItem arasındaki fark gösterilir. "Biriktirici" kayıt defteri anahtarında Get-Item kullandığınızda, özelliklerini görüntüleyebilirsiniz.

Get-Item -Path HKLM:\SYSTEM\CurrentControlSet\Services\Spooler
    Hive: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services


Name        Property
----        --------
Spooler     DependOnService    : {RPCSS, http}
            Description        : @%systemroot%\system32\spoolsv.exe,-2
            DisplayName        : @%systemroot%\system32\spoolsv.exe,-1
            ErrorControl       : 1
            FailureActions     : {16, 14, 0, 0...}
            Group              : SpoolerGroup
            ImagePath          : C:\WINDOWS\System32\spoolsv.exe
            ObjectName         : LocalSystem
            RequiredPrivileges : {SeTcbPrivilege, SeImpersonatePrivilege, ...
            ServiceSidType     : 1
            Start              : 2
            Type               : 27

Her kayıt defteri anahtarının alt anahtarları da olabilir. Kayıt defteri anahtarında Get-Item kullandığınızda alt anahtarlar görüntülenmez. Get-ChildItem cmdlet'i her alt anahtarın özellikleri de dahil olmak üzere "Biriktirici" anahtarının alt anahtarlarını gösterir. Get-ChildItemkullanılırken üst anahtar özellikleri gösterilmez.

Get-ChildItem -Path HKLM:\SYSTEM\CurrentControlSet\Services\Spooler
    Hive: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Spooler


Name             Property
----             --------
Performance      Close           : PerfClose
                 Collect         : PerfCollect
                 Collect Timeout : 2000
                 Library         : C:\Windows\System32\winspool.drv
                 Object List     : 1450
                 Open            : PerfOpen
                 Open Timeout    : 4000
Security         Security : {1, 0, 20, 128...}

Get-Item cmdlet'i geçerli konumda da kullanılabilir. Aşağıdaki örnek "Biriktirici" kayıt defteri anahtarına gider ve öğe özelliklerini alır. Nokta . geçerli konumu belirtmek için kullanılır.

cd HKLM:\System\CurrentControlSet\Services\Spooler
Get-Item .
    Hive: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

Name             Property
----             --------
Spooler          DependOnService    : {RPCSS, http}
                 Description        : @%systemroot%\system32\spoolsv.exe,-2
...

Bu bölümde ele alınan cmdlet'ler hakkında daha fazla bilgi için aşağıdaki makalelere bakın.

Get-Item-Get-ChildItem -

Kayıt defteri anahtarı değerlerini görüntüleme

Kayıt defteri anahtarı değerleri, her kayıt defteri anahtarının özellikleri olarak depolanır. Get-ItemProperty cmdlet'i, belirttiğiniz adı kullanarak kayıt defteri anahtarı özelliklerini görüntüler. Sonuç, belirttiğiniz özellikleri içeren bir PSCustomObject.

Aşağıdaki örnek, tüm özellikleri görüntülemek için Get-ItemProperty cmdlet'ini kullanır. Sonuçta elde edilen nesneyi bir değişkende depolamak, istenen özellik değerine erişmenizi sağlar.

$p = Get-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Services\Spooler
$p.DependOnService
RPCSS
http

-Name parametresi için bir değer belirtilmesi, belirttiğiniz özellikleri seçer ve PSCustomObjectdöndürür. Aşağıdaki örnekte, -Name parametresini kullandığınızda çıkış farkı gösterilmektedir.

Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Wbem
BUILD                      : 17134.1
Installation Directory     : C:\WINDOWS\system32\WBEM
MOF Self-Install Directory : C:\WINDOWS\system32\WBEM\MOF
PSPath                     : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Wbem
PSParentPath               : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft
PSChildName                : Wbem
PSDrive                    : HKLM
PSProvider                 : Microsoft.PowerShell.Core\Registry
Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Wbem -Name BUILD
BUILD        : 17134.1
PSPath       : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Wbem
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft
PSChildName  : Wbem
PSDrive      : HKLM
PSProvider   : Microsoft.PowerShell.Core\Registry

PowerShell 5.0'dan başlayarak, Get-ItemPropertyValue cmdlet'i yalnızca belirttiğiniz özelliğin değerini döndürür.

Get-ItemPropertyValue -Path HKLM:\SOFTWARE\Microsoft\Wbem -Name BUILD
17134.1

Bu bölümde kullanılan cmdlet'ler hakkında daha fazla bilgi için aşağıdaki makalelere bakın.

  • Get-ItemProperty
  • Get-ItemPropertyValue

Kayıt defteri anahtarı değerlerini değiştirme

Set-ItemProperty cmdlet'i bir kayıt defteri anahtarıyla ilişkili kayıt defteri değerlerini ayarlar. Aşağıdaki örnek, biriktirici hizmeti başlangıç türünü el ile olarak değiştirmek için Set-ItemProperty kullanır. Örnek, cmdlet'ini kullanarak AutomaticSet-Service olarak değiştirir.

Get-Service spooler | Select-Object Name, StartMode
Name    StartType
----    ---------
spooler Automatic
$path = "HKLM:\SYSTEM\CurrentControlSet\Services\Spooler\"
Set-ItemProperty -Path $path -Name Start -Value 3
Get-Service spooler | Select-Object Name, StartMode
Name    StartType
----    ---------
spooler    Manual
Set-Service -Name Spooler -StartupType Automatic

Her kayıt defteri anahtarının varsayılan değeri vardır. default veya Set-Itemile kayıt defteri anahtarının Set-ItemProperty değerini değiştirebilirsiniz.

Set-ItemProperty -Path HKLM:\SOFTWARE\Contoso -Name "(default)" -Value "one"
Set-Item -Path HKLM:\SOFTWARE\Contoso -Value "two"

Bu bölümde kullanılan cmdlet'ler hakkında daha fazla bilgi için aşağıdaki makalelere bakın.

Kayıt defteri anahtarları ve değerleri oluşturma

New-Item cmdlet'i, sağladığınız bir adla yeni kayıt defteri anahtarları oluşturur. mkdir cmdlet'ini dahili olarak çağıran New-Item işlevini de kullanabilirsiniz.

mkdir ContosoCompany
    Hive: HKEY_LOCAL_MACHINE\SOFTWARE

Name                           Property
----                           --------
ContosoCompany

Belirttiğiniz kayıt defteri anahtarında değerler oluşturmak için New-ItemProperty cmdlet'ini kullanabilirsiniz. Aşağıdaki örnek, ContosoCompany kayıt defteri anahtarında yeni bir DWORD değeri oluşturur.

$path = "HKLM:\SOFTWARE\ContosoCompany"
New-ItemProperty -Path $path -Name Test -Type DWord -Value 1

Not

İzin verilen diğer tür değerleri için bu makaledeki dinamik parametreler bölümünü gözden geçirin.

Ayrıntılı cmdlet kullanımı için bkz. New-ItemProperty .

Kayıt defteri anahtarlarını ve değerlerini kopyalama

Kayıt Defteri sağlayıcısında Copy-Item cmdlet'ini kullanarak kayıt defteri anahtarlarını ve değerlerini kopyalar. Yalnızca kayıt defteri değerlerini kopyalamak için Copy-ItemProperty cmdlet'ini kullanın. Aşağıdaki komut , "Contoso" kayıt defteri anahtarını ve özelliklerini HKLM:\Software\Fabrikambelirtilen konuma kopyalar.

Copy-Item, hedef anahtar yoksa oluşturur. Hedef anahtar varsa, Copy-Item hedef anahtarın alt öğesi (alt anahtar) olarak kaynak anahtarın bir kopyasını oluşturur.

Copy-Item -Path  HKLM:\Software\Contoso -Destination HKLM:\Software\Fabrikam

Aşağıdaki komut, "Contoso" anahtarındaki "Sunucu" değerini "Fabrikam" anahtarına kopyalamak için Copy-ItemProperty cmdlet'ini kullanır.

$source = "HKLM:\SOFTWARE\Contoso"
$dest = "HKLM:\SOFTWARE\Fabrikam"
Copy-ItemProperty -Path $source -Destination $dest -Name Server

Bu bölümde kullanılan cmdlet'ler hakkında daha fazla bilgi için aşağıdaki makalelere bakın.

Kayıt defteri anahtarlarını ve değerlerini taşıma

Move-Item ve Move-ItemProperty cmdlet'leri, "Kopyala" karşılık gelenleri gibi davranır. Hedef varsa, Move-Item kaynak anahtarı hedef anahtarın altına taşır. Hedef anahtar yoksa, kaynak anahtar hedef yola taşınır.

Aşağıdaki komut , "Contoso" anahtarını HKLM:\SOFTWARE\Fabrikamyoluna taşır.

Move-Item -Path HKLM:\SOFTWARE\Contoso -Destination HKLM:\SOFTWARE\Fabrikam

Bu komut tüm özellikleri HKLM:\SOFTWARE\ContosoCompanyHKLM:\SOFTWARE\Fabrikamtaşır.

$source = "HKLM:\SOFTWARE\Contoso"
$dest = "HKLM:\SOFTWARE\Fabrikam"
Move-ItemProperty -Path $source -Destination $dest -Name *

Bu bölümde kullanılan cmdlet'ler hakkında daha fazla bilgi için aşağıdaki makalelere bakın.

  • Öğe Taşı
  • Move-ItemProperty

Kayıt defteri anahtarlarını ve değerlerini yeniden adlandırma

Kayıt defteri anahtarlarını ve değerlerini dosya ve klasörler gibi yeniden adlandırabilirsiniz. Rename-Item kayıt defteri anahtarlarını yeniden adlandırırken Rename-ItemProperty kayıt defteri değerlerini yeniden adlandırır.

$path = "HKLM:\SOFTWARE\Contoso"
Rename-ItemProperty -Path $path -Name ContosoTest -NewName FabrikamTest
Rename-Item -Path $path -NewName Fabrikam

Güvenlik tanımlayıcılarını değiştirme

Get-Acl ve Set-Acl cmdlet'lerini kullanarak kayıt defteri anahtarlarına erişimi kısıtlayabilirsiniz. Aşağıdaki örnek, HKLM:\SOFTWARE\Contoso kayıt defteri anahtarına tam denetime sahip yeni bir kullanıcı ekler.

$acl = Get-Acl -Path HKLM:\SOFTWARE\Contoso
$rule = New-Object System.Security.AccessControl.RegistryAccessRule `
("CONTOSO\jsmith", "FullControl", "Allow")
$acl.SetAccessRule($rule)
$acl | Set-Acl -Path HKLM:\SOFTWARE\Contoso

Daha fazla örnek ve cmdlet kullanım ayrıntıları için aşağıdaki makalelere bakın.

Kayıt defteri anahtarlarını ve değerlerini kaldırma ve temizleme

Remove-Itemkullanarak kapsanan öğeleri kaldırabilirsiniz. Öğede başka bir şey varsa kaldırma işlemini onaylamanız istenir. Aşağıdaki örnek HKLM:\SOFTWARE\Contosobir anahtarı silmeyi dener.

dir HKLM:\SOFTWARE\Contoso\
    Hive: HKEY_LOCAL_MACHINE\SOFTWARE\Contoso

Name                           Property
----                           --------
ChildKey
Remove-Item -Path HKLM:\SOFTWARE\Contoso
Confirm
The item at HKLM:\SOFTWARE\Contoso has children and the -Recurse
parameter wasn't specified. If you continue, all children will be removed
with the item. Are you sure you want to continue?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help
(default is "Y"):

İçerilen öğeleri sormadan silmek için -Recurse parametresini belirtin.

Remove-Item -Path HKLM:\SOFTWARE\Contoso -Recurse

HKLM:\SOFTWARE\Contoso içindeki tüm öğeleri kaldırmak istediyseniz ancak kendisini HKLM:\SOFTWARE\Contoso istemiyorsanız, sonunda ters eğik çizgi \ ve ardından joker karakter kullanın.

Remove-Item -Path HKLM:\SOFTWARE\Contoso\* -Recurse

Bu komut HKLM:\SOFTWARE\Contoso kayıt defteri anahtarından "ContosoTest" kayıt defteri değerini siler.

Remove-ItemProperty -Path HKLM:\SOFTWARE\Contoso -Name ContosoTest

Clear-Item bir anahtarın tüm kayıt defteri değerlerini temizler. Aşağıdaki örnek, HKLM:\SOFTWARE\Contoso kayıt defteri anahtarındaki tüm değerleri temizler. Yalnızca belirli bir özelliği temizlemek için Clear-ItemPropertykullanın.

Get-Item .\Contoso\
    Hive: HKEY_LOCAL_MACHINE\SOFTWARE

Name           Property
----           --------
Contoso        Server     : {a, b, c}
               HereString : {This is text which contains
               newlines. It also contains "quoted" strings}
               (default)  : 1
Clear-Item .\Contoso\
Get-Item .\Contoso\
    Hive: HKEY_LOCAL_MACHINE\SOFTWARE

Name                           Property
----                           --------
Contoso

Daha fazla örnek ve cmdlet kullanım ayrıntıları için aşağıdaki makalelere bakın.

  • Öğe temizle
  • Clear-ItemProperty
  • Öğe kaldırma
  • Remove-ItemProperty

Dinamik parametreler

Dinamik parametreler, bir PowerShell sağlayıcısı tarafından eklenen cmdlet parametreleridir ve yalnızca cmdlet sağlayıcı etkin sürücüde kullanıldığında kullanılabilir.

Microsoft.Win32.RegistryValueKind<>yazın

Kayıt defteri değerinin veri türünü oluşturur veya değiştirir. Varsayılan değer String (REG_SZ).

Bu parametre, Set-ItemProperty cmdlet'inde tasarlandığı gibi çalışır. Kayıt defteri sürücülerindeki Set-Item cmdlet'inde de kullanılabilir, ancak hiçbir etkisi yoktur.

  • String - REG_SZ değerler için kullanılır. [System.String] parametresine bir nesnesi geçirin.
  • ExpandString - REG_EXPAND_SZ değerler için kullanılır. [System.String] parametresine bir nesnesi geçirin. Dize, değer alındığında genişletilen ortam değişkenlerine açıklanmamış başvurular içermelidir.
  • Binary - REG_BINARY değerler için kullanılır. [System.Byte[]] parametresine bir nesnesi geçirin.
  • DWord - REG_DWORD değerler için kullanılır. [System.Int32] parametresine bir nesnesi geçirin.
  • MultiString - REG_MULTI_SZ değerler için kullanılır. [System.String[]] parametresine bir nesnesi geçirin.
  • QWord - REG_QWORD değerler için kullanılır. [System.Int64] parametresine bir nesnesi geçirin.
  • Unknown - REG_RESOURCE_LIST değerleri gibi desteklenmeyen bir kayıt defteri veri türünü gösterir.

İşlem hattını kullanma

Sağlayıcı cmdlet'leri işlem hattı girişini kabul eder. Bir cmdlet'ten başka bir sağlayıcı cmdlet'ine sağlayıcı verileri göndererek görevi basitleştirmek için işlem hattını kullanabilirsiniz. İşlem hattını sağlayıcı cmdlet'leriyle kullanma hakkında daha fazla bilgi edinmek için bu makalenin tamamında sağlanan cmdlet başvurularına bakın.

Yardım alma

Windows PowerShell 3.0'dan başlayarak, bu cmdlet'lerin bir dosya sistemi sürücüsünde nasıl davrandığını açıklayan sağlayıcı cmdlet'leri için özelleştirilmiş yardım konuları alabilirsiniz.

Dosya sistemi sürücüsü için özelleştirilmiş yardım konularını almak için, dosya sistemi sürücüsünde bir Get-Help komutu çalıştırın veya dosya sistemi sürücüsü belirtmek için Yol parametresini kullanın.

Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path HKLM:

Ayrıca bakınız