我目前正在自动执行自定义Windows应用程序的安装过程,并试图删除几个com +应用程序,包括其下的所有内容。
显然,这可以通过右键单击并删除来手动完成,但是我需要一些方法来简化此过程,并且可以将powershell添加到自动化过程中。
我已经尝试了以下代码,但似乎只删除了应用程序中的组件。尽管这样做有帮助,然后我需要在另一步骤中删除该应用程序。
$comCatalog = New-Object -ComObject COMAdmin.COMAdminCatalog
$appColl = $comCatalog.GetCollection("Applications")
$appColl.Populate()
$app = $appColl | where {$_.Name -eq "ApplicationName"}
$compColl = $appColl.GetCollection("Components", $app.Key)
$compColl.Populate()
$index = 0
foreach($component in $compColl) {
if ($component.Name -eq "SOMECOMPONENT.NAME") {
$compColl.Remove($index)
$compColl.SaveChanges()
}
$index++
}
我希望能够删除该应用程序,并且还删除下面的所有内容。
$comCatalog = New-Object -ComObject COMAdmin.COMAdminCatalog
$appColl = $comCatalog.GetCollection("Applications")
$appColl.Populate()
for ($i=0; $i -lt $appColl.Count; $i++)
{
if ($appColl.Item($i).Name -eq "YourComponentName"){ $appColl.Remove($i)
$ appColl.SaveChanges()}}