我想在我循环的所有服务器上重置所有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组件而不必指定名称
答案 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。我只是编译了所有这些的逻辑。