Zum Inhalt springen

Automatisches Kopieren eines Ordners auf USB Stick


rhservice

Empfohlene Beiträge

Hallo Leute,

ich habe ein Problem. Ich würde folgendes realiseren wollen:

Ich habe ein USB-Hub. Das Hub ist öffentlich und für jeden zugänglich.

Ich möchte gerne dass wenn jemand seinen USB-Stick in eins der Steckplätze einsteckt ein bestimmter Ordner vom Server(PC) auf den Stick kopiert wird. Sollte der Ordner auf den Stick schon verhanden sein, soll dieser erst gelöscht werden.

Betriebssystem ist WIN2000.

Ist sowas möglich?

Ich wäre für eure fachliche Hilfe sehr sehr dankbar. Es ist für einen gemeinnützigen Verein und ich würde gerne mit Eurer Hilfe helfen! :)

Mfg

Robby

Link zu diesem Kommentar
Auf anderen Seiten teilen

http://www.microsoft.com/windows/partnerpack/desc/ufd.htm

dann auf dem USB Stick wie auf einer CD die Autostart.inf noch anpassen und es sollte funktionieren.

Oder hiermit:

How To Enable Autorun for Other Removable Media

Autorun can be enabled or disabled for all Removable media types, such as a floppy or Zip disk. Windows systems are configured to enable CD Notification, other removable media are by default disabled.

The System Properties User interface only exposes the CD Enable or Disable selection. The setting reflected in this dialog makes an entry in the System Registry. It is in this same location that other media types are configured.

Notes:

1. Modifiying the Registry is not for the inexperienced user. Anyone will tell you, be VERY careful.

2. The modifications made in this case use Hex not Decimal numbers. If you are unfamiliar with the Registry or the characteristics of base numbering and Hex, studying these topics prior to making these modifications is advisable.

To Modify these Registry Settings, Use Regedit and navigate to the following Key:

HKEY_CURRENT_USER

Software

Microsoft

Windows

CurrentVersion

Policies

Explorer

"NoDriveTypeAutoRun"

The default value for the setting is 95 0 0 0. Change the first byte to 91. Restart the computer to make the new setting take effect. You may have to right-click on the floppy and choose AutoPlay from the menu to see the AutoPlay behavior.

Edit sagt das Microsoft Tool is leider für XP only.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Sind das spezielle USB-Sticks, die vom Verein zur Verfügung gestellt werden oder kann da "jeder Hinz und Kunz" mit seinem USB-Stick hingehen und sich da ranstöpseln? Bei ersterem könnte man eine Batch-Datei auf dem Stick hinterlegen, die per Autorun aufgerufen wird und die entsprechenden Befehle enthält.

[edit]

Als ich angefangen habe den Post zu schreiben waren die drei Posts über mir noch nicht da - bin ich zu langsam oder seid ihr zu schnell?!?

[/edit]

Bearbeitet von Eye-Q
Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich hab' da was gefunden: USB drive letter manager, das ist auch für Windows 2000 geeignet. Laut Hilfedatei kann man beim Anschluss eines USB-Sticks auch Programme ausführen, die nicht auf dem Stick liegen, z.B. wie beschrieben eine Batch-Datei, die prüft ob der Ordner auf dem Stick vorhanden ist, falls ja diesen löscht und den Ordner von der Festplatte auf den Stick kopiert.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Moin, ich habe das gleiche Problem schon vor einiger Zeit gehabt und hab mir dann einen Backup-Stick gebaut:

eine Autostart Datei auf den Stick, die eine Batchdatei öffnet in der das Verzeichnis steht und sich diesen Ordner selber "holt".

Stick rein.....automatisches backup.....stick raus....Fertig!

Vielleicht kann das ja jemandem helfen

(kauft keine teure backup software)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du hast aber schon mitbekommen dass da jeder mit seinem eigenen USB-Stick ohne irgendwas drauf ankommen und sich diesen Ordner ziehen kann, oder? Das ist eine andere Situation als deine, wo Du nur einen Stick hast, bei dem Du kontrollieren kannst was drauf ist und somit auch eine Autostart-Datei drauf kopieren kannst.

Link zu diesem Kommentar
Auf anderen Seiten teilen

prinzipiell könnte ich mir da was mit autoit oder ähnlichem vorstellen...

auf dem server läuft ein programm in einer endlosschleife, dass alle laufwerksbuchstaben auf existenz checkt. wenn ein neues laufwerk angesteckt wird, wird dieses beim nächsten schleifendurchlauf erkannt und die entsprechende kopieraktion kann angestoßen werden (bei autoit könnte zusätzlich der typ des neuen mediums mit drivegetype überprüft werden auf removable)... das löschen des ordners, falls es den gibt sollte ja nich so das problem darstellen ;-)

allerdings stellt sich mir noch eine andere frage: wie soll derjenige, der den stick einsteckt merken, dass das kopieren abgeschlossen ist?

Bearbeitet von Hüsi
Link zu diesem Kommentar
Auf anderen Seiten teilen

wie mache ich das mit autoit?

ist das ein tool?

das ist eine kostenlose scriptsprache, deren scripte du in eine exe "kompilieren" kannst. unter AutoIt Script Home Page kannst du alles runterladen, was du brauchst - neben scripteditor (scite) auch eine deutsche hilfe, die für deine zwecke reichen ... spiel damit ein wenig.... falls du überdies noch fragen hast: stell diese! :D

Link zu diesem Kommentar
Auf anderen Seiten teilen

hallo.

danke für die idee.

leider habe ich null ahnung von der ganzen sache!

ich weiss nicht mal wo ich ansetzen soll.

habe die beiden sachen runtergeladen und installiert.

mit dem editor muss ich wohl das script schreiben und mit dem autoit dann die exe erstellen oder?

ich weiss nicht wie ich das programmieren soll.

kann mir da jemand helfen?

mfg

robby

Link zu diesem Kommentar
Auf anderen Seiten teilen

im editor schreibst du das script, richtig.

vom grundgedanken her würd ich das so machen

1. endlosschleife erstellen (bspw. "while 1"..."wend")

2. da zwischen dann auf die jeweiligen laufwerke testen mit if fileexists

3. wenn entsprechend ein laufwerk exisitiert/gefunden wird, dann ggf noch prüfen, obs vom typ removeable (driveGetType) ist und anschließend deine kopieraktion starten.

problem dabei: bei jedem schleifendurchlauf wird neu kopiert... also müsste man auf ggf. mit ner versionierung arbeiten...

morgen könnt ich was grobes mal umsetzen (mit versionierung), damit du nen ansatz hast.... aber wenn du bis dahin schon was geschrieben hast, zeigs doch mal...

Link zu diesem Kommentar
Auf anderen Seiten teilen

im editor schreibst du das script, richtig.

problem dabei: bei jedem schleifendurchlauf wird neu kopiert... also müsste man auf ggf. mit ner versionierung arbeiten...

Da müsste ja ein einfache IF EXISTS DIR reichen?

Die Begriffe sagen mir einfach nichts. Tut mir leid :(

Wie wärs wenn du dich mal in das Thema einarbeitest? Ist logisch das man sowas nicht innerhalb von fünf Minuten hinbekommt.

Wenn du Linux verwenden würdest, könnte man sowas auf einfache Weise mit udev-Regeln realisieren.

Vielleicht hilft dir das hier auch weiter:

http://support.microsoft.com/kb/311272/de

Bearbeitet von lupo49
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

also ich würde einfach ein Programm zur Synchronisierung benutzen. Da gibts ja auch ne Menge Freeware.

Ich hab daheim eins, welches erkennt wenn ein USB Stick angeschlossen wird und dann die Synchronisation startet. Jeweils mit dem Laufwerk welches dem Stick zugeteilt wird.

Man kann auswählen ob man die neuesten Änderungen in beiden Ordnern übernimmt, oder wie in deinem Fall einen Ordner immer überschreibt.

Außerdem gibt das Programm einen Ton aus wenn es fertig ist, also weiß man auch wann man den Stick abziehen kann.

Ich benutz das daheim regelmäßig um meinen USB-Stick den ich immer mit mir rum schleppe zu sichern. Einfach reinstecken kurz warten und fertig. Egal ob grad noch die Kamera, Externe-Festplatte oder was auch immer dran ist.

Weiß jetzt leider nicht genau wie das heißt, aber ich schau daheim mal nach.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich habe mir vor noch gar nicht all zu langer Zeit ein Programm mit Java geschrieben welches das Windows Backup anschmeißt, sobald ein USB-Massenspeicher angeschlossen wird.

Ich habe das damals so gemacht dass ich einfach alle 10 Sekunden mir eine Liste der Laufwerke geben lasse (File.listRoots()) sobald ein neues Laufwerk auftauch könntest du dann über runtime.execute("...") beliebige Kommandozeilenbefehle ausführen.

Ich kann dir meinen Quellcode von damals gern zur Verfügung stellen. Große JAVA-Kentnisse sind dann für eine mini-Anpassung nicht mehr nötig. Ist aber von der Sache her so ziemlich der gleiche Lösungsansatz wie das was Hüsi vorschlägt. Nur die Sprache ist ne andere.

Link zu diesem Kommentar
Auf anderen Seiten teilen

doch ein wenig zeit gefunden:

Code fürs die au3/exe:

;--- Einstelungen aus ini auslesen

$SettingsFile = @ScriptDir&"\settings.ini"

$SourceDirPath = IniRead ($SettingsFile,"settings","SourceDir","")

$TargetDirRelPath = IniRead ($SettingsFile,"settings","TargetDirRelPath","")


while 1

	$Drives = DriveGetDrive("REMOVABLE")

	;--- "Removeable" Device angeschlossen

	if not @error then

		for $i=1 to $Drives[0]

			$TargetDirPath = $Drives[$i]&$TargetDirRelPath

			;--- Bereits vorhandene Version auf Zieldatenträger

			if FileExists ($TargetDirPath&"\Version.ini") then

				$TargetVersion = IniRead ($TargetDirPath&"\Version.ini","version","Version","0")

				$SourceVersion = IniRead ($SourceDirPath&"\Version.ini","version","Version","1") 

				;---Version kleiner ->löschen und kopieren

				if $TargetVersion < $SourceVersion Then

					SplashTextOn ("","Achtung! "&@CRLF&@CRLF&"Kopieraktionen aktiv!",400,200,Default,Default,33,Default,20)

					DirRemove ($TargetDirPath,1)

					DirCopy ($SourceDirPath,$TargetDirPath)

				Else

					;---Versionen gleich, keine Aktion nötig

					SplashOff()

				EndIf

			Else

				;---Keine Version auf Zieldatenträger vorhanden, nur kopieren

				SplashTextOn ("","Achtung! "&@CRLF&@CRLF&"Kopieraktionen aktiv!",400,200,Default,Default,33,Default,20)

				DirCopy ($SourceDirPath,$TargetDirPath)

			EndIf

		Next

	Else

		;--- kein "Removeable" Device Angeschlossen

		SplashOff()

	EndIf

WEnd

zusätzlich brauchst du eine settings.ini im gleichen verzeichnis wie die exe...
[settings]

SourceDir = C:\tmp\USB_AutoFiller\SourceDir

TargetDirRelPath = \TargetDir
wobei sourceDir ans quellverzeichnis angepasst werden muss und TargetDirRelPath quasi den Ordnernamen auf den Sticks mit anführendem \ angibt sowie im obersten ordner des SourceDirs eine version.ini
[version]

Version = 1

das ganze ist nur kurz getestet und sicherlich nicht der weisheit letzter schluss...

Edit: bei änderung der Daten musst du dann in der version.ini nur die version erhöhen...

Bearbeitet von Hüsi
Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...