none
Список файлов рабочего стола RRS feed

  • Вопрос

  • Подскажите как собрать информацию о файлах которые пользователи хранят на рабочем столе.

    Понятно, что через GPO надо сунуть в логон скрипт, который бы строил список файлов на рабочем столе и сохранял этот файл в общую шару.

    Подскажите, пожалуйста, с самим скриптом. Не понимаю как собрать инфу по файлам


    немного подумал... нужно как-то собрать структуру папки %USERPROFILE%\Desktop\ и записать её в текстовый файл
    • Изменено GoodwiN 24 июля 2013 г. 7:36
    • Перемещено Dmitry Nikitin 24 июля 2013 г. 15:34 scripting
    24 июля 2013 г. 7:26

Ответы

  • DIR /S > filename 

    Это, конечно, красиво, но вывод команды dir немного неудобочитаем...

    Вот что получилось (оригинал взят тут http://easyprograming.com/index.php/vb-script/34-list-all-files-and-subfolders-inside-a-folder-using-vbscript), может кому пригодится:

    On Error Resume Next       
    
    Dim fso
    Dim resultFile 'куда писать результат
    Dim scanFolder 'что сканировать
    
    Dim ObjFolder, ObjSubFolder, ObjSubFolders    
    Dim ObjFiles, ObjFile
    
    Set fso = CreateObject("Scripting.FileSystemObject") 
    scanFolder = Wscript.Arguments.Item(0)
    
    Set fso = CreateObject("Scripting.FileSystemObject") 
    Set resultFile = fso.CreateTextFile(Wscript.Arguments.Item(1)) 
    Set ObjFolder = fso.GetFolder(scanFolder)    
    Set ObjFiles = ObjFolder.Files         
    
    resultFile.WriteLine("Start " & Now)
    resultFile.WriteLine("--------------------------------------")
    
    For Each ObjFile In ObjFiles        
    	resultFile.WriteLine(ObjFile.Path)    
    Next
    Set ObjSubFolders = ObjFolder.SubFolders         
    For Each ObjFolder In ObjSubFolders        
    	resultFile.WriteLine(ObjFolder.Path)                 
    	GetFileList(ObjFolder.Path)    
    Next
    
    resultFile.Close 
    Если этому скрипту при вызове передать в первом параметре "%USERPROFILE%\desktop" а во втором "\\netshare\%COMPUTERNAME%.txt" то в указанной сетевой папке будет создан файл с именем совпадающим с именем компьютера, на котором был запущен скрипт. В этом файле будет список всех файлов и папок рабочего стола залогинившегося пользователя. В начале файла пишется дата и время запуска.

    • Помечено в качестве ответа KazunEditor 24 июля 2013 г. 15:50
    24 июля 2013 г. 11:19

Все ответы

  • Как-то так (на Powershell):

    $UN=[Environment]::UserName
    $FN = "\\Server\Logs\$UN.txt"

    $DT=[Environment]::GetFolderPath("Desktop")

    Get-ChildItem -Path $DT -Recurse | Format-Table -Property Fullname | Out-File  $FN



    • Изменено Evgenii Alekseev 24 июля 2013 г. 7:43 уточнение
    24 июля 2013 г. 7:40
  • Нужно VBS у меня Win7 и ХР одновременно используются
    24 июля 2013 г. 7:56
  • Нужно VBS у меня Win7 и ХР одновременно используются

    Тогда посмотрите здесь: http://blogs.technet.com/b/heyscriptingguy/archive/2006/04/10/how-can-i-list-all-the-files-on-a-user-s-desktop.aspx

    P.S: А у вас поддержка Powershell на Windows XP не установлена? Установите Windows Management Framework на компьютерах с Windows XP и у вас появится поддержка Powershell http://support.microsoft.com/kb/968929/ru.


    • Изменено Evgenii Alekseev 24 июля 2013 г. 8:07 уточнение
    24 июля 2013 г. 8:03
  • Поддержки Poweshell на ХР нет.

    Мы переходим на Вин7 и заморачивать Powershell на ХР смысла нет

    Нашёл и видоизменил под себя вот это:

    On Error Resume Next 
    
    Dim FSO,folder,files,fFile,scanFolder, resultFile
    
    Set FSO = CreateObject("Scripting.FileSystemObject") 
    scanFolder = Wscript.Arguments.Item(0) 
    Set resultFile = CreateObject("Scripting.FileSystemObject") 
    resultFile = Wscript.Arguments.Item(1)
    
    If scanFolder = "" Then      
    	Wscript.Echo "No Folder parameter was passed"      
    	Wscript.Quit  
    End If  
    
    Set fFile = FSO.CreateTextFile(resultFile, True)  
    Set folder = FSO.GetFolder(scanFolder)  
    Set files = folder.Files
    For each folderIdx In files    
    	fFile.WriteLine(folderIdx.Name)  
    Next
    
    fFile.Close

    Только он не просматривает подпапки(
    • Изменено GoodwiN 24 июля 2013 г. 8:09 дописал
    24 июля 2013 г. 8:06
  • Подскажите как собрать информацию о файлах которые пользователи хранят на рабочем столе.

    Понятно, что через GPO надо сунуть в логон скрипт, который бы строил список файлов на рабочем столе и сохранял этот файл в общую шару.

    Подскажите, пожалуйста, с самим скриптом. Не понимаю как собрать инфу по файлам


    немного подумал... нужно как-то собрать структуру папки %USERPROFILE%\Desktop\ и записать её в текстовый файл

    DIR /S > filename 

    :)


    MCITP: Server Administrator
    MCTS: Desktop Virtualization
    MCTS: Windows 7, Configuration
    Сетевое администрирование Huawei Enterprise

    24 июля 2013 г. 9:04
  • DIR /S > filename 

    Это, конечно, красиво, но вывод команды dir немного неудобочитаем...

    Вот что получилось (оригинал взят тут http://easyprograming.com/index.php/vb-script/34-list-all-files-and-subfolders-inside-a-folder-using-vbscript), может кому пригодится:

    On Error Resume Next       
    
    Dim fso
    Dim resultFile 'куда писать результат
    Dim scanFolder 'что сканировать
    
    Dim ObjFolder, ObjSubFolder, ObjSubFolders    
    Dim ObjFiles, ObjFile
    
    Set fso = CreateObject("Scripting.FileSystemObject") 
    scanFolder = Wscript.Arguments.Item(0)
    
    Set fso = CreateObject("Scripting.FileSystemObject") 
    Set resultFile = fso.CreateTextFile(Wscript.Arguments.Item(1)) 
    Set ObjFolder = fso.GetFolder(scanFolder)    
    Set ObjFiles = ObjFolder.Files         
    
    resultFile.WriteLine("Start " & Now)
    resultFile.WriteLine("--------------------------------------")
    
    For Each ObjFile In ObjFiles        
    	resultFile.WriteLine(ObjFile.Path)    
    Next
    Set ObjSubFolders = ObjFolder.SubFolders         
    For Each ObjFolder In ObjSubFolders        
    	resultFile.WriteLine(ObjFolder.Path)                 
    	GetFileList(ObjFolder.Path)    
    Next
    
    resultFile.Close 
    Если этому скрипту при вызове передать в первом параметре "%USERPROFILE%\desktop" а во втором "\\netshare\%COMPUTERNAME%.txt" то в указанной сетевой папке будет создан файл с именем совпадающим с именем компьютера, на котором был запущен скрипт. В этом файле будет список всех файлов и папок рабочего стола залогинившегося пользователя. В начале файла пишется дата и время запуска.

    • Помечено в качестве ответа KazunEditor 24 июля 2013 г. 15:50
    24 июля 2013 г. 11:19