Microsoft Excel 2003 - benötigt sehr viel Zeit um Dateien vom Netzwerk zu öffnen

Problem :

Microsoft Excel 2003 - benötigt sehr viel Zeit um Dateien vom Netzwerk zu öffnen , dies war in meinem Fall direkt auf das Update "Office File Validation Add-In" zurück zu verfolgen. Eine Deinstallation dieses Add-Ins hat nur temporär geholfen da es beim nächsten Updaten wieder mit angeboten wird. In meinem Fall werden die Updates über WSUS ausgerollt weswegen ich einen Weg gesucht habe dieses Add-In zu deaktivieren.

Lösung :

1.) Alle Office Applikationen schließen
2.) Erstellt eine Reg Datei und kopiert diesen Inhalt hinein :
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Security]

[HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Security\FileValidation]
"EnableOnLoad"=dword:00000000

3.) importiert die Reg Datei und das Add-In ist zwar installiert aber deaktiviert.

Wer sich weiter einlesen möchte hier mehr zu diesem Add-In :

PCWelt : Exploit-Schutz-Office-File-Validation-jetzt-auch-fuer-Office-2003-2007
Microsoft : http://support.microsoft.com/kb/2501584

!! Microsoft hat sich sicher Gedanken gemacht diese Update auszurollen , wer den beschriebenen Weg ausführt ist selbst dafür verantwortlich !!

VBS / WSH Funktion um Meldungen auszugeben je nach Interpreter

Problem :

Wenn man ein VBS Skript schreibt und Meldungen ausgeben möchte stehen einem mehrere Wege zur Verfügung die gängigsten sind eine MsgBox und WScript.Echo das Echo wird meistens verwendet wenn das Skript über cscript.exe gestartet wird , startet man es dann mit wscript.exe bekommt man für jede Zeile die ein Echo enthällt eine gesonderte Messagebox (MsgBox)

Lösung :

Ich hab hier eine kleine Funktion geschrieben die ermittelt über welchen Interpreter wscript / cscript das Skript gestartet wurde und die Meldung anpasst.


Function ShowMessage(MSG,Titel)
Dim StrScriptInt : StrScriptInt = LCase(WScript.FullName)
' --- Check Interpreter
If Right(StrScriptInt,11) = "wscript.exe" Then
	MsgBox MSG,vbOKOnly + vbInformation,Titel
Else
	WScript.Echo Titel & "--------------" & vbCrLf & MSG & vbCrLf
End If
End Function

Neues Tool zum umziehen von Druckern

Problem :

Der Name des Druckservers hat sich verändert und soll jetzt automatisch beim anmelden der user in den verbundenen Drucker korrigiert werden.
Getestet mit Win 2000 / XP / 7

Lösung :

Ich hab mich ran gesetzt und eine neue Version ohne speichern auf File System Ebene geschrieben.

Hier die möglichen Parameter :


-o:[Servername] or /o:[Servername] = old print server
-n:[Servername] or /n:[Servername] = new print server
-l:[Logfile] or /l:[Logfile] = create an Logfile (path:filename)
-? or /? = shows this help

replace [Servername] with the hostname / ip-adress without [ and ]


Beispielaufruf sieht dann so aus :

Move_Printer.exe -o:ALTSERVER -n:NEUSERVER -l:C:\Logfile.txt


Download Tool : Move_Printer.exe (freier Download)

Hier der download des Source Codes : Source Code (nur für registrierte Mitglieder)

VBS Progress Bar

Problem:

Man möchte den einen Fortschrittsbalken in VBS anzeigen , leider bringt VBS diese Funktion nicht mit dadurch muss man den Internet Explorer verwenden

Lösung :

North Atlanta Web Design hat eine Super Klasse dafür geschrieben, so umgeht man den Weg über HTA

hier gehts zum Code : VBS Class ProgressBar

Überprüfen ob Prozess läuft mit VBS/WSH

Hier eine kleine Funktion die überprüft ob ein Prozess läuft oder nicht , sie baut auf VBS / WSH und WMI auf und liefert TRUE oder FALSE zurück.

Funktion :
Function CheckProcess(name)
'------------------ check for running process
	Dim ObjProcess
	Set ObjProcess = OBJWMI.ExecQuery("select * from win32_process where name='" & name & "' ")
	If ObjProcess.Count <> 0 Then
		CheckProcess = True
	Else
		CheckProcess = False
	End If
	Set ObjProcess = Nothing
End Function



diese Funktion kann z.B. so eingebunden werden

Beispiel :

Do
     BoolCkProc = CheckProcess("notepad.exe")
     WScript.Sleep 5000
Loop Until BoolCkProc = False



Benötigt wird natürlich das WMI interface

Dim StrComputer : StrComputer = "." '-- lokaler Rechner
Dim OBJWMI : Set OBJWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & StrComputer & "\root\cimv2")

VBS Logfile schreiben | Funktion

Funktion um ein Logfile in VBS zu schreiben , der neue Eintrag wird immer angehängt.

Benötigt einen Verweis auf
Dim ObjFso		:	Set ObjFso = CreateObject("Scripting.FileSystemObject")



Und die Variable FIL_LOG muss deklariert sein !

Dim FIL_LOG		:	FIL_LOG = "C:\" & Replace(WScript.ScriptName,".vbs",".log") 



Funktion :

Function WriteLog(Inhalt)
'------------------ Schreibt ein Logfile
	Dim FileOut
		Set FileOut = ObjFso.OpenTextFile(FIL_LOG,8,true)
		FileOut.WriteLine (Inhalt)
		FileOut.Close
		Set FileOut = Nothing
	End Function

“Das einzig sichere System müsste ausgeschaltet, in einem versiegelten und von Stahlbeton ummantelten Raum und von bewaffneten Schutztruppen umstellt sein.”
Gene Spafford (Sicherheitsexperte)