【发布时间】:2013-05-07 09:49:32
【问题描述】:
如何通过 powershell 脚本将 COM PLUS 组件的事务隔离级别设置为任何。 我正在尝试使用以下代码
$comAdmin = New-Object -comobject COMAdmin.COMAdminCatalog
$apps = $comAdmin.GetCollection(“Applications”)
$apps.Populate();
foreach($app in $apps)
{
Write-Host $app.Name
if($app.Name -eq $ApplicationName)
{
$components = $apps.GetCollection("Components",$app.key)
$components.Populate()
foreach ($component in $components)
{
$componentName = $component.Name;
Write-Host "*"$componentName;
if($componentName -eq "WDA_DUP.Generic13")
{
$component.Value("TXIsolationLevel")=COMAdminTxIsolationLevelAny;
}
}
}
}
但没有解决目的。请帮助我:) `
【问题讨论】:
-
您是否尝试将 COMAdminTxIsolationLevelAny 替换为 0? (其底层枚举值:msdn.microsoft.com/library/windows/desktop/ms681736.aspx)
-
是的,我试过了,但最终出现以下错误:异常设置“值”:“参数不正确。(来自 HRESULT 的异常:0x80070057 (E_INVALIDARG))”
-
一开始你的脚本好像错了,你需要输入
$component.Value("TXIsolationLevel")=0(不带;) -
嗨西蒙,非常感谢您的回复,我删除了分号,现在错误消失了。但是当我看到新的事务隔离级别时,组件服务控制台中没有反映组件。我如何检查它是否真的设置为 0。
-
您需要以某种方式调用 SaveChanges:stackoverflow.com/questions/6508874/powershell-com-settings
标签: powershell com powershell-2.0