我有一个 Windows Server 2003 SBS SP2 盒子。
它托管我们的业务应用程序。
大约每周一次,整个办公室工作站上该应用程序的客户端都会收到“无法联系业务服务器”的错误消息。
此时我远程连接到SBS
运行“dcomcnfg”控制台根目录>组件服务>计算机>我的电脑>正在运行的进程。
在那里,我右键单击应用程序图标并运行回收。此过程完成后,我的客户端即可再次与服务器通信。
我的问题是,这可以自动每天回收一次吗?我是否需要通过命令行执行此操作并编写批处理脚本来执行此操作?如果是这种情况,命令行语句是什么?
如果可以在某个 GUI 中完成,您能给我指明正确的方向吗?
答案1
您可以使用 PowerShell 与组件服务目录交互,并将“RecycleLifetimeLimit”值设置为应用程序在回收之前应运行的分钟数:
$TargetAppName = "todbannersBiznezApp"
$ComCatalog = New-Object -ComObject COMAdmin.COMAdminCatalog
$ComCatalog.Connect("localhost")
$ComApps = $ComCatalog.GetCollection("Applications")
$ComApps.Populate()
foreach($App in $ComApps)
{
if($App.Name -eq $TargetAppName)
{
# 30240 (21 days) is the maximum lifetime value
# Let's set it to 1440 (24 hours)
$App.Value("RecycleLifetimeLimit") = 1440
$ComApps.SaveChanges()
break
}
}
如果您愿意,您也可以从组件服务管理控制台执行此操作:
- 打开组件服务管理控制台(运行 ->
comexp.msc
) - 转到组件服务->计算机->我的电脑/本地主机
- 扩张COM+ 应用程序
- 右键单击您的业务应用程序并选择特性
- 切换到“池化和回收”选项卡
- 为应用程序配置所需的回收设置