| 
  • If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

  • Work with all your cloud files (Drive, Dropbox, and Slack and Gmail attachments) and documents (Google Docs, Sheets, and Notion) in one place. Try Dokkio (from the makers of PBworks) for free. Now available on the web, Mac, Windows, and as a Chrome extension!

View
 

How To: Fehlende Benutzerprofileinstellungen setzen über Active Setup

Page history last edited by Stefan Weber 12 years, 8 months ago

Zusammenfassung

 

bei der Softwareverteilung ist man oftmals genötigt einzelne Konfigurationselemente (Dateien und/oder Registry Werte) im Benutzerprofil zu setzen. Microsoft System Center Configuration Manager bspw. bietet dazu die Möglichkeit Programme für jeden Benutzer einmalig auszuführen der sich am Zielsystem anmeldet. Auf folgende Problemstellungen kann man dabei treffen:

 

  • Die Softwareverteilung läuft relativ spät an, der Benutzer startet die Applikation bereits vorher und kriegt die geänderten / gesetzten Konfigurationen zu spät - oder je nach Applikation erstmal gar nicht - mit.
  • Konfigurationen - speziell Dateien - können erst gar nicht gesetzt werden / oder benötigen einen Neustart wenn der Benutzer die Applikation vorher startet und diese die Dateien blockiert.

 

Anhand des folgenden Beispiels soll gezeigt werden, wie man Active Setup in Kombination mit einem Windows Installer Paket benutzen kann um Benutzerkonfigurationen bereitzustellen, bevor der Benutzer die Gelegenheit bekommt irgendwelche Aktionen auszuführen.

 


 

Download

 

  • Die Beispieldatei ActiveSetupSample.zip finden Sie auf meiner Mobile Me Disk im Ordner Beispiel Wix

 


 

Weitere Informationen

 

Bevor Sie mit dem Beispiel beginnen, lesen Sie bitte den Eintrag Active Setup.

Unser Beispiel definieren wir wie folgt:

 

Hinweis: Es handelt sich hier nur um ein einfaches Beispiel um die Möglichkeiten von Active Setup aufzuzeigen. Ob es praxisrelevant ist oder nicht sei mal dahingestellt.

 

  • Wir wollen Benutzern zwei zusätzliche Vorlagen bereitstellen, die er bei Bedarf auch selbst verändern können soll und darf
  • Dazu stellen wir jedem Benutzer die beiden Vorlagen im Benutzerprofil bereit (unter %USERPROFILE%\Application Data\Microsoft\Templates im Standard, oder der umgeleitete Profilpfad)
  • Wir erstellen eine Installationsroutine mit WiX die die Vorlagen installiert

 

Regeln

 

  • Die Konfiguration - also das kopieren der Vorlagen - soll einmalig für jeden Benutzer laufen, der die Vorlagen noch nicht hat und sich am Zielsystem anmeldet. Gilt natürlich auch für Benutzer die sich erstmalig anmelden und noch gar kein Benutzerprofil haben
  • Die Vorlagen sollen bereitgestellt sein bevor der Benutzer in der Lage ist Word zu starten

 


 

Schritt 1: Verzeichnisstruktur

 

<Directory Id="TARGETDIR" Name="SourceDir">
  <Directory Id="AppDataFolder">
    <Directory Id="Microsoft" Name="Microsoft">
      <Directory Id="Templates" Name="Templates" />
    </Directory>
  </Directory>
</Directory>

 

Die Verzeichnisstruktur verweist auf den Ordner Templates im Application Data Verzeichnis des Benutzerprofils. Wer sich die Liste mit den wichtigsten Windows Installer Properties angesehen hat findet dort auch eine Standard Property TemplateFolder. Prinzipiell könnte man diese Property auch als Verzeichnisproperty verwenden. Da wird aber bei unserer Installation eine maschinenbezogene Installation (InstallScope perMachine) durchführen, würde die TemplateFolder Property auf den All Users Template Pfad verweisen und nicht auf den Template Pfad im Benutzerprofil.

 


 

Schritt 2: Komponente zum Kopieren der Vorlagen

 

<DirectoryRef Id="Templates">
  <Component Id="_C_0001" Guid="{1496ED51-1E3E-4759-AA97-058F9A4CF4F9}">
    <RegistryValue Action="write" Root="HKCU" Key="Software\[Manufacturer]\[ProductName]" Name="TemplateVersion" Value="[ProductVersion]" Type="string" KeyPath="yes"  />
    <File Id="_F_0001" Source="cfiles\vorlage1.dot" />
    <File Id="_F_0002" Source="cfiles\vorlage2.dot" />
  </Component>
</DirectoryRef>

 

In dieser Komponente kopieren wir die beiden Vorlagen in den Templates Ordner des Benutzers. Der gesetzte Registry Wert TemplateVersion ist notwendig, da Dateien im Benutzerprofil nicht als KeyPath einer Komponente definiert werden können. Mehr Informationen dazu auch im Beispiel für Benutzerkonfigurationen über Windows Installer Shortcut.

 


 

Schritt 3: Komponente für die Konfiguration von Active Setup

 

<DirectoryRef Id="TARGETDIR">
  <Component Id="_C_0002" Guid="{E0377A45-7C61-4747-85D7-57AB766EB388}">
    <RegistryKey Action="createAndRemoveOnUninstall" Root="HKLM" Key="Software\Microsoft\Active Setup\Installed Components\[ProductCode]">
      <RegistryValue Value="[ProductName]" Type="string" KeyPath="yes"/>
      <RegistryValue Name="StubPath" Value="[SystemFolder]msiexec.exe /fup [ProductCode] /q" Type="string" />
      <RegistryValue Name="Version" Value="1,0,0,0" Type="string" />
    </RegistryKey>
  </Component>
</DirectoryRef>

 

In dieser Komponente konfigurieren wir Active Setup, so dass wir sicherstellen, dass die Vorlagen für jeden Benutzer ausgeführt werden, der sich am Zielsystem anmeldet.Informationen zu den Registry Werten finden Sie in der Active Setup Beschreibung.

 

Schritt 4: Die beiden Komponenten einem Feature zuordnen

 

<Feature Id="ProductFeature" Title="ActiveSetupSample" Level="1">
  <ComponentRef Id="_C_0002"/>
  <ComponentRef Id="_C_0001"/>
</Feature>

 


 

Schritt 5: Candle und light und ausprobieren

 

Kompilieren Sie das WiX File und starten Sie auf einem Rechner die Installation mit msiexec.exe /i ActiveSetupSample.msi. Für den angemeldeten Benutzer erfolgt die Konfiguration sofort. Melden Sie sich anschließend mit einem anderen Benutzerkonto an und kontrollieren Sie ob die Vorlagen jetzt auch dort zur Verfügung stehen.

 

Comments (0)

You don't have permission to comment on this page.