我想使用 Test-Path 測驗注冊表項是否存在:
if((Test-Path -Path 'HKLM:\SOFTWARE\IDTSettings') -eq $true) {
echo "Registry Key Exists, Ignoring this machine."
exit
}
else {
...
我在注冊表中手動創建了這個鍵,它看起來像這樣:

但是,運行此腳本永遠不會退出,而是會進入 else 陳述句。
為了測驗這一點,我Test-Path -Path 'HKLM:\SOFTWARE\IDTSettings'在 Windows 終端中嘗試過,它以適當的 True 回應。
我很困惑為什么這些不同,如果有人能夠幫助解決這個問題,我會很高興。
非常感謝
編輯:
奇怪的是,如果我從 Windows 終端運行 powershell 腳本,它會很好地檢測到注冊表項,但是如果我嘗試從 PowerShell ISE 運行它,它就不起作用。這確實解決了我的問題,因為當我呼叫它時腳本可以正常作業,所以我將關閉這個問題。謝謝大家的幫助:)
uj5u.com熱心網友回復:
您可以使用Test-Path cmdlet 查看密鑰是否存在。Test-Path 可以檢測注冊表項(容器),但無法檢測注冊表項(有時稱為“值”)或項中的資料。如果您嘗試,它總是回傳 FALSE。
您使用Get-ItemProperty cmdlet 查看鍵值
$path = "HKLM:\SOFTWARE\Intel\Display\igfxcui\3D"
$value = "Global"
#You can use the Test-Path cmdlet to check for the key, but not for specific values within a key
Test-Path $path
#You can use the Get-ItemProperty to see the value
Get-ItemProperty -Path $Path | Select-Object -ExpandProperty $Value

uj5u.com熱心網友回復:
奇怪的是,如果我從 Windows 終端運行 powershell 腳本,它會很好地檢測到注冊表項,但是如果我嘗試從 PowerShell ISE 運行它,它就不起作用。這確實解決了我的問題,因為當我呼叫它時腳本可以正常作業,所以我將關閉這個問題。謝謝大家的幫助:)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/374213.html
