Logo faq-o-matic.net
Logo faq-o-matic.net

Schriftarten per Skript installieren

von veröffentlicht am12. Juni 2007, 11:45 Uhr Kurzlink und Zitatlink einblenden
Kategorie Kategorie: Client-Administration, Scripting, Softwareverteilung, Windows   Translate with Google Translate Translate EN   Die angezeigte Seite drucken
Zuletzt aktualisiert: 26. September 2013

Um neue Schriftarten in Windows zu installieren genügt es, die gewünschten *.ttf-Dateien im Explorer in den Fonts-Ordner zu ziehen. Beim Automatisieren dieses Vorgangs merkt man jedoch sehr schnell, dass das einfache Kopieren der Dateien nicht genügt. Die *.ttf-Dateien erscheinen einfach nicht in der Schriftartenliste.

Der Kopiervorgang per Skript läuft also anders ab als der Kopiervorgang per Explorer. Das folgende Skript weist den Explorer an, den Kopiervorgang zu starten, was zu einer korrekt installierten Schriftart führt. Das Skript prüft auch gleich, ob die Schriftart bereits installiert ist, um unschöne Meldungen („Die Schriftart nnn ist bereits installiert …“) zu verhindern.

Zu installierende Schriftarten (*.ttf / *.fon) in einen Ordner „FontsToInstall“ beim Skript ablegen, dann einfach das VBS starten (per Logon-Script funktioniert das nur bei lokalen Administratoren; besser wäre also ein Startup-Skript), und die fehlenden Schriftarten werden installiert.

Wichtig:  Es werden alle Dateien vom FontsToInstall Ordner kopiert, da sollten also ausschliesslich Schriftartdateien drin liegen! Getestet auf Windows XP SP2 deutsch.

  1. ‚ ###########################################
  2. ‚ # installfont.vbs                         #
  3. ‚ # installs font file in windows fonts dir #
  4. ‚ # (c) 2007 by Gottfried Mayer             #
  5. ‚ ###########################################
  6. Dim oFSO, oApp, oFolderCopy, oShell
  7. Dim strFontsPath, strScriptPath
  8. ‚ Create needed Objects
  9. Set oFSO = CreateObject(„Scripting.FileSystemObject“)
  10. Set oShell = CreateObject(„WScript.Shell“)
  11. Set oApp = CreateObject(„Shell.Application“)
  12. ‚ Get Path of this Script (i.E. C:\Scripts\ or \\server\netlogon\)
  13. strScriptPath = WScript.ScriptFullName
  14. strScriptPath = left(strScriptPath,instrrev(strScriptPath,„\“))
  15. ‚ Get Path of Windows Fonts directory
  16. strFontsPath = oShell.ExpandEnvironmentStrings(„%WINDIR%“) & „\Fonts“
  17. ‚ Get Folder Object of Fonts directory (i.E. C:\Scripts\FontsToInstall or \\server\netlogon\FontsToInstall)
  18. Set oFolderCopy = oApp.Namespace(strScriptPath & „FontsToInstall“)
  19. ‚ Check each Font if it already is installed
  20. For Each oFont In oFolderCopy.Items
  21.   If NOT oFSO.FileExists(strFontsPath & „\“ & oFont.Name) Then
  22.     ‚ Tell Explorer to copy the Font – this correctly installs it.
  23.     oApp.Namespace(strFontsPath).CopyHere oFont
  24.   End If
  25. Next
  26. ‚ Cleanup Objects
  27. Set oFolderCopy = Nothing
  28. Set oApp = Nothing
  29. Set oShell = Nothing

© 2005-2023 bei faq-o-matic.net. Alle Rechte an den Texten liegen bei deren Autorinnen und Autoren.

Jede Wiederveröffentlichung der Texte oder von Auszügen daraus - egal ob kommerziell oder nicht - bedarf der ausdrücklichen Genehmigung durch die jeweiligen Urheberinnen oder Urheber.

Das Impressum findet sich unter: http://www.faq-o-matic.net/impressum/

Danke, dass du faq-o-matic.net nutzt. Du hast ein einfaches Blog sehr glücklich gemacht!