Enumerating Files and File Properties

Microsoft® Windows® 2000 Scripting Guide

microsoft windows 2000 scripting guide

« Previous | Next »   

In the NTFS file system, files are actually made up of two distinct parts. In addition to the file itself, such as the Microsoft Word document MyDocument.doc, NTFS files also contain "metadata" regarding the file. The file MyDocument.doc contains more than just the words typed into the document; MyDocument.doc also contains information about itself, including such things as file size, the date it was created, and whether it can be modified or is a read-only file.

The WMI CIM_Datafile class allows you to retrieve this metadata for any file on a computer. Using WMI, you can retrieve any of the file properties listed in Table 11.1 (file properties are the same as folder properties). To retrieve this information, simply bind to a file and then echo the appropriate properties.

The relationship between the CIM_DataFile class and Windows Explorer is shown in Figure 11.6.

Figure 11.6   CIM_DataFile and Windows Explorer

CIM_DataFile and Windows Explorer

Scripting Steps

Listing 11.17 contains a script that returns the properties of the file C:\Scripts\Adsi.vbs. To carry out this task, the script must perform the following steps:

  1. Create a variable to specify the computer name.
  2. Use a GetObject call to connect to the WMI namespace root\cimv2, and set the impersonation level to "impersonate."
  3. Use the ExecQuery method to query the CIM_Datafile class.

    To limit data retrieval to a specific file, a Where clause is included restricting the returned files to those with the name C:\\Scripts\\Adsi.vbs. You must include both backslashes (\\) in the name.

  4. For the single file in the collection, echo a number of the properties shown in Table 11.1.

Listing 11.17   Retrieving File Properties

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 
strComputer = "." Set objWMIService = GetObject("winmgmts:" _     & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colFiles = objWMIService.ExecQuery _     ("SELECT * FROM CIM_Datafile WHERE Name = 'c:\\Scripts\\Adsi.vbs'") For Each objFile in colFiles     Wscript.Echo "Access mask: " & objFile.AccessMask     Wscript.Echo "Archive: " & objFile.Archive     Wscript.Echo "Compressed: " & objFile.Compressed     Wscript.Echo "Compression method: " & objFile.CompressionMethod     Wscript.Echo "Creation date: " & objFile.CreationDate     Wscript.Echo "Computer system name: " & objFile.CSName     Wscript.Echo "Drive: " & objFile.Drive     Wscript.Echo "8.3 file name: " & objFile.EightDotThreeFileName     Wscript.Echo "Encrypted: " & objFile.Encrypted     Wscript.Echo "Encryption method: " & objFile.EncryptionMethod     Wscript.Echo "Extension: " & objFile.Extension     Wscript.Echo "File name: " & objFile.FileName     Wscript.Echo "File size: " & objFile.FileSize     Wscript.Echo "File type: " & objFile.FileType     Wscript.Echo "File system name: " & objFile.FSName     Wscript.Echo "Hidden: " & objFile.Hidden     Wscript.Echo "Last accessed: " & objFile.LastAccessed     Wscript.Echo "Last modified: " & objFile.LastModified     Wscript.Echo "Manufacturer: " & objFile.Manufacturer     Wscript.Echo "Name: " & objFile.Name     Wscript.Echo "Path: " & objFile.Path     Wscript.Echo "Readable: " & objFile.Readable     Wscript.Echo "System: " & objFile.System     Wscript.Echo "Version: " & objFile.Version     Wscript.Echo "Writeable: " & objFile.Writeable Next

send us your feedback Send us your feedback « Previous | Next »   


Microsoft Windows 2000 Scripting Guide(c) Automating System Administration 2003
Microsoft Windows 2000 Scripting Guide(c) Automating System Administration 2003
ISBN: N/A
EAN: N/A
Year: 2004
Pages: 635

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net