Archive

Posts Tagged ‘msi’

MDOP: UE-V– Teil 2–Der Agent

May 17th, 2012 No comments

Den Agent gibt es wie üblich in einer 32bit und 64bit Variante und liegt als MSI File vor. Er installiert einen Dienst “User Experience Virtualization service” mit dem internen Namen UevAgentService. Dieser Dienst agiert als Dateisystem Filtertreiber.

Eventlognachrichten landen Windows 7 typisch in ein eigenes Eventlog unter “Applications and Services Logs/Microsoft/User Experience Virtualization/Logging” in Admin und Operational.

Ein eigene Oberfläche hat der UE-V Agent (noch?) nicht. Die Steuerung erfolgt über WMI. Für die WMI Schnittstelle wird zusätzlich ein Powershell Modul installiert, dass über “Import-module Microsoft.UEV.commands” in eine Powershellsitzung importiert werden kann.

Den Agent installiert man am Besten über das Agentsetup, da dieser automatisch die richtige Variante installiert. Ein Bespiel für den Aufruf sieht so aus:

"%~dp0agentsetup.exe" /quiet /norestart /l*v "%systemroot%\UE-VAgentInstaller.log" SettingsStoragePath="\\server\settings\%%username%%" SettingsTemplateCatalogPath="\\server\settings\Templates"

Relevant sind die beiden Parameter “SettingsStoragePath” und “SettingsTemplateCatalogPath”.

Der erste Parameter SettingsStoragePath gibt an, wo die extrahierten Anwendungseinstellungen abgelegt werden sollen. In diesem Fall gibt es eine Freigabe settings auf dem Server server. Unterhalb dieses Ordners wird dann ein Unterordner mit dem Namen des aktuellen Benutzers angelegt. Im Gegensatz zu der Dokumentation habe ich die Tilde (~) weggelassen, da diese in meinem Tests nicht funktioniert hat (die Tilde würde umschließende “ entfernen).

Der zweite Parameter SettingsTemplateCatalogPath definiert einen Ordner aus denen beim Start bzw. einmal am Tag die aktuellen Templates geladen werden. Vorlagen sind einfache XML Dateien (hier auch mit der Endung xml). Alle Dateien mit dieser Endung werden automatisch aus diesem Ordner geladen, überprüft und bei entsprechender Korrektheit importiert. Sollte das Template schon registriert sein und die darin enthaltene Versionsnummer sich nicht unterscheiden, so wird nichts gemacht. Microsoft liefert schon ein paar Templates mit, die automatisch eingebunden werden und im Agent Pfad unter “C:\Program Files\Microsoft User Experience Virtualization\Templates” zu finden sind:

localTemplates

Im nächsten Teil zeige ich, wie man mit Powershell den Import manuell anstoßen kann.

Categories: Deutsch, Tools, Windows Tags: , , ,

SCCM: MSI Paket kompatibel machen

July 27th, 2011 No comments

lock_openIn seltenen Fällen kommt es noch vor, dass man eine alte Software auf einem aktuellen Windows 7 installieren muss. Damals haben die Entwickler nicht mit einem neuen Betriebssystem gerechnet oder erwartet, dass man rechtzeitig neue Lizenzen kauft. Teilweise hängt an der Client Software entsprechende Backend-Systeme, die nicht so einfach aktualisierbar sind.

NotSupported

Hat man es somit mit einem MSI Paket zu tun, dass einem aufgrund von nichtunterstütztem Betriebssystem den Dienst verweigert (s. Bild),  so kann man verschiedene Wege wählen:

  • Windows selber bietet die Möglichkeit an, die Kompatibilität zu korrigieren. Dazu wählte man im Kontextmenü des MSI-Pakets (“Rechter Mausklick”) den Punkt “Troubleshoot compatibility”. Genutzt wird dabei das Windows 7 eigene “Microsoft Diagnostic Tookit” (msdt.exe) mit dem Bereich PCWDiagnostic. Dieser wäre auch scriptbar. Weitere Informationen findet man unter http://technet.microsoft.com/de-de/library/ee424379%28WS.10%29.aspx und den entsprechenden weiterführenden Links.
  • Elegant finde ich auch die Möglichkeit den entsprechenden Check direkt aus dem MSI File zu extrahieren. Dazu ist noch nicht einmal ein MSI Admin Studio oder ähnliches notwendig. Eine VBScript Datei und die Funktionalität des MSI Installers reichen aus. Zu finden ist dieses hilfreiche Skript unter http://lazynetworkadmin.com/content/view/20/1/

Fehlermeldung bei der Installation des Visio Add-In for Disk Space

March 9th, 2011 No comments

icon-06Sollte bei der Installation des Visio Add-In for Disk Space (http://visiotoolbox.com/2010/add-ins.aspx)  für den System Center Operations Manager (SCOM) auf einem Windows 7 x64 mit Visio 2010 x64 folgende Fehlermeldung auftauchen:

visio-add-in-error

so liegt das laut dem Installer-Log (wenn man das Setup mit msiexec /I … /l* install.log aufruft) an einem fehlenden Registry Key:

 

[…]

Action 09:29:31: RollbackCleanup. Removing backup files

DEBUG: Error 2835:  The control ErrorIcon was not found on dialog ErrorDialog

The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2835. The arguments are: ErrorIcon, ErrorDialog,

Error 1720. There is a problem with this Windows Installer package. A script required for this install to complete could not be run. Contact your support personnel or package vendor.  Custom action VisSolPublish_BumpVisioChangeId script error -2147024894, WshShell.RegRead: Ungültige Wurzel in Registrierungsschlüssel “HKLM\Software\Microsoft\Office\Visio\ConfigChangeID“. Line 3, Column 1,

MSI (s) (14:34) [09:29:33:624]: Product: Visio Add-In for Disk Space Monitoring — Error 1720. There is a problem with this Windows Installer package. A script required for this install to complete could not be run. Contact your support personnel or package vendor.  Custom action VisSolPublish_BumpVisioChangeId script error -2147024894, WshShell.RegRead: Ungültige Wurzel in Registrierungsschlüssel “HKLM\Software\Microsoft\Office\Visio\ConfigChangeID”. Line 3, Column 1,

Action 09:29:33: Rollback. Rolling back action:

[…]

In der Registry ist dieser Schlüssel auch nicht zu finden.

Legt man ihn in folgender Form an:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\Visio]

“ConfigChangeID”=dword:00000000

so läuft das Setup erfolgreich durch.

Ergänzung: SCOM 2007 R2 CU 3

October 11th, 2010 No comments

Hier ein paar Tipps für das aktuelle SCOM Update (und andere):

  • Wie immer ist es wichtig, das Update mit Adminrechten zu starten. UAC reicht nicht, da sonst das nachfolgende Updateprogramm nicht gestartet wird. Also am Besten eine Kommandozeile mit Administrativen Rechten starten und “msiexec /i SystemCenterOperationsManager2007-R2CU3-KB2251525-X86-X64-IA64-ENU.MSI” ausführen.
  • Falls man es doch vergessen hat, kann man das Update nochmal mit Adminrechten starten und repaieren, oder manuell das Updateprogramm starten. Dafür eine administrative Shell starten und in das Installationsprogramm wechseln. Dort dann “SetupUpdateOM.exe /x86msp:KB2251525-x86.msp /amd64msp:KB2251525-x64.msp /ia64msp:KB2251525-ia64.msp /x86locmsp:KB2251525-x86-ENU.msp /amd64locmsp:KB2251525-x64-ENU.msp /ia64locmsp:KB2251525-ia64-ENU.msp /Agent /noreboot” ausführen.
  • Nochmals zu Erinnerung: auf jeden Fall den Knowledge Base Artikel beachten und die manuellen Schritte durchführen (Ausführen der SQL Updates)
  • Die SCOM Console hat nach dem erfolgreichen Update die Version 6.1.7221.49
  • Die Windows SCOM Agents behalten die alte Versionsnummer aber erhaten den Patchzusatz CU3
  • Die Unix Agents werden direkt mit dem Update aktualisiert (das andere Unix Update beinhaltet nur die aktualisierten Management Packs) und erhalten im Gegensatz zum alten CU2 Unix Update die Versionsnummer 6.1.7000.277

FB_Addon_TelNo{ height:15px !important; white-space: nowrap !important; background-color: #0ff0ff;}

Softwaretest: Allmyapps.com

January 4th, 2010 No comments

icon-13 Gerade jetzt werden viele ihr neues Windows 7 System einrichten und dabei zum x-ten Mal die übliche Standardsoftware wie Acrobat Reader, 7zip, Flash Player, VLC, … installieren. Viel Aufwand (suchen, downloaden, installieren, später irgendwann aktualisieren, …) für immer die gleichen Tätigkeiten.

Als Alternative gibt es die Webseite Allmyapps.com mit der entsprechenden Software. Darüber lassen sich einzelne Programme oder eine komplette Liste von Software einfach installieren.

Und so geht’s:

Auf der einfach zu bedienenden Webseite, die komplett auf Web 2.0 basiert, installiert man einmalig auf jedem Computer die notwendige Software. Über dieses ca. 1MB große Programm werden später die Softwarepakete heruntergeladen und installiert.

Bei mir hat sich die Software zwar problemlos installiert, aber wurde nicht automatisch ím Firefox registriert, d.h. die ausgewählte Liste auf der Webseite wurde nicht direkt installiert, sondern FF hat nachgefragt, was er mit dem unbekannten Mime Type machen soll. Nach dem Auswählen von C:\Program Files\Allmyapps\Allmyapps.exe funktionierte die Installation neuer Anwendungen problemlos.

Die Software deinstalliert alte Versionen der Software automatisch.

Vorteile:

  • Einfache Bedienung
  • Keine Suche nach den richtigen Links und Versionen
  • Fertige Listen lassen sich direkt auf mehreren Rechnern installieren
  • bereits relativ große Auswahl an Software

Nachteile:

  • Problem bei der Installation des Grundprogramms (eventuell nur bei mir)
  • nicht immer die aktuellste Version auf der Webseite (VLC war zwei Unterversionen veraltet, Miro eine, Java zwei Unterversionen, …)
  • Bei der Installation mehrerer Softwarepakete in einer Liste mit jeweils Deinstallation kam die SW bei mir durcheinander, d.h. sie startete bereits die nächste MSI Installation bevor die erste beendet war. Dadurch brach die zweite natürlich ab (nur eine Installation zur gleichen Zeit). Korrektur war aber einfach über die Webseite möglich.
  • Kein Einfluss auf den Installationsumfang, d.h. die Installation erfolgt komplett Silent ohne Rückfragen. Gerade bei Freeware wird gerne eine Browsertoolbar mit installiert. Aber bei den üblichen Verdächtigen (SUN JRE, Adobe Reader) scheint eine gute Vorauswahl gemacht worden zu sein.
    Insgesamt ein interessanter Konzept, dass viel Zeit sparen kann. Ich bin gespannt, wie es auf Softwareupdate aufmerksam machen sollte, da gerade darin ein großes Potential und Mehrwert der Software stecken könnte!

Rollout von WinZip 12 mit SCCM

October 28th, 2009 No comments

Hier mal eine kleine Batchdatei zur Verteilung von WinZip inkl. des Lizenzfiles:

@echo off

rem alte winzip version deinstallieren

MsiExec.exe /X{CD95F661-A5C4-44F5-A6AA-ECDD91C240B5} /l* %systemroot%\deinstall_winzip111.log /qn REBOOT=REALLYSUPPRESS

rem copy Lizenzfile to all Users profile

md “%ALLUSERSPROFILE%\WinZip\”

copy /y “%~dp0winzip.wzmul” “%ALLUSERSPROFILE%\WinZip\”

rem neue Version installieren:

rem Erklärung der Parameter:

rem /noqp = no quickpick icon in system tray

rem /notip = no tip of the day

rem /noc4u = don’t check for updates

rem /nopredefinedjobs = no predefined sample jobs in the Winzip menu

rem ADDDESKTOPICON=0 (Disable the WinZip Desktop icon to the user’s desktop)

rem ADDMENUGROUP=1 (Add a WinZip Menu Group item to… Start-> All Programs -> WinZip for each user )

rem ADDSTARTMENU=0 (Disable WinZip to the top of each user’s Start Menu)

rem  ALLUSERS=1 (per Machine)

rem Accept=Yes (Accept EULA)

msiexec /i “%~dp0wz121gev.msi” /qn /l* %systemroot%\install_winzip121.log ADDDESKTOPICON=0 ADDMENUGROUP=1 ADDSTARTMENU=0 ALLUSERS=1 Accept=Yes INSTALLCMD=”/noqp /notip /noc4u /nopredefinedjobs /autoinstall” REBOOT=REALLYSUPPRESS /m winzip.mif

In SCCM ein Package mit den Installationsfiles erstellen. Die WinZip MSI Version von der CD kopieren und ins gleiche Verzeichnis die Lizenzdatei hineinstellen. Als Programm die oben beschriebene Batchdatei eintragen. Bei den  Reporting Information wird im Dateinamen winzip eingetragen.

Mein Standardvorgehen:

  • Möglichst keine statischen Pfade, sondern immer Variablen (z.B. %systemroot% anstatt c:\windows)
  • Möglichst immer absolute Pfade zu Dateien – man weiss ja nie worauf gerade der aktuelle Pfad zeigt. Daher immer ein %~dp0 (%0: Pfad zu Batchdatei, ~: Falls “, dann entfernen, d: Laufwerksbuchstabe, p: Pfad, %~dp0: Pfad zur Batchdatei ohne Name der Batchdatei (aber mit \ am Ende))
  • Möglichst viel loggen, dass hilft beim Debuggen
  • Möglichst immer die original Setupdateien verwenden. Der Hersteller dürfte dort bereits sein KnowHow eingebaut haben.

Noch Fragen? -> Comment!

SCOM Agent Rollout mit SCCM

January 15th, 2009 No comments

Wenn bereits eine existierende SCCM Infrastruktur auf den Servern exisitert, dann macht es eventuell Sinn, den SCOM Client damit zu verteilen.

Dafür einfach ein Paket mit den Quelldateien aus dem AgentManagement Ordner vom SCOM Server erstellen.

Darin im x86 und x64 Ordner folgende Batchdatei install.cmd hinterlegen:

rem Sicherheitshalber msxml6 installieren (Voraussetzung)

msiexec.exe /i “%~dp0MSXML6.msi” /qn /m scom07 /l* “%systemroot%msxml6.log” REBOOT=REALLYSUPPRESS

msiexec.exe /i “%~dp0MOMAgent.msi” /qn USE_SETTINGS_FROM_AD=1 MANAGEMENT_GROUP=<hier name dermanagement group> MANAGEMENT_SERVER_DNS=<hier dns name  des scom servers oder gateways> ACTIONS_USE_COMPUTER_ACCOUNT=1 /m scom07 /l* “%systemroot%scomx86.log” REBOOT=REALLYSUPPRESS

Diese Batchdatei als Programm (jeweils für x86 und x64) hinterlegen. Als Collection in SCCM verwende ich im allgemeinen eine Sammelcollection, die die alle Zielsysteme hineinkommen. Darunter lege ich eine Filtercollection an, die aus den Zielsystemen nur die herausfiltert, die den Agent noch benötigen. Hier bietet sich eine Subselection als Query an, die alle Systeme ausschließt die den Dienst bereits haben. Eine Hardwareinventur (HW)  wird im Allgemeinen häufiger gemacht als eine Softwareinventur (SW). Daher erhält man die Infos über Dienst (HW) schneller zurück als Dateiinformationen aus der SW-Inventur.

Eine Query könnte so aussehen:

select SMS_R_System.ResourceID,SMS_R_System.ResourceType, SMS_R_System.Name,SMS_R_System.SMSUniqueIdentifier, SMS_R_System.ResourceDomainORWorkgroup, SMS_R_System.Client from SMS_R_System inner join SMS_G_System_SERVICE on SMS_G_System_SERVICE.ResourceID = SMS_R_System.ResourceId where SMS_R_System.ResourceId not in (select SMS_R_System.ResourceId   from  SMS_R_System inner join SMS_G_System_SERVICE on SMS_G_System_SERVICE.ResourceID = SMS_R_System.ResourceId where SMS_G_System_SERVICE.Name = “HealthService”)

Als Collectionlimit die übergeordnete Sammelcollection eintragen. Die Ankündigung läuft dann auf der Filtercollection.