about_Registry_Provider

Nama penyedia

Registri

Drive

HKLM:, HKCU:

Kemampuan

ShouldProcess, UseTransactions

Deskripsi singkat

Menyediakan akses ke kunci registri, entri, dan nilai di PowerShell.

Deskripsi terperinci

Informasi ini hanya berlaku untuk PowerShell yang berjalan di Windows.

Penyedia PowerShell Registry memungkinkan Anda mendapatkan, menambahkan, mengubah, menghapus, dan menghapus kunci, entri, dan nilai registri di PowerShell.

Drive Registri adalah namespace hierarkis yang berisi kunci registri dan subkunci di komputer Anda. Entri dan nilai registri bukan komponen dari hierarki tersebut. Sebaliknya, mereka adalah properti dari masing-masing kunci.

Penyedia Registri mendukung cmdlet berikut, yang dibahas dalam artikel ini.

Jenis yang diekspos oleh penyedia ini

Kunci registri diwakili sebagai instans kelas Microsoft.Win32.RegistryKey . Entri registri diwakili sebagai instans kelas PSCustomObject .

Penyedia Registri mengekspos penyimpanan datanya sebagai dua drive default. Lokasi registri HKEY_LOCAL_MACHINE dipetakan ke HKLM: drive dan HKEY_CURRENT_USER dipetakan ke HKCU: drive. Untuk bekerja dengan registri, Anda dapat mengubah lokasi Anda ke HKLM: drive menggunakan perintah berikut.

Set-Location HKLM:

Untuk kembali ke drive sistem file, ketik nama drive. Misalnya, ketik:

Set-Location C:

Anda juga dapat bekerja dengan penyedia Registri dari drive PowerShell lainnya. Untuk mereferensikan kunci registri dari lokasi lain, gunakan nama drive (HKLM:, HKCU:) di jalur. Gunakan garis miring terbelakang (\) atau garis miring (/) untuk menunjukkan tingkat drive Registri .

PS C:\> cd HKLM:\Software

Catatan

PowerShell menggunakan alias untuk memungkinkan Anda cara yang familier untuk bekerja dengan jalur penyedia. Perintah seperti dir dan ls sekarang menjadi alias untuk Get-ChildItem, cd adalah alias untuk Set-Location, dan pwd merupakan alias untuk Get-Location.

Contoh terakhir ini memperlihatkan sintaks jalur lain yang dapat Anda gunakan untuk menavigasi penyedia Registri . Sintaks ini menggunakan nama penyedia, diikuti oleh dua titik dua ::. Sintaks ini memungkinkan Anda menggunakan nama HIVE lengkap, alih-alih nama HKLMdrive yang dipetakan .

cd "Registry::HKEY_LOCAL_MACHINE\Software"

Menampilkan konten kunci registri

Registri dibagi menjadi kunci, subkuntang, dan entri. Untuk informasi selengkapnya tentang struktur registri, lihat Struktur Registri.

Dalam drive Registri, setiap kunci adalah kontainer. Kunci dapat berisi sejumlah kunci. Kunci registri yang memiliki kunci induk disebut subkuntang. Anda dapat menggunakan Get-ChildItem untuk melihat kunci registri dan Set-Location menavigasi ke jalur kunci.

Nilai registri adalah atribut kunci registri. Di drive Registri, mereka disebut Properti Item. Kunci registri dapat memiliki kunci anak dan properti item.

Dalam contoh ini, perbedaan antara Get-Item dan Get-ChildItem ditampilkan. Saat Anda menggunakan Get-Item pada kunci registri "Spooler", Anda dapat melihat propertinya.

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

Setiap kunci registri juga dapat memiliki subkuntang. Saat Anda menggunakan Get-Item pada kunci registri, subkunci tidak ditampilkan. Get-ChildItem Cmdlet akan menunjukkan item anak-anak dari kunci "Spooler", termasuk properti setiap subkunci. Properti kunci induk tidak ditampilkan saat menggunakan 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...}

Get-Item Cmdlet juga dapat digunakan pada lokasi saat ini. Contoh berikut menavigasi ke kunci registri "Spooler" dan mendapatkan properti item. Titik . digunakan untuk menunjukkan lokasi saat ini.

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

Untuk informasi selengkapnya tentang cmdlet yang dibahas di bagian ini, lihat artikel berikut ini.

-Get-Item -Get-ChildItem

Menampilkan nilai kunci registri

Nilai kunci registri disimpan sebagai properti dari setiap kunci registri. Properti Get-ItemProperty kunci registri tampilan cmdlet menggunakan nama yang Anda tentukan. Hasilnya adalah PSCustomObject yang berisi properti yang Anda tentukan.

Contoh Berikut menggunakan Get-ItemProperty cmdlet untuk melihat semua properti. Menyimpan objek yang dihasilkan dalam variabel memungkinkan Anda mengakses nilai properti yang diinginkan.

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

Menentukan nilai untuk -Name parameter memilih properti yang Anda tentukan dan mengembalikan PSCustomObject. Contoh berikut menunjukkan perbedaan output saat Anda menggunakan -Name parameter .

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

Dimulai di PowerShell 5.0, Get-ItemPropertyValue cmdlet hanya mengembalikan nilai properti yang Anda tentukan.

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

Untuk informasi selengkapnya tentang cmdlet yang digunakan di bagian ini, lihat artikel berikut ini.

Mengubah nilai kunci registri

Set-ItemProperty Cmdlet akan mengatur atribut untuk kunci registri. Contoh berikut menggunakan Set-ItemProperty untuk mengubah jenis mulai layanan penampung menjadi manual. Contoh mengubah StartType kembali ke Otomatis menggunakan Set-Service cmdlet.

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

Setiap kunci registri memiliki nilai default . Anda dapat mengubah nilai default untuk kunci registri dengan Set-Item atau Set-ItemProperty.

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

Untuk informasi selengkapnya tentang cmdlet yang digunakan di bagian ini, lihat artikel berikut ini.

Membuat kunci dan nilai registri

New-Item Cmdlet akan membuat kunci registri dengan nama yang Anda berikan. Anda juga dapat menggunakan mkdir fungsi , yang memanggil New-Item cmdlet secara internal.

mkdir ContosoCompany
    Hive: HKEY_LOCAL_MACHINE\SOFTWARE

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

Anda dapat menggunakan New-ItemProperty cmdlet untuk membuat nilai dalam kunci registri yang Anda tentukan. Contoh berikut membuat nilai DWORD baru pada kunci registri ContosoCompany.

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

Catatan

Tinjau bagian parameter dinamis dalam artikel ini untuk nilai jenis lain yang diizinkan.

Untuk penggunaan cmdlet terperinci, lihat New-ItemProperty.

Menyalin kunci dan nilai registri

Di penyedia Registri, gunakan Copy-Item kunci dan nilai registri salinan cmdlet. Copy-ItemProperty Gunakan cmdlet untuk menyalin nilai registri saja. Perintah berikut menyalin kunci registri "Contoso", dan propertinya ke lokasi yang ditentukan "HKLM:\Software\Fabrikam".

Copy-Item membuat kunci tujuan jika tidak ada. Jika kunci tujuan ada, Copy-Item buat duplikat kunci sumber sebagai item anak (subkunci) kunci tujuan.

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

Perintah berikut menggunakan Copy-ItemProperty cmdlet untuk menyalin nilai "Server" dari kunci "Contoso" ke kunci "Fabrikam".

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

Untuk informasi selengkapnya tentang cmdlet yang digunakan di bagian ini, lihat artikel berikut ini.

Memindahkan kunci dan nilai registri

Move-Item Cmdlet dan Move-ItemProperty berpura-pura seperti rekan "Salin" mereka. Jika tujuan ada, Move-Item memindahkan kunci sumber di bawah kunci tujuan. Jika kunci tujuan tidak ada, kunci sumber dipindahkan ke jalur tujuan.

Perintah berikut memindahkan kunci "Contoso" ke jalur HKLM:\SOFTWARE\Fabrikam.

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

Perintah ini memindahkan semua properti dari HKLM:\SOFTWARE\ContosoCompany ke HKLM:\SOFTWARE\Fabrikam.

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

Untuk informasi selengkapnya tentang cmdlet yang digunakan di bagian ini, lihat artikel berikut ini.

Mengganti nama kunci dan nilai registri

Anda dapat mengganti nama kunci dan nilai registri seperti file dan folder. Rename-Item mengganti nama kunci registri, sementara Rename-ItemProperty mengganti nama nilai registri.

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

Mengubah deskriptor keamanan

Anda dapat membatasi akses ke kunci registri menggunakan Get-Acl cmdlet dan Set-Acl . Contoh berikut menambahkan pengguna baru dengan kontrol penuh ke HKLM:\SOFTWARE\Contoso kunci registri.

$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

Untuk contoh selengkapnya dan detail penggunaan cmdlet lihat artikel berikut ini.

Menghapus dan menghapus kunci dan nilai registri

Anda dapat menghapus item yang terkandung dengan menggunakan Remove-Item, tetapi Anda akan diminta untuk mengonfirmasi penghapusan jika item berisi hal lain. Contoh berikut mencoba menghapus kunci HKLM:\SOFTWARE\Contoso.

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

Untuk menghapus item yang terkandung tanpa meminta, tentukan -Recurse parameter .

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

Jika Anda ingin menghapus semua item di dalamnya HKLM:\SOFTWARE\Contoso tetapi tidak HKLM:\SOFTWARE\Contoso dengan sendirinya, gunakan garis miring \ terbalik berikutnya diikuti oleh kartubebas.

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

Perintah ini menghapus nilai registri "ContosoTest" dari HKLM:\SOFTWARE\Contoso kunci registri.

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

Clear-Item menghapus semua nilai registri untuk kunci. Contoh berikut menghapus semua nilai dari HKLM:\SOFTWARE\Contoso kunci registri. Untuk menghapus hanya properti tertentu, gunakan 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

Untuk contoh selengkapnya dan detail penggunaan cmdlet lihat artikel berikut ini.

Parameter dinamis

Parameter dinamis adalah parameter cmdlet yang ditambahkan oleh penyedia PowerShell dan hanya tersedia ketika cmdlet digunakan dalam drive yang diaktifkan penyedia.

Ketik <Microsoft.Win32.RegistryValueKind>

Menetapkan atau mengubah jenis data nilai registri. Defaultnya adalah String (REG_SZ).

Parameter ini berfungsi seperti yang dirancang pada cmdlet Set-ItemProperty . Ini juga tersedia pada cmdlet Set-Item di drive registri, tetapi tidak berpengaruh.

Nilai Deskripsi
String Menentukan string yang dihentikan null. Digunakan untuk nilai REG_SZ.
ExpandString Menentukan string null-terminated yang berisi untai (karakter) yang tidak terlampir
referensi ke variabel lingkungan yang diperluas saat
nilai diambil. Digunakan untuk nilai REG_EXPAND_SZ.
Binary Menentukan data biner dalam bentuk apa pun. Digunakan untuk nilai REG_BINARY.
DWord Menentukan angka biner 32-bit. Digunakan untuk nilai REG_DWORD.
MultiString Menentukan array string null-terminated yang dihentikan oleh
dua karakter null. Digunakan untuk nilai REG_MULTI_SZ.
QWord Menentukan angka biner 64-bit. Digunakan untuk nilai REG_QWORD.
Unknown Menunjukkan jenis data registri yang tidak didukung, seperti
REG_RESOURCE_LIST nilai.

Cmdlet yang didukung

Menggunakan alur

Cmdlet penyedia menerima input alur. Anda dapat menggunakan alur untuk menyederhanakan tugas dengan mengirim data penyedia dari satu cmdlet ke cmdlet penyedia lain. Untuk membaca selengkapnya tentang cara menggunakan alur dengan cmdlet penyedia, lihat referensi cmdlet yang disediakan di seluruh artikel ini.

Mendapatkan bantuan

Dimulai di Windows PowerShell 3.0, Anda bisa mendapatkan topik bantuan yang disesuaikan untuk cmdlet penyedia yang menjelaskan bagaimana cmdlet tersebut bereaksi dalam drive sistem file.

Untuk mendapatkan topik bantuan yang disesuaikan untuk drive sistem file, jalankan Get-Help perintah di drive sistem file atau gunakan parameter Jalur untuk menentukan drive sistem file.

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

Lihat juga