Войти

Показать полную графическую версию : правильный ли скрипт для GPO?


Hooty
14-05-2009, 09:21
Здравствуйте. Есть скрипт для очистки темпов в windows.


Const LOCAL_SETTINGS_TEMP_INET_FILES = &H20&
Const LOCAL_SETTINGS_RECENT_FILES = &H8&

strComputer = "."

On Error Resume Next

' !!! oaaeaiea Temporary Internet Files !!!
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(LOCAL_SETTINGS_TEMP_INET_FILES)
Set objFolderItem = objFolder.Self
strInetTempFiles = objFolderItem.Path
'Wscript.Echo "strInetTempFiles - " & strInetTempFiles
DelFiles(strInetTempFiles)

' !!! oaaeaiea Recent Files History !!!
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(LOCAL_SETTINGS_RECENT_FILES)
Set objFolderItem = objFolder.Self
strRecentFiles = objFolderItem.Path
'Wscript.Echo "strRecentFiles - " & strRecentFiles
'DelFiles(strRecentFiles)

' !!! I?enoea iaiee User TEMP !!!
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_BootConfiguration")
For Each objItem in colItems
strUserTempDir = objItem.TempDirectory
'Wscript.Echo "User Temp Directory: " & strUserTempDir
Next
DelFiles(strUserTempDir)

' !!! I?enoea iaiee System TEMP !!!
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colItems = objWMIService.ExecQuery("Select * from Win32_Environment WHERE (Name = 'TMP' or Name = 'TEMP') and SystemVariable = True")

For Each objItem in colItems
strSystemTempDir = objItem.VariableValue
'Wscript.Echo "System Temp Directory: " & strSystemTempDir
Next
DelFiles(strSystemTempDir)

'Wscript.Echo outLog

Function DelFiles(strSourceDir)
Dim lfsObject
Dim lFileList
Dim lFolder
Dim lFile

'Is this a valid call?
If strSourceDir > "" Then
On Error Resume Next
Set lfsObject = CreateObject("Scripting.FileSystemObject")
Set lFolder = lfsObject.GetFolder(strSourceDir)
'Wscript.Echo "lFolder - " & lFolder

'Process contained files first
Set lFileList = lFolder.Files
'Wscript.Echo "lFileList - " & lFileList
For Each lFile in lFileList
'Wscript.Echo "lFile - " & lFile
lFile.Delete
Next

'Process subdirectories
Set lSubFolders = lFolder.SubFolders

For Each lSubFolder in lSubFolders
NewSource = strSourceDir & "\" & lSubFolder.Name
'Wscript.Echo "NewSource - " & NewSource
'Recursive call to delete all subdirectories
DelFiles NewSource
'Delete this directory
lSubFolder.Delete
Next

'Cleanup
Set lfsObject = Nothing
Set lFileList = Nothing
Set lFolder = Nothing
Set lFile = Nothing
End If
End Function



Так как ничего не понимаю в Vbasic. Прошу направить, есть ли в нём ошибки? Какие?
Если нет ошибок, то правильно ли я делаю, закидывая код в "name.vbs" и запуская его через GPO?
Если здесь всё правильно, почему он может не выполняться? Локально ведь тоже никак не проверить?

Hooty
18-05-2009, 10:01
совсем ни у кого нет никаких мыслей по этому поводу или я непонятно формулировал свои вопросы? :-/




© OSzone.net 2001-2012