65.9K
CodeProject 正在变化。 阅读更多。
Home

索引服务 (CISVC) 报告脚本

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.50/5 (3投票s)

2006 年 6 月 19 日

CPOL

2分钟阅读

viewsIcon

27876

downloadIcon

181

一个 VBScript,用于生成关于索引服务 (CISVC) 目录状态/详细信息的 HTML 报告

引言

如果您在 Microsoft Windows 2000 中使用索引服务 (CISVC),您可能希望定期通过电子邮件从服务器接收报告。

在以前的工作中,我广泛使用索引服务 (CISVC) 进行数据库中的关键字搜索。您可能想知道为什么我没有直接使用 SQL 全文索引……我们确实使用了,但发现其性能和控制过程都不够理想。

详细说明

用于访问索引服务的关键组件是

  • AdminIndexServer (ProgID: Microsoft.ISAdm)

此组件提供对许多对象和方法的访问,这些对象和方法用于查询索引服务的状态及其目录。

使用的对象、方法和属性

  • AdminIndexServer (ProgID: Microsoft.ISAdm)
    • GetCatalogByName (返回 CatAdm 对象)
  • CatAdm
    • CatalogName (获取当前目录名称)
    • IsUpToDate
    • IsCatalogRunning
    • IsCatalogPaused
    • IsCatalogStopped
    • IndexSize
    • TotalDocumentCount
    • DocumentsToFilter
    • PctMergeComplete
    • QueryCount
    • StateInfo (* 按位查找,如下所示)

我选择仅报告特定索引目录的状态,但您可以使用 FindFirstCatalog FindNextCatalog 方法循环遍历所有索引目录。

请注意,目录的状态以这样一种方式给出,您可以利用按位运算从单个返回值中获取多个状态。以下是我用来获取索引服务目录状态的常量列表

  • CI_STATE_SHADOW_MERGE = 1 '0x1
  • CI_STATE_MASTER_MERGE = 2 '0x2
  • CI_STATE_CONTENT_SCAN_REQUIRED = 4 '0x4
  • CI_STATE_ANNEALING_MERGE = 8 '0x8
  • CI_STATE_RECOVERING = 32 '0x20
  • CI_STATE_INDEX_MIGRATION_MERGE = 64 '0x40
  • CI_STATE_LOW_MEMORY = 128 '0x80
  • CI_STATE_HIGH_IO = 256 '0x100
  • CI_STATE_MASTER_MERGE_PAUSED = 512 '0x200
  • CI_STATE_READ_ONLY = 1024 '0x400
  • CI_STATE_BATTERY_POWER = 2048 '0x800
  • CI_STATE_USER_ACTIVE = 4096 '0x1000
  • CI_STATE_STARTING = 8192 '0x2000
  • CI_STATE_READING_USNS = 16384 '0x4000

希望这对任何需要处理索引服务的人有所帮助。我为此花费了许多痛苦的时光,处理了一些奇怪的问题。

我认为它相当容易理解,我尽量保持简单(肯定有人会在这里插入一个诙谐的评论……关于简单 ;-))。

历史

  • 2006 年 6 月 19 日:初始发布
© . All rights reserved.