Fehlerbehandlung in VBS/WSH

Problem :

Es soll überprüft werden ob eine Aufgabe eines VBS/WSH Skriptes erfolgreich durchgeführt wurde.
Normalerweise stopt die Ausführen an jedem Fehler , ohne das dieser auswertbar bist.
In einigen Fälle wird aber ein Rückgabewert erforderlich diesen erreicht man indem man am Anfang
des Skriptes die Zeile

On Error Resume Next


einfügt. Der Status des Vorgangs kann dann mit

if err.number<>0 then
wscript.echo err.number, err.description
err.Clear
end if


überprüft werden. Wenn die Fehlerbehandlung wieder von VBS/WSH erledigt werden soll kann man das mit der Zeile

On Error Goto 0


erreichen

Sprache des Installierten Betriebssystem ermitteln

Problem :

Man muss herausfinden auf welcher Sprache das Betriebssystem läuft

Lösung :

Diese Funktion ermittelt die gewünschte Information über WMI

Benötigte Deklarationen :

Dim ObjWMI : Set ObjWMI = GetObject("winmgmts:\\.\root\CIMV2")
PUBLIC LANGID
PUBLIC LANGLE


Funktion :

Function GetLanguageID()
DIM colItems : Set colItems = ObjWMI.ExecQuery("SELECT * FROM Win32_OperatingSystem")
For Each objItem in colitems
LANGID = objItem.Locale
Next
Select Case LANGID
Case "0409" : LANGLE = "EN" : MsgBox "Language : English (American)"'
Case "0407" : LANGLE = "DE" : MsgBox "Language : Deutsch (Germany)"
Case "040c" : LANGLE = "FR" : MsgBox "Language : French (Standard)"
Case "0c0a" : LANGLE = "ES" : MsgBox "Language : Spain (Modern Sort)"
Case "040a" : LANGLE = "ES" : MsgBox "Language : Spain (Traditional Sort)"
Case "0410" : LANGLE = "IT" : MsgBox "Language : Italian (Standard)"
End Select
End Function


Kann beliebig mit den Codes von MS erweitert werden : Language IDs Microsoft

IE7 - zeigt keine Registerkarten mehr

Problem :

Der Internet Explorer 7 zeigt keine Registerkarten mehr an , die komplette Leiste für die Registerkarten fehlt.
Auch der Punkt "öffnen in neuer Registerkarte" ist ausgegraut.

Lösung:

Um dieses Feature zu nutzen müssen folgende Dateien xmllite.dll und ieui.dll im Ordner %windir%\system32 existieren und sauber registriert sein. Eine neu registrierung der Komponenten kann mit dem Befehl regsvr32.exe durchgeführt werden.


regsvr32 %windir%\system32\xmllite.dll
regsvr32 %windir%\system32\ieui.dll


Wenn diese Dateien nicht existieren hilft auch eine Installation des xmllite Updates von Microsoft.

Link : XML Lite Update Microsoft

Sollte diese Vorgehensweise nicht zum Erfolg führen , kann man hier noch andere Fehlerquellen ausschließen.
Link : http://msmvps.com/blogs/spywaresucks/archive/2006/10/24/203178.aspx

Aktuelles Datum , zweistellig ermitteln / ausgeben

Ist zwar eine einfach Funktion aber dennoch wenn man sie hat muß man sie nicht immer selber Tippen ;-)


Function GetDate()
'------------------ Ermittelt das aktuelle Datum
Dim Monat : Monat = Month(now)
Dim Tag : Tag = Day(Now)
Dim Jahr : Jahr = Year(now)
If Monat < 10 then
Monat = "0" & Monat
End If
If Tag < 10 Then
Tag = "0" & Tag
End If
GetDate = Tag & "." & Monat & "." & Jahr
End Function

ActiveX Steuerelemente (Intranet) erlauben

Problem :

Bei internen (Intranet) Anwendungen werden die ActiveX Steuerelemente geblockt

Lösung :

1.) Eine Datei anlegen mit der Endung .vbs z.B. set_activex.vbs
2.) Den unten aufgeführten Code in diese Datei kopieren
3.) Das Skript mit in das Loginscript aufnehmen z.B. start /B cscript.exe //NOLOGO [PFAD zum Skript]\set_activex.vbs

Nachdem das Skript beim Login durchgelaufen ist stehen alle ActiveX Berechtigungen auf Aktiviert



Option Explicit
' --------------------------------------------------------------------------------------------
' - Setz die sicherheit für die ActiveX Steuerelemente für die lokale Zone auf erlauben
' -
' - Source : Christopher Pope
' --------------------------------------------------------------------------------------------
Dim ObjWsh : Set ObjWsh = CreateObject("WScript.Shell")
DIm I
Dim RegZone : RegZone = "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1\"
Dim PopUpReg : PopUpReg = "HKCU\Software\Microsoft\Internet Explorer\New Windows\PopupMgr"

' -------- ActiveX Keys deklarieren
Dim RegArray(9)
RegArray(0) = "1001"
RegArray(1) = "1004"
RegArray(2) = "1200"
RegArray(3) = "1201"
RegArray(4) = "1405"
RegArray(5) = "2201"
RegArray(6) = "2000"
RegArray(7) = "1208"
RegArray(8) = "1209"
RegArray(9) = "120A"

On Error Resume Next

For I = 0 to Ubound(RegArray)
Call Set_AX_Allow(RegArray(I))
Next

'-------- PopUp Blocker deaktivieren
If ObjWsh.RegRead(PopUpReg) = "yes" Then
ObjWsh.RegWrite PopUpReg,"no","REG_SZ"
End If

WScript.Quit (1)


Function Set_AX_Allow(ID)
If ObjWsh.RegRead(RegZone & ID) <> 0 then
ObjWsh.RegWrite RegZone & ID,0,"REG_DWORD"
End If
End Function


Set_ActiveX.vbs
ActiveX

Ubuntu und Ubuntu basierende Systeme erkennen die Grafikkarte nicht

Sollte Ubuntu die verbaute Grafikkarte (ATI oder Nvidia) nicht erkennen bietet sich dieses Tool an um die Treiber zu installieren.

Link : http://albertomilone.com/nvidia_scripts1.html

Nachdem der Treiber installiert ist kann es vorkommen das die maximale Auflösung des Monitors 640x480 beträgt , das passiert meist bei Nvidia Karten (hatte noch nie eine ATI ;-) ) dann kann man natürlich NACH der Installation der Treiber den Bildschirm mit der folgenden Anleitung einrichten.


1.) ein Terminal öffnen
2.) sudo nvidia-xconfig eintippen und ausführen
3.) Monitor einstellen
4.) xorg.conf speichern
5.) Glücklich über die richtige Auflösung sein ;-)


Führt dieser Weg nicht zum Erfolg sollte die xorg.conf manuell verändert werden.


1.) Terminal öffnen
2.) sudo cp /etc/X11/xorg.conf /etc/X11/xorg.backup eintippen und ausführen (erstellt ein Backup der vorhanden Datei)
3.) sudo pico /etc/X11/xorg.conf eintippen und ausführen
4.) Den Monitor manuell in die Configdatei einpflegen --> http://wiki.ubuntuusers.de/XServer - Anleitung zum manuellen Verändern


Wenn es dann immer noch nicht funktionieren sollte macht es sinn die Installierten Treiber & geladenen Module zu überprüfen
“Das einzig sichere System müsste ausgeschaltet, in einem versiegelten und von Stahlbeton ummantelten Raum und von bewaffneten Schutztruppen umstellt sein.”
Gene Spafford (Sicherheitsexperte)