移除Com&x2B;使用powershell的应用程序

移除Com&x2B;使用powershell的应用程序,powershell,com+,Powershell,Com+,我目前正在为一个自定义windows应用程序自动化安装过程,并试图删除几个com+应用程序,包括下面的所有内容 显然,这可以通过右键单击和删除手动完成,但我需要一些东西来简化此过程,并且我可以将powershell添加到我的自动化过程中 我尝试了下面的代码,但它似乎只删除了应用程序中的组件。虽然这有帮助,但我需要在另一个步骤中删除该应用程序 $comCatalog = New-Object -ComObject COMAdmin.COMAdminCatalog $appColl = $comCa

我目前正在为一个自定义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++
}

我希望能够删除应用程序,并删除以下所有内容。

对我有用:+1:
$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() }}