Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Windows Server 2008/2008 R2 (http://forum.oszone.net/forumdisplay.php?f=97)
-   -   [решено] Автоматическое удаление с шары (http://forum.oszone.net/showthread.php?t=308003)

ev83gen 16-11-2015 08:38 2575236

Автоматическое удаление с шары
 
Всем добрый день, такая задача нарисовалась:
есть шара, предназначенная для обмена инфой, ну а пользователи они и есть пользователи, устроили помойку...
Вот нужно автоматом раз в день все удаллять с шары, я вот сижу думаю, в Microsoft никаких штатных методов на этот случай не предусмотрели?

Iska 16-11-2015 09:33 2575254

Цитата:

Цитата ev83gen
я вот сижу думаю, в Microsoft никаких штатных методов на этот случай не предусмотрели? »

Предусмотрели :). Называется — пакетные файлы, скрипты WSH или PoSH.

Я несколько лет пользую такой скрипт WSH:
Скрытый текст
Код:

Option Explicit

Const intDays2Live = 7
Const strPathToClear = "E:\Для обмена"


Dim objFSO
Dim intErrorLevel

Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")

If objFSO.FolderExists(strPathToClear) Then
        ClearSubFolders objFSO.GetFolder(strPathToClear)
       
        intErrorLevel = 0
Else
        intErrorLevel = 1
End If

Set objFSO = Nothing

WScript.Quit intErrorLevel
'=============================================================================

'=============================================================================
Sub ClearSubFolders(objFolder)
        Dim objSubFolder
        Dim objFile
       
       
        For Each objSubFolder In objFolder.SubFolders
                ClearSubFolders objSubFolder
        Next
       
        For Each objFile In objFolder.Files
                If DateDiff("d", objFile.DateCreated, Now()) > intDays2Live Then
                        objFile.Delete(True)
                End If
        Next
       
        If (objFolder.Files.Count = 0) And (objFolder.SubFolders.Count = 0) Then
                If objFolder.Path = strPathToClear Then
                Else
                        objFolder.Delete True
                End If
        End If
End Sub
'=============================================================================


Файлы удаляются по дате создания, папки — только пустые (т.е., только после удаления всех вложенных в неё файлов и папок). Интервал у меня задан константой «intDays2Live» в одну неделю (семь дней), путь — константой «strPathToClear».

P.S. В разделе Скриптовые языки администрирования Windows Вы можете поискать и более сложные варианты.

P.P.S. Вдогонку — исполнение скрипта назначаете обычным Планировщиком на потребное время и частоту.

Michael 16-11-2015 09:35 2575255

ev83gen,
Код:

rd /s /q \\server\share\
поместить в батник, а батник в шедулер

ev83gen 16-11-2015 09:39 2575257

Спасибо всем за столь быстрые и качественные ответы, я не так выразился....
Просто в win2008r2 появилось много дополнение по управлению сервером, вот я и подумал что там без скриптов что такое есть, но скрипты так скрипты. Всем спасибо))

Gerner 16-11-2015 14:18 2575347

Есть как раз без скриптов - называется File Management, доступно из консоли File Server Resource Manager. Можно задавать период устаревания, действия с файлами, расписание выполнения, в общем довольно гибко.

ev83gen 16-11-2015 14:25 2575352

Ага, вот это и интересовала, а я смотрел в Share and Storage Managment, поэтому и не нашел.
Сейчас бегло просмотрел, такого прям не нашел что меню есть по выбору действия над файлом, там вроде тоже с помощью скриптов..... Но хоть есть куда копать, СПАСИБО.

WindowsNT 23-11-2015 14:22 2578078

Укажите параметры глубины и нужной папки; зашедульте скрипт на запуск от лица SYSTEM ежесуточно в 23:00.



$RetentionDepth = 5
$DataFolder = "C:\inetpub\wwwroot\files"

$EventHorizon = (Get-Date).AddDays(-$RetentionDepth)
Get-ChildItem $DataFolder -recurse -force | ?{$_.LastWriteTime -lt $EventHorizon} | del -recurse -force


Время: 20:19.

Время: 20:19.
© OSzone.net 2001-