Okay, 2 Probleme, 1 Lösung:

Problem 1

Seit gestern hatte ich bei mir den Fall, dass meine Lesezeichenordner und teilweise auch die Lesezeichen in den Ordnern keine Namen mehr hatten. Siehe Screenshot. Vermutlich eine fehlerhafte oder unterbrochene Synchronisation. Wobei das komisch wäre da alle Lesezeichen in einer Dictionary-Array-Struktur stehen und ein partieller oder unterbrochener Schreibvorgang eher darin resultiert hätte, dass ab einem bestimmten Lesezeichen komplett Schluss ist. Bzw. die XML dort abrupt endet und direkt unbrauchbar wird. Egal.
Durch die feine Synchronisierung war das Problem jedenfalls kurzer Hand auf all meinen Rechnern verbreitet. Also Tipp 1 wenn jemand das Problem hat: erstmal Synchronisierung stoppen damit das Problem auf dem einen PC bleibt.

Problem 2

Vor der Lösung noch Problem 2 was ebenfalls dadurch gelöst wird: das ungewollte Löschen von Lesezeichen kann sehr ärgerlich sein. Zumal Chrome einen Löschvorgang nicht bestätigt haben will sondern einfach ausführt und es auch keine „Undo“ Funktion gibt. Fälschlicherweise etwas gelöscht empfiehlt sich folgendes:

Die Lösung

Am besten schließt ihr den Chrome nicht!
Geht direkt in euer Chrome Profilordner, meistens C:\Users\[user]\AppData\Local\Google\Chrome\User Data\Default\. „Default“ ist euer Profilname, falls ihr mit unterschiedlichen Profilen arbeitet.
Kopiert euch die Dateien Bookmarks und Bookmarks.bak an einen anderen Ort.
Das Bild zeigt den Speicherort der 2 Dateien "bookmarks" und "bookmarks.bak": c:\Users\Hannes\AppData\Local\Google\Chrome\User Data\Default\

Schließt den Chrome, benennt die Bookmarks in Bookmarks_alt um und die Bookmarks.bak in Bookmarks. Damit sollte der Stand der Lesezeichen der letzten Chrome Nutzung wieder aktiv sein. Seit dem erstellte Lesezeichen sind natürlich hinüber.

Ihr könnt die Dateien auch in einem Editor öffnen und zwischen der Bookmarks, Bookmarks.bak und anderen Sicherungen, die ihr vielleicht habt, manuell rumkopieren. Aber Finger weg wenn ihr den Aufbau der Datei nicht versteht sonst geht am Ende gar nichts mehr.

Ich bin vielleicht nicht der einzige und letzte Admin, der GIMP im Netzwerk silent, mit Logs via Batch installieren möchte. Also halte ich das hier kurz fest.

Ziel:

GIMP 2.6.11 soll in einer Domäne via Batch Startscript installiert werden, ohne dass der Nutzer etwas davon mitbekommt und diese Installation beeinflussen (z.B. verhindern) kann. Dabei sollen Logs erstellt werden. Für jeden ausführenden Computer wird eine Logdatei erstellt und falls auf einem Computer die Installation fehlschlägt wird zusätzlich eine ausführliche Logdatei der GIMP Installation zur Verfügung stehen.
Zusätzlich wird die Verteilung mit Hilfe von Clientfiltern gesteuert (natürlich optional).

Zuerst die coolste Info:

gimp-installer.exe /?

Die GIMP Entwickler haben eine Dokumentation zu Parametern, Fehlercodes und anderen Optionen in den Installer gepackt. Daraus lässt sich eine zuverlässige Installation basteln.

Die installer.bat:

@echo off
cls
title GIMP Installer
set wd=\\huiqb38c.user.hu-berlin.de\IQBInstitut\System\Sonstiges\GIMP
set chkd=\\huiqb38c.user.hu-berlin.de\IQBInstitut\System\Sonstiges\GIMP\checkdirs\%computername%
set log=\\huiqb38c.user.hu-berlin.de\IQBInstitut\System\Sonstiges\GIMP\logs\%computername%.txt
:: predef vars
set done=0
set gimpel=9999
set /a run=0

if exist %chkd% set done=1 & goto end

REM Clientfilter: nur die Computer aus der allowedPCs.txt dürfen installieren
for /f %%f in (%wd%\allowedPCs.txt) do if "%computername%"=="%%f" goto install
goto end

REM Clientfilter: die Computer aus der deniedPCs.txt dürfen nicht installieren
::for /f %%f in (%wd%\deniedPCs.txt) do if "%computername%"=="%%f" goto end

:install
set /a run=%run%+1
if "%run%"=="2" echo %date% %time% - Zweiter Versuch >> %log%
echo %date% %time% - Installation startet >> %log%
%wd%\gimp2611.exe /verysilent /norestart /nocancel /suppressmsgboxes /restartexitcode=3010 /log="%log%.log" /mergetasks="!desktopicon"
set gimpel=%errorlevel%

if "%gimpel%"=="0" md %chkd% & del /f /q %log%.log & echo %date% %time% - Installation erfolgreich abgeschlossen >> %log%
:: if "%gimpel%"=="3010" md %chkd% & del /f /q %log%.log & shutdown -r -f -t 120 -c "Um die GIMP Installation erfolgreich abzuschliessen muss der Computer neugestartet werden. Der Computer wird in 120 Sekunden neugestartet!"
if "%gimpel%"=="3010" md %chkd% & del /f /q %log%.log & echo %date% %time% - Installation abgeschlossen, 3010 - Restart eigentlich notwendig. >> %log%
if "%run%"=="2" echo %date% %time% # 2. Installationsversuch ebenfalls fehlgeschlagen, Fehlercode %gimpel% >> %log% & goto end
if "%gimpel%"=="1" echo %date% %time% # EL 1 - Initialisierung fehlgeschlagen, warte 600 Sekunden... >>%log% & ping 127.0.0.1 -n 600 >>nul & goto install
if "%gimpel%"=="2" echo %date% %time% # EL 2 - Abbruch durch den User, warte 600 Sekunden... >>%log% & ping 127.0.0.1 -n 600 >>nul & goto install
if "%gimpel%"=="4" echo %date% %time% # EL 4 - Install Error, warte 600 Sekunden... >>%log% & ping 127.0.0.1 -n 600 >>nul & goto install
if "%gimpel%"=="5" echo %date% %time% # EL 5 - Install Error, warte 600 Sekunden... >>%log% & ping 127.0.0.1 -n 600 >>nul & goto install
if "%gimpel%"=="9999" echo %date% %time% # hier ist etwas schief gelaufen... >> %log%

:end
if "%done%"=="1" echo %date% %time% - Bereits installiert >> %log%

Anpassungen:

In Zeile 4-6 natürlich die Serverpfade anpassen.
Der Clientfilter (siehe Zeile 14 bis 19) ist natürlich optional. Aktiviert Zeile 15 und 16 oder Zeile 19 für den gewünschten Effekt.
Je nach Clientfilter ist noch eine allowedPCs.txt oder eine deniedPCs.txt nötig. In dieser steht pro Zeile 1 Computername.
Die Parameter des Installers in Zeile 25 können selbstverständlich den eigenen Bedürfnissen angepasst werden. Siehe dazu die

installer.exe /?

Dokumentation (siehe oben).
Zeile 29 und 30 behandeln den Fall, wenn der Installer nach der Installation neustarten möchte. Zeile 29 startet den Rechner dann nach 2 Minuten automatisch neu und zeigt vorher eine Meldung an. Zeile 30 ignoriert das Verhalten und trägt es nur vollständigkeitshalber in die Logdatei ein.

Logs und Checkdirs:

Der Installer legt im Ordner \logs\ für jeden ausführenden Computer 1 Logdatei ab. Diese enthält bei einer erfolgreichen Installation beispielsweise folgenden Inhalt:
01.08.2011 18:14:01,26 – Installation startet
01.08.2011 18:15:26,59 – Installation erfolgreich abgeschlossen

Schlägt die Installation fehl wird in diesem Ordner eine zusätzliche Datei [computername].txt.log zur Verfügung stehen, in der ausführliche Debug Informationen des Installers gelistet sind. Zusätzlich steht in der [computername].txt eine Kurzbeschreibung des Fehlers.

Anhand des Checkdirs erkennt das Script, ob es bereits ausgeführt wurde. Dieses leere Verzeichnis wird nur bei den Fehlercodes 0 (erfolgreich) und 3010 (erfolgreich mit Neustart) erstellt.

Sowohl für die Logs als auch für die Checkdirs muss das ausführende Objekt Schreibzugriff auf diesen Serverordner haben. Beim Startscript das Computerobjekt, beim manuellen Ausführen das Benutzerobjekt.

Der meistbesuchteste Beitrag meines Blog ist praktisch seit Anbeginn des Posts: „Windows XP inkl. SATA Treiber erstellen – XP ISO Builder
Auch jetzt noch erreicht er fast täglich die meisten Besucherzahlen.

Auch ich habe am Wochenende mit meinem Beitrag gearbeitet. Auf meinem Tisch stand ein Thinkpad T60. Dieser sollte mit Windows XP bespielt werden und damit es – wie so oft im Leben – nicht zu einfach wird kam bei der Windows Installation natürlich dieser Output:

Es konnten keine installierten Festplattenlaufwerke gefunden werden.
Stellen Sie sicher, dass alle Festplattenlaufwerke eingeschaltet und richtig mit dem Computer verbunden sind
[…]“

Na gut, dann wollen wir mal.

Diesen Thinkpad T60 neugestartet, Windows XP CD in eingelegt, Winfuture XP ISO Builder heruntergeladen, Windows CD eingelesen (wird lokal kopiert) und die einzelnen Schritte durchgegangen.

Wichtig wird es jetzt bei den Controllertreibern, die bei der Windows XP Installation die Festplatten erkennen sollen. Benötigt wird eine txtsetup.oem, die irgendwelche Treiber enthält.
Okay, auf der Thinkpad Support Seite des Thinkpad T60 Models gibt es im „Hard Drive“ Bereich einen „Intel Matrix Storage Manager“. Dieser wird bestimmt alle Festplattentreiber beinhalten.
Heruntergeladen, entpackt, tatsächlich eine txtsetup.oem enthalten. Zusätzlich dazu habe ich noch den Festplattentyp des T60 herausgefunden und auf der Herstellerseite noch ein 2. Paket geladen und ebenfalls hinzugefügt.
Resultat:

Treiber rein, Winfuture Update Pack rein, Windows Einstellungen gemacht, das ganze HickHack halt. ISO erstellt, gebrannt und rein in den T60.

Reboot und:

Eine Windows XP mit Treibern, Einstellungen und Updates. Mal wieder erweist sich der XP ISO Builder als ein Wundertool!

Kein Tag ohne Google News? Stimmt.
Im Chrome gibt es jetzt Benutzerprofile (seit gestern v14.0.825.0 dev-m). Die Sache ist noch sehr grundlegend – fast schon lächerlich – realisiert, funktioniert aber.
Oben links wird das Icon des gerade gewählten Profils angezeigt. Mit Klick darauf bietet ein Kontextmenü das Erstellen, Wechseln und Löschen neuer Profile an.

Bei der Wahl eines Profils unter „Chrome Profiles“ (vorab muss ein weiteres Profil erstellt werden) öffnet sich ein neues Chrome Fenster mit den Einstellungen dieses Profils. Ein neu erstelltes Profil ist komplett vom Standardprofil abgekapselt und nimmt keinerlei Einstellungen mit, das Fenster gleicht dem einer Neuinstallation.

Ich denke hier ist noch einiges an Arbeit notwendig aber Google wird hier in den nächsten Tagen oder Wochen sicher viel drehen.
Nutzt ihr denn Browserprofile? Ich ehrlich gesagt nicht aber ich denke darüber nach einen Browser speziell auf Webentwicklerbedürfnisse und einen Browser für das Standardsurfen einzurichten.

Memo an mich,
Office 2010 per Kommandozeile unbemerkt repaieren:

setup.exe /repair "ProPlus" /config "SilentRepairConfig.xml"

Pfad zur .exe und zur .xml angeben, Produktnamen „ProPlus“ ggf. duch das vorhandene Produkt (steht in der setup.xml Zeile 3 am Anfang) ersetzen.
Setup.exe Parameter

SilentRepairConfig.xml erstellen, wenn im Ordner ProPlus.WW nicht vorhanden:

<Configuration Product="ProPlus">
<Display Level="none" CompletionNotice="no" SuppressModal="yes" AcceptEula="yes" />
<USERINITIALS Value="IQB" />
<USERNAME Value="IQB" />
<Setting Id="SETUP_REBOOT" Value="Never" />
</Configuration>

XML Elemente
Ganz wichtig ist das Element

Setting

, mit dem sich viele wichtige Dinge wie Reboot steuern lassen: Setup/Setting Properties

Grundlegende Batch:

set o2k10=\\server\pfad\Office2010
set log="\\server\pfad\Logs\%computername%.txt"
if exist %windows%\checks\repairo2k10 goto end
echo Repariere Office 2010...
%o2k10%\setup.exe /repair ProPlus /config %o2k10%\ProPlus.WW\SilentRepairConfig.xml
echo %date% %time% - Office repariert, errorlevel: %errorlevel% >> %log%
md %windows%\checks\repairo2k10
:end

Update:
Bei einigen Office Repairs verhält sich Office 2010 anders. Mal startet es den Computer direkt nach der Reperatur neu, mal nicht. Ich hatte < setting Id="SETUP_REBOOT" Value="Never" /> in die .xml genommen damit der Rechner nie neu gestartet wird. Das resultiert bei den Rechnern, die neu gestartet hätten, im Fehlercode 3010: ein Neustart wird benötigt (Mögliche Errorlevel). Die Computer haben dann ein fehlerhaftes Office 2010 solange der Rechner nicht neu gestartet wird. Andere Microsoft Programme (Visual Studio z.B.) laufen dann auch fehlerhaft.

Also passe ich die Batch an, speicher den errorlevel des Repair-Vorgangs ab und reagiere auf den 1030 Code mit einem Reboot nachdem das Script beendet wurde.

set o2k10=\\server\pfad\Office2010
set log="\\server\pfad\Logs\%computername%.txt"
if exist %windows%\checks\repairo2k10 goto end
echo Repariere Office 2010...
%o2k10%\setup.exe /repair ProPlus /config %o2k10%\ProPlus.WW\SilentRepairConfig.xml
set repairerrorlevel=%errorlevel%
REM weitere Befehle...
echo %date% %time% - Office repariert, errorlevel: %repairerrorlevel% >> %log%
REM weitere Befehle...
md %windows%\checks\repairo2k10
:end
if %repairerrorlevel%==1030 shutdown -r -f -t 120 -c "Um die Office Reperatur erfolgreich abzuschliessen muss der Computer neugestartet werden. Der Computer wird in 120 Sekunden neugestartet!"

Einfach < setting Id="SETUP_REBOOT" Value="Never" /> aus der .xml zu löschen würde den Computer direkt nach dem Repair-Vorgang neustarten, die Batch würde nicht zu Ende ausgeführt!

Problem:
Office 2003 installiert, Installationsdateien wurden auf einer beliebigen Nicht-System-Partition (z.B. D:\) im Ordner MSOCache abgelegt. Image des Computers gemacht, auf einen anderen Computer gespielt, wo eine solche Partition (z.B. D:\) nicht existiert, dieser Fehler wird bei jedem Start jeder Office Komponente erscheinen.

Lösung:
Die Office Local Installation Source (LIS) deaktivieren, neu erstellen oder einen neuen Ort für den MSOCache Ordner festlegen und diesen durch 1 Office Start neu erzeugen lassen. Danach erscheint der Fehler nicht mehr. Infos auch bei Microsoft.

Microsoft hat dafür bereits ein kleines Tool parat, das Local Installation Source Tool für Office 2003.
Mit dem Tool lässt sich dieses Feature aktivieren (MSOCache Ordner erstellen), der Ordner verschieben oder das Feature deaktivieren.

Alternativ kann man den Pfad auch in der Registry setzen:

HKEY_LOCAL_MACHINE\Software\Microsoft\Office\11.0\Delivery\{CLSID}

Dort muss beim Key „LocalCacheDrive“ der Laufwerkbuchstabe der gewünschten Partition rein.
Das ist dann natürlich sinnvoll für die Verbreitung eines neuen Pfades in einem größeren Netzwerk oder via Script.
Dann muss auf dieser Partition in der 1. Ordnerebene der MSOCache vorhanden sein, mit der typischen MSOCache Ordnerstruktur und vielen Cabs. Alternativ MSOCache durch einen Office Start nach dem Setzen des Keys neu erstellen lassen.

Folgendes Phänomen ist mir letzte Woche zum ersten Mal aufgefallen: Thunderbird nutzt gar nicht den Standarddrucker von Windows als seinen eigenen Standarddrucker sondern hat dort einen ganz anderen ausgewählt. Standarddrucker neu setzen, neustarten, hilft alles nichts.

Lösung:
In der prefs.js im Profilordner des Nutzers ist der von Thunderbird gesetzte Standarddrucker eingetragen.
Die Datei befindet sich hier (Win7):

c:\Users\[username]\AppData\Roaming\Thunderbird\Profiles\[rand.stuff].default\prefs.js

In dieser Datei findet sich, vermutlich relativ am Ende, folgende Zeile:

user_pref("print.print_printer", "Netzdrucker EG");

2 Möglichkeiten:
1. Zeile löschen setzt den Thunderbird Drucker auf den Windows Standarddrucker.
2. Die Zeile auf einen gewünschten Drucker abändern geht natürlich auch.