Bilder auf Fileserver über VBS mit ImageMagick automatisch verkleinern

Problem :

Welcher Admin kennst das nicht , die Benutzer machen Bilder mit einer 12 MP Kamera und legen die Bilder auch in dieser Auflösung auf dem Fileserver ab. Sicherlich ist das in dem einen oder anderen Fall sinnvoll , jedoch nicht immer. In meinem Fall ist es nicht nötig die Bilder in der höchsten Auflösung zu speichern da diese weder ausgedruckt noch weiterverarbeitet werden. Um die Dateigröße von Anfang an auf ein erträgliches Maß zu reduzieren habe ich dieses Skript erstellt. Es verwendet Imagemagick und benötigt eine Installation auf dem Rechner auf dem das Skript laufen soll.
Dieses Skript läuft bei mir einmal in der Woche um alle Bilder im Ordner und allen Unterordnern zu verkleinern. Es wird ein rekursiver Dateidurchlauf auf die definierte Erweiterung ausgeführt

Dieses Skript stellt folgende Parameter bereit

------------------------------------------------------------------------------------------
-q: = Quelle zum Startordner
-e: = Welche Datei Typen sollen konvertiert werden
-s: = Auflösung der Konvertierten Bilder
-j: = Qualität für die Output Bilder (JPG 1-100 , PNG 1-9)
-l: = Schreibt ein Logfile mit an den angegeben Ort
wenn kein Wert übergeben wird , wird kein Logfile erzeugt
------------------------------------------------------------------------------------------


Download :

ImageMagick
konvPic.vbs

Erklärung :

Um über ImageMagick zu konvertieren muss folgendes Object instanziert werden.
Dim ObjImg  : Set ObjImg = CreateObject("ImageMagickObject.MagickImage.1")


Dies kann dann so angesprochen werden.
ObjImg.Convert QUELLDATEI , "-resize" , AUFLÖSUNG , "-format" , "jpg" , "-quality" , QUALITÄT , ZIELDATEI

man kann auch anstelle von ObjImg.Convert die Funktion ObjImg.Mogrify verwenden. Der Unterschied zwischen .Convert und .Mogrify liegt darin das .Convert eine neue Datei anlegt und .Mogrify die vorhandene überschreibt.

Sollte ein Fehler auftreten das das ActiveX Element nicht erstellt werden kann liegt das daran das entweder die falsche Imagemagick Version installiert ist oder das Skript über den Pfad C:\Windows\SysWOW64\cscript.exe gestartet werden muss.

NAS Thecus N7700PRO / N5500 - Zeit läuft nicht synchron zum AD

Problem :
Die Zeit der NAS Systeme N7700PRO / N5500 von Thecus laufen mit der Zeit nicht mehr synchron zum Active Directory. Dies liegt vermutlich daran das Linux die Zeit vom Mainboard abgreift. In der heutigen Zeit können hier schonmal Abweichungen von bis zu 10 Sekunden in 24 Stunden auftreten. Irgendwann verliert das NAS dann das AD je nach GPO (normalerweise 5 Minuten Zeitunterschied). Leider haben alle Versuche dieses Verhalten über die GUI zu ändern nicht funktioniert.

Lösung :
Das Problem wurde hier so gelöst das ich ein Bash Skript erstellt habe das im Cron alle 24 Stunden aufgerufen wird. Da auf diesen Systemen von Thecus ntpdate vorhanden ist habe ich dieses auch verwendet. Natürlich wird zum Thecus ein SSH Zugang benötigt

Erstellt ein Skript mit diesem Inhalt :
#!/bin/bash
ntpdate -b dc.dom.local


dc.dom.local


dieses Skript kann man dann über cron z.B. täglich um 12 Uhr ausführen lassen.
Der Eintrag für crontab könnte z.B. so lauten.

0 12 * * * /raid0/data/scripts/NTP_SYNC.sh > /dev/null 2>&1

OwnCloud 4.5.1 auf Linux System .htaccess

Problem :

Bei Owncloud kann die Seite nicht angezeigt werden. Es erscheint immer wieder der Fehler mit Error Document is not access or available.

Lösung :

In der Configuration der virtuellen Seite oder des Server muss der Apache folgende konfiguration mitbekommen.

Options FollowSymLinks
AllowOverride All


in allen Foren die ich gefunden hatte stand nur das AllowOverride ALL aktivert sein muss jedoch kein Hinweis auf FollowSymLinks ;-)

VBS / WSH Funktion um Array zu füllen

Problem :
Man möchte ein Array erstellen und das mehrmals im Skript mit einer ReDim Anweisung

Lösung :
Um den ganzen Code nicht immer in die Länge zu ziehen hier eine Funktion

Aufruf :
Davor muss ein Array definiert sein dann kann man die Funktion mit einer Textdatei als Parameter starten.
Die Textdatei wird dann zeilenweise eingelesen und das Array wird erstellt.

Dim TestArray : TestArray = Array()
TestArray = FillArray(Beispieldatei)


Funktion :

Function FillArray(CFG)
Dim ARRCnt : ARRCnt = 0
Dim ARR	   : ARR = Array()
If ObjFso.FileExists(CFG) Then
Set Dummy = ObjFso.OpenTextFile(CFG)
Do Until Dummy.AtEndOfStream
Zeile = Trim(Dummy.ReadLine)
If Not Left(Zeile,1) = "#" Then
ReDim Preserve ARR(UBound(ARR)+1)
ARR(ARRCnt) = Zeile
ARRCnt = ARRCnt + 1
End If
Loop
End If
FillArray = ARR
Set Dummy = Nothing
Erase ARR
End Function

Win 7 / Win XP - Access Anwendung funktiniert nicht

Problem :

Eine Access Anwendung die unter Windows 7 SP1 kompiliert (Microsoft Access) wurde funktioniert nicht in älteren Windows Versionen.

Grund :

Eine Access Anwendung die unter Windows 7 SP1 kompiliert wurde verwendet die neuen IIDs von Windows 7 diese stehen in älteren Betriebssystemen nicht zur Verfügung weswegen die Anwendung nicht funktioniert.

Lösung :

Installieren des Microsoft Patch : ADO PATCH Win7 / 2008 Server

Outlook 2010 - öffentlicher Ordner / Kalender kann nicht als Favorit hinzugefügt werden

Problem :

Ein Benutzer kann einen öffentlichen Kalender nicht als Favorit hinzufügen. Wenn man den Kalender hinzufügen will kommt keine Fehlermeldung es wird alles ausgeführt jedoch taucht der Kalender nicht unter "Kalender" auf.

Lösung :

Hier hat es geholfen Outlook mit dem Parameter /resetnavpane zu starten dannach war alles wieder i.O.

/resetnavpane = Der Navigationsbereich für das aktuelle Profil wird gelöscht und erneut generiert.

Quelle : Outlook 2010

Übersicht über Outlook Parameter : Outlook 2003 | Outlook 2007 | Outlook 2010
“Das einzig sichere System müsste ausgeschaltet, in einem versiegelten und von Stahlbeton ummantelten Raum und von bewaffneten Schutztruppen umstellt sein.”
Gene Spafford (Sicherheitsexperte)