2012-06-29 110 views
1

我的脚本所做的是首先检查C:\ Windows \ System32 \ winevt \ Logs中的任何存档事件文件是否早于7天。如果他们删除它们。VBScript适用于Windows 7 Professional,不适用于Windows Home Premium

它所做的第二件事是任何剩余的Archive * .evtx文件(比7天更新的文件),它会压缩并发送到您指定的任何路径。

现在我的问题在于我的桌面运行Windows 7专业版,并且脚本昨天晚上正在运行时保持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 ..难道是有喜欢的存档文件没有在文件夹C *采用.evtx:\ WINDOWS \ SYSTEM32 \ winevt \日志?通常没有,我想你的桌面上出于任何原因,这样脚本就可以在那里工作。 尝试在命令=“....”后放置一个wscript.echo并尝试在控制台上运行该命令。在那里很容易找出为什么命令不运行,如果运行的机会很高,它也会在脚本中运行。

+0

我希望是这样。在开始这个过程之前,我确保保存一个以Archive开始的事件文件,以便它能够找到一些东西。自从周末开始再看看它,并没有试图修复它。 – parchambeau

相关问题