Powershell重置所有com +

时间:2014-02-25 12:46:46

标签: powershell

我想在我循环的所有服务器上重置所有com +。这就是我到目前为止所拥有的

$servers = Get-Content "d:\scripts\servers.txt"
foreach ($servername in $servers)
{

$comAdmin = New-Object -comobject COMAdmin.COMAdminCatalog
$comAdmin.Connect($servername)
$comAdmin.ShutdownApplication(com+ app name goes here)

}

我想关闭所有complus组件而不必指定名称

1 个答案:

答案 0 :(得分:1)

使用COMAdmin:

$sb = {
    $admin = New-Object -Com ("COMAdmin.COMAdminCatalog")
    $apps = $admin.GetCollection("Applications")
    $apps.Populate()
    $apps | % {
        $component = $apps.GetCollection("Components", $_.Key)
        $component.Populate()
        $component | % {
            $admin.ShutdownApplication("$_.Name")
        } 
    }
}

$servers | % {Invoke-Command -ComputerName $_ -ScriptBlock $sb}

更多信息here。我只是编译了所有这些的逻辑。