我需要獲得“UninstallString”的價值
計算機\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall {1535CAA3-9F33-414E-8987-0365169BE741}
呼叫:
Get-Item -path HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{1535CAA3-9F33-414E-8987-0365169BE741}
導致 Get-Item :找不到接受引數“1535CAA3-9F33-414E-8987-0365169BE741”的位置引數。
uj5u.com熱心網友回復:
像這樣帶引號的東西,因為花括號看起來像 powershell 的腳本塊:
get-itemproperty 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{013DB423-A8DE-4423-9E50-D45ED1041789}' uninstallstring |
% uninstallstring
MsiExec.exe /I{013DB423-A8DE-4423-9E50-D45ED1041789}
盡管對于 msi,您可以在 powershell 5.1 中使用它進行卸載:
get-package *chrome* | uninstall-package
對于其他非 msi 安裝,卸載字串在這里。通常您必須添加一個額外的選項,如“/S”來進行靜默卸載。
get-package *firefox* | % { $_.metadata['uninstallstring'] }
"C:\Program Files\Mozilla Firefox\uninstall\helper.exe"
uj5u.com熱心網友回復:
為了補充js2010 的有用答案,其中指出缺少參考是您的主要問題({并且}是 PowerShell元字符):
在 PowerShell v5 及更高版本中,您可以使用Get-ItemPropertyValuecmdlet 直接回傳與注冊表項的值關聯的資料:
# Note the use of '...' around the registry path
# and the value name UninstallString at the end.
Get-ItemPropertyValue 'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{1535CAA3-9F33-414E-8987-0365169BE741}' UninstallString
至于你嘗試了什么:
一個不帶引號的引數,如HKLM:\...\{1535CAA3-9F33-414E-8987-0365169BE741}處理如下:
因為
{...}創建了一個腳本塊,所以它被認為是一個單獨引數的開始,字串'HKLM:\...\'和腳本塊作為 兩個引數{1535CAA3-9F33-414E-8987-0365169BE741}傳遞。因為
Get-Item沒想到??會有額外的(位置)引數,所以它相應地抱怨,并在其錯誤訊息中使用腳本塊的字串表示。- 腳本塊的字串表示是它的逐字內容,不包括
{and},您可以使用它來驗證{1535CAA3-9F33-414E-8987-0365169BE741}.ToString()
- 腳本塊的字串表示是它的逐字內容,不包括
如前所述,參考是解決方案,并且由于路徑既不包含 PowerShell 變數參考也不包含子運算式,因此最好使用單引號,即逐字字串文字( '...')。
(通常不太理想)的替代方法是堅持使用未參考的引數并使用PowerShell 元字符的單獨轉義(所謂的反引號);例如:`
Write-Output HKLM:\...\`{1535CAA3-9F33-414E-8987-0365169BE741`}
uj5u.com熱心網友回復:
正如我評論的那樣,您需要將路徑包裹起來,""但這仍然不起作用。要在 powershell 中獲取注冊表值,請使用Registry::HKEY_LOCAL_MACHINE\...路徑。一旦你得到RegistryKey物件,你就可以用它GetValue(string name)來獲取UninstallString. 所以你的命令看起來像這樣:
(Get-Item -path "Registry::HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{1535CAA3-9F33-414E-8987-0365169BE741}").GetValue("UninstallString")
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/531485.html
標籤:电源外壳
