PDF-Icon in Sharepoint Foundation einbinden

Im Geschäft bin ich gerade ein SharePoint Foundation am installieren bzw. konfigurieren. Eines (der vielen) Probleme ist, dass bei PDF-Dokumenten kein Icon angezeigt wird, was das ganze etwas unübersichtlich macht. Das ganze kann aber recht schnell lösen. Dazu muss man das Icon für auf den Server kopieren und eine XML-Datei anpassen.
http://images.t-error.ch/blog/1379/sharepoint_vorher.jpg

Als erstes kopiert man dazu das PDF-Icon in einer Grösse von 16x16 Pixel auf den Server. Bei meinem Windows 2008 R2 Server, war das der folgende Ordner:
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\TEMPLATE\IMAGES

Dazu kann man das Icon benutzen: http://images.t-error.ch/blog/1379/icpdf.gif

Jetzt muss man noch die Datei DOCICON.XML anpassen, welche in diesem Ordner liegt:
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\TEMPLATE\XML

Der macht fügt man im Abschnitt ByExtension die folgende Zeile hinzu.
<Mapping Key="pdf" Value="icpdf.gif" OpenControl=""/>
Wichtig ist, dass der Dateiname gleich ist, wie der vom Bild.

Nun muss man auf dem Server mit dem Befehl iisreset noch den Webserver neustarten und dann werden die Icons schon angezeigt.
http://images.t-error.ch/blog/1379/sharepoint_nachher.jpg

Das ganze funktioniert natürlich auch mit den Icons von anderen Dateiendungen.

Access-based Enumeration und Windows 2008 R2

Vor bald drei Jahren habe ich mal einen Artikel über Access-based Enumeration bei eine Windows 2003 Server geschrieben.
Letzthin habe ich im Geschäft einen Windows 2008 R2 Fileserver in Betrieb genommen und wollte dort auch wieder ABE einschalten. Das ganze geht nun recht einfach und ohne die Installation von zusätzlicher Software.
Dazu öffnet man eine Management Console (Start -> Ausführen -> MMC) und fügt dort das Snap-in "Share and Storage Management" hinzu. In der Liste wählt man nun den Share, auf dem man die ABE einschalten will und klickt dann auf Advanced. In diesem Fenster kann man nun die ABE einschalten.
http://images.t-error.ch/blog/1325/abe.jpg

Dateien mit zu langem Namen löschen

Letzhin hatte ich wieder das Problem, dass ich eine Datei im Windows nicht löschen konnte, weil der Name zu lang ist. Dann kann man die Datei weder löschen noch umbenennen. Auch in der CMD kommt der folgende Fehler:
Der Dateiname oder die Erweiterung ist zu lang.

Eine Lösung ist den Pfad als separates Laufwerk einzubinden und schon kann man die Datei löschen. Dies geht mit dem Befehl subst.
Zu beachten ist, dass der Pfad am besten in Anführungszeichen geschrieben wird, dann gibt es auch keine Probleme mit Abständen im Pfad. In diesem Beispiel wird der Pfad als Laufwerk s: eingebunden, man kann natürlich jedes nicht benutzte Laufwerk verwenden.
subst s: "pfad"
s:
del "datei"

Die Dateien kann man nun natürlich auch über den Datei-Explorer löschen.
Zum Schluss kann man das Laufwerk wieder aushängen:
subst s: /d

Grub 2 nach Windowsinstallation wiederherstellen

Ich nutze auf dem Computer zuhause schon seit längerem Untuntu und bin sehr zufrieden damit. Einige Dinge (GPS, Spiele) laufen unter Ubuntu aber nicht darum habe ich paralell noch ein Windows XP installiert. Mit dem Grub Bootloader ist das ja kein Problem. Neulich musste ich aber mein Windows neu installieren, was ja ansich auch kein Problem ist. Bei der Installation überschreibt Windows aber den Bootloader und so kann man Linux nicht mehr booten. Hier darum eine kleine Anleitung wie man den Grub wieder installiert, so dass man Linux und Windows booten kann. Dazu benötigt man einfach eine Ubuntu Installations CD. Ich habe das ganze mit Ubuntu 9.10 durchgespielt.

Als erstes legt man die Ubuntu CD ins Laufwerk und bootet davon im Live Modus. So hat man ein Linux zur Verfügung, ohne dass man etwas ander Festplatte verändert. Das Problem ist aber, dass die Live CD den Grub 1 verwendet, die Installation aber Grub 2, aber das ist ein lösbares Problem.
Darum schreibt man nun als erstes den (alten) Grub in den MBR (Master Boot Record) der Festplatte. Da zu muss man die UUID der Bootpartition sowie der Name der Festplatte wissen. Am besten hängt man die Boot Partition über das GUI ein und gibt danach in der Shell den Befehl mount ein. Dort sieht man, wie die Partition eingebunden ist und auch die UUID der Partition. Wir brauchen wie gesagt die UUID der Partition und der Name der Festplatte. Ist die Parition die /dev/sda6 ist die Platte die /dev/sda. Im Normalfall ist eine IDE Platte die /dev/hda und eine SATA/SCSI die /dev/sda. Den Bootloader schreiben wir nun mit dem folgenden Befehl ({UUID} durch die entsprechende UUID ersetzen.
sudo grub-install --root-directory=/media/{UUID} /dev/sda

Bevor wir den Computer nun neustarten, müssen wir noch wissen, welche Parition die Root Partition ist. Also die Partition, die schlussendlich als / genutz werden soll. Gleiches vorgehen wie vorhin. Schnell einhängen und mit mount die Partition auslesen.
Jetzt können wir den Computer neustarten und die CD aus dem Laufwerk auslesen.

Beim neustart kommt nun der Grub im Konsolen Modus. Also keine Auswahl sondern nur eine Aufforderung etwas einzugeben. Nun müssen wir das System ein erstes mal "von Hand" booten. Zum Glück gibt es eine Autovervollständigung, die das ganze etwas einfacher macht. Als erstes gibt man die folgende Zeile ein:
linux /vmlinuz-2.6.31-20-generic root=/dev/sda6 ro quiet splash

Am einfachsten ist es nur linux /vmlinuz einzutippen und sich dann mit dem Tabulator die verschiedenen Kernel anzeigen zu lassen, so erwischt man auch immer den aktuellsten. /dev/sda6/ ist hier die Root Partition, dessen Name wir vorhin ausgelesen haben. (Das Tastaturlayout ist Englisch. Die Bindestriche und Slashes nimmt man am besten vom Numlock, das Gleichzeichen ist gleich links vom Backspace)
boot linux /vmlinuz-2.6.31-20-generic root=/dev/sda6 ro quiet splash

Nun ist der Kernel geladen und wir müssen nur noch Booten. Das geht mit demselben Befehl, nur noch mit einem boot davor.
boot linux /vmlinuz-2.6.31-20-generic root=/dev/sda6 ro quiet splash

Jetzt sollte das System wieder booten wie vor der Windows installation. Damit man das aber nicht bei jedem Start machen muss, muss man nun noch die neuste Version vom Grub installieren. Das geht recht simpel mit dem folgenden Befehl:
sudo gub-install --root-directory=/ /dev/sda

Wenn man das Windows nachträglich installiert, oder bei der Neuinstallation die Windows Partition komplett gelöscht und neu erstellt hat, muss man das Configfile vom Grub anpassen, damit auch Windows wieder gebootet werden kann. Das geht mit dem folgenden Befehl schnell und vollautomatisch:
sudo grub-mkconfig -o /boot/grub/grub.cfg

Beim nächsten Neustart sollte man nun wieder den Grub 2 mit der Auswahl Linux und Windows haben.

Energieoptionen über Gruppenrichtlinie verwalten

In gewissen Fällen kann es sinnvoll sein, wenn man die Energieoptionen von Windowscomputern zentral über Gruppenrichtlinien verwalten kann. Mit den Bordmitteln von Windows ist das nicht möglich, also muss man auf andere Hilfsmittel zurückgreifen.
Eine Möglichkeit ist der Import eines ADM-Templates in die Gruppenrichtlinie. Dadurch kann man die Energieoptionen dann über die Gruppenrichtlinien verwalten.

http://images.t-error.ch/news/1181/import.jpgDas ADM-template kann man bei Terra Novum herunterladen. Um das Template zu importieren öffnet man den Gruppenrichtlinieneditor, klickt mit der rechten Maustaste auf die Administrativen Vorlagen und dort auf Vorlagen hinzufügen / entfernen. Nun kann man die .adm Datei auswählen und hat die neuen Konfigurationsmöglichgkeiten schon importiert.

Jetzt hat man vier Einstellungen zur Verfügung.
  • Base Options: Die Verwaltung der Enegieoptionen (de)aktivieren
  • Options: Einige Einstellungen
  • AC Profile Scheme: Einstellungen für den Netzbetrieb
  • DC Profile Scheme: Einstellungen für den Batteriebetrieb
Bei den Base Options muss man fast nichts einstellen. Wenn man die Verwaltung der Energieoptionen verwenden will, muss die Einstellung nur Aktivieren, die restlichen Optionen sollte man so belassen wie sie sind.
http://images.t-error.ch/news/1181/base_options.jpg


Bei den Options kann man zum Bsp. konfigurieren, ob die per GPO konfigurierte Richtlinie die Benutzereinstellungen überschreiben soll.
http://images.t-error.ch/news/1181/options.jpg


Schlussendlich gibt es noch die Einstellungen AC- und DC Profile Scheme. Hier konfiguriert man, wie lange es dauert bis der Bildschirm in den Standby geht, die Festplatten ausschalten, oder der ganze Computer in den Standby geht. Die Einstellungen im AC Profile sind für den Netz- und die im DC Profile für den Batteriebetrieb.
http://images.t-error.ch/news/1181/ac.jpg

Problem mit CD-Laufwerk: Code 39

Heute hatte ich den Computer von einem Arbeitskollegen bei mir. Das Problem von der Kiste war, dass Windows das CD Laufwerk nicht richtig erkannt. Anfangs war ein defektes CD Laufwerk drin, welches gegen ein neus getauscht wurde und eben dieses wurde von Windows nicht richtig erkannt. Im Gerätemanager war das gerät zwar zu sehen, allerdings wurde dort die folgende Fehlermeldung angezeigt:
Der Gerätetreiber für diese Hardware kann nicht geladen werden. Der Treiber ist möglicherweise beschädigt oder nicht vorhanden (Code 39)

Das Problem kann man in der Registry recht einfach beheben. Zuerst muss man zum folgenden Schlüssel navigieren:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E965-E325-11CE-BFC1-08002BE10318}

Dort muss man nun die Einträge LowerFilter und UpperFilter löschen. Nach dem Neustart des Computers wird das Laufwerk nun richtig erkannt und funktioniert wie es soll.

Mit Windows 7 auf Samba-Shares zugreifen

Nach der Installation von Windows 7 hatte ich schon das erster Problemchen. Zwar konnte ich nicht mehr auf einen Sambashare zugreifen, das ganze scheiterte an der Authentifizierung.

Das Problem kann man allerdings mit einer Änderung an den lokalen Sicherheitsrichtlinie lösen. Zuerst öffnet man die Verwaltung über Start, Ausführen und dort secpol.msc

Nun Navigiert man nach Lokale Richtlinien und Sicherheitsoptionen. Dort stellt man die beiden folgenden Einträge um:

Netzwerksicherheit: LAN Manager-Authentifizierungsebene
auf
LM-und NTLM-Antworten senden

und
Netzwerksicherheit: Minimale Sitzungssicherheit für HTLM-SSP-basierte Clients (einschliesslich sicherer RPC-Clients)
auf
128-Bit-Verschlüsselung erfordern deaktivieren

Danach konnte ich wie gewohnt auf den Samba-Share zugreifen.

EPS-Dateien mit Gimp öffnen

Mit Gimp kann man ja eigentlich Dateien in fast jeden Grafikformat öffnen und bearbeiten. Als ich letzthin eine EPS-Datei öffnen wollte kam allerdings die folgende Fehlermeldung.
http://images.t-error.ch/blog/1024/gimp_eps.jpg


So muss man also zuerst Ghostscript herunterladen und installieren. Und danach eine Umgebungsvariable erstellen. Dazu klickt man mit der linken Maustaste auf den Arbeitsplatz und wählt dann Eigenschaften. Dort wählt man das Register Erweitert an und öffnet mit einem klickt Umgebungsvariabeln das neue Fenster. Bei den System Variablen klickt man auf Neu, gibt beim Namen GS_PROG und beim Wert C:\Program Files\gs\gs8.54\bin\gswin32c.exe ein. Nun kann man EPS-Dateien im Gimp öffnen.

Batchscript verzögern

Bei einem Logon-Script im Geschäft hatte ich das Problem, dass es ab und zu die Netzlaufwerke verbindet, bevor die Netzwerkevrbindung zum Server richtig steht. Beim Windows-Server kann man da eine Verzögerung einstellen, das es sich aber um eine VPN-Verbindung handelt, geht das da nicht.
So habe ich im Script eine Verzögerung von ca 3 Sekunden eingebaut. Da es unter Windows aber keinen "sleep" Befehl wie unter Linux gibt, musste ich da einen Workaround machen. Mit einem ping an eine unbekannte Adresse kann man etwas Zeit schinden und mit den richtigen Parametern geht das ganz gut:
ping -n 3 -w 1000 1.2.3.4>nul

Prozess in der CMD beenden

Mit den Bordmitteln von Windows XP und Vista ist es sehr einfach einen Prozess über die CMD oder aus einer Batch datei zu beenden. Dazu kann man den Befehl taskkill benutzen. Mit taskkill /? erhält man eine Übersicht der Parameter und pratischerweise muss man dazu nicht mal die ID des Prozesses wissen. Ein kleines Beispiel:
taskkill /F /IM notepad.exe