Kayıt Sağlayıcı hakkında


Sağlayıcı adı

Kayıt defteri

Sürücüler

HKLM:, HKCU:

Yetenekler

ShouldProcess, UseTransactions

Kısa açıklama

PowerShell'deki kayıt defteri anahtarlarına, girişlerine ve değerlerine erişim sağlar.

Ayrıntılı açıklama

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

PowerShell Kayıt Defteri sağlayıcısı, PowerShell'deki kayıt defteri anahtarlarını, girişlerini 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ını içeren hiyerarşik bir ad alanıdır. Kayıt defteri girişleri ve değerleri bu hiyerarşinin bileşenleri değildir. Bunun yerine, bunlar her bir anahtarın özellikleridir.

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

  • Get-Location
  • Set-Location
  • Get-Item
  • Get-ChildItem
  • Invoke-Item
  • Move-Item
  • New-Item
  • Remove-Item
  • Clear-ItemProperty
  • Get-ItemProperty
  • New-ItemProperty
  • Remove-ItemProperty
  • Set-ItemProperty
  • Get-Acl
  • Set-Acl

Bu sağlayıcının sunduğu türler

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

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

Kayıt defteri sürücülerinde gezinme

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ına eşlenir
  • HKCU:, HKEY_CURRENT_USER kayıt defteri kovanına eşlenir

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

Set-Location HKLM:

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

Set-Location C:

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

PS C:\> cd HKLM:\Software

Not

PowerShell, sağlayıcı yollarıyla tanıdık bir şekilde çalışmanıza olanak sağlamak için takma adlar kullanır. dir ve ls gibi komutlar Get-ChildItem'in takma adlarıdır, cd Set-Location'ın takma adıdır ve pwd code Get-Location'ın takma adıdır.

Bu son örnek, Kayıt Defteri sağlayıcısında gezinmek için kullanabileceğiniz başka bir yol söz dizimini göstermektedir. Bu sözdizimi, sağlayıcı adını ve ardından iki iki nokta üst üste :: kullanır. Bu sözdizimi, eşlenen sürücü adı HKLM 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 girişlere bölünmüştür. Kayıt defteri yapısı hakkında daha fazla bilgi için bkz. Kayıt Defterinin Yapısı.

Kayıt Defteri sürücüsündeki her anahtar bir kapsayıcıdır. Bir anahtar herhangi bir sayıda anahtar içerebilir. Üst anahtarı olan kayıt defteri anahtarına alt anahtar adı verilir. Kayıt defteri anahtarlarını görüntülemek için Get-ChildItem'i ve bir anahtar yoluna gitmek için Set-Location'ı kullanabilirsiniz.

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

Bu örnekte Get-Item ile Get-ChildItem arasındaki fark gösterilmektedir. "Biriktirici" kayıt defteri anahtarında Get-Item'i 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. Bir kayıt defteri anahtarında Get-Item'i kullandığınızda alt anahtarlar görüntülenmez. Get-ChildItem cmdlet'i, her bir alt anahtarın özellikleri de dahil olmak üzere "Biriktirici" anahtarının alt anahtarlarını gösterir. Get-ChildItem kullanıldığında ü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. . noktası 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 olur.

Aşağıdaki örnek, tüm özellikleri görüntülemek için Get-ItemProperty cmdlet'ini kullanır. Ortaya çıkan nesneyi bir değişkende saklamak, istediğiniz ö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 belirtmek, belirttiğiniz özellikleri seçer ve PSCustomObject'i döndürür. Aşağıdaki örnek, -Name parametresini kullandığınızda çıktıdaki farkı gösterir.

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 itibaren 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 örnekte, biriktirici hizmeti başlatma türünü manuel olarak değiştirmek için Set-ItemProperty kullanılmaktadır. Örnek, Set-Service cmdlet'ini kullanarak StartType'ı tekrar Otomatik 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 bir varsayılan değeri vardır. Bir kayıt defteri anahtarının varsayılan değerini Set-Item veya Set-ItemProperty ile 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.

  • Set-Item
  • Set-ItemProperty

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

Yeni Öğe cmdlet'i sağladığınız adla yeni kayıt defteri anahtarları oluşturur. Ayrıca Yeni Öğe cmdlet'ini dahili olarak çağıran mkdir işlevini de kullanabilirsiniz.

mkdir ContosoCompany
    Hive: HKEY_LOCAL_MACHINE\SOFTWARE

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

Belirttiğiniz bir 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ü inceleyin.

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 kopyalayın. 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 belirtilen HKLM:\Software\Fabrikam konumuna kopyalar.

Copy-Item, mevcut değilse hedef anahtarı oluşturur. Hedef anahtar mevcutsa, 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, "Server" değerini "Contoso" anahtarından "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.

  • Copy-Item
  • Copy-ItemProperty

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

Move-Item ve Move-ItemProperty cmdlet'leri "Copy" karşılıkları gibi davranır. Hedef mevcutsa, Move-Item kaynak anahtarını hedef anahtarın altına taşır. Hedef anahtar mevcut değilse kaynak anahtar hedef yola taşınır.

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

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

Bu komut, tüm özellikleri HKLM:\SOFTWARE\ContosoCompany'den HKLM:\SOFTWARE\Fabrikam'a taşı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.

  • Move-Item
  • Move-ItemProperty

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

Kayıt defteri anahtarlarını ve değerlerini tıpkı dosya ve klasörlerde olduğu 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.

  • Get-Acl
  • Set-Acl

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

İçerilen öğeleri Remove-Item'i kullanarak kaldırabilirsiniz. Öğenin başka bir şey içermesi durumunda, kaldırma işlemini onaylamanız istenir. Aşağıdaki örnekte bir HKLM:\SOFTWARE\Contoso anahtarı silinmeye çalışılmaktadır.

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"):

İçerdiği öğ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 ancak HKLM:\SOFTWARE\Contoso'nun kendisini kaldırmak istemiyorsanız, sonuna ters eğik çizgi \ kullanın. ardından bir joker karakter gelir.

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

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

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

Clear-Item bir anahtara ilişkin 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-ItemProperty'i kullanı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.

  • Clear-Item
  • Clear-ItemProperty
  • Remove-Item
  • Remove-ItemProperty

Dinamik parametreler

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

yazın

Bir kayıt defteri değerinin veri türünü oluşturur veya değiştirir. Varsayılan Dize'dir (REG_SZ).

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

  • String - REG_SZ değerleri için kullanılır. Value parametresine bir [System.String] nesnesi iletin.
  • ExpandString - REG_EXPAND_SZ değerleri için kullanılır. Value parametresine bir [System.String] nesnesi iletin. Dize, değer alındığında genişletilen ortam değişkenlerine genişletilmemiş başvurular içermelidir.
  • İkili - REG_BINARY değerleri için kullanılır. Value parametresine bir [System.Byte[]] nesnesi iletin.
  • DWord - REG_DWORD değerleri için kullanılır. Value parametresine bir [System.Int32] nesnesi iletin.
  • MultiString - REG_MULTI_SZ değerleri için kullanılır. Value parametresine bir [System.String[]] nesnesi iletin.
  • QWord - REG_QWORD değerleri için kullanılır. Value parametresine bir [System.Int64] nesnesi iletin.
  • Bilinmiyor - REG_RESOURCE_LIST değerleri gibi desteklenmeyen bir kayıt defteri veri türünü belirtir.

Boru hattını kullanma

Sağlayıcı cmdlet'leri ardışık düzen girişini kabul eder. Sağlayıcı verilerini bir cmdlet'ten başka bir sağlayıcı cmdlet'ine göndererek görevi basitleştirmek için işlem hattını kullanabilirsiniz. İşlem hattının sağlayıcı cmdlet'leriyle nasıl kullanılacağı hakkında daha fazla bilgi edinmek için bu makale boyunca sağlanan cmdlet referanslarına bakın.

Yardım alma

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

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

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

Ayrıca bakınız

  • about_Providers

İlgili makaleler