我正在尝试从所有Windows机器上卸载软件7-Zip,但是如果我使用标准进程使用它的uninstallstring来完成这项工作,但大多数人已将其安装在不同的驱动器上并复制了多个位置的文件夹允许使用标准流程将其删除,并且与此相关的漏洞有很多。
因此在寻找一些prowershell脚本,该脚本可以在所有固定驱动器中搜索7-Zip文件夹并运行命令,例如%discovered path%\ 7-Zip \ Uninstall.exe
如果能对此提供帮助,将非常感谢。
答案 0 :(得分:0)
我认为这是通往幸福的颠倒之路。
相反,找到它的安装位置,然后运行卸载字符串:
Get-ChildItem -Path "HKLM:SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
-Recurse | Where {$_.GetValue("DisplayName") -like "*7*zip*" }
| ForEach-Object {
$_.GetValue("DisplayName"); $_.GetValue("UninstallString") ;
; Start-Process $uninstall;
}
仍然是争取新安装的军备竞赛,但至少对于每台机器来说都是动态的。
答案 1 :(得分:0)
使用CimMethod
找到产品后,您只需调用卸载的Get-CimInstance
。
运行以下命令,查找并删除任何版本的7-zip。不是最快的,但运行起来会忘记。
Get-CimInstance -Class Win32_Product | Where-Object Name -Like '7-zip*' | `
Invoke-CimMethod -MethodName Uninstall