2012-06-29 4 views
1

Что делает мой скрипт, сначала он проверяет, хранятся ли какие-либо архивные файлы событий в C: \ Windows \ System32 \ winevt \ Logs старше 7 дней. Если они удаляют их.VBScript работает в Windows 7 Professional, а не в Windows Home Premium

Вторая вещь, которую он выполняет, это любые оставшиеся файлы архива * .evtx (те, которые новее, чем 7 дней), будут застегиваться и отправляться на любой путь, который вы указали.

Теперь моя проблема заключается в том, что мой рабочий стол работает под управлением Windows 7, и сценарий работал на 100% правильно прошлой ночью, когда я делал последние штрихи на нем. Теперь мой ноутбук работает под управлением Windows Home Premium, поэтому при работе сегодня при попытке запустить скрипт с моего ноутбука внезапно это не сработает.

Это сделает zip-файл правильным путем, но на самом деле он ничего не поместит в zip-файл.

Теперь я должен был запустить скрипт как администратор, чтобы заставить его работать, что потребовало от меня сделать редактирование реестра, которое я нашел в Интернете, чтобы добавить кнопку «Запуск от имени администратора», когда вы щелкните правой кнопкой мыши на .vbs файл. (Wierd, что этого уже нет, но что бы то ни было)

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

Итак, я понял, что что-то случилось с UAC, борющимся с ним. Поэтому я выключил UAC на своем ноутбуке, а затем работал как администратор, но все равно столкнулся с той же проблемой. Дома мой UAC по-прежнему включен, и скрипт работает, поэтому я совсем не уверен, в чем проблема.

Тогда я подумал, может быть, на моем ноутбуке у меня возникла проблема с диском C: или что-то странное. Поэтому я открыл cmd как admin и запустил «takeown», чтобы убедиться, что к диску разрешен доступ администратором.

Затем пошел и снова запустил сценарий, все еще столкнулся с той же проблемой.

Я уже не знаю, почему он не будет работать, когда я вернусь с работы, я снова попробую его на своем рабочем столе и посмотрю, все ли работает. (Это должно быть, я не внес никаких изменений в сценарий)

Если бы кто-нибудь мог помочь мне здесь, это было бы удивительно. Я надеялся, что все это сделано до сегодняшнего дня и настроено как запланированное задание, так что оно начнет работать, но, похоже, оно хочет вызвать у меня еще несколько проблем.

Скрипт находится ниже:


Option Explicit 

Dim oFSO, oFolder, sDirectoryPath, sDestinationPath, sOutputFilename, Shell, sFileExt,  sFilePrefix 
Dim oFileCollection, oFile, sDir 
Dim iDaysOld 


Set Shell = WScript.CreateObject("WScript.Shell") 
'Specify Directory Path From Where You want to clear the old files 'Also where you want destination for zip 
sDirectoryPath = "C:\Windows\System32\winevt\Logs\" 
sDestinationPath = "C:\Script\files\outzips\" 
sOutputFilename = shell.ExpandEnvironmentStrings("%COMPUTERNAME%") 
sFileExt = ".evtx" 
sFilePrefix = "Archive*" 
' Specify Number of Days Old File to Delete 
iDaysOld = 7 

Set oFSO = CreateObject("Scripting.FileSystemObject") 
Set oFolder = oFSO.GetFolder(sDirectoryPath) 
Set oFileCollection = oFolder.Files 

For each oFile in oFileCollection 
'Specify the Extension of file that you want to delete 'and the number with Number of character in the file extension 
If LCase(oFSO.GetExtensionName(oFile.Name)) = ".evtx" Then 

    If oFile.DateLastModified < (Date() - iDaysOld) Then 
    oFile.Delete(True) 
    End If 

End If 
Next 



Set oFSO = Nothing 
Set oFolder = Nothing 
Set oFileCollection = Nothing 
Set oFile = Nothing 




Dim Command, RetVal 
Dim d : d = Date() 
Dim dateStr : dateStr = Year(d) & "-" & Right("00" & Month(d), 2) & "-" & Right("00" &  Day(d), 2) 
Dim t : t = Time() 
Dim timeStr: timeStr = Hour(t) & "-" & Right("00" & Minute(t), 2) & "-" & Right("00" & Second(t), 2) 



Command = """C:\Program Files\7-zip\7z.exe"" a " & sDestinationPath & sOutputFilename & "-" & dateStr & "-" & timeStr & ".zip " & sDirectoryPath & sFilePrefix & sFileExt 


     RetVal = Shell.Run(Command,0,true) 

ответ

0

Ahum .. это может быть нет файлов, таких как архив * .evtx в папке C: \ Windows \ System32 \ winevt \ Logs? Обычно нет и я полагаю, что на вашем рабочем столе по какой-либо причине есть так, что скрипт работает там. Попробуйте поместить wscript.echo после команды = "...." и попробуйте запустить это на консоли. Там легче узнать, почему команда не запускается, и если она работает, то она высока и в вашем скрипте.

+0

Желаю этого. Я должен был сохранить файл события, начиная с Archive, прежде чем я начал этот процесс, чтобы он что-то нашел. Собираюсь посмотреть на это снова завтра с его выходных и еще не попытался это исправить. – parchambeau

Смежные вопросы