2012-06-29 148 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

相關問題