about_Registry_Provider

Sağlayıcı adı

Kayıt Defteri

Sürücüler

HKLM:, HKCU:

Özellikler

ShouldProcess, UseTransactions

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ı, bu makalede ele alınan aşağıdaki cmdlet'leri destekler.

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

Kayıt defteri anahtarları, Microsoft.Win32.RegistryKey sınıfının örnekleri olarak temsil edilir. Kayıt defteri girişleri PSCustomObject sınıfının örnekleri olarak temsil edilir.

Kayıt defteri sağlayıcısı, veri deposunu iki varsayılan sürücü olarak kullanıma sunar. Kayıt defteri konumu HKEY_LOCAL_MACHINE sürücüye HKLM: ve HKEY_CURRENT_USER sürücüye HKCU: eşlenir. Kayıt defteriyle çalışmak için aşağıdaki komutu kullanarak konumunuzu HKLM: sürücüye 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. Kayıt defteri 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. ve gibi dir komutlar artık Get-ChildItem için diğer addır, cd Set-Location için bir diğer addır ve pwd Get-Location için bir diğer addırls.

Bu son örnek, Kayıt Defteri sağlayıcısında gezinmek için kullanabileceğiniz başka bir yol söz dizimini gösterir. Bu söz diziminde sağlayıcı adı ve ardından iki iki nokta üst üste ::kullanılır. Bu söz dizimi, eşlenen sürücü adı yerine tam HIVE adını HKLMkullanmanı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 Defterinin 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. Kayıt defteri anahtarlarını görüntülemek ve Set-Location bir anahtar yoluna gitmek için kullanabilirsinizGet-ChildItem.

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. Kayıt defteri anahtarı hem alt anahtarlara hem de öğe özelliklerine sahip olabilir.

Bu örnekte ile arasındaki Get-ItemGet-ChildItem fark gösterilmiştir. "Biriktirici" kayıt defteri anahtarını kullandığınızda Get-Item , bu anahtarın ö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 kullandığınızda Get-Item alt anahtarlar görüntülenmez. Cmdlet,her Get-ChildItem alt anahtarın özellikleri de dahil olmak üzere "Biriktirici" anahtarının alt öğelerini gösterir. kullanırken üst anahtar özellikleri gösterilmez Get-ChildItem.

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...}

Cmdlet Get-Item 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. Cmdlet, Get-ItemProperty belirttiğiniz adı kullanarak kayıt defteri anahtarı özelliklerini görüntüler. Sonuç, belirttiğiniz özellikleri içeren bir PSCustomObject'tir .

Aşağıdaki örnek, tüm özellikleri görüntülemek için cmdlet'ini kullanır Get-ItemProperty . 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

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

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 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.

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

Cmdlet, Set-ItemProperty kayıt defteri anahtarları için öznitelikleri ayarlar. Aşağıdaki örnek, biriktirici hizmeti başlangıç türünü el ile olarak değiştirmek için kullanır Set-ItemProperty . Örnek, cmdlet'ini kullanarak StartType'ı Otomatik olarak Set-Service 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. veya Set-ItemPropertyile Set-Item bir kayıt defteri anahtarının varsayılan 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

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

mkdir ContosoCompany
    Hive: HKEY_LOCAL_MACHINE\SOFTWARE

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

Cmdlet'ini New-ItemProperty kullanarak belirttiğiniz kayıt defteri anahtarında değerler oluşturabilirsiniz. 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 cmdlet'ini Copy-Item kullanarak kayıt defteri anahtarlarını ve değerlerini kopyalar. Copy-ItemProperty Yalnızca kayıt defteri değerlerini kopyalamak için 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 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 cmdlet'ini Copy-ItemProperty kullanarak "Contoso" anahtarındaki "Sunucu" değerini "Fabrikam" anahtarına kopyalar.

$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

ve Move-ItemProperty cmdlet'leri Move-Item , "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ı yoluna HKLM:\SOFTWARE\Fabrikamtaşır.

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

Bu komut, tüm özellikleri 'den HKLM:\SOFTWARE\ContosoCompany öğesine HKLM:\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.

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

ve Set-Acl cmdlet'lerini kullanarak Get-Acl kayıt defteri anahtarlarına erişimi kısıtlayabilirsiniz. Aşağıdaki örnek, kayıt defteri anahtarına tam denetime HKLM:\SOFTWARE\Contoso 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

kullanarak Remove-Itemkapsanan öğeleri kaldırabilirsiniz, ancak öğe başka bir şey içeriyorsa kaldırma işlemini onaylamanız istenir. Aşağıdaki örnek bir anahtarı HKLM:\SOFTWARE\Contososilmeyi 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 was not 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 parametresini -Recurse belirtin.

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

Kendi içinde HKLM:\SOFTWARE\Contoso olmayan HKLM:\SOFTWARE\Contoso tüm öğeleri kaldırmak istiyorsanız, sonunda ters eğik çizgi \ ve ardından joker karakter kullanın.

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

Bu komut, kayıt defteri anahtarından HKLM:\SOFTWARE\Contoso "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, kayıt defteri anahtarındaki HKLM:\SOFTWARE\Contoso tüm değerleri temizler. Yalnızca belirli bir özelliği temizlemek için kullanın Clear-ItemProperty.

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.

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ğerdir String (REG_SZ).

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

Value Açıklama
String Null olarak sonlandırılan bir dize belirtir. REG_SZ değerler için kullanılır.
ExpandString Süresiz içeren null olarak sonlandırılan bir dize belirtir
genişletilmiş ortam değişkenlerine başvurular
değeri alınır. REG_EXPAND_SZ değerleri için kullanılır.
Binary İkili verileri herhangi bir biçimde belirtir. REG_BINARY değerler için kullanılır.
DWord 32 bit ikili bir sayı belirtir. REG_DWORD değerleri için kullanılır.
MultiString Tarafından sonlandırılan null ile sonlandırılan dize dizisini belirtir
iki null karakter. REG_MULTI_SZ değerler için kullanılır.
QWord 64 bit ikili bir sayı belirtir. REG_QWORD değerler için kullanılır.
Unknown Desteklenmeyen bir kayıt defteri veri türünü gösterir, örneğin
değerleri REG_RESOURCE_LIST.

Desteklenen cmdlet'ler

İş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 komut çalıştırın veya Path parametresini kullanarak bir dosya sistemi sürücüsü belirtin.

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

Ayrıca bkz.