System aufräumen

Forum zur Erstellung von Schaltern über den Befehlseditor
Antworten
Sasa
Berater
Beiträge: 478
Registriert: 6. Nov 2006 13:20

System aufräumen

Beitrag von Sasa » 2. Jun 2008 19:54

Löscht DO-Logs (Sucheingaben, etc.), Windows- und User-Tempordner, Log-Dateien, Prefetch-Dateien und Ereignisprotokolle (Anwendung, System und Sicherheit):

Hinweis: Für Vista-User, Anpassung an XP möglich! Benutzung auf eigene Gefahr (hatte noch nie Probleme!).

Code: Alles auswählen

Delete "%USERPROFILE%\AppData\Local\Temp\*" QUIET
Delete "%SYSTEMROOT%\*.log" QUIET
Delete "%SYSTEMROOT%\*.tmp" QUIET
Delete "%SYSTEMROOT%\Temp\*" QUIET
Delete "%SYSTEMROOT%\Prefetch\*" QUIET
Delete "C:\*.log" QUIET
Delete "/dopuslocaldata\State Data\MRU\*" QUIET
CScript "{alias|dopusdata}\UserCommands\ClearEventlog.vbs" app
CScript "{alias|dopusdata}\UserCommands\ClearEventlog.vbs" sec
CScript "{alias|dopusdata}\UserCommands\ClearEventlog.vbs" sys
Hier der Script zum Löschen des Ereignisprotokolls. In Textdatei einfügen und als "ClearEventlog.vbs" speichern (Pfad oben ggf. anpassen!).

Code: Alles auswählen

Option Explicit

On Error Resume Next

Dim LogType, EventLog, Entry

If Not IsCscript() Then
  WScript.Echo "Execute script with CSCRIPT!"
  WScript.Quit(1)
End If

If ParseCmdLine(LogType) Then

  Set EventLog = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery _
                ("select * from Win32_NTEventLogFile where LogfileName='" & LogType & "'")

  WScript.Echo "Clear Eventlog for " & LogType & "..."
  For each Entry in EventLog
    Entry.ClearEventlog()
  Next
  WScript.Echo "Eventlog deleted."
End If

WScript.Quit


Private Function ParseCmdLine(LogType)

  ParseCmdLine = False

  If WScript.Arguments.Count = 1 Then
    Select Case WScript.Arguments(0)
      Case "app" : LogType = "Application"
      Case "sec" : LogType = "Security"
      Case "sys" : LogType = "System"
      Case Else  : Call ShowUsage(true)
    End Select
  Else
    Call ShowUsage(true)
  End If

  ParseCmdLine = True

End Function


Private Function IsCscript()

  IsCscript = False

  If InStrRev(LCase(WScript.FullName), "cscript.exe", -1) Then
    IsCscript = True
  End If

End Function


Private Sub ShowUsage(bExit)

  WScript.Echo "Deletes Eventlog for Application, Security or System."
  WScript.Echo ""
  WScript.Echo "ClearEventlog 'Eventtype'"
  WScript.Echo ""
  WScript.Echo "Eventtypes: app (Application) or"
  WScript.Echo "            sec (Security)    or"
  WScript.Echo "            sys (System)"

  If bExit Then
    WScript.Quit(1)
  End If

End Sub

Benutzeravatar
d4v3
Beiträge: 35
Registriert: 4. Apr 2008 21:08

Re: System aufräumen

Beitrag von d4v3 » 20. Sep 2008 02:11

Hallo,

feine Sache, funktioniert bei mir tadelos, allerdings hab ich in der Ereignisanzeige noch
Microsoft Office Diagnostics und
Microsoft Office Sessions, die ich auch gerne leergeputzt hätte.
Habe das VBS schon erweitert und zwar wie folgt:

Code: Alles auswählen

    Option Explicit

    On Error Resume Next

    Dim LogType, EventLog, Entry

    If Not IsCscript() Then
      WScript.Echo "Execute script with CSCRIPT!"
      WScript.Quit(1)
    End If

    If ParseCmdLine(LogType) Then

      Set EventLog = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery _
                    ("select * from Win32_NTEventLogFile where LogfileName='" & LogType & "'")

      WScript.Echo "Clear Eventlog for " & LogType & "..."
      For each Entry in EventLog
        Entry.ClearEventlog()
      Next
      WScript.Echo "Eventlog deleted."
    End If

    WScript.Quit


    Private Function ParseCmdLine(LogType)

      ParseCmdLine = False

      If WScript.Arguments.Count = 1 Then
        Select Case WScript.Arguments(0)
          Case "app" : LogType = "Application"
          Case "sec" : LogType = "Security"
          Case "sys" : LogType = "System"
          case "off1": LogType = "Microsoft Office Diagnostics"
	  case "off2": LogType = "Microsoft Office Sessions"	 
          Case Else  : Call ShowUsage(true)
        End Select
      Else
        Call ShowUsage(true)
      End If

      ParseCmdLine = True

    End Function


    Private Function IsCscript()

      IsCscript = False

      If InStrRev(LCase(WScript.FullName), "cscript.exe", -1) Then
        IsCscript = True
      End If

    End Function


    Private Sub ShowUsage(bExit)

      WScript.Echo "Deletes Eventlog for Application, Security or System."
      WScript.Echo ""
      WScript.Echo "ClearEventlog 'Eventtype'"
      WScript.Echo ""
      WScript.Echo "Eventtypes: app (Application) or"
      WScript.Echo "            sec (Security)    or"
      WScript.Echo "            sys (System)"

      If bExit Then
        WScript.Quit(1)
      End If

    End Sub

Leider klappt das nicht: Er macht alles leer, nur eben den Office-Kram nicht.
Was muss ich noch ändern, damit das klappt?
Habe von VBS bzw. Programmierung im Allgemeinen nicht viel Ahnung. :(

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast