Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Penyedia Registri Sistem kelas StdRegProv untuk WMI memiliki metode yang melakukan hal berikut:
Membuat atau menghapus kunci registri.
Buat atau hapus nilai bernama, yang disebut entri saat berada di bawah kunci tertentu.
Gunakan nama nilai baru dan SetBinaryValue, SetDWORDValue, SetExpandedStringValue, SetMultiStringValue, atau SetStringValue untuk membuat nilai bernama. Gunakan DeleteValue untuk menghapus nilai bernama.
Ubah nilai bernama.
Gunakan nama nilai dan metode Set (seperti yang diidentifikasi dalam poin sebelumnya) untuk mengubah nilai bernama yang ada di bawah sebuah kunci. Anda harus mengetahui nama nilai untuk mengubahnya. Jika Anda tidak mengetahui nama nilai di bawah kunci, gunakan metode EnumValues untuk mendapatkan nama.
Bagian berikut dibahas dalam topik ini:
- Membuat Kunci Registri Menggunakan VBScript
- Membuat Nilai Registri yang Diberi Nama Menggunakan PowerShell dan VBScript
Membuat Kunci Registri Menggunakan VBScript
Karena registri adalah database konfigurasi pusat untuk sistem operasi, aplikasi, dan layanan, berhati-hatilah saat Anda menulis perubahan pada nilai registri atau menghapus kunci.
Nota
Anda tidak dapat memantau subkunci HKEY_CLASSES_ROOT dari HKEY_CURRENT_USER (HKCU). Pemantauan HKEY_USERS tidak disarankan karena subkunci muncul dan menghilang saat hive dimuat.
Contoh kode berikut menunjukkan cara membuat kunci registri baru dan subkunci.
HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set ObjRegistry = GetObject("winmgmts:{impersonationLevel = impersonate}!\\" & strComputer & "\root\default:StdRegProv")
strPath = "SOFTWARE\MyKey\MySubKey"
Return = objRegistry.CreateKey(HKEY_LOCAL_MACHINE, strPath)
If Return <> 0 Then
WScript.Echo "The operation failed." & Err.Number
WScript.Quit
Else
wScript.Echo "New registry key created" & VBCRLF & "HKLM\SOFTWARE\MYKey\"
End If
$HKEY_LOCAL_MACHINE = 2147483650
$strComputer = "."
$strPath = "SOFTWARE\MyKey\MySubKey"
$reg = [wmiclass]"\\$strComputer\root\default:StdRegprov"
[void]$reg.CreateKey($HKEY_LOCAL_MACHINE, $strPath)
Membuat Nilai Registri Bernama Menggunakan PowerShell dan VBScript
Contoh kode berikut menunjukkan cara membuat nilai bernama yang disebut MultiStringValue di bawah HKEY_LOCAL_MACHINE\SOFTWARE\MyKey\kunci MySubKey yang dibuat skrip sebelumnya. Skrip memanggil StdRegProv.SetMultiStringValue untuk menulis nilai string ke nilai bernama baru.
const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set objRegistry = _
GetObject("winmgmts:{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\default:StdRegProv")
strKeyPath = "SOFTWARE\MyKey\MySubKey"
strValueName = "MultiStringValue"
arrStringValues = Array("one", "two","three", "four")
objRegistry.SetMultiStringValue HKEY_LOCAL_MACHINE, strKeyPath,_
strValueName, arrStringValues
' Read the values that were just written
objRegistry.GetMultiStringValue HKEY_LOCAL_MACHINE, strKeyPath,_
strValueName, arrStringValues
For Each strValue in arrStringValues
WScript.Echo strValue
Next
$HKEY_LOCAL_MACHINE = 2147483650
$strComputer = "."
$strPath = "SOFTWARE\MyKey\MySubKey"
$strValueName = "MultiStringValue"
$arrStringValues = @("one", "two","three", "four")
$reg = [wmiclass]"\\$strComputer\root\default:StdRegprov"
[void]$reg.SetMultiStringValue($HKEY_LOCAL_MACHINE, $strKeyPath, $strValueName, $arrStringValues)
$multiValues = $reg.GetMultiStringValue($HKEY_LOCAL_MACHINE, $strKeyPath, $strValueName)
$multiValues.sValue
Dengan menggunakan WMI, Anda tidak dapat mengatur keamanan akses pada kunci registri. Namun, metodeStdRegProv.CheckAccess membandingkan pengaturan keamanan pengguna saat ini dengan deskriptor keamanan pada kunci registri untuk menentukan apakah pengguna memiliki izin tertentu, seperti KEY_SET_VALUE.