我正在寻找一种方法,只能从WMI数据库中获取本地驱动器上具有特定扩展名的文件。
SELECT *
FROM CIM_DataFile
WHERE Extension = 'vbs'
AND Drive = UCASE(SELECT Caption
FROM Win32_LogicalDisk
WHERE Description = 'Local Fixed Disk')
我在上面提出了这个想法,但它没有返回任何结果。如果我做错了或者有更简单的方法可以让我知道。
答案 0 :(得分:0)
所以我试图找到一种方法在WMI上使用JOIN
或IN
操作但没有成功。然后我发现这个WQL (SQL for WMI)似乎显示了WMI查询允许的操作。
因此,执行此操作的唯一方法就是使用以下两个查询:
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select name from "&_
" Win32_LogicalDisk where MediaType <> 0",,48)
For Each objItem in colItems
Set colItems2 = objWMIService.ExecQuery("Select * " &_
" from CIM_DataFile " &_
" where Extension='vbs' " &_
" and Drive ='" & objItem.Name & "' ",,48)
For Each objItem2 in colItems2
Wscript.Echo "Extension: " & objItem2.Extension
Wscript.Echo "FileName: " & objItem2.FileName
Wscript.Echo "FileSize: " & objItem2.FileSize
Wscript.Echo "FileType: " & objItem2.FileType
Wscript.Echo "Name: " & objItem2.Name
Wscript.Echo "#################################################"
Next
Next
当我使用WMI时,我发现了一个很有用的简单工具,它只是一个名为ScriptomaticV2的HTA文件。你可以在Microsoft Download Center Scriptomatic 2.0找到它。这是一个自解压文件。
答案 1 :(得分:-1)
尝试这样的事情:
SELECT CASE
WHEN RIGHT(RTRIM(FileName), 4) = '.vbs' THEN FileName
END
FROM CIM_DataFile
确保更改规格的参数名称。