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.
- Get-Location
- Konum Ayarla
- Öğe Al
- Get-ChildItem
- ÖğeYi Çağır
- ÖğeYi Taşı
- Yeni Öğe
- Öğeyi Kaldır
- 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 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 sürücülerde gezinme
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ı HKLM
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 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-Item
Get-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.
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-ItemProperty
ile 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\Fabrikam
taşır.
Move-Item -Path HKLM:\SOFTWARE\Contoso -Destination HKLM:\SOFTWARE\Fabrikam
Bu komut, tüm özellikleri 'den HKLM:\SOFTWARE\ContosoCompany
öğesine HKLM:\SOFTWARE\Fabrikam
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.
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-Item
kapsanan öğ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\Contoso
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 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.
PowerShell
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin