2012-06-29 1 views
1

내 스크립트의 역할은 C : \ Windows \ System32 \ winevt \ Logs에 보관 된 이벤트 파일이 7 일 이상 경과했는지 확인하는 것입니다. 그럴 경우 삭제합니다.VBScript는 Windows Home Premium이 아닌 Windows 7 Professional에서 작동합니다.

나머지 두 번째 일은 모든 아카이브 * .evtx 파일 (7 일 이상인 파일)입니다.이 파일은 압축하여 지정한 경로로 보내집니다.

이제 내 문제는 내 데스크톱이 Windows 7 Professional을 실행하고 스크립트가 지난 밤에 100 % 정확함을 실행하고 있다는 사실에 달려 있습니다. 이제는 내 노트북이 Windows Home Premium을 실행하므로 오늘 랩톱에서 스크립트를 실행하려고 할 때 갑자기 작동하지 않습니다.

올바른 경로로 zip 파일을 만들지 만 실제로 zip 파일에 아무 것도 넣지는 않습니다.

이제 집에서 관리자 권한으로 스크립트를 실행해야만 온라인에서 찾은 레지스트리 편집을 통해 .vbs를 마우스 오른쪽 단추로 클릭 할 때 "관리자 권한으로 실행"단추를 추가해야했습니다. 파일. (Wierd는 이미 없지만 뭐든간에)

그래서 나는 내 노트북에서 같은 편집을하고, 다시 실행하려고 시도했다. 똑같은 일이 일어났다. 잘못된 경로의 Zip 파일을 비우십시오.

그래서 나는 뭔가가 UAC가 그걸로 어지럽 혔다 고 생각했습니다. 그래서 랩톱에서 UAC를 끈 다음 관리자로 도망 갔지만 여전히 같은 문제가 발생했습니다. 집에서 내 UAC가 켜져 있고 스크립트가 작동하므로 문제가 무엇인지 확실하지 않습니다.

그런 다음 내 노트북에 C : 드라이브 또는 이와 유사한 이상한 사용 권한 문제가 있다고 생각했습니다. 그래서 저는 관리자 권한으로 cmd를 열었고 관리자가 드라이브에 액세스 할 수 있도록 "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 로그 \? 일반적으로 거기에 어떤 이유로 스크립트가 작동하므로 바탕 화면에 있다고 가정하지 않습니다. command = "...."다음에 wscript.echo를 넣고 콘솔에서 실행 해보십시오. 명령이 실행되지 않는 이유를 알아내는 것이 더 쉽습니다. 실행 가능성이 높으면 스크립트에서도 실행됩니다.

+0

나는 이것이 사실 이었으면 좋겠다. 이 프로세스를 시작하기 전에 Archive로 시작하는 이벤트 파일을 저장 했으므로 뭔가 찾을 수 있습니다. 주말 이후로 내일 다시 보러 가고 아직 그것을 고치려고하지 않았습니다. – parchambeau