2009-02-14 4 views

ответ

6

Одним из вариантов было бы использовать WMI:

Const HKEY_LOCAL_MACHINE = &H80000002 

strComputer = "." 

Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _ 
    strComputer & "\root\default:StdRegProv") 

strKeyPath = "SYSTEM\CurrentControlSet\Services" 
oReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys 

For Each subkey In arrSubKeys 
    Wscript.Echo subkey 
Next 

Вы найдете более полезные сценарии реестра здесь: http://www.activexperts.com/activmonitor/windowsmanagement/scripts/operatingsystem/registry/

+0

На самом деле я не знаю ни * другой * способ сделать перечисление реестра в скрипте Windows. Ни один из них не работал бы, не устанавливая сторонних зависимостей заранее. +1 – Tomalak

+0

На самом деле я не знаю ни о каком другом пути, хотя кажется странным, что нет более «родного» способа сделать это. –

+2

Если вы посмотрите на него строго, вы ничего не можете сделать с «родным» VBScript. Язык был построен для использования COM-объектов широко и безболезненно, поэтому вы могли бы сказать, что использование COM-объекта * - это собственный способ сделать все в VBScript. – Tomalak