Tentando definir propriedades do componente de aplicativo COM + no PowerShell

2

Eu tenho este script onde estou tentando definir a propriedade IISIntrinsic para componentes de um aplicativo no Com + em serviços de componentes.

Isso é o que eu estou tentando marcar

Aquiestámeuscriptdepowershell:

$comAdmin=New-Object-comobjectCOMAdmin.COMAdminCatalog#--Shutdowntherunningapp$comAdmin.ShutdownApplication("MyAppName")

# -- Loop through components 
$applications = $comAdmin.GetCollection("Applications") 
$applications.Populate() 

foreach ($application in $applications)
{
    if ($application.Name -eq "MyAppName")
    {
        $components = $applications.GetCollection("Components",$application.key)
        $components.Populate()

        foreach ($component in $components)
        {

        # -- Set property
        $component.Value("IISIntrinsics") = $true

        }
        #-- EDIT - ADDING THIS LINE SOLVED THE ISSUE
        $components.SaveChanges()
    }
}

# -- Save and exit 
$applications.SaveChanges()

# -- start the application again
$comAdmin.StartApplication("MyAppName")

A configuração do IISIntrinsics como true não parece ter impacto.

Meu sentimento é que

  • Ou $ applications.SaveChanges () é a coisa errada para chamar OU
  • A maneira como estou definindo a propriedade está incorreta (também tentei defini-la como 1 sem sucesso)

Qualquer ajuda seria muito apreciada!

    
por Nils 15.02.2013 / 11:14

2 respostas

2

Eu encontrei o problema

A linha abaixo do comentário marcado com # - EDIT no código acima contém o seguinte:

 $components.SaveChanges()

Isso foi necessário para salvar as alterações feitas nos componentes.

Também vale a pena notar que, em serviços de componentes, você precisa atualizar a visualização de componentes para ver suas alterações.

    
por 15.02.2013 / 14:23
0
O

link mostra uma implementação de vbscript que merece atenção. Ele faz um par de coisas estranhas, como looping em sentido inverso - se isso é necessário ou não é desconhecido para mim. Enfim, parece que o valor 1 deve funcionar.

    
por 15.02.2013 / 14:23