Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Скрипт очистки папки обмена

Ответить
Настройки темы
VBS/WSH/JS - [решено] Скрипт очистки папки обмена

Аватара для stolyar

Ветеран


Сообщения: 508
Благодарности: 23


Конфигурация

Профиль | Отправить PM | Цитировать


Приветствую всех!

Есть папка "Exchange", которая доступна всем пользователям в сети, (расшарена через DFS) и служит для обмена документами между пользователями. Каждый день ее надо очищать (не удалять). Права на нее стоят права для всех (кроме админа, у которого полный доступ) - Чтение/выполнение/запись. Помогите написать скрипт на очистку этой папки.

PS
Напоролся на ресурс в Инете - http://habrahabr.ru/blogs/i_am_clever/20443/ (Авто-очистка папки обмена) только не могу настроить под себя. Надо чтобы папка, которая лежит "O:\Public Folder\Exchange" очищалась. Что касается перемещения удаленных файлов в подкаталог _deletion_queue_, то можно оставить.

Прошу помочь!
Заранее благодарю!

-------
Кофе или чай, в кружку накачай.


Отправлено: 07:17, 06-02-2010

 

Googler


Сообщения: 3665
Благодарности: 1560

Профиль | Отправить PM | Цитировать


Цитата stolyar:
скрипт на очистку этой папки »
Код: Выделить весь код
On Error Resume Next

strFldr = "O:\Public Folder\Exchange"
Set objFSO = CreateObject("Scripting.FileSystemObject")

ClearFolder strFldr

Function ClearFolder(sFldr)
   On Error Resume Next
   Dim oD, cF, cD, oI

   Set oD = objFSO.GetFolder(sFldr)
   Set cF = oD.Files
   Set cD = oD.SubFolders

   For Each oI In cF
      oI.Attributes = 0
      oI.Delete
   Next

   For Each oI In cD
      ClearFolder oI.Path
      oI.Attributes = 0
      oI.Delete
   Next
End Function

-------
Как сообщить о том, что моя проблема решена?
не оказываю техподдержку через ПМ/ICQ/Mail - для этого есть форум

Это сообщение посчитали полезным следующие участники:

Отправлено: 07:47, 06-02-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для stolyar

Ветеран


Сообщения: 508
Благодарности: 23

Профиль | Отправить PM | Цитировать


СеньQ! То, что надо!!

-------
Кофе или чай, в кружку накачай.


Отправлено: 06:26, 07-02-2010 | #3


Аватара для stolyar

Ветеран


Сообщения: 508
Благодарности: 23

Профиль | Отправить PM | Цитировать


amel27, а можно ли сделать исключение?
В этой папке находится еще одна папка "price", которую удалять нельзя! Можно ли, чтобы скрипт чистил все, но ее оставлял?

-------
Кофе или чай, в кружку накачай.


Отправлено: 16:54, 08-02-2010 | #4


Аватара для stolyar

Ветеран


Сообщения: 508
Благодарности: 23

Профиль | Отправить PM | Цитировать


У меня сделать не получилось. Как альтернативу я сделал копирование папки в другой католог, очистка exchange, а потом копирование price снова в этот же каталог....
Может быть можно сделать исключение?

-------
Кофе или чай, в кружку накачай.


Отправлено: 14:52, 09-02-2010 | #5


Googler


Сообщения: 3665
Благодарности: 1560

Профиль | Отправить PM | Цитировать


Цитата stolyar:
сделал копирование папки в другой католог, очистка exchange, а потом копирование price снова в этот же каталог.... »
проще учетке, под которой запускается скрипт закрыть доступ к подкаталогу (DENY)

-------
Как сообщить о том, что моя проблема решена?
не оказываю техподдержку через ПМ/ICQ/Mail - для этого есть форум

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:53, 09-02-2010 | #6


Старожил


Сообщения: 420
Благодарности: 108

Профиль | Отправить PM | Цитировать


stolyar, у меня на работе похожая ситуация, только папка зовется TMP и чистим ее раз в месяц (я шутки ради выставил 13е число ), но тутже возникла проблема - поднялся жуткий хай на тему удаленных наиважнейших данных. Пришлось создавать папку "2beDeleted", куда все для начала переносилось на месяц до следующей зачистки. Единственное - у нас это делается не скриптом, а один бывший сотрудник быстренько накатал софтину. Поскольку аффтар не я, то поделиться не имею права, но сразу могу сказать - вопрос типа Вашего здесь промелькал - надо всего лишь поискать (правда у меня самого с поиском не очень)

-------
Как сказало Дерево Дровосеку: "я - пень".


Отправлено: 18:49, 09-02-2010 | #7


Аватара для stolyar

Ветеран


Сообщения: 508
Благодарности: 23

Профиль | Отправить PM | Цитировать


Цитата amel27:
проще учетке, под которой запускается скрипт закрыть доступ к подкаталогу (DENY) »
Попробую!

-------
Кофе или чай, в кружку накачай.


Отправлено: 15:04, 10-02-2010 | #8


Аватара для stolyar

Ветеран


Сообщения: 508
Благодарности: 23

Профиль | Отправить PM | Цитировать


Тема! Так проще, действительно....
Всем большое спасибо за помощь!
Топик офф.

-------
Кофе или чай, в кружку накачай.


Отправлено: 10:10, 11-02-2010 | #9


Пользователь


Сообщения: 72
Благодарности: 26

Профиль | Сайт | Отправить PM | Цитировать


Скрипт из темы http://forum.oszone.net/thread-146190-3.html
Код: Выделить весь код
'==== Script Information Header ====
'script name:	Purge Temp
'version:		1.0
'date:			16.07.08
'autor:			Bochkarev Vitaly
'description:	Скрипт удаляет устаревшие временные файлы с компьютера.

'==== Script Main Logic ====
on error resume next
const PurgeTime = 14 'days

'Exceptions - folders, which will not be processed
dim aExceptions(3)
aExceptions(0) = "Default User"
aExceptions(1) = "LocalService"
aExceptions(2) = "NetworkService"
aExceptions(3) = "All Users"

set oFSO = CreateObject("Scripting.Filesystemobject")
set oShell = createobject("wscript.shell")

'Set paths
sProgramFiles = oShell.ExpandEnvironmentStrings("%ProgramFiles%")
sWinDir = oShell.ExpandEnvironmentStrings("%WinDir%")
sWinTempFolder = sWinDir & "\Temp"
sDocuments = "C:\Documents and Settings"

'Create log-file
sLogFileName = sWinTempFolder & "\PurgeTemp_" & Date
sLogFileName = Replace(sLogFileName, ".", "_")
sLogFileName = Replace(sLogFileName, "/", "_")
set oLogFile = oFSO.CreateTextFile(sLogFileName & ".log",true)
oLogFile.WriteLine "========== Start purging =========="

'Purge Windows Temporary folder
oLogFile.WriteLine vbCrLf & "========== Windows Temporary folder =========="
PurgeFolder(sWinTempFolder)

'Purge Users Temporary folder and Users Temporary Internet Files
oLogFile.WriteLine vbCrLf & "========== Users Temporary folder and Users Temporary Internet Files =========="
set oDocuments = oFSO.GetFolder(sDocuments)
set colProfiles = oDocuments.SubFolders
for each oProfile in colProfiles
	bFlag = false
	for each sException in aExceptions
		if InStr(oProfile.Path,sException) > 0 then
			bFlag = true
			exit for
		end if
	next
	if bFlag = false then
		PurgeFolder(oProfile.Path & "\Local Settings\Temp")
		PurgeFolder(oProfile.Path & "\Local Settings\Temporary Internet Files")
	end if
next

'Purge NOD32 Quarantine
oLogFile.WriteLine vbCrLf & "========== NOD32 Quarantine =========="
sQuarantine = sProgramFiles & "\Eset\Infected"
PurgeFolder(sQuarantine)

'Close log-file
oLogFile.WriteLine vbCrLf & "========== Stop purging =========="
oLogFile.Close

'PurgeFolder procedure
sub PurgeFolder(sFolderPath)
	set oFolder = oFSO.GetFolder(sFolderPath)
	set colFiles = oFolder.Files
	for each oFile in colFiles
		if (Date-oFile.DateLastModified) > PurgeTime and (Date-oFile.DateCreated) > PurgeTime then
			oLogFile.Writeline oFile.Path & vbTab & oFile.DateCreated
			oFSO.DeleteFile oFile.Path, true
			if err.Number <> 0 then
				oLogFile.Writeline "-----> Error # " & CStr(Err.Number) & " " & Err.Description
				err.clear
			end if
			wscript.sleep 20
		end if
	next
	set colSubFolders = oFolder.SubFolders
	for each oSubFolder in colSubFolders
		PurgeFolder(oSubFolder.Path)
		if oSubFolder.Size = 0 then 
			oLogFile.Writeline oSubFolder.Path & vbTab & oSubFolder.DateCreated
			oFSO.DeleteFolder oSubFolder.path
			if err.Number <> 0 then
				oLogFile.Writeline "-----> Error # " & CStr(Err.Number) & " " & Err.Description
				err.clear
			end if
		end if
	next
end sub
Здесь как раз есть папки-исключения. Если немного подумать, то можно приспособить скрипт под свои нужды.

-------
Статьи для системных инженеров http://www.sysengineering.ru


Отправлено: 08:44, 15-02-2010 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Скрипт очистки папки обмена

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - [решено] Скрипт для удаления старых файлов и папок из определенной папки avfiga Скриптовые языки администрирования Windows 70 03-03-2019 20:22
V. 5.5/2000/2003 - [решено] Скрипт для чистки общей папки от устаревших сообщений migunov Microsoft Exchange Server 2 21-11-2009 09:50
Папка "Cleaned Files": значение, возможность очистки этой папки Alexandr28 Хочу все знать 1 19-07-2007 20:05
BAT-скрипт для очистки пакетов ForceWare International от "лишних" языков ShaddyR Программное обеспечение Windows 6 08-02-2007 10:55
Скрипт автоматической раздачи прав на папки UnDetect Microsoft Windows NT/2000/2003 2 13-02-2006 13:04




 
Переход