首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PowerShell验证COM+包状态

使用PowerShell验证COM+包状态
EN

Stack Overflow用户
提问于 2014-05-10 00:18:45
回答 2查看 2.1K关注 0票数 1

我已经使用PowerShell编写了在远程服务器上启动和停止COM+应用程序的脚本:

代码语言:javascript
复制
function Set-ComPlusStatus {
    $comPlusApps=Get-Content $comPlusAppList
    $comObj=New-Object -comobject COMAdmin.COMAdminCatalog
    $comObj.Connect($server)
    ForEach($comPlusApp in $comPlusApps) {
        if($setStatus="stop") {
            $comObj.ShutdownApplication($comPlusApp)
        }
        elseif($setStatus="start") {
            $comObj.StartApplication($comPlusApp)
        }
    }
}

此函数起作用,即按预期停止/启动参考txt文档($comPlusAppList)中列出的COM+包。

但是,我希望添加某种形式的验证/验证,以确认函数已成功;理想情况下,我希望检查特定包的状态,并根据状态将成功/失败消息写回主机。

如何访问COM+包状态(已停止/正在运行)来完成此操作?

EN

回答 2

Stack Overflow用户

发布于 2016-01-29 21:32:47

下面的脚本可以工作:

代码语言:javascript
复制
Invoke-Command -ComputerName $compname -ScriptBlock{ $Catalog = New-   Object -com COMAdmin.COMAdminCatalog 
$oapplications = $catalog.getcollection("Applications") 
$oapplications.populate()
foreach ($oapplication in $oapplications){ 
$skeyappli = $oapplication.key 
$oappliInstances = $oapplications.getcollection("ApplicationInstances",$skeyappli) 
$oappliInstances.populate() 
# To verify if application is started 
If ($oappliInstances.count -eq 0) { 
    Write-Host "Application"$oapplication.value("Name")"is stopped" -ForegroundColor Red 
    } Else{ 
        Write-Host "Application"$oapplication.value("Name")"is Running" -ForegroundColor Green 
  }
 }
}
票数 2
EN

Stack Overflow用户

发布于 2014-05-10 02:03:04

我只能提供一个提示的答案。我一直在试图弄清楚这一点,但还没有。尽管我还没有弄清楚如何枚举应用程序的PropertyInfo集合,但这个链接http://msdn.microsoft.com/en-us/library/windows/desktop/ms684369(v=vs.85).aspx应该能提供您需要的东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23569471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档