當我嘗試從 powershell 腳本設定注冊表項時,它會覆寫另一個項:
例如 :
$registryKey = "HKEY_LOCAL_MACHINE\SOFTWARE\Qualys\QualysAgent\ScanOnDemand\Vulnerability"
$valuedata = '1'
$valuename = "Scanondemand"
Set-ItemProperty -Path $registryKey -Name $ValueName -Value $ValueData
這將正確設定注冊表項。然后我改變了valuename:
$valuename = 'ScanOnstartup'
Set-ItemProperty -Path $registryKey -Name $ValueName -Value $ValueData
現在Scanonstartup是正確的,但Scanondemand鑰匙不見了。它有點重命名名稱而不是創建新密鑰。
uj5u.com熱心網友回復:
您可能希望將第二個添加替換為:
新專案屬性
uj5u.com熱心網友回復:
問題是您沒有在注冊表路徑中指定 PowerShell驅動器。
您可以使用長格式:
Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Qualys\QualysAgent\ScanOnDemand\Vulnerability
或者利用這樣一個事實,即HKEY_LOCAL_MACHINEPowerShell 已經有一個按名稱設定的驅動器HKLM:
HKLM:\SOFTWARE\Qualys\QualysAgent\ScanOnDemand\Vulnerability
您的代碼將是
$registryKey = 'Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Qualys\QualysAgent\ScanOnDemand\Vulnerability'
# or: $registryKey = 'HKLM:\SOFTWARE\Qualys\QualysAgent\ScanOnDemand\Vulnerability'
$valuedata = '1'
$valuename = 'ScanOnDemand', 'ScanOnStartup'
$null = New-Item $registryKey -Force
Set-ItemProperty -Path $registryKey -Name $ValueName[0] -Value $ValueData
Set-ItemProperty -Path $registryKey -Name $ValueName[1] -Value $ValueData
通過使用切換-Force到New-Itemcmdlet,您不必檢查該鍵是否已經存在,因為它會將現有的鍵作為物件回傳,或者回傳新創建的鍵。因為我們沒有進一步使用該物件,所以我們忽略它$null = New-Item ..
運行此(以管理員身份)后,您已在注冊表中創建了此密鑰結構:

在子項中,Vulnerability您現在有以下兩個條目:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/338526.html
