Попытка установить свойства компонента приложения COM+ в PowerShell
У меня есть этот сценарий, где я пытаюсь установить свойство IISIntrinsic для компонентов приложения в Com+ в службах компонентов.
Это то, что я пытаюсь пометить
Вот мой сценарий 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() - неправильная вещь для вызоваИЛИ
- Неверный способ установки свойства (я также попытался установить значение 1 без успеха)
Любая помощь будет принята с благодарностью!
2 ответа
Я нашел проблему
Строка под комментарием, помеченная # - EDIT в приведенном выше коде, содержит следующее:
$components.SaveChanges()
Это было необходимо для сохранения изменений, внесенных в компоненты.
Также стоит отметить, что в компонентных службах вам необходимо обновить представление компонентов, чтобы увидеть ваши изменения.
http://support.microsoft.com/default.aspx?scid=kb;EN-US;287422 показывает реализацию vbscript, на которую стоит обратить внимание. Это делает пару странных вещей, таких как зацикливание в обратном порядке - нужно мне это или нет, мне неизвестно. В любом случае - похоже, установка значения в 1 должна работать.