G = WScript.arguments(0) Set oFSO = CreateObject("Scripting.FileSystemObject") set txt = oFSO.CreateTextFile(G"TXT.txt",true) '嘿嘿,如果这个目录下刚好有一个TXT.txt文件,那就算你倒霉, 不会有人真用这种名字来做文件名吧?真的啊,真的有啊?那你 换地方吧~~~C: \TXT.TXT应该不会有了吧? set objWMI = GetObject("winmgmts:") Set oFiles = objWMI.ExecQuery("ASSOCIATORS OF {Win32_Directory.Name='"G"'}" "where ResultClass = CIM_logicalfile") For Each oFile In oFiles txt.WriteLine( "--------------------------------------------------------------") txt.WriteLine( oFile.name) txt.WriteLine( "Type: " oFile.FileType) if oFile.name = G"system volume information" then exit for end if if oFile.FileType="File Folder" then Set objFolder = oFSO.GetFolder(oFile.name) txt.WriteLine("Size: " Cint(objFolder.Size/1024/1024) "MB") else txt.WriteLine( "Size: " cint(oFile.FileSize/1024/1024) "MB") end if strFile = oFile.name strComputer = "." Set objWMIService = GetObject("winmgmts:" "{impersonationLevel=impersonate}!\\" strComputer "\root\cimv2") Set colItems = objWMIService.ExecQuery ("ASSOCIATORS OF {Win32_LogicalFileSecuritySetting='" strFile "'}" " WHERE AssocClass=Win32_LogicalFileOwner ResultRole=Owner") For Each objItem in colItems if oFile.name = "system volume information" then exit for end if txt.WriteLine( "FileOwner: " objItem.AccountName) Next Next
统计某用户在某目录下的文件和文件夹使用方法: 脚本名 目录名 用户名 如: owner.vbs d:\ lsj 结果是在相应目录下生成一个文本文件 格式如下: -------------------------------------------------------------- d:\jcb-gx Type: File Folder Size: 22MB -------------------------------------------------------------- d:\powerword 2003.rar Type: WinRAR 档案文件 Size: 503MB -------------------------------------------------------------- d:\txt.txt Type: Text Document Size: 0MB -------------------------------------------------------------- d:\年 度 考 核 登 记 表2006版061225.doc Type: Microsoft Word 文档 Size: 0MB -------------------------------------------------------------- -------------------------------------------------------------- -------------------------------------------------------------- The TotalSize of All files lsj owns is: 525MB ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 以下为脚本代码:
TotalSize = 0 G = WScript.arguments(0) H = WScript.arguments(1) Set oFSO = CreateObject("Scripting.FileSystemObject") set txt = oFSO.CreateTextFile(G"TXT.txt",true) set objWMI = GetObject("winmgmts:") Set oFiles = objWMI.ExecQuery("ASSOCIATORS OF {Win32_Directory.Name='"G"'}" "where ResultClass = CIM_logicalfile") For Each oFile In oFiles strFile = oFile.name Set objWMIService = GetObject("winmgmts:" "{impersonationLevel=impersonate}!\\.\root\cimv2") Set colItems = objWMIService.ExecQuery ("ASSOCIATORS OF {Win32_LogicalFileSecuritySetting='" strFile "'}" " WHERE AssocClass=Win32_LogicalFileOwner ResultRole=Owner") For Each objItem in colItems if objItem.AccountName = H then txt.WriteLine( "--------------------------------------------------------------") txt.WriteLine( oFile.name) txt.WriteLine( "Type: " oFile.FileType) if oFile.name = G"system volume information" then exit for end if S = 0 if oFile.FileType="File Folder" then Set objFolder = oFSO.GetFolder(oFile.name) S= Cint(objFolder.Size/1024/1024) else S= Cint(oFile.FileSize/1024/1024) end if txt.WriteLine( "Size: " S "MB") TotalSize = TotalSize + S end if Next Next txt.WriteLine( "--------------------------------------------------------------") txt.WriteLine( "--------------------------------------------------------------") txt.WriteLine( "--------------------------------------------------------------") txt.WriteLine( "The TotalSize of All files "H" owns is: " TotalSize "MB")
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set objWMI = GetObject("winmgmts:") Set oFiles = objWMI.ExecQuery("ASSOCIATORS OF {Win32_Directory.Name='"G"'}" "where ResultClass = CIM_logicalfile")
Set objNetwork = CreateObject("Wscript.Network") strComputer = objNetwork.ComputerName Set colAccounts = GetObject("WinNT://" strComputer "") colAccounts.Filter = Array("user")
For Each objUser In colAccounts H = objUser.Name A = G objUser.Name "txt.txt" Set txt = oFSO.CreateTextFile (A,true)
For Each oFile In oFiles strFile = oFile.name Set objWMIService = GetObject("winmgmts:" "{impersonationLevel=impersonate}!\\.\root\cimv2") Set colItems = objWMIService.ExecQuery ("ASSOCIATORS OF {Win32_LogicalFileSecuritySetting='" strFile "'}" " WHERE AssocClass=Win32_LogicalFileOwner ResultRole=Owner")
For Each objItem in colItems if objItem.AccountName = H then txt.WriteLine( "--------------------------------------------------------------") txt.WriteLine( oFile.name) txt.WriteLine( "Type: " oFile.FileType)
if oFile.name = G"system volume information" then exit for end if
S = 0
if oFile.FileType="File Folder" then Set objFolder = oFSO.GetFolder(oFile.name) S= Cint(objFolder.Size/1024/1024) else S= Cint(oFile.FileSize/1024/1024) end if txt.WriteLine( "Size: " S "MB") TotalSize = TotalSize + S end if Next
Next
txt.WriteLine( "--------------------------------------------------------------") txt.WriteLine( "--------------------------------------------------------------") txt.WriteLine( "--------------------------------------------------------------") txt.WriteLine( "The TotalSize of All files "H" owns is: " TotalSize "MB") Next
再次更新后: 4.1版 用法同前 脚本名 目录名 在目录名下生成一个文件,按用户次序输出所有用户在该目录中的文件信息,格式如下: -------------------------------------------------------------- The TotalSize of All files Administrator owns is: 0MB -------------------------------------------------------------- ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※ -------------------------------------------------------------- The TotalSize of All files Guest owns is: 0MB -------------------------------------------------------------- ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※ -------------------------------------------------------------- The TotalSize of All files HelpAssistant owns is: 0MB -------------------------------------------------------------- ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※ -------------------------------------------------------------- d:\powerword 2003.rar Type: WinRAR 档案文件 Size: 503MB -------------------------------------------------------------- d:\年 度 考 核 登 记 表2006版061225.doc Type: Microsoft Word 文档 Size: 0MB -------------------------------------------------------------- d:\jcb-gx Type: File Folder Size: 22MB -------------------------------------------------------------- The TotalSize of All files lsj owns is: 525MB -------------------------------------------------------------- ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※ -------------------------------------------------------------- The TotalSize of All files SUPPORT_388945a0 owns is: 0MB -------------------------------------------------------------- ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
以下是代码:
G = WScript.arguments(0)
Set oFSO = CreateObject("Scripting.FileSystemObject") Set objWMI = GetObject("winmgmts:") Set oFiles = objWMI.ExecQuery("ASSOCIATORS OF {Win32_Directory.Name='"G"'}" "where ResultClass = CIM_logicalfile")
Set objNetwork = CreateObject("Wscript.Network") strComputer = objNetwork.ComputerName Set colAccounts = GetObject("WinNT://" strComputer "") colAccounts.Filter = Array("user")
For Each objUser In colAccounts TotalSize = 0 H = objUser.Name Set TXT = oFSO.OpenTextFile(G"\TXT.TXT",8,true)
For Each oFile In oFiles strFile = oFile.name Set objWMIService = GetObject("winmgmts:" "{impersonationLevel=impersonate}!\\.\root\cimv2") Set colItems = objWMIService.ExecQuery ("ASSOCIATORS OF {Win32_LogicalFileSecuritySetting='" strFile "'}" " WHERE AssocClass=Win32_LogicalFileOwner ResultRole=Owner")
For Each objItem in colItems if objItem.AccountName = H then TXT.WriteLine( "--------------------------------------------------------------") TXT.WriteLine( oFile.name) TXT.WriteLine( "Type: " oFile.FileType)
if oFile.name = G"system volume information" then exit for end if
S = 0
if oFile.FileType="File Folder" then Set objFolder = oFSO.GetFolder(oFile.name) S= Cint(objFolder.Size/1024/1024) else S= Cint(oFile.FileSize/1024/1024) end if TXT.WriteLine( "Size: " S "MB") TotalSize = TotalSize + S end if Next Next
TXT.WriteLine( "The TotalSize of All files "H" owns is: " TotalSize "MB") TXT.WriteLine( "--------------------------------------------------------------") TXT.WriteLine( "※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※") TXT.Close Next MsgBox "文件列表信息已成功输出至TXT.TXT文件",64,"OK"