尝试在PowerShell中设置COM +应用程序组件属性

我有这个脚本,我试图在组件服务中设置Com +应用程序的组件的IISIntrinsic属性。

这是我想要打勾的

在这里输入图像说明

这是我的powershell脚本:

$comAdmin = New-Object -comobject COMAdmin.COMAdminCatalog # -- Shut down the running app $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") 

将IISIntrinsics设置为true似乎没有任何影响。

我的感觉是

  • $ applications.SaveChanges()是调用OR的错误
  • 我设置属性的方式是不正确的(我也尝试将其设置为1,但没有成功)

任何帮助将不胜感激!

我发现这个问题

上面代码中标记为# – EDIT的注释下面的行包含以下内容:

  $components.SaveChanges() 

这是保存对组件所做更改所必需的。

另外值得注意的是,在组件服务中,您需要刷新组件视图才能看到您的更改。

http://support.microsoft.com/default.aspx?scid=kb;EN-US;287422显示了一个值得关注的VBScript实现。 它做了一些奇怪的事情,如循环反向 – 这是否有必要或不是我不知道的。 无论如何 – 它看起来像设置值为1应该工作。