COMAdmin - 安装代理后强制刷新应用程序

时间:2012-10-18 09:40:55

标签: powershell com+

我是通过Powershell以编程方式安装COM +代理组件,在msi上使用msiexec,然后使用COMAdmin.COMAdminCatalog对象在代理上设置远程服务器。

问题是新安装的代理需要一段时间才能在COMAdminCatalog的“Applications”集合中使用。有没有办法在获取应用程序列表之前强制刷新目录?

基本上,我所做的就是:

  1. msiexec /q /i $appName.msi

  2. 使用COMAdmin.COMAdminCatalog枚举应用。

  3. 
    function Set-Remote-Server-For-Complus-Application($appName, $remoteServer) {
        $comAdmin = New-Object -comobject COMAdmin.COMAdminCatalog
        $apps = $comAdmin.GetCollection("Applications")
        $apps.Populate();

    $app = $apps | Where-Object {$_.Name -eq $appName}
    
    if ($app -eq $null) {
        Write-Warning "Unable to find COM+ app ""$appName""."
        Return
    }
    
    $app.Value("ApplicationProxyServerName") = $remoteServer
    $result = $apps.SaveChanges()
    $apps = $null
    
    if ($result -eq 1) {
        Write-Output "Successfully set complus remote server ""$remoteServer"" on ""$appName"""
    }
    

    }

    问题是找不到应用程序。如果我在调用之间添加$app = $apps | Where-Object {$_.Name -eq $appName} if ($app -eq $null) { Write-Warning "Unable to find COM+ app ""$appName""." Return } $app.Value("ApplicationProxyServerName") = $remoteServer $result = $apps.SaveChanges() $apps = $null if ($result -eq 1) { Write-Output "Successfully set complus remote server ""$remoteServer"" on ""$appName""" } ,则可以正常工作。但是,睡觉并不好,因为有时它可能需要2秒以上,有时它可能只需要200毫秒,所以等待时间不必要很长。

    有没有办法确保COMNmin.COMAdminCatalog在我尝试使用应用程序之前实际更新,而不是求助于睡眠而只是希望最好?

0 个答案:

没有答案