Archiv des Monats: März 2015

Installationsscript, das zuvor prüft, ob eine Software schon installiert ist

Nach dem ich hier bereits beschrieben habe, wie man Geogebra 5 per Gruppenrichtlinie ausrollen kann, folgt nun an dieser Stelle ein etwas abgeändertes Script, das zuvor prüft, ob eine gewünschte Software bereits vorhanden ist am System.

Falls diese Software fehlt, wird das (Installations-)Script gestartet, anderenfalls bleibt das System unberührt.

Dieses VBScript lässt sich sowohl zur Installation per Script, als auch für andere Zwecke nutzen…
[Anmerkung: das folgende Script installiert Geogebra unter der Voraussetzung, das Geogebra 5 noch NICHT vorhanden ist!]

' HINWEIS: als .vbs speichern

on Error resume next

'############# HIER den Displaynamen der Software angeben, nach der gesucht werden soll ##########

Wunschsoftware = "geogebra 5"

'#################################################################################################

myinstallation = "true"
Const HKLM = &H80000002 'HKEY_LOCAL_MACHINE
installedSoftwaresPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"

Set objReg = GetObject("winmgmts://./root/default:StdRegProv")

objReg.EnumKey HKLM, installedSoftwaresPath, arrSubkeys
For Each strSubkey In arrSubkeys
    Ret = objReg.GetStringValue(HKLM, installedSoftwaresPath & strSubkey, "DisplayName", SoftwareName)
    If Ret <> 0 Then
    objReg.GetStringValue HKLM, strKey & strSubkey, "QuietDisplayName", SoftwareName       
    End If
    If instr(1,SoftwareName,Wunschsoftware,1) >= 1 Then
        'WScript.Echo VbCrLf & "Display Name: " & SoftwareName
		myinstallation = "false"
    End If
Next

if myinstallation = "true" then

Set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.Run "msiexec.exe /i ""\\server\share\scripts\software\geogebra\GeoGebra-Windows-Installer-5.msi"" /qn ALLUSERS=2  /Lime C:\GeogebraProtokolldatei.txt", 0, True 
else

		' msgbox Wunschsoftware & " schon installiert!"
END IF

Problem: Classic ASP + IIS 7 + Microsoft Access Driver (*.mdb)

Bei der Migration von klassischen ASP-Anwendungen (.asp) auf einen IIS 7 (zb 2008 R2) kann (bzw. wird) es zu Problemen kommen, falls via ASP auf eine alte Access-DB zugegriffen wird.

Der Code dafür könnte zb so aussehen:

<%
set conn=server.createobject(„adodb.connection“)
‚ DSNlose Verbindung zu einer MS Access Datenbank
DSNtemp=“DRIVER={Microsoft Access Driver (*.mdb)}; „
DSNtemp=dsntemp & „DBQ=“ & server.mappath(„db1.mdb“)
conn.Open DSNtemp
%>

Obiger Code führt grundsätzlich zu KEINER Fehlermeldung, sondern zu einem allgemeinen Hinweis („An Error occurred…“), dass etwas mit den Code nicht stimmt…

Um detaillierte Fehlermeldungen zu aktivieren, muss man für den jeweilgen Ordner, in dem sich die Website befindet, folgendes aktivieren:

1.) Ordner auswählen
2.) auf das Icon „ASP“ doppelklicken (falls nicht vorhanden, muss dieses nachinstalliert werden)
3.)

detaillierteFehlermeldung
Nun bekommt man eine detaillierte Fehlermeldung, die wie folgt lautet:

Microsoft OLE DB Provider for ODBC Drivers error ‚80004005‘
[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

Die Ursachen hierfür sind:
1.) per default hat der IUSR (anonyme Internetuser) KEINEN Zugriff auf die Datenbank
2.) die Datenbankverbindung wird über den 64-bit Treiber hergestellt – und funktioniert daher nicht mehr…

Lösung:
1.) im Windows Explorer auf die .mdb dem IUSR  Schreibrechte einräumen (besser noch für den gesamten Ordner, in dem die DB liegt, da beim Öffnen auch eine .ldb angelegt wird)

2.) im DefaultAppPool 32-bit-Anwendungen aktivieren

32bitAktivieren
Nicht vergessen: den IIS nach der Aktion einen Neustart gönnen…

Am Code muss danach nichts geändert werden!