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.
- Get-Location
- Set-Location
- Dapatkan Item
- Get-ChildItem
- Invoke-Item
- Pindahkan Item
- Item Baru
- Hapus Item
- Clear-ItemProperty
- Get-ItemProperty
- ItemProperty Baru
- Remove-ItemProperty
- Set-ItemProperty
- Get-Acl
- Set-Acl
Jenis yang diekspos oleh penyedia ini
Kunci registri diwakili sebagai instans kelas Microsoft.Win32.RegistryKey . Entri registri diwakili sebagai instans kelas PSCustomObject .
Menavigasi drive Registri
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 HKLM
drive 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.
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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk