[英]Uninstall ClickOne application with different versions using PowerShell
[英]Uninstall application using Powershell
我的虛擬機上安裝了第 3 方代理,我需要使用 Powershell 將其刪除。
它顯示在控制面板中,添加/刪除程序但不顯示使用get-wmiobject
或get-itemproperty
hklm 卸載注冊表項路徑:
get-itemproperty HKLM:\\software\microsoft\windows\currentversion\uninstall* | select-object displayname, displayversion, publisher
其他人知道我可以使用腳本刪除它的方法嗎?
將來包括您嘗試過的任何代碼,即使它不起作用! 僅僅列出您嘗試過的命令的名稱並不是很有用,因為我們看不到您在做什么,因此必須猜測。 因此,您收到了不相關的評論和答案。
現在您終於顯示了您的代碼(我已經編輯了您的答案以將其包含在評論中,因為它隱藏在評論中),我可以看到您只檢查了兩個Uninstall
關鍵位置之一。
在 64 位操作系統(當今大多數計算機)上,有兩個位置:
HKLM:\\SOFTWARE\\Microsoft [..]
HKLM:\\SOFTWARE\\Wow6432Node\\Microsoft [..]
這是有關如何在它們中搜索 firefox 的示例:
$RegPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall"
$app = Get-ChildItem -Path $RegPath | Get-ItemProperty | Where-Object {$_.DisplayName -match "firefox" }
然后您可以執行$app.QuietUninstallString
或$app.UninstallString
- 您可能無法同時使用這兩者,這取決於應用程序。
只是為了添加到 Henrycarteruk 的帖子,您可以將命令 pipe 發送到 cmd 以執行卸載字符串。
$app.QuietUninstallString | cmd
嘗試:
$installedMsiObject = Get-WmiObject -Class Win32_Product | Where-Object { $_.PackageName -like "*YourPkgName* }
if ($installedMsiObject) {
try {
$installedMsiObject.UnInstall() | Out-Null
}
catch {
Write-Error "Error occurred: $_"
}
}
如果是 msi 安裝程序(powershell 5.1),這應該可以工作。 Powershell 7 不支持 msi 或程序提供程序。
get-package *softwarename* | uninstall-package
或者使用程序提供程序,您可能會看到卸載字符串,但必須為靜默卸載添加更多內容,例如“/S”。
get-package *softwarename* | % { $_.metadata['uninstallstring'] }
這是一個舊帖子,但在這里回復以防它幫助其他人。 幾天來我一直在思考這個問題......
除了上面引用的 [2] HKLM 注冊表路徑(一個用於 32 位注冊表,另一個用於 64 位注冊表),您還需要查看HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall以便查詢“每用戶”安裝。 Chrome、MS Teams、Zoom、ReadyTalk Desktop 等應用程序默認安裝為“每用戶”。 您不會在 HKLM 下找到安裝程序/卸載程序信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.