我需要幫助來創建一個 PowerShell 腳本,該腳本將僅檢查注冊表項(而不是值),并在計算機中缺少注冊表項的情況下添加注冊表項。
我已經能夠使用腳本添加標簽
reg add "HKLM\SOFTWARE\WOW6432Node\Tanium\Tanium Client\Sensor Data\Tags" /v Test
但是當嘗試使用
Test-Path 'HKLM:\SOFTWARE\WOW6432Node\Tanium\Tanium Client\Sensor Data\Tags\Test'
它顯示 False。不需要為鍵“Test”分配值。只需要一個腳本,該腳本將在是否創建了“測驗”標簽時回傳該值。如果沒有,將能夠執行腳本。
以下腳本未捕獲關鍵“測驗”的存在
$x =Get-ChildItem -Path 'HKLM:\SOFTWARE\WOW6432Node\Tanium\Tanium Client\Sensor Data\Tags'
if($x -eq "Test") {
write-host("Key is There")
}
Else {
reg add "HKLM\SOFTWARE\WOW6432Node\Tanium\Tanium Client\Sensor Data\Tags" /v Test
}
需要幫助以獲得正確的檢查標準。
uj5u.com熱心網友回復:
Test-Path 只能檢查密鑰,而不是它的屬性。
對于注冊表項,key表示您可以使用注冊表編輯器看到的檔案夾。屬性是您可以在右側看到的屬性:

要獲取該屬性,您可以使用Get-ItemPropertycmdlet:
$regEntryPath = 'HKLM:\SOFTWARE\WOW6432Node\Tanium\Tanium Client\Sensor Data\Tags'
# Grab the property
$property = (Get-ItemProperty -Path $regEntryPath).Test
# Test if property exists
$null -ne $property
# Should return true
讓我們也測驗一下以上對于不存在的屬性是否正常作業:
# Now check for non-existing property
$property2 = (Get-ItemProperty -Path $regEntryPath).NonExisting
$null -ne $property2
# Should return false
uj5u.com熱心網友回復:
如果要測驗注冊表項是否存在,請使用Test-Path代替Get-ChildItem。
此外,New-Item如果密鑰尚不存在,最好使用它來創建密鑰,而不是使用 reg.exe。許多組策略拒絕使用注冊表編輯工具,如 reg.exe。
嘗試
$regPath = 'HKLM:\SOFTWARE\WOW6432Node\Tanium\Tanium Client\Sensor Data\Tags\Test'
if ((Test-Path -Path $regPath)) {
Write-Host "Key exists"
}
else {
New-Item -Path $regPath
}
當然,在 HKEY_LOCAL_MACHINE 配置單元中執行此操作,您需要具有管理員權限。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/394613.html
上一篇:使用Powershell將視頻上傳到Google相冊時出現錯誤3(適用于圖片)
下一篇:在兩個不同的地方驗證檔案大小
