jqplot funktioniert nicht im Internet Explorer, wenn nicht der richtige Doctype gesetzt ist

Bei jqPlot handelt es sich um ein jQuery-Plugin mit dem man bequem Graphen und Charts zeichnen kann. Es ist wie jQuery browserunabhängig, sagt zumindest die Dokumentation. Leider ist das nicht die ganze Wahrheit.

Fehlt im HTML-Code der Seite, in der geplottet werden soll nämlich die explizite Angabe des Doctype, so funktioniert es im Internet Explorer nicht und der Zeichenbereich bleibt weiß. Das ergibt dann je nach Versionsständen von jQuery und jqPlot verschiedenste Fehlermeldungen. Hier mal ein kurzer Auszug aus dem internen Debugger des Internet Explorer:

jQuery 1.6.1 mit jqPlot 1.0.0b2_r792

SCRIPT5007: Für die Eigenschaft „initElement“ kann kein Wert abgerufen werden: Das Objekt ist Null oder undefiniert
jquery.jqplot.min.js, Zeile 30 Zeichen 2036

jQuery 1.7.2 mit jqPlot 1.0.0b2_r1012

SCRIPT5007: Für die Eigenschaft „initElement“ kann kein Wert abgerufen werden: Das Objekt ist Null oder undefiniert
jquery.jqplot.min.js, Zeile 57 Zeichen 2123

Fügt man nun einfach als erste Zeile in den HTML-Code den Doctype

<!DOCTYPE html>

ein, so funktioniert es mit einem Mal auch im Internet Explorer.

Microsoft .NET Framework 3.0 x86 Language Pack (KB928416) – Installation schlägt fehl

KB928416 installiert in der Regel auf Servern nicht freiwillig. Die komplizierte Möglichkeit um den Patch auf das System zu bekommen ist alle .NET Frameworks zu deinstallieren und neu zu installieren. Es geht aber auch einfacher

Start -> Ausführen -> mplayer2

Ist der Mediaplayer (Basisversion unter 2003 reicht) einmal gestartet gewesen läuft das Update in 99 von 100 Fällen fehlerfrei durch. Don’t ask.

Logon-Script: Gruppenmitgliedschaften per Batch auswerten

Ab und zu ist es hilfreich, Laufwerksverbindungen (oder ähnliches) anhand von ActiveDirectoy Gruppenmitgliedschaften einzurichten. Ist ein Benutzer Mitglied einer Gruppe soll er ein Laufwerk bekommen, ist er das nicht (mehr) soll das Laufwerk wieder verschwinden. Dieser Batch Script-Schnipsel übernimmt das:

REM ================================================================
REM /*
REM    Laufwerk X: - Gruppe "MP3-Sammlung"
REM */

net user /domain %username% | find/i "MP3-Sammlung"
if errorlevel 1 (
REM ----- Dieser Teil wird ausgefuert wenn NICHT Mitglied der Gruppe
net use x: /delete
) else (
REM ----- Dieser Teil wird ausgefuert wenn Mitglied der Gruppe
net use x: \servermp3sammlung
)

REM ================================================================

Windows Server 2008R2 mit Windows 7 Bug (CIFS)

Da dieser Bug mit einem „simple Workaround“ behoben werden kann, wird dieser Fehler vermutlich nie endgültig gefixt. Da das Problem beständig auftritt hier die Beschreibung und Lösung.

Seit geraumer Zeit ist es möglich, NTFS-Volumen in leere Ordner eines anderen NTFS-Volumens bereitzustellen. Das kann man aus verschiedenen Gründen tun, oft sieht man so eine Konstellation bei Fileservern die zwar eine einzelne Freigabe (oder einen großen DFS-Stamm) anbieten, diesen aber wegen der Fragmentierung, I/O-Last, Quoten oder Skalierungsproblemen auf mehrere LUNs (bzw. Laufwerke) aufteilen.

Der Fehler liegt nun im Windows 7 Explorer: Verbindet sich ein Client so eine Freigabe nun als Netzwerklaufwerk, verschwinden die bereitgestellten Ordner-Volumen darin sporadisch aus der Inhaltsansicht. Die Ordner mit den Volumen sind spontan einfach nicht mehr sichtbar. Der Zugriff ist (z.B. durch Pfadeintippen) noch möglich, aber die Ordner werden nicht mehr aufgelistet. Alle Programm die diese API verwenden (ja, auch die Shell und die Powershell) „sehen“ den Ordner nicht. Der Effekt ist reproduzierbar (bei ca. 80% aller Clients innerhalb von 48 Stunden) und beschränkt sich nicht auf Singlemounts, also auch wenn das Volumen zusätzlich auch einen Laufwerksbuchstaben hat. Einzig am Localhost ist der Effekt nie zu beobachten.

Die Lösung:

Un-Elegant wie hart, einfach den Explorer-Cache für Listing ausschalten. Das geht indem man in

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanWorkstationParameters

den (DWORD) Wert DirectoryCacheLifetime auf 0 setzt. Nach einem Reboot ist das Problem verschwunden.

Spannend: Der Effekt ist exklusiv der Kombination Windows7 mit Server2008R2 vorbehalten, andere Clients oder Server zeigen immer alle Inhalte an.