Matrix42 Empirum Datei kopieren

Inzwischen haben wir schon viele Beiträge über die Softwareverteilung mit Matrix42 Empirum. Heute geht es darum, wie man mit Empirum Datei kopieren lassen kann. Hierzu können die gewohnten CMD Kopier-Befehle verwendet werden, es gibt aber auch eine eigene Syntax in Empirum um Dateien kopieren zu lassen. Diese kann man auch in die Benutzerprofile der User kopieren lassen.

Empirum Datei kopieren

 

Empirum Datei kopieren

Ein einfacher Kopiervorgang in der Setup.inf von Empirum ist relativ einfach. Hierzu gibt es wie immer eine spezielle Syntax mit folgendem Aufbau.

1:Quelldatei,Zielverzeichnis,Kopierflag,Größe

Das sieht in erster Linie wieder relativ kompliziert aus, ist es aber nicht. Wir zerlegen den Befehl und beschreiben ihn:

1:

Datei liegt im %SRC% Verzeichnis

Quelldatei

Name der Quelldatei

Zielverzeichnis

Zielverzeichnis inklusive Pfad

Kopierflag

Kopierflag, welches verwendet werden soll. Ähnelt einem Parameter.

Größe

Größe der Datei, damit die Datei nicht ausgetauscht werden kann.

Ich habe ein Beispiel anhand des Kopieren einer Schriftart für euch vorbereitet:

[Product]
AddMeter -1
#Set:Product
-AddMeter -1

[Set:Product]
1:Windows\Fonts\TCB____.ttf, %Fonts%, SHAREDDLL, 74656, Tw Cen MT Bold (TrueType)

 

Allerdings sind bei den einzelnen Parametern noch einige Wissenswerte Punkte nützlich:

  • Die Datei die kopiert werden soll, liegt am Besten im Source-Verzeichnis (%SRC%) vor. Wird das kopieren mit 1: vorgenommen, so wird diese Datei automatisch gelöscht, wenn das Paket deinstalliert wird. Es wird also kein Minus (-) vor dem Befehl benötigt.
  • Bei der Quelldatei muss lediglich der Name der Datei angegeben werden.
  • Beim Zielverzeichnis muss nur der Pfad ohne Namen angegeben werden. Ist kein Zielverzeichnis angegeben, so wird automatisch in %ApplicationDir% kopiert.
  • Das Kopierflag gibt einen Parameter an. Mehr Informationen in der Listen unten
  • Bei der Größe muss die Größe der Datei angegeben werden. Diese ist anzugeben, damit nicht „einfach“ die Datei durch eine andere getauscht werden kann. Macht man einen Rechtsklick auf die Datei und wählt Eigenschaften, ist die Größe in Bytes ohne Punkt anzugeben. Wichtig ist hier, dass NICHT die Größe auf Datenträger angegeben wird.

 

Flags beim Kopieren

Wie oben schon genannt, gibt es beim Empirum Datei kopieren so genannte Flags, welche als Parameter zu sehen sind. Nachfolgend ist eine Liste mit allen Kopierflags, welche angegeben werden können.

NORMAL Normale Kopieraktion
APPEND Die Datei wird an eine bereits kopierte Datei angehängt.
EXPAND Die einzelne Datei wird expandiert.
ALWAYS Die Zieldatei wird immer überschrieben, wenn sie nicht exakt identisch ist.
NOSIZEWARNING Es wird keine Warnung angezeigt, wenn die Länge nicht korrekt angegeben ist.
NODATEWARNING Es wird keine Warnung angezeigt, wenn die Quelldatei älter ist als die Zieldatei.
REPLACEOLDER Quelldatei wird nur kopiert, wenn die Zieldatei noch nicht existiert oder älter.
DONTREPLACE Quelldatei wird nur kopiert, wenn diese Datei noch nicht im Ziel existiert.
OPTIONAL Quelldatei wird nur kopiert, falls diese existiert.
REPLACEVARS Beim Kopieren einer Textdatei, werden alle Inhalte, die in ‚%‘ eingeschlossen sind durch die aktuellen Werte der Umgebungsvariablen ersetzt. Beispielsweise %App% durch das Applikationsverzeichnis.
CREATE Es wird eine leere Datei erzeugt.
DIRECTORY Der Zielname ist ein Verzeichnis, welches noch nicht existiert.
CASCADED Das Zielverzeichnis wird beim Deinstallieren komplett gelöscht, einschließlich Dateien und Verzeichnisse.
LOCALAPP Die Datei wird nur kopiert, wenn es sich um eine lokale Installation handelt.
USEFILENAME Ist das Ziel ein Verzeichnis, wird als Zieldateiname der reine Quelldateiname benutzt.
RDONLY Das Attribut der Zieldatei wird nach dem Kopieren auf ‚Schreibgeschützt‘ geschrieben.
HIDDEN Das Attribut der Zieldatei wird nach dem Kopieren auf ‚Versteckt‘ geschrieben.
SYSTEM Das Attribut der Zieldatei wird nach dem Kopieren auf ‚System‘ geschrieben.
BACKUP Vor dem Überschreiben der Zieldatei wird eine Kopie erstellt. Diese hat die Endung .001, .002, etc.
SHARED Die Quelldatei wird nur kopiert, wenn es sich um eine Shared Windows-Installation handelt.
SHAREDDLL Die Zieldatei wird in der Registrierungsdatenbank als gemeinsam benutzte Datei eingetragen.
REGASM Registriert .NET COM Komponenten.
SERVICE Die ausführbare Zieldatei ist ein Windows Dienst.
DELETE Die Zieldatei wird beim Deinstallieren zusätzlich gelöscht.
DONTDELETE Die Zieldatei wird beim Deinstallieren nicht gelöscht.
WINDOWS32 Die Datei wird nur kopiert, wenn das Setup unter einem 32 Bit Windows ausgeführt wird.
WINDOWS64 Die Datei wird nur kopiert, wenn das Setup unter einem 64 Bit Windows ausgeführt wird.
SETUPHOOK Nach dem Kopieren wird die oben über SetupHookName definierte Funktion der Erweiterungsbibliothek SetupExtDll mit dem Kommando HOOK_AFTERCOPYFILE aufgerufen.
ADMIN Die Datei wird nur kopiert, wenn es sich um eine Administrator-Installation handelt.
CLIENT Die benutzerspezifische Datei wird für den Benutzer benötigt.
MACHINE Die Datei wird nur für die Workstation benötigt.
REGISTER Registriert OLE Bedienelemente sowie OLE Server. Muss für alle OCX-Dateien sowie DLLs gesetzt werden, welche die Funktion „DllRegisterServer“ nutzen.
SETUP Es handelt sich um eine der vom Setup benötigten Dateien Setup.exe und Setup.chm.
CHECKRTVERSION Überprüft die Version einer DLL- oder einer OCX-Datei.
SETUSERINFO In die Datei werden die Daten des Benutzers sowie die Seriennummer aufgenommen.
KEEPEXISTING Die Zieldatei wird nicht überschrieben, wenn die Zieldatei neuer ist als die original Datei. Statt dessen wird eine Kopie mit der Endung .new angelegt.

 

Befehl COPY und DEL nutzen

Es ist auch möglich die „alten“ Befehle COPY zum Kopieren und DEL zum Löschen von Dateien zu verwenden. Der Nachteil liegt klar auf der Hand. Verwendet man COPY, muss man auch den DEL Befehl extra angeben. Nutzt man die Variante oben, ist Empirum so mächtig, dass er die zuvor kopierte Datei automatisch löscht. Beispiel hier:

[Kopier-Sektion]
-DEL "C:\Users\Public\Desktop\yourfile.txt"
Copy "%SRC%\yourfile.txt" "C:\Users\Public\Desktop\yourfile.txt"

 

Für jeden Benutzer einzeln kopieren, also in das Benutzerprofil

Empirum kann auch in Benutzerprofile kopieren. Hört sich zuerst unspektakulär an. Aber hier werden Dateien auch dann kopiert, wenn das Benutzerprofil noch nicht vorhanden ist. Meldet sich ein neuer User am PC an, so wird von Windows ein Benutzerprofil erstellt. Das merkt Empirum und führt den CLIENT-Teil aus, der zuvor im Paket definiert wurde.

[Benutzer-Teil]
1:yourfile.txt, %APPDATA%, CLIENT ALWAYS, 0

Somit wird im Beispiel die Datei „yourfile.txt“ in AppData kopiert, sobald sich der Benutzer anmeldet. Das passiert übrigens nur einmalig beim ersten Anmelden.

Johannes Huber
 

In seiner Freizeit macht Johannes nichts lieber, als für ITnator Beiträge zu schreiben. Input bekommt er hierfür von Problemen in der IT Administration von Servern, Clients und vielen weiteren IT Komponenten.

sidebar
>