copypaste
Goto Top

Anmeldescript - Firefox Profil verschieben

Servus Zusammen,

da mich das Erstellen dieses Scripts Zeit gekostet hat, die ich natürlich nicht hatte und dieses Forum mir grundlegende Ansätze dafür geliefert hat, dachte ich mir, ich stelle es mal hier rein, damit andere sich genau diese Zeit sparen können ;)

Dies war für uns im Zuge einer Umstellung von PC´s auf ThinClients wichtig, da hier durch das Profil vom Lokalen Pfad, per Anmeldescript, auf ein gemapptes Netzlaufwerk verschoben wurde. Läuft bei uns unter XP und Win7.
Nur möglich, wenn jeder Benutzer nur ein Firefox Profil hat, was aber meiner Ansicht nach Standard ist. (Bitte Verbessern, falls ich hier falsch liege. Bei uns war das zumindest der Fall)
Zum besseren Verständnis habe ich die Batchdatei mal kommentiert.

Für Verbesserungen bin ich natürlich dankbar face-smile

Viele Grüße,
CopyPaste

EDIT: Ehemalige Suchen/Ersetzen Schleife durch neu Schleife zum neuerstellen der Datei ersetzt
EDIT: Probleme bei der auflösung von %USERNAME% wurden behoben; der Ablauf wurde vereinfacht

@ECHO OFF & SETLOCAL ENABLEDELAYEDEXPANSION

REM Festlegen der Pfade und Dateinamen
REM %NewPath% muss als UNC Pfad angegeben werden, falls dieser auf eine Freigabe verweisen und dieses Script unter WinXP als Anmeldescript laufen soll. 
REM %OldPath% ist der standard Pfad unter WinXP und Win7
REM Wir hatten probleme mit der %username% Varibalen im Pfad unter XP. Deshalb wurde die Globale Variable ersetzt.

SET "User=%USERNAME%"  
SET "NewPath=\\SERVER\FREIGABE\%User%\Programme\Mozilla Firefox\Profiles"  
SET "OldPath=%APPDATA%\Mozilla\Firefox"  
SET "File=profiles.ini"  
SET "Temp=%NewPath%\Temp.tmp"  
SET "Script=del.bat"  

REM Überprüfen ob die Datei "profiles.ini" im neuen Verzeichnis auf dem Laufwerk schon existiert, wenn ja wird davon ausgegangen, dass das Script schon durchgeführt wurde  

IF EXIST "%NewPath%\%File%" GOTO EXIST  

REM Löschen des Cache Ordners

FOR /F "USEBACKQ DELIMS==/ TOKENS=3" %%p IN ("%OldPath%\%File%") DO (  

	ECHO RD "%OldPath%\Profiles\%%p\Cache" /S /Q>>"%oldPath%\%Script%"  
	ECHO MD "%oldPath%\Profiles\%%p\Cache">>"%OldPath%\%Script%"  
)
CALL "%OldPath%\%Script%"  
DEL "%OldPath%\%Script%" /F /S /Q  

REM Kopieren des Benutzerprofils

XCOPY "%OldPath%\Profiles" "%NewPath%" /Y /E /I  

IF EXIST "%Temp%" DEL "%Temp%"  

REM Überprüfen ob "profiles.ini" im alten Verzeichnis schon bearbeitet ist, falls ja wird er ins neue Verzeichnis kopiert, falls nicht:  
REM Erstellen einer neuen "profiles.ini" mit neuem Pfad und den dazugehörigen Parametern   

FOR /F "USEBACKQ DELIMS=== TOKENS=2" %%i IN ("%OldPath%\%File%") DO (  
	
	SET "row=%%i"  
	SET "compare=!row:~0,4!"  

	IF "!compare!"=="Prof" (  

		ECHO [General]>>"%Temp%"  
		ECHO StartWithLastProfile=1 >>"%Temp%"  
		ECHO. >>"%Temp%"  
		ECHO [Profile0]>>"%Temp%"  
		ECHO Name=default>>"%Temp%"  
		ECHO IsRelative=0 >>"%Temp%"  
		
		FOR /F "USEBACKQ DELIMS==/ TOKENS=3" %%a IN ("%OldPath%\%File%") DO (  
			
			ECHO Path=%NewPath%\%%a>>"%Temp%"  
		)

REM Kopieren der "profiles.ini" in das neue Verzeichnis, um es für Anmeldungen an anderen PC´s bereitstellen zu können  

		COPY "%Temp%" "%NewPath%\%File%"  

REM So wie ins lokale Verzeichnis

		MOVE "%Temp%" "%OldPath%\%File%"  
			
	) else (
		COPY "%OldPath%\%File%" "%NewPath%\%File%"  
		)
)


EXIT

REM Falls die Datei schon vorhanden war, wird die Lokale "profiles.ini" mit der bereits editierte  "profiles.ini" ohne Nachfrage ersetzt, so dass auch dieser PC auf den neuen Pfad und damit auf das kopierte Profil zugreift  

:EXIST

COPY "%NewPath%\%File%" "%OldPath%\%File%" /Y   

Content-ID: 196692

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

Ausgedruckt am: 22.11.2024 um 14:11 Uhr