我正在尝试使用Powershell自动化应用程序部署。 一步需要我进入组件服务到我的计算机属性并将事务超时设置为0。
Powershell COM+ settings的答案对我来说似乎是最有希望的答案,但我无法映射“事务超时”设置。
查看COM +管理集合页面:http://msdn.microsoft.com/en-us/library/windows/desktop/ms687763(v=vs.85).aspx我看到有一个LocalComputer集合,但是我无法从LocalComputer集合对象中检索属性集合,我想这里的事务超时属性是
这是我的小探索性代码:
$comAdmin = New-Object -com ("COMAdmin.COMAdminCatalog.1")
$applications = $comAdmin.GetCollection("LocalComputer")
$applications.Populate()
$properties = $applications.GetCollection("PropertyInfo",$application.key)
foreach ($property in $properties){
Write-Host $property.name
}
任何人都可以帮我设置交易Timout吗?
更新:此脚本至少获取TransactionTimeout值:
$comAdmin = New-Object -com ("COMAdmin.COMAdminCatalog.1")
$LocalColl = $comAdmin.Connect("localhost")
$LocalComputer = $LocalColl.GetCollection("LocalComputer",$LocalColl.Name)
$LocalComputer.Populate()
$LocalComputerItem = $LocalComputer.Item(0)
$LocalComputerItem.Value("TransactionTimeout")
答案 0 :(得分:3)
这是工作代码:
$comAdmin = New-Object -com ("COMAdmin.COMAdminCatalog.1")
$LocalColl = $comAdmin.Connect("localhost")
$LocalComputer = $LocalColl.GetCollection("LocalComputer",$LocalColl.Name)
$LocalComputer.Populate()
$LocalComputerItem = $LocalComputer.Item(0)
$CurrVal = $LocalComputerItem.Value("TransactionTimeout")
Write-Host "Transaction Timeout = $CurrVal"
$LocalComputerItem.Value("TransactionTimeout") = 20
$LocalComputer.SaveChanges()
我不认为它是保存更改,因为每次我检查组件服务|本地计算机|属性|事务超时它仍然是'60',即使我刷新了所有组件。我终于退出组件服务并返回,然后它有'20'值。
答案 1 :(得分:0)
如果您想从外部工具/实用程序/批处理文件(例如在自动软件部署期间)调用此PowerShell脚本,那么如果显示超时的前后值(并且使用新行很好地格式化)可能会有所帮助 - 用于日志重定向):
$comAdmin = New-Object -com ("COMAdmin.COMAdminCatalog.1")
$LocalColl = $comAdmin.Connect("localhost")
$LocalComputer = $LocalColl.GetCollection("LocalComputer",$LocalColl.Name)
$LocalComputer.Populate()
$LocalComputerItem = $LocalComputer.Item(0)
$CurrVal = $LocalComputerItem.Value("TransactionTimeout")
Write-Host "Old Transaction Timeout = $CurrVal`r`n"
$LocalComputerItem.Value("TransactionTimeout") = 180
$CurrVal = $LocalComputerItem.Value("TransactionTimeout")
Write-Host "New Transaction Timeout = $CurrVal`r`n"
$LocalComputer.SaveChanges()
假设您将上面的代码保存到名为Set-Component-Services-Timeout.ps1
的文件中,然后可以使用以下命令从任何地方调用此代码:
powershell.exe -Command .\Set-Component-Services-Timeout.ps1 >> log_file.txt 2>&1