Externe-Geräte automatisch freigeben?

Smasch

Cadet 1st Year
Registriert
Okt. 2011
Beiträge
13
Hallo!

Ja ich glaube meinTitel spricht schon für sich was meine Frage ist!?

Meine Vorstellung:

Ich habe viele kleine externe Geräte wie USB-Sticks oder auch mal externe Festplatten (eigene und von Freunden) da ich ein bisschen faul bin würde ich gerne einen USB-Hub an meinen Windows Server 2008 R2 schließen (hab ich schon) und dort möchte ich USB-Sticks und ExHDD anschließen die dann automatisch erkannt werden (das geht auch schon)!

Nun das Problem wo ich eure Hilfe brauche!
Wie schaffe ich es nun das der Server die Speichermedien im Heimnetzwerk an alle freigibt?
Oder wenn das sogar drin ist sich bestimmte HDDs merkt und diese nur für bestimmte User freigiebt!?

Danke schon mal im Vorraus!

Edit:

Okay ich hab grad im Internet was gefunden und zwar gibt es die Möglichkeit den Laufwerksbuchstaben von Wechseldatenspeichern zu entfernen und in einen Ordner zu mounten!
Der Vorteil das System merkt sie die Automatische Freigabe!

Weiß jemand ob man das Verallgemeinern kann? Das ALLE und nicht nur von mir eingestellte Datenträger in diesen Ordner gemountet werden?
 
Zuletzt bearbeitet: (update)
hm...mir würde nur ein kleines Script in der Sprache deiner Wahl einfallen...

Code:
while (true){
	driveletters = scanDriveLetters();
	if driveletters != oldDriveLetters {
		freigabe(neues Drive);
	}
	oldDriveLetters = driveLetters;
	sleep(5seconds);
}

wäre das in pseudocode, sollte sich in <30min in beliebigen sprachen machen lassen.

Freigabe geht mit dem "net" command

EDIT: Oh, ich lese gerade, du möchtest das in einem anderen verzeichnis freigeben.
Das würde mit dem selben Code gehen, nur stat der Freigabe machst du einen Symlink.
Das geht mit diesem Tool:
http://technet.microsoft.com/de-de/sysinternals/bb896768.aspx
da machst du einen Symlink im freigegebenen Verzeichnis der auf das gerade eingesteckte laufwerk zeigt.
Das wärs eig.

Beispiel: junction C:\Freigabe\USB_Stick_1 F:

Würde das Device das an F: am PC steckt im Ordner C:\Freigabe\USB_Stick_1 ansprechbar machen.
Wenn jetzt C:\Freigabe\ für deinen Benutzer freigegeben ist kannst du den User damit auf den Stick zugreifen lassen afik.
Löschen lassen sie die Junctions wie normale Ordner, allerdings wird dabei nur der symlink gelöscht, nicht aber das was dahinter steht
 
Zuletzt bearbeitet:
Danke für die Antwort!

also ein kleines Programm das in Endlosschleife läuft und immer wenn ein Speichermedium erkannt wird freigibt?

und das soll ich in unter 30min schaffen zu schreiben?
>kannst du mir dazu noch ein Tip geben? Ich hab vor ewigen Zeiten mal ein bisschen in C rumgedümpelt.

Edit:

Ich will nur das es Funktioniert! ^^
Wie ist mir eigentlich egal!
 
Zuletzt bearbeitet: (update)
Hm, ich muss mal schaun, ich hab glaubich ein ähnliches Programm mal für einen Freund geschrieben der USB Sticks kopieren wollte.
Ich kann da mal was für dich bauen wenn ich ein wenig Zeit habe.
 
Also dieses Programm (junction) funktioniert glaube ich nicht so wie ich das will.

Wenn ich ihm den Befehl C:/junction D:/ C:/Externe/Ex1 dann versucht er immer D:/:/ als Ziel zunehmen!

Geb ich was falsch ein?

(Ich bin mir bewusst das die Striche falsch rum sind)
 
das ist auch so richtig

junction <Ziel> <Quelle>

Ziel = wo der virtuelle Ordner entstehen soll der auf die Quelle zeigt
Quelle = der Ordner der wenn man das Ziel aufmacht gesehen wird
 
Ah okay ich habs jetzt mal an andern Ordnern ausprobiert das ist ja ein echts cooles Programm :cool_alt:!

Nur hab ich gedacht könnte man damit den Laufwerksbuchstaben "D:" ins Verzeichnis "C:/Externe/Ex1" verlinken!

So das wenn ich ein Medium mit dem Rechner verbinde der USB-Stick vom System in "D:" gemountet wird und ich den in der Freigabe unter "Ex1" sehe!
 
Sooo ich hab da was für dich ^^

http://dl.dropbox.com/u/9857661/JunctionCreator.rar

Virusscan der Files:
JunctionCreator.exe
shell.dll
junction.exe ist die von MS, kannst aber ruhig meine weglassen und deine nehmen.
Kannst mittels Hashes überprüfen obs die gleichen sind -> Virusfrei

Funktionsweise:

JunctionCreator.exe starten
Pfad auswählen der Freigegeben ist (z.B C:\Freigabe\ )
Start/Stop drücken

Jedesmal wenn ein USB Stick angesteckt wird wird erstellt das Programm automatisch eine Junction mit dem Drive letter.

z.B stecke ich H:\ an dann entsteht die Junction C:\Freigabe\H\

wenn der USB Stick wieder abgezogen wird wird die Junction wieder gelöscht.

Es funktioniert nur wenn der Stick oder die Platte angesteckt wird WÄHREND das Programm schon läuft.
Wenn du das Programm zu machst bleiben die Junctions so wie sie sind.
Das Programm speichert nichts und macht auch nicht mehr als das was ich beschrieben habe.
 
Zuletzt bearbeitet:
boah Wahnsinn!!! Vielen Dank es geht!

Nur einen kleinen Schönheitsfehler möchte ich erwähnen wenn man ein zweiten USB-Stick anschließt ist der erste verschwunden.

Sonst ist es genau das wo nach ich gesucht hab!! Vielen DANK für deine Hilfe :)
Hast du das selbst geschrieben?
Kannst du diesen "Fehler" beheben?

Edit: Ich seh grad auf dem Server sind beide "Verknüpfungen" zu sehn nur beim Client sieht man nur den zweiten Stick!
Es scheint sogar nur ein Windows-Problem zu sein! Ich hab auch noch ein Mac im Netzwerk und der sieht beide "Verknüpfungen".
 
Zuletzt bearbeitet:
ja ist selbst geschrieben ^^ ich schau mal, sollt nur n kleiner fehler sein

ok bei mir tritt der fehler nicht auf, kannst du mir mal das log schicken?
Client & Server sind je W7 x64 Professional, allerdings selbstverständlich unterschiedliche Hosts.
Jeder USB Stick taucht automatisch auf innerhalb von 1sek.

Wenn du dir ein anderes Namensschema wünscht nur sagen, das hab ich in 10sek korrigiert.
Wenn du willst ists auch möglich dass wenn am USB stick eine File mit "name.usb" ist, dass dann der inhalt dieser Datei für den Ordnernamen verwendet wird.
Musst nur sagen was dir lieber ist, so wie jetzt, oder mit name.usb...
Leider ists mir nicht möglich dass ich die Namen der Festplatte oder des Sticks verwende (wie Lokaler Datenträger oder wie du es benannt hast)
Auch andere Features sind gerne wilkommen wenn du was haben möchtest (unterschiedliche abfragezeiten...oder was dir einfällt)

Das wird ja eh immer brav ausgegeben. Einfach einen usb stick nach dem anderen anschließen und wieder entfernen damit ich ein ganzes log hab.

Ein kleiner Bug war dass ich einen Harken falsch gesetzt habe wodurch unter W7 alles auf der Taskleiste verschwindet...ka ob das bei dir auch so ist

EDIT: ah ok, für das kann ich nichts.
Probier mal z.B beim client zu aktualisieren oder neu verbinden...vl hilft das

Hier ist eine Version mit dem bugfix dass unter w7 nichtmehr alles verschwindet ^^
http://dl.dropbox.com/u/9857661/JunctionCreator v2.rar
 
Zuletzt bearbeitet:
Junction Creator Service started
Remove Junction for Device D:\
Create Junction for Device D:\

Junction v1.06 - Windows junction creator and reparse point viewer
Copyright (C) 2000-2010 Mark Russinovich
Sysinternals - www.sysinternals.com

Created: C:\ExSpeicher\D
Targetted at: D:\

Create Junction for Device E:\

Junction v1.06 - Windows junction creator and reparse point viewer
Copyright (C) 2000-2010 Mark Russinovich
Sysinternals - www.sysinternals.com

Created: C:\ExSpeicher\E
Targetted at: E:\
das log ich starte den server mal neu und den Win7 rechner auch!

Edit:

Nein ich muss sagen funzt wirklich echt gut!
Aber! eins hab ich noch :) macht es großen Aufwand den Code so zu modifizieren das er sich die Auswahl (target) merkt? beim erneuten öffnen des Programms? halt das man es in den startprozess von windows einbinden kann und man den server nur startet und alles geht sein gang :)
aber muss nicht sein ich will dich nicht überanspruchen! du bekommst ein Daumen hoch von mir! für deine Hilfe!!
 
Zuletzt bearbeitet:
Hier die v0.3

neue Funktionen:
- Speichert sich was der letzte Pfad war
- Existiert solch ein letzter Pfad in der config.cfg Datei, dann wird der Service automatisch gestartet
- Enthält das Device die Datei name.usb dann wird die erste Zeile dieser Datei als Name für den Symlink Verwendet.
Also wenn auf der Festplatte die Datei "name.usb" den Inhalt "Filme" hat dann wird die Festplatte unter /Filme/ im Verzeichnis verknüpft.
Das hab ich desswegen eingebaut weil es sicher nützlich ist dass die Devices nicht nur unter C, D, E, F eingebunden werden sondern dass man auch weiß was drin ist.
Sicher nützlich dass man z.B definiert "Festplatte_Filme" oder "Festplatte_Serien" oder ähnliches.

Aufpassen:
Das Programm prüft nicht ob die Angaben korrekt sind. Wenn der Pfad in der Config-File leerzeichen enthält geht es z.B nicht.
Ich bin mir nicht sicher, aber ich glaube auch der Name in der name.usb nimmt keine leerzeichen.
Auch wird nicht geprüft ob in der name.usb datei ungültige Zeichen sind. ist z.B dort im Namen ein \ oder ein anderes verbotenes Zeichen drin, dann wird das nicht funktionieren.
Auch wird nicht auf duplikate überprüft. Heißen 2 Festplatten "Filme" dann wird das wsl. nicht gehen.

http://dl.dropbox.com/u/9857661/JunctionCreator v0.3.rar

MFG Zeroflow
 
Zuletzt bearbeitet:
Zurück
Oben