Archiv der Kategorie: Deployment

OneNote 2010 und Office 365 for Business

Wir haben immer noch Office 2010 im Einsatz. Wenn man bei unserer Installation versucht, mit OneNote 2010 eine Datei auf OneDrive zu öffnen, erhält man die Fehlermeldung:

“Leider muss zum Öffnen dieses Dokuments auf dem Computer eine unterstützte Version von Microsoft OneNote ausgeführt werden sowie ein Browser, der das Öffnen von Dateien direkt aus Office Online unterstützt.”

Der Link “Problembehandlung” führt auf diese Webseite, auf der auch die Lösung beschrieben ist. In unserem Fall fehlt die “Unterstützung für Microsoft SharePoint Foundation”.

image

Man kann sich über “Systemsteuerung” –> “Programme” –> “Programme und Funktionen” eine Liste der installierten Programme anzeigen lassen. Dort wählt man “Microsoft Office Professional Plus 2010” und klickt auf “Ändern”. Nun kann man “Features hinzufügen oder entfernen” auswählen.

image

Bei unserer Installation ist “Microsoft SharePoint Workspace” nicht verfügbar. Hier kann man “Von Arbeitsplatz ausführen” auswählen.

image

Danach kommt beim Öffnen wie gewünscht ein Fenster, in dem man seine Anmeldedaten eintragen kann.

image

Nun hat sich OneNote verbunden und man kann nun normal mit der lokalen Version von OneNote arbeiten.

image

Man kann dies in einem Netzwerk auch automatisieren. Dazu nimmt man die originalen Installationsdateien und startet “setup.exe /admin”. Damit startet das “Microsoft Office-Anpassungstool” (OCT) mit dem man eine neue Setupanpassungsdatei erstellen kann.

image

Die einzige Änderung, die man vornimmt, ist das Hinzufügen des Features “Unterstützung für Microsoft SharePoint Foundation”.

image

Nun speichert man die MSP-Datei.

image

Diese MSP-Datei kann nun auf alle Computer angewandt werden, z.B. mit SCCM.

msiexec.exe /p OneNote_Office365.msp /qn

Unglücklich ist, dass bei der Erstkonfiguration weiterhin nur ein privates Microsoft Konto akzeptiert wird.

image

image

image

Erst wenn man in diesem Anmeldefenster auf “Abbrechen” klickt, wird das zweite Fenster mit der Office365 Anmeldung angezeigt.

image

Dieses funktioniert dann wie gewünscht.

Schulhauslizenz von Young World 2 installieren

Die PH Luzern hat eine Lernsoftware zu Young World erarbeitet und stellt diese den Schulen von Luzern kostenlos zur Verfügung. Schulen von anderen Kantonen können das Lehrmittel über diesen Anbieter beziehen.

Wir haben für unsere Primarschule eine Lizenz gekauft und nun sollte ich eine Installation für die entsprechenden Computer erstellen. Auf einem beiliegenden Zettel wird vorgeschlagen, das Programm auf einem Server zu installieren und dann eine entsprechende Verknüpfung zu erstellen, die man dann ja auch irgendwie auf die Clients verteilen müsste. Da keine zentrale Datenbank oder ähnliches gepflegt wird, ist mir eine lokale Installation auf den Clients viel sympathischer, da dann bei der Anwendung keine grossen Datenpakete wie Audiofiles übers Netzwerk fliessen.

image

Das Programm schlägt C:\Program Files (x86)\English_YW2 als Zielverzeichnis vor. Bei einer späteren Verteilung könnte das Probleme mit vorhandenen 32bit Windows 7 Installationen geben, die wir auch immer noch im Einsatz haben.

image

Daher habe ich die Installation auf C:\Lernprogramme\English_YW2 verlegt.

image

Die Installation besteht aus einem reinen Kopiervorgang (und dem Erstellen der dem Installationspfad angepassten Verknüpfungen).

image

Da das Programm nichts anderes benötigt als die Dateien im Ordner, kann man nun diesen Ordner und die Verknüpfung (auf den richtigen Pfad) speichern und die virtuelle Maschine wieder auf den Grundzustand zurücksetzen.

Nun kann man ein Skript zur Installation erstellen, das die Dateien auf den lokalen Client kopiert.

@echo off
REM Ordner English_YW2 auf c:\Lernprogramme\ kopieren
robocopy %~dp0\English_YW2 c:\Lernprogramme\English_YW2 /s
REM Verknuepfung in Startmenue kopieren
robocopy „%~dp0\English Young World 2“ „C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Lernprogramme“
REM Return exit code to sccm
exit /B %EXIT_CODE%

image

Nun kann man mit SCCM den ganzen Ordner auf einen Verteilungspunkt verteilen und als Programm das install.cmd Skript ausführen.

image

Wie oben schon angetönt wäre eine andere Möglichkeit, dass man die Software auf einem Server installiert und dann nur die Verknüpfung auf die Clients verteilt. Das könnte man auch mit Robocopy erledigen oder über die Group Policy Preferences. Dies verursacht dann aber mehr Netzwerklast im Einsatz und vor allem installiere ich nicht gerne Clientsoftware auf Servern. Seit der Virtualisierung von Servern ist dies zwar auch etwas entschärft, man kann ja einfach noch einen zusätzlichen Applikationsserver erstellen, auf dem keine wichtigen anderen Dienste laufen.

Man merkt also leider auch dieser neueren Lernsoftware an, dass bei der Erstellung nicht an grössere Netzwerke und automatisierte Verteilung gedacht wurde. Wünschenswert wären Parameter für die automatisierte Installation im Stil von setup.exe /”ich möchte eine automatische Installation” /”ich möchte kein Desktopsymbol” /”Pfad für die Installation” /”Pfad zu einem allfälligen Logfile”.

Java 32bit EXE auf 64bit Windows verteilen schlägt fehl

Bisher habe ich die jeweils neueste Version von Java immer gemäss dieser Anleitung verteilt. Dabei hat man aus der EXE Datei die MSI Datei extrahiert (und dann mit Orca angepasst). Dieses Vorgehen wird aber schon länger nicht mehr von Oracle unterstützt, daher wollte ich bei der neuen Version den von Oracle empfohlenen Weg einschlagen.

image_thumb

Gemäss Oracle kann man die exe Dateil silent installieren. Alternativ bieten sie auch weiterhin ein MSI an, das aber nur kostenpflichtig erhältlich ist:

image_thumb4

Vielleicht wär das ja zahlbar und sicher praktisch. Eine Suche war dann aber ziemlich ernüchternd… (CHF9,500.00 – CHF11,668.00)

image_thumb5

Also versuchte ich die EXE Datei, die man von www.java.com herunterlädt, gemäss der Beschreibung von Oracle silent zu installieren.

image

Statt mit dem kostenlosen Download zu beginnen, wählt man alle Java-Downloads und dann die gewünschte Offline Installation aus. Da wir mit dem 32bit Internet-Explorer arbeiten, sollte auch die Java Installation für 32bit ausgewählt werden, unabhängig davon, ob ein 64bit Windows installiert wurde.

image

Um die Installation zu steuern, kann man ein ”Configuration File” mitgeben oder Optionen für die “Command-Line” Installation anfügen. Die Optionen sind die gleichen, die man auch für das “Configuration File” benutzen kann und finden sich hier.

Dies ergibt dann für meine Bedürfnisse folgende Installation:

jre-8u25-windows-i586.exe AUTO_UPDATE=Disable /s

image

Ein Problem dabei ist, dass die alte Version (in meinem Fall Java 7 Update 67) nicht deinstalliert wird.

image

Um diese Version zu deinstallieren, kann man den Befehl

msiexec /x {26A24AE4-039D-4CA4-87B4-2F03217067FF} /qn

verwenden. Bei der neuen Version von SCCM (ab 2012) kann man auch angeben, dass die alte Version gelöscht werden soll, wenn man die neue installiert.

Leider funktioniert diese Vorgehensweise nicht auf 64bit Computern für die 32bit Javaversion (obwohl das der von Oracle empfohlene Weg für eine silent Installation ist), wenn der Befehl über den System Account ausgeführt wird (wie meistens bei Softwareverteilung).

Die EXE Datei extrahiert zuerst ein MSI. Wenn man das als lokaler Administrator durchführt, wird das MSI in c:\users\<username>\appdata\locallow\sun\java\jre<versionsnummer> extrahiert und dann ausgeführt. Wenn der Systemaccount die EXE Datei ausführt, wird die 32bit Version in c:\windows\syswow64\config\systemprofile\appdata\locallow\sun\java\… entpackt, die 64bit Version in c:\windows\system32\… (ist zwar nicht ganz logisch mit 32 und 64, ist aber so…).

image

Der Windows Installer von einem 64bit Windows ist aber auch eine 64bit Anwendung und sucht die Datei nachher im 64bit Ordner c:\windows\system32\… wo er sie nicht finden kann, was dann mit einem Fehlercode 1619 quittiert wird, den man normalerweise gar nicht zu Gesicht bekommt, weil SCCM (oder andere Deploymentlösungen) die Installation silent mit dem System-Account durchführen…

image

Nochmals kurz zusammengefasst …

  • Oracle empfiehlt eine silent Installation mit der EXE oder mit dem kostenpflichtigen MSI für etwa CHF 10’0000.-
  • Wählt man die Installation mit der EXE Datei, kann man ein 32bit Java nur auf ein 64bit Windows installieren, wenn der Benutzer zwar lokale Adminrechte hat, aber nicht der System-Account ist.
  • Und schon ist man in der Sackgasse… Danke für die Empfehlung, Oracle.

Es gibt Wege, wie man auch das hinbiegen könnte (wie dieser, der einen Ordner vorab erstellt und dann einen Junction Point benutzt, um dem System vorzugaukeln, dass der Ordner “system32” der gleiche ist wie “syswow64”. Aber ich gehe doch lieber den alten Weg über das extrahierte MSI, der von Oracle nicht mehr unterstützt wird…

Böse, wer dahinter Kalkül von Oracle vermuten würde, das teure MSI zu verkaufen Zwinkerndes Smiley

Arbeiten mit dem System-Account

Wenn über SCCM z.B. eine Softwareinstallation auf einem Client initiiert wird, führt der Client die Befehle unter dem System-Account “nt-autorität\system” aus. Wenn nun ein Skript z.B. unter einem lokalen Administrator läuft, aber über SCCM nicht, kann die Fehlersuche deutlich vereinfacht werden, wenn man Befehle unter dem System-Account ausführen kann.

Dazu benötigt man PsExec aus den PSTools von Windows Sysinternals.

Weiterlesen

VLC Media Player verteilen

Nachtrag: Neu verteile ich das MSI vom VLC Media Player.

Diese Anleitung ist zwar schon älter, funktioniert aber bis und mit Version 3.0.3. Ganz unten stehen Bemerkungen zu den einzelnen Versionen.

Bisher haben wir den Mediaplayer benutzt, um Filme abzuspielen. Diesen habe ich auch um weitere Codecs erweitert, damit man möglichst viel abspielen kann.

Trotzdem hat sich gezeigt, dass damit nicht alles gelöst werden kann und so wollte ich den VLC Player verteilen. Obwohl es sich dabei um eine weitere Software handelt, die man regelmässig aktuell halten muss, da sie mit dem Internet kommuniziert und damit über allfällige Sicherheitslücken Malware auf ein System kommen könnte.

Eine Möglichkeit wäre, VLC mit Silent-Parametern zu installieren, dann gibt es aber auch eine Desktopverknüpfung und eine Abfrage beim ersten Start.

image

Ausserdem scheint gemäss Internet dann ein Upgrade auf eine neue Version nicht zu funktionieren. Mit dem Silentparamter /S wird die Abfrage unterdrückt, ob die alte Version erneuert werden soll und so bleibt die Installation stehen. Dies habe ich aber nicht selber überprüft.

Besser schienen mir da die verschiedenen Anleitungen, die das Installationsprogramm anpassen, bevor es verteilt wird.

Um die Installation anzupassen, muss man NSIS (nullsoft scriptable install system) herunterladen und installieren.

Das entsprechende NSIS Script, um die Installation anzupassen, ist nicht in allen Versionen vom VLC Player enthalten. Am besten verwendet man die 7z Version vom FTP Server.

Nun kann man die Datei “vlc.win32.nsi” mit einem Editor öffnen (z.B. mit Notepad++) und anpassen.

Standardsprache
Hier muss man Deutsch ausschneiden und vor dem ersten Eintrag wieder einfügen. Der erste Eintrag unter “Language files” wird zur Standardsprache.

image

Verknüpfungen
Da deaktiviere ich alle Verknüpfungen, ausser derjenigen im Startmenü, die das Programm startet. Dazu kann man die Zeilen einfach mit einem führenden Semikolon auskommentieren.

image

Fragen beim Start
Damit die Fragen beim Start (Bild ganz oben) nicht kommen, kann man die verbleibende Verknüpfung um folgenden Eintrag ergänzen:


--no-qt-privacy-ask --no-qt-updates-notif

image

Fehler beheben
Leider ist im Skript ein Fehler, den man noch beheben muss. Die folgenden Zeilen haben einen falschen Schrägstrich. Statt einem normalen Slash muss ein Backslash gesetzt werden.

image

Wenn man diesen Fehler nicht behebt, bekommt man folgende Fehlermeldung.

image

Am Schluss kann man die Datei speichern und schliessen. Um ein angepasstes Setup zu erhalten kann man einen Rechtsklick auf “vlc-win32.nsi” machen und “Compile NSIS Script” auswählen.

image

In NSIS wird angegeben, wohin die neu erstellte EXE-Datei gespeichert wird (in dieser Version im gleichen Verzeichnis, wie der entpackte Ordner).

image

Ich ändere jeweils noch den Namen von vlc-2.1.3-win32.exe auf vlc-aktuell.exe, damit die Version nicht im Namen steht. So kann man mit SCCM später einfach die Datei ersetzen und die Verteilung erneut auslösen lassen.

Diese angepasste Version kann man nun mit dem Silentparameter /S verteilen:

vlc-aktuell.exe /S

Nachtrag
Bei der Version 2.1.5 war das NSIS Skript leider auch bei der 7z Version vom FTP Server nicht dabei. Daher habe ich die Version 2.1.3 heruntergeladen, bei der es noch dabei war. Man kann dann folgende Dateien resp. Verzeichnisse in den Ordner mit der neuen Version kopieren:

  • Verzeichnis helpers
  • Verzeichnis languages
  • Verzeichnis NSIS
  • spad.nsi
  • spad-setup.exe
  • vlc-win32.nsi

Da auf diesem Weg ein altes NSIS Skript verwendet wird, muss man zusätzlich zu den oben beschriebenen Änderungen noch die Versionsnummer anpassen.

image

Nachtrag 2
Perfekt. Bei der Version 2.2.0 ist das NSIS Skript wieder dabei…

Nachtrag 3
Bei der Version 2.2.6 ist das NSIS Skript wieder nicht mehr dabei. Daher habe ich wieder von 2.2.4 die im Nachtrag (1) beschriebenen Dateien und Ordner kopiert und entsprechend angepasst. Zusätzlich musste ich dieses Mal noch die 3 Manifest Dateien

  • axvlc.dll.manifest
  • npvlc.dll.manifest
  • vlc.exe.manifest

in den 2.2.6 Ordner kopieren.

Nachtrag 4 (Version 3.0.0)
Bei der Version 3.0.0 ist das NSIS Skript auch nicht dabei. Man bekommt die Daten z.B. aus der Version 2.2.5.1 und kann der Anleitung bis und mit Nachtrag (1) folgen. Die Dateien aus Nachtrag 3 werden nicht benötigt.

Anmeldeprobleme nach Installation von IE10

Mit IEAK10 habe ich eine angepasste Installation vom Internet Explorer 10 erstellt und diese über SCCM verteilt. Obwohl ich das Paket an verschiedenen Computern getestet habe, gab es Probleme nach der Verteilung. Benutzer, die sich zum ersten Mal an einem Computer anmelden wollten, bekamen folgende Meldung:

“Die Anmeldung des Dienstes “Benutzerprofildienst” ist fehlgeschlagen. Das Benutzerprofil kann nicht geladen werden.”

image 

Wenn man im Internet nach dieser Meldung sucht, findet man viele Einträge, die sich auf den Knowledgebase Artikel 947215 beziehen. Dort wird unter “Method 1” beschrieben, wie man fehlerhafte Profile mit der Endung .bak manuell in der Registry so anpasst, dass sich der User wieder anmelden kann. Dies war bei uns aber nicht das Problem, es gab keine fehlerhaften Ordner in der Registry, es konnten sich ja gerade die User nicht anmelden, für die noch kein Profilordner in der Registry erstellt wurde.

In den Logfiles fand ich einen Eintrag mit Ereignis-ID 1509 und dem Hinweis, dass die Datei c:\Users\Default\AppData\Local \Microsoft\Windows\Temporary Internet Files\SQM\iesqmdata_setup0.sqm nicht vom Default Profil in das neue Profil kopiert werden konnte.

image

Die oben genannte Datei wird scheinbar bei der Installation des mit IEAK erstellten Internet Explorer 10 Pakets erstellt und mit falschen Berechtigungen versehen. Wenn sich nun ein neuer User anmelden möchte, wird das Kopieren des Default Profiles abgebrochen, weil diese Datei falsche Berechtigungen aufweist.

Scheinbar gab es dieses Problem schon bei der Verteilung von Internet Explorer 9. Wenn man die Datei manuell löscht, können sich auch wieder neue Benutzer anmelden.

Also habe ich in SCCM ein Programm erstellt, das diese Datei löscht:

cmd.exe /c del “c:\Users\Default\AppData\Local\Microsoft\Windows\Temporary Internet Files\SQM\iesqmdata_setup0.sqm” /f

image 

Das funktioniert, aber erst nachdem das Programm ausgeführt wurde, was je nach Einstellung des SCCM Clients länger dauern kann. Wenn also die Computer gestartet werden und sich direkt ein neuer User anmeldet, kann es sein, dass es nicht funktioniert.

Also musste ich es über die Gruppenrichtlinien lösen. Über “Computerkonfiguration” –> “Einstellungen” –> “Windows-Einstellungen” –> “Dateien” kann man eine Datei schon beim Computerstart löschen.

image

Schriftart verteilen

Um eine neue Schriftart auf verschiedene Computer zu verteilen, muss man zwei Dinge erfüllen.

  • Die Schriftart muss in den Ordner c:\windows\fonts kopiert werden.
  • In der Registry muss unter HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts eine neue Zeichenfolge mit dem Namen der Schrift als Name und dem Namen der Datei als Wert erstellt werden.

image

Diese beiden Dinge kann man auf unterschiedlichem Wege erreichen, z.B. mit den Group Policy Preferences. Da ich aber Software sonst auch mit SCCM verteile, wollte ich auch den neuen Font über SCCM verteilen. Also habe ich ein Paket mit der gewünschten Schriftart, der Registrydatei und einem Skript erstellt.

Das Skript lautet:

@echo off
robocopy %~dp0 "%windir%\fonts"  gazzarelli.ttf
regedit.exe /s "%~dp0gazzarelli.reg"
REM Return exit code to sccm
exit /B %EXIT_CODE%

image

Nun kann man in SCCM noch ein Programm erstellen, das das Skript ausführt.

cmd.exe /c install.cmd

Nach der Ausführung des Programms wird ein Neustart benötigt, damit die Schrift in einem Programm wie Word ausgewählt werden kann.

Probleme mit Updates bei build&capture

Microsoft veröffentlicht seine Updates jeweils am Patch Tuesday. Danach verteile ich die Updates jeweils mit SCCM. Zusätzlich dazu erstelle ich mit einem sogenannten build&capture Vorgang ein neues Grundimage mit den neuen Updates, das verwendet wird, wenn ein Computer neu aufgesetzt wird. Damit ist sichergestellt, dass ein neu aufgesetzter Computer bereits beim ersten Start über die sicherheitsrelevanten Updates verfügt und nicht erst danach die vielen Updates seit der Imageerstellung installieren muss. Es gibt aber ein grundsätzliches Problem bei vielen Updates, dass sich aber durch einen Hotfix von Microsoft beheben lässt.

Nun bin ich aber auf ein neues Problem gestossen. Bei der Installation der Updates bricht der Vorgang am Schluss ab und die build&capture Tasksequenz wird nicht bis zum Ende durchgeführt, sondern bricht ab und wird weiterhin als “wird ausgeführt” angezeigt. 

image

Nach diversen Tests konnte ich es auf die folgenden KB Artikel eingrenzen:

KB 982671: The.NET Framework 4 is available on Windows Update
KB 982670: The .NET Framework 4 Client Profile is available on Windows Update
KB 2529073: Binary files in some USB drivers are not updated after you install Windows 7 SP1 or Windows Server 2008 R2 SP1

Ausserdem tritt das Problem nur bei der 64bit Tasksequenz auf. Da es sich um schon ältere Updates handelt, muss etwas neueres mit diesen in Konflikt stehen. Nach Recherchen im Internet musste ich feststellen, dass viele Probleme mit Updates installieren bei einer build & capture Tasksequenz haben, vor allem mit den .NET Frameworks, wie das bei mir ja nun auch der Fall war.

Daher habe ich auf die 3 Updates verzichtet und dafür das .Net Framework 4 als Installationsdatei heruntergeladen und in die Tasksequenz eingebaut. 

Nachdem man das Paket erstellt hat, kann man die Software mit dem Schalter /q installieren.

image

Die .NET 4 Installation habe ich nach den Updates gemacht.

image

Somit kann ich immer noch nicht genau sagen, wieso die Installation der Updates abbricht. Wahrscheinlich hat es mit einer Reihenfolge der Installation zu tun, die drei Updates sind ja schon älter. Wie der Konflikt entsteht oder wie man ihn umgehen könnte, kann ich nicht sagen. Aber mit der manuellen Installation ist gewährleistet, dass das System vollständig gepatcht ist. Dies muss im Moment genügen, für weitere Nachforschungen fehlt einfach auch die Zeit.

Computer mit SSD Cache neu aufsetzen

Unsere neuen Laptops haben neben einer grossen Festplatte auch noch einen kleinen SSD Speicher, der als schneller Zwischenspeicher oder ExpressCache, wie Lenovo das nennt, dient. Zuerst dachte ich fälschlicherweise, dass es sich um eine Hybridplatte handelt, die wie ein Laufwerk verwendet werden kann, aber es sind wirklich 2 Laufwerke.

image

Meine OSD-Tasksequenz (OSD steht für Operating System Deployment, also für das Verteilen des Betriebssystems) ging bis jetzt aber immer von einer Festplatte aus. Diese wird zuerst formatiert und partitioniert. Danach wird das Betriebssystem darauf installiert. So wird aber die kleine SSD zu C: und Windows wird darauf installiert. Auf der grossen Festplatte hat es dann immer noch die Recovery Partition und das original installierte Windows vom Hersteller.

image

Damit das Betriebssystem auf die richtige Festplatte kommt, muss man die Festplatte mit der Datenträgernummer 1 (statt 0) korrekt formatieren.

image

Die Festplatte 0 konnte ich nicht so formatieren, dass ExpressCache danach funktioniert hätte. Am Besten lässt man sie also in der Tasksequenz einfach aus.

Damit ExpressCache funktioniert, muss man die Diskeeper Software von Lenovo herunterladen. Leider ist sie nicht bei Treiber/Software des Gerätes aufgeführt. Man findet sie unter diesem Link. Ausserdem habe ich keine Dokumentation darüber gefunden, z.B. auch keine silent parameter für die Installation. Also musste ich einen eigenen Weg finden. Bei der manuellen Installation wird ein MSI extrahiert. Dieses kann man suchen und abspeichern. Im letzten Schritt meiner Tasksequenz wird nun dieses MSI installiert:

msiexec /i ExpressCache.msi /qn /norestart

image

Gemäss den wenigen Informationen von Lenovo kann man überprüfen, ob ExpressCache funktioniert indem man in einer mit Adminrechten gestarteten Eingabeaufforderung “eccmd.exe –info“ eingibt.

image

Normalerweise bietet Lenovo zu allen Treibern und zu aller Software auch Informationen für Administratoren an. Vielleicht habe ich diese auch einfach nicht gefunden. Vielleicht gibt es auch einfach bessere Wege als meiner. In einem solchen Fall würde ich mich über Rückmeldungen freuen.

Nachtrag

Für die neue Geräte wird auch eine neue Version von ExpressCache benötigt. Lenovo bietet diese unter diesem Link an. In diesem Forumsbeitrag findet man die Silent Parameter, wobei ich immer noch das MSI verteile. Bei Problemen mit Partitionierung etc. kann auch dieser Beitrag hilfreich sein.