我有几个问题没有得到回答,因为我正在进行一个Powershell项目。
我的目标是创建一个能够卸载ClickOnce部署的C#应用程序的Powershell脚本,此外还可能运行各种安装程序(但这部分我稍后会关注)。
我已经想出了如何为我的应用程序获取UninstallString,我只想知道我的选择是什么。我尝试过使用调用表达式和一些其他方法运行它,但是没有产生任何结果。由于我是新手,Powershell的机会是好的,我可能做错了什么,但我希望我只是没有找到正确的方法来做这件事。下面是我当前用于获取UninstallString的相关代码片段:
$App = gci "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\" |
foreach { gp $_.PSPath } |
select DisplayName,DisplayVersion,InstallDate,Publisher,UninstallString |
where { $_.DisplayName -match "scan" }如果有人有关于如何进行的建议,这将是非常感谢!
发布于 2014-03-27 18:35:54
哦,好吧,上帝,这让我想起了我几年前拼凑在一起的一个VBS脚本,它会弹出一个HTML界面,让您输入一个计算机名,如果它在网络上,它会扫描远程注册表,查找卸载键中的内容,删除KB,并给您一个下拉列表,以便卸载。数百行,如果不是数千行的脚本,我将不再使用。不管怎么说,已经够让人想起的了。
您应该能够使用Call运算符"&“来运行UninstallString属性中的字符串,如下所示:
& $App.UninstallString现在,既然你说了,你会想要考虑一些事情。如果它是用MSIEXEC.EXE执行的,那么很有可能将其设置为MSIEXEC.EXE /I {<some GUID>},并且您可能希望用/X替换/I,并将/NB-!追加到字符串的末尾(如果我记得我的开关正确地显示了一个最小的进度条,并禁止任何可能弹出的“卸载完成”窗口)。
发布于 2014-03-27 18:43:13
我浏览了一下--太累了,看不完所有的东西:-),我只想给一篇带有PowerShell卸载字符串的文章添加一个链接,希望它能让你朝着正确的方向前进:Uninstalling an MSI file from the command line without using msiexec。
发布于 2020-09-03 20:44:38
这里有一个例子,我只是想找出答案。& or调用运算符需要一个cmd字符串,然后需要一个参数字符串数组。Powershell 5.1只适用于程序或msi提供程序。
$uninstall = -split (get-package 'Support Button *bomgar*' |
% { $_.metadata['uninstallstring'] })
& $uninstall[0] $uninstall[1..($uninstall.length-2)] # take off last arg --prompt或者如果你想等的话,这也是一样的想法:
start -wait $uninstall[0] $uninstall[1..($uninstall.length-2)]https://stackoverflow.com/questions/22695815
复制相似问题