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:
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:
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.
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 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
Die entsprechenden Quellcodes bzw. Logs in in CODE Blöcke gepackt. Bitte in Zukunft auch die Formatierungsrichtlinien anschauen und ggf. entsprechend einsetzen.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 87424
Url: https://administrator.de/contentid/87424
Ausgedruckt am: 23.11.2024 um 07:11 Uhr
12 Kommentare
Neuester Kommentar
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
Was drei Vorteile hat:
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
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
- 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
Moin uLmi,
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.
Grüße
Biber
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
Moin uLmi,
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
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
)
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
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
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
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
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.
ge<heute_Biberberuhiger>TuemII
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...
Laß mal, halte ich eher nicht für notwendig Das alles nur, damit du nicht weiter verwirrt bist <grinz>ge<heute_Biberberuhiger>TuemII