У кого-нибудь есть пример кода, который делает запросы WMI к классу CIM_DataFile? - PullRequest
1 голос
/ 03 июня 2009

Что-то, что делает SELECT для получения информации о файле или каталоге? Что-то, что действительно работает?

Язык не имеет значения, меня больше всего интересует синтаксис запроса.

Ответы [ 3 ]

4 голосов
/ 14 июня 2009

Вот несколько примеров:

  • Запрос файла:

    SELECT * FROM CIM_DataFile WHERE Name='C:\\WINDOWS\\NOTEPAD.EXE'
    SELECT * FROM CIM_DataFile WHERE Drive='C:' AND Path='\\Windows\\' AND FileName='Notepad' AND Extension='EXE'
    
  • Запрос папки:

    SELECT * FROM CIM_Directory WHERE Name='C:\\Windows'
    SELECT * FROM CIM_Directory WHERE Drive='C:' AND Path='\\Program Files\\' AND FileName='Internet Explorer'
    

Подробнее о синтаксисе запроса см. WQL (SQL для WMI) . Также см. CIM_DataFile и CIM_Directory для списка свойств файлов и папок, которые можно использовать в предложениях SELECT и WHERE.

1 голос
/ 18 июня 2009

Я получил ответ, и все это было вызвано моей глупой ошибкой: я не смог удвоить обратную косую черту в строке пути и думал, что это делается. Кроме того, в предложении WHERE необходимо указать все четыре поля: диск, путь, имя файла и расширение.

1 голос
/ 04 июня 2009

У создателя кода WMI 1002 * есть некоторая помощь.
Смотрите этот код:

strComputer = "." 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") 
Set colItems = objWMIService.ExecQuery( _
    "SELECT * FROM CIM_DataFile",,48) 
For Each objItem in colItems 
    Wscript.Echo "-----------------------------------"
    Wscript.Echo "CIM_DataFile instance"
    Wscript.Echo "-----------------------------------"
    Wscript.Echo "AccessMask: " & objItem.AccessMask
    Wscript.Echo "Archive: " & objItem.Archive
    Wscript.Echo "LastAccessed: " & objItem.LastAccessed
    Wscript.Echo "LastModified: " & objItem.LastModified
    Wscript.Echo "Manufacturer: " & objItem.Manufacturer
    Wscript.Echo "Name: " & objItem.Name
    Wscript.Echo "Path: " & objItem.Path
    Wscript.Echo "Readable: " & objItem.Readable
    Wscript.Echo "Status: " & objItem.Status
    Wscript.Echo "System: " & objItem.System
    Wscript.Echo "Version: " & objItem.Version
    Wscript.Echo "Writeable: " & objItem.Writeable
Next

EDIT

В этом примере вы просматриваете Перечисление всех файлов на компьютере .

Попробуйте этот формат запроса:

Select * From Win32_Directory Where FileName = 'Scripts'

Здесь больше информации о запросе make WQL с использованием LIKE .
Попробуйте также: Scriptomatic 2.0 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...