ulmi
Goto Top

Fonts per Robocopy ausrollen

Hallo Leute,
ich möchte Schriften die auf dem Server liegen per Robocopy in das lokale Fonts verzeichniss kopieren.

Das ich mein Script:
@ECHO OFF
SETLOCAL

SET _dest=%windir%\fonts

SET _what= /COPYALL
:: /COPYALL :: COPY ALL file info
:: /B :: copy files in Backup mode. 
:: /SEC :: copy files with SECurity
:: /MIR :: MIRror a directory tree 

SET _options=/R:5 /W:2 /LOG:robolog.txt
:: /R:n :: number of Retries
:: /W:n :: Wait time between retries
:: /LOG :: Output log file
:: /NFL :: No file logging
:: /NDL :: No dir logging 
bei alternativen verzeichnissen. C:\Test nach D:\Test klappt es wunderbar.
bei Server nach C oder D auch. Also kann es wohl nicht an der Quelle liegen.
nur in das Fonts Verzeichniss will er nicht reinkopieren.
MIRROR ist logischer Weise ausgeschaltet.
Die vorhandenen Fonts zeigt er im LOG auch als Extra FILE an aber die fehlenden erkennt er scheinbar nicht.
Die Optionen funtzen bei anderem Zielen auch wie ich es will.
nur mit der Quelle wo es hin soll klappt es nicht...

Ich bin Ratlos.
Jier habt ihr noch das LOG:
-------------------------------------------------------------------------------
   ROBOCOPY     ::     Robust File Copy for Windows     ::     Version XP010
-------------------------------------------------------------------------------

  Started : Mon May 12 15:27:42 2008

     Dest : C:\Windows\Fonts\

    Files : *.*
	    
  Options : *.* /COPYALL /R:5 /W:2 

------------------------------------------------------------------------------

	              	  *EXTRA File 		   10976	8514fix.fon
	  *EXTRA File 		   10976	8514fixe.fon
	  *EXTRA File 		   11520	8514fixg.fon
	  *EXTRA File 		   10976	8514fixr.fon

 usw... 

	  *EXTRA File 		  104372	VINERITC.TTF
	  *EXTRA File 		   64748	VIVALDII.TTF
	  *EXTRA File 		   54308	VLADIMIR.TTF
	  *EXTRA File 		  259364	vrinda.ttf
	  *EXTRA File 		  121664	webdings.ttf
	  *EXTRA File 		   83740	wingding.ttf
	  *EXTRA File 		   65788	WINGDNG2.TTF
	  *EXTRA File 		   35328	WINGDNG3.TTF

------------------------------------------------------------------------------

                Total    Copied   Skipped  Mismatch    FAILED    Extras
     Dirs :         1         0         1         0         0         0
    Files :        60         0        60         0         0       516
    Bytes :    3.89 m         0    3.89 m         0         0  328.20 m
    Times :   0:00:00   0:00:00                       0:00:00   0:00:00

    Ended : Mon May 12 15:27:42 2008
Dani - 12.05.2008 18:09
Die entsprechenden Quellcodes bzw. Logs in in CODE Blöcke gepackt. Bitte in Zukunft auch die Formatierungsrichtlinien anschauen und ggf. entsprechend einsetzen.

Content-Key: 87424

Url: https://administrator.de/contentid/87424

Printed on: April 25, 2024 at 09:04 o'clock

Member: Biber
Biber May 12, 2008 at 17:48:44 (UTC)
Goto Top
Moin uLmi,

ich bin mir nicht ganz sicher, woran es scheitert, aber vermute stark, es liegt an dem Readonly/System-Attribut des %windir%\FONTS-Ordners.
Eventuell würde es helfen, wenn Du mal die Logfile-Option /V (Verbose) einschaltest.

Und die Antwort auf die Frage wäre wahrscheinlich: bei xcopy/Robocopy musst Du explizit die Schalter für "Kopiere auch Hidden und Readonly-Files mit angeben.

Aber eigentlich möchte ich hier gar keine Robocopy-Lösung vorantreiben, weil das IMHO Dönekens wäre.
Fonts bzw. Fontfiles müssen nicht nur kopiert werden, sondern auch registriert/installiert, damit sie "für Windows" sichtbar werden.

Deshalb wäre eine (Pseudo-)Code-Skizze zum Deployen in etwa so
Für alleMeineNeuenFontDateien %i
     Kopiere \\meine\Quelle\%i \DummClient\%windir%\Fonts\%i
     InstalliereRegistriere \DummClient\%windir%\Fonts\%i
EndeFür
Was drei Vorteile hat:
  • Wenn Du die neuen Dateien einzeln (mit Namen) anfasst und Quelle/Ziel angibst, werden die auch in einen Hidden/Readonly-Ordner kopiert.
  • Die Reg-Einträge unter HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts werden abgefackelt
  • die Fonts sind installiert und sichtbar OHNE Reboot.

Den zweiten Punkt (Installiere/Registriere) erledigt z.B. das M$-Utility InstFont.exe (oder FontInst.exe?) aus einem der ResKits für Dich.

[Unsauberere und eines Admins unwürdige Alternative]
Wenn das zu mühsam ist, dann muss MINDESTENS der Explorer einmal dieses FONTS-Verzeichnis anfassen
explorer.exe /e,/root,%systemroot%\Fonts"
-oder-
Rundll32 shell32.dll,SHHelpShortcuts_RunDLL FontsFolder
ausgeführt werden.
Und der nächste Reboot abgewartet werden.

Grüße
Biber
Member: uLmi
uLmi May 13, 2008 at 11:55:30 (UTC)
Goto Top
danke für die ausführliche Info.

also wenn ich über File ausrolle und muss der PC neustarten um die Fonts zu registrieren.
und um das auszurollen muss ich die Option: Kopiere auch Hidden und Readonly-Files aktivieren.
nimmt das system irgendwelche schäden bei dieser kopier methode ?
Gruß
uLmi
Member: Biber
Biber May 13, 2008 at 15:40:35 (UTC)
Goto Top
Moin uLmi,
danke für die ausführliche Info.
Dafür nich'.
also wenn ich über File ausrolle und muss der PC neustarten um die Fonts zu registrieren.
Dieses Fragment hat zwar einen Punkt am Ende, aber dem Teil davor fehlt irgendwie der rote Faden. Wie belieben? Was meintest Du? *kopfkratz*
und um das auszurollen muss ich die Option: Kopiere auch Hidden und Readonly-Files aktivieren.
Wie oben geschrieben: wenn Du die Dateien EINZELN kopierst ohne Wildcards, dann hast Du das Problem gar nicht.
Und EINZELN solltest Du sie IMHO ohnehin abarbeiten, denn zu den Fonts gehören unter anderem sinnvolle Registryeinträge (s.o.), die nicht durch bloßes Kopieren entstehen.
Wenn Du es ganz ganz ganz spartanisch machst und nur Kopierst UND zusätzlich die Reg-Einträge schreibst, dann bekommt Windows das erst nach einem Neustart mit.

Mit einem dafür geschriebenen Tool wie InstFont.exe/FontInst.exe geht es einfacher und ohne Reboot.

nimmt das system irgendwelche schäden bei dieser kopier methode ?
Ja klar, die Ränder werden mit der Zeit unansehnlich und der Boden fleckig.

Grüße
Biber
Member: uLmi
uLmi May 13, 2008 at 17:54:51 (UTC)
Goto Top
kerlo kiste

du bist ja anstrengend.
ich verstehe deine Antwort trotzdem nicht.
versuche morgen mal dein komischen Tool.
vielleicht kannst du mir dein pseudo-code noch einbischen näher bringen.
die fonts müssen auf knapp 100 rechner ausgerollt werden und es werden neue fonts ständig hinzukommen.
Member: Biber
Biber May 13, 2008 at 18:15:41 (UTC)
Goto Top
Moin uLmi,

du bist ja anstrengend.
Dann solltest Du mal meine Ex kennenlernen...
versuche morgen mal dein komischen Tool.
Is' sich vom sympatischen Weltmarktführer, nicht von mir.
vielleicht kannst du mir dein pseudo-code noch einbischen näher bringen.
Jepp, mach ich:
::FondueRoll.cmd
@ECHO OFF
SETLOCAL

SET _source=\\xxxxxxxxx.de\xxx\xxxxxx\vorlagen\schriften2
SET _dest=%windir%\fonts

....
FOR   %%i in ( %Source%\*.ttf  %source%\*.fon ) DO (
       echo Installiere Font %%~i
       copy /Y "%%~fi" "%windir%\Fonts" > nul  
       "instfont.exe" "%windir%\Fonts\%%~i" > nul  
)
Dat is die ganze Prosa... mehr nicht.
Wobei ich nicht nachgeschlagen habe, ob das M$-Tool nun InstFont.exe oder FontInst.exe heißt.
Dr. Gugl weiss das aber.

Egal - das ist in etwa die Pseudocode-Skizze von oben.

Grüße
Biber
Member: uLmi
uLmi May 17, 2008 at 13:17:47 (UTC)
Goto Top
Danke für deine weiteren Mühen face-smile

ps: tut mir leid wegen deiner Ex
Member: Biber
Biber May 17, 2008 at 15:39:07 (UTC)
Goto Top
Moin uLmi,

hat es denn jetzt geklappt oder hast Du eine andere Lösung gefunden?

im jetzigen Zustand können wir beide den Beitrag doch schlecht als funktionierende Musterlösung anbieten,
so nett das Plaudern auch war bisher... face-wink

Grüße
Biber
Member: uLmi
uLmi May 17, 2008 at 16:06:29 (UTC)
Goto Top
Da ich im Monat 40 - 50 Überstunden schiebe, versuche ich an Wochenenden nicht zu arbeiten.
Solltest auch auch mal Probieren ^^

Jedenfalls ist das nur eine von vielen Baustellen an denen ich arbeite.
Aber ich werde versuchen es Anfang nächster um zusetzen.

Kann ich den Code einfach als Batch ausführen und es nachher auf meine Client Gruppe übertragen ?

Gruß

uLmi
Member: Biber
Biber May 20, 2008 at 20:06:17 (UTC)
Goto Top
Moin uLmi,

ich versuchs nochmal - diesmal mit Verweis auf Leute, die es vielleicht besser erklären können.

How Can I Install Fonts Using a Script? M$-ScriptingGuys.

Soweit ich dieses outlandish verstehe, was die schreiben, gibt es mehrere Strategien

  • entweder NUR die Dateien kopieren - und beim Client-User anrufen und vorschlagen, er/sie möge doch bitte mal kurz mit dem Explorer in das FONTS-Verzeichnis gucken
  • oder die Dateien nicht vom Server aus runterschieben, sondern vom Client via LogonSkript saugen lassen UND via Shell/GUI das FONTS-Verzeichnis öffnen lassen.

Die oben angedeuteten Workarounds mit Vom-Server-Runterschieben und Registry-Werte direkt setzen oder ein InstFont-Utility dieses machen lassen.... beides weniger charmant als die LoginSkript-Variante. IMHO.

Und die sozusagen dümmste Alternative ist das Nur-Kopieren mit Robocopy oder Xcopy oder copy *.*, also die Lösung, nach deren handwerklicher Umsetzung Du eigentlich gefragt hattest.

Grüße
Biber
Member: uLmi
uLmi May 21, 2008 at 08:00:47 (UTC)
Goto Top
Biber danke, dass du mir das noch mal verdeutlicht hast.

Trotzdem hast du eine gabe sachen schwierig zu erklären, dass ich mir dein Text wohl 5 mal durch lesen muss um deine persöhnlichen meinung zu verstehen.

trotzdem danke, dass du dir die Mühe machst.
Member: Biber
Biber May 21, 2008 at 08:06:29 (UTC)
Goto Top
Moin uLmi,

ich werde daran arbeiten... face-wink
Bitte halte uns hier auf dem Laufenden, welche Lösung sich bei Dir als praktikabel herausgestellt hat.

Grüße
Biber
Member: geTuemII
geTuemII May 21, 2008 at 10:18:39 (UTC)
Goto Top
Hallo Biber,

das war mir jetzt noch gar nicht aufgefallen, daß du irgendwie mißverständlich formulierst. Es sei denn, es hat sich in den letzten Tagen irgendwas grundlegend geändert. Dein obiger Text ist für mich übrigens verständlich.

ich werde daran arbeiten... face-wink
Laß mal, halte ich eher nicht für notwendig face-smile Das alles nur, damit du nicht weiter verwirrt bist <grinz>

ge<heute_Biberberuhiger>TuemII