Upload-Verzeichnis unter Vista weg

jw1hal

fühlt sich hier wohl
Upload-Verzeichnis weg

Hi,

ich habe vor einigen Tagen Windows Vista Ultimate und anschließend den G6 3.9.0 (Build 2) installiert. Anschließened habe ich das alte Installationsverzeichnis von Windows XP drüberkopiert. Der Server läuft. Ich hatte zwar Probleme mich als Administrator einzuloggen, aber nachdem ich den Server nochmals installiert und drüberkopiert hatte ging das auch. Wer weiß, woran das lag.

Nun komme ich zu den eigentlichen Problem. Ich habe ein Upload-Verzeichnis, in dem beim Einloggen eines Users ein Verzeichnis mit dem jeweiligen Usernamen entstehen soll. Läd er was ins Upload, liegt das anschließend in dem Unterverzeichnis mit seinem Namen. Läd er nichts hoch, wird das Unterverzeichnis wieder gelöscht. Bei WindowsXP war das jedenfalls so.

Nun sehe ich das Upload-Verzeichnis nur, wenn darin bereits eine Ordner mit meinen Namen ist. Ansonsten ist das gar nicht da. Gebe ich im Totalcommander manuell das Verzeichnis "0:/2. Upload" an, steht folgendes im Log.
Code:
CWD /2. upload
change directory '/2. upload' -> 'merge://c:\ftp\2. upload,d:\ftp\2. upload,e:\ftp\2. upload,i:\ftp\2. upload' --> Access denied.
550 CWD failed. No permission.
Ich habe unter anderen folgende Gruppe mit 2 Einträgen angelegt.
Virtueller Pfad: /02. Upload
echter Pfad: D:\Ftp Upload\$USR_ACCOUNT
Virtueller Pfad: /02. Upload
echter Pfad: D:\Ftp Upload\$USR_NAME

Also nix mit Merge. Ich habe allerdings das Homeverzeichnis mit Merge. Das sieht so aus.
Virtueller Pfad: /
echter Pfad: merge://c:\ftp,d:\ftp,e:\ftp,i:\ftp

Aber das dürfte ja nichts damit zu tun haben. Unter Domäneneinstellung habe ich unter Scripte einen Haken bei "UploadFolder.vbs" drin. In dem Script steht auch der Pfad zum Uploadverzeichnis drin. Wie gesagt, unter Windows XP ging das noch tadellos. Aber jetzt will es nicht mehr. Ich weiß nicht mehr, wonach ich noch schauen sollte. Im Forum finde ich auch nichts dazu. Was könnte ich noch tun?

Gruß Jan
 
Zuletzt bearbeitet:
Zwei Mal der selbe virtuelle Pfad mit unterschiedlichen Namen?
Was passiert, wenn Du den einen Eintrag mal rausnimmst?

Hast Du Dir mal die ini-Dateien im Accounts-Verzeichnis angesehen, ob die durch das vorherige Troubleshooting vielleicht irgendwie durcheinander sind?
 
Hi,

Danke für die schnelle Antwort. Dann fange ich mal an.

Zwei Mal der selbe virtuelle Pfad mit unterschiedlichen Namen?
Aus diesem Grund habe ich 2x den selben Pfad. Das hat auch unter Windows XP bisher gut funktioniert.

Was passiert, wenn Du den einen Eintrag mal rausnimmst?
Ich habe jetzt jeweils einen Eintrag herausgenommen, dann den Server gestoppt und wieder gestartet. Aber Upload ist immer noch nicht da. Es ist nur da, wenn im Upload schon ein Unterverzeichnis mit dem jeweiligen User existiert. Also hat es für mich den Anschein, dass dieses Unterverzeichnis aus irgend welchen Gründen nicht erstellt werden kann und demzufolge kein Upload vorhanden ist.

Hast Du Dir mal die ini-Dateien im Accounts-Verzeichnis angesehen, ob die durch das vorherige Troubleshooting vielleicht irgendwie durcheinander sind?
Hier ist die INI-Datei zum Upload.
Code:
[Group]
AccessList0=/02. Upload,D:\Ftp Upload\$USR_ACCOUNT,-WDA,FDMRI---
CreationDate=2006/09/23 20:39:08
Enabled=True
Notes=
TimeOfDayAccessEnabled=False
TransferLimitDownloadCurrent=0
TransferLimitDownloadEnabled=False
TransferLimitDownloadMax=0
TransferLimitLastUpdate=2006/09/24
TransferLimitType=0
TransferLimitUploadCurrent=0
TransferLimitUploadEnabled=False
TransferLimitUploadMax=0
AccessList1=/2. Upload,D:\Ftp Upload\$USR_NAME,-WDA,FDMRI---
Oder meintest du eine andere Datei?

Gruß Jan
 
Nein, das ist schon die richtige.
Du siehst mich erstmal ratlos - könntest Du mir Dein gesamtes Accounts-Verzeichnis mal einpacken und zuschicken?
(service at g6ftpserver.de)
Ich würde das dann gerne hier mal nachstellen. Allerdings bin ich das ganze Wochenende auf Achse, kann also ein paar Tage dauern.
 
Hi,

ich habe es an (service at g6ftpserver.de) geschickt. " at " habe ich durch "@" ersetzt. Ist doch richtig, oder?

Gruß Jan
 
Ja, das ist richtig. Im Spamfilter ist auch nichts gelandet.
Seltsam - kannst Du es bitte nochmal versuchen? Ansonsten geb ich Dir meine Faxnummer, dann musst Du es nur noch ausdrucken ;).
 
Soderle.
Ich hab das dann doch lieber bei mir "nachgebaut" und muss Dir leider mitteilen:
Es hat funktioniert.
Zuerst mit einem normalen Homedirectory, dann mit einem gemergten, allerdings nur aus zwei Verzeichnissen.
Ich vermute sehr stark, dass es an Deinem Merge liegt, wenn man sich die Meldung im Protokoll mal anschaut:

change directory '/2. upload' -> 'merge://c:\ftp\2. upload,d:\ftp\2. upload,e:\ftp\2. upload,i:\ftp\2. upload' --> Access denied.

Es wird also quasi versucht, aus vier Upload-Verzeichnissen eines zu machen, und das schlägt fehl, denn physikalisch gibt es ja nur das eine.

Ich schlage folgendes vor, auch wenn es etwas umständlich ist.
Nimm das merge mal raus und starte mit einem einzigen Verzeichnis.
Wenn das klappt, merge eines nach dem anderen dazu und beobachte, ob und wann das Problem auftritt. Ich vermute, dass eines davon der Verursacher ist.
 
@Supernature
Erst mal vielen Dank, für deine Bemühungen. Ich fange mal an.

Soderle.
Ich hab das dann doch lieber bei mir "nachgebaut" und muss Dir leider mitteilen:
Es hat funktioniert.
Zuerst mit einem normalen Homedirectory, dann mit einem gemergten, allerdings nur aus zwei Verzeichnissen.
Ich vermute sehr stark, dass es an Deinem Merge liegt, wenn man sich die Meldung im Protokoll mal anschaut:
Wenn es bei dir mit Merge und auch ohne Merge funktionierte, kann es eigentlich vom Logischen gar nicht die Ursache sein. Denn mit dem Homeverzeichnis habe ich ja keine Probleme.

Es wird also quasi versucht, aus vier Upload-Verzeichnissen eines zu machen, und das schlägt fehl, denn physikalisch gibt es ja nur das eine.
Das sehe ich nicht so. Es wird versucht aus 4 Homeverzeichnissen eines zu machen. Und dann soll versucht werden, ein Uploadverzeichnis anzuzeigen, sowie sich in dem einem Uploadverzeichnis ein Verzeichnis mit dem jeweiligen Useraccount oder Useralias bildet.
Dieses soll geschehen, sowie sich der User mit seinen Accountnamen oder Aliasnamen erfolgreich einloggt. Und genau das passiert hier unter Vista nicht. Unter XP ging das noch tadellos.
Erstelle ich allerdings das Verzeichnis mit dem jeweiligen Usernamen oder Aliasnamen für einen bestimmten User im Uploadverzeichnis manuell, dann kann dieser User auch das Upload sehen.
Also funktioniert das Merge und auch das Upload. Es besteht meiner Meinung nach nur ein Problem mir dem Script, welches aus Useraccount oder Useralias ein Verzeichnis mit dem Usernamen oder Useraccount erzeugen soll. Da dieses Verzeichnis aber nicht erzeugt wird, kann das Upload auch nicht angezeigt werden. Denn es wird erst angezeigt, wenn ein Verzeichnis mit dem jeweiligen Useraccount oder Useralis im Uploadverzeichnis vorhanden ist.

Ich schlage folgendes vor, auch wenn es etwas umständlich ist.
Nimm das merge mal raus und starte mit einem einzigen Verzeichnis.
Wenn das klappt, merge eines nach dem anderen dazu und beobachte, ob und wann das Problem auftritt. Ich vermute, dass eines davon der Verursacher ist.
Auch wenn ich anderer Meinung bin, habe ich deinen Vorschlag Folge geleistet. Ich könnte mich ja auch irren.
Also habe ich das Homeverzeichnis ganz alleine auf die "Platte C", dann "Platte D", dann "Platte E", dann "Platte I" und anschliessend wieder mit Merge auf alle 4 Platten gelegt. Nach jeder Einstellung habe ich vorsichtshalber den Server gestoppt und wieder gestartet und dann erst getestet. Aber was muss ich sagen, alle 5 Einstellungen brachten das selbe Ergebnis, nämlich kein Uploadverzeichnis.

Wie ich weiter oben erwähnte, vermute ich ganz stark, dass es an dem Script liegt. Was ist bei Vista anders als bei XP? Was könnte ich in Bezug auf dieses Script noch versuchen? Ich bin ja nicht so der Scripte-Meister. Hat das was mit Rechten zu tun oder geht dieses Script nicht unter Vista? Den Server habe ich übrigens unter meinen Benutzernamen gestartet, damit gelöschte Dateien auch in den Papierkorb wandern. Mein Benutzername hat Admin-Rechte.

Was mich eigentlich noch nervt, was bedeutet diese Meldung?
Code:
change directory '/2. upload' -> 'merge://c:\ftp\2. upload,d:\ftp\2. upload,e:\ftp\2. upload,i:\ftp\2. upload' --> Access denied.
Ich habe kein Upload eingestellt, welches von 4 Festplatten zu einem Verzeichnis gemergt werden soll. Ich habe nur ein Uploadverzeichnis auf der "Platte D". Siehe hier:
Code:
Upload:

Virtueller Pfad: /02. Upload
echter Pfad: D:\Ftp Upload\$USR_ACCOUNT
Virtueller Pfad: /02. Upload
echter Pfad: D:\Ftp Upload\$USR_NAME


Homeverzeichnis:

Virtueller Pfad: /
echter Pfad: merge://c:\ftp,d:\ftp,e:\ftp,i:\ftp

Also, was könnte ich noch versuchen? Ich tippe sehr stark in Richtung Script (UploadFolder.vbs).
Hat jemand dieses Script unter Vista laufen?

Gruß Jan
 
Zuletzt bearbeitet:
Ich habe ja genau mit diesem UploadFolder.vbs-Script getestet, und es funktionierte.
Manuell kannst Du also das Verzeichnis erstellen, das Script tut es aber nicht.
Das klingt schwer nach einem Berechtigungsproblem.
Mach mal einen Rechtsklick auf D:\Ftp Upload und wähle Eigenschaften/Sicherheit - welche Berechtigungen sind da zu sehen?
Bei mir hat "JEDER" Vollzugriff auf das Verzeichnis.
 
Hi,

ich glaube das Problem gelöst zu haben. Nachdem ich alle Verzeichnisse hin und her verändert habe, neue Verzeichnisse in einem einzelnen Homeverzeichnis angelegt habe, dann mit den Rechten sämtlicher Verzeichnisse herumexperimentiert habe und alles kein Erfolg brachte, kam ich ganz nebenbei auf die Idee, den Haken bei dem Script "Autoban.vbs" zu entfernen, weil es in der Log-Datei seit einiger Zeit Fehler ausgab und ich mich diesem Script später witmen wollte. Und siehe da, auf einmal funktionierte das Upload wieder. Wenn ich den Haken bei Autoban wieder setze, ist das Upload wieder nicht zu sehen. Also liegt es genau daran. Würde mich nur interessieren, warum?
Der Fehlerer lautet:
Code:
10.01.2008 05:46:58: Error #0, ActiveX-Komponenten kann kein Objekt erstellen: 'g6autoban.autoban', Laufzeitfehler in Microsoft VBScript, Line: 80, Column: 2
Ich weiß nicht ob ich jetzt dazu lieber ein neues Thema eröffne oder hier aiuf eine Antwort warte. aber ich muss zugeben, nach diesem Fehler noch gar nicht gesucht zu haben. Das werde ich gleich mal tun, vielleicht gibt es die Thematik schon und ich finde eine Lösung.
Ich bedanke mich nochmals für die Bemühungen.

Gruß Jan
 
Jetzt habe ich noch folgende Schritte durchgeführt, welche man ja beim Neuaufsetzen in einem frischen Betriebssystem machen sollte und hoffe auf eine fehlerfreie Log-Datei.
Code:
1. copy autoban.vbs to the G6 FTP Server Scripts's folder, and enable it as Domain script.
2. run "regsvr32 g6autoban.dll" to register the dll.
3. run g6autobangui.exe to make your settings.
4. restart g6ftp.
So, erster Test ergab keine Fehler in der Log.
Also lag es letztendlich an Punkt 2 dieser 4 Zeilen.

Sowas kommt von sowas, wenn man sich irgendwann mal den Server einrichtet und der dann eine ganze Weile läuft, ohne das man großartig was machen muß. Da kann man ganz schnell vergessen was man beim Einrichten einiger Funktinen und Scripte so beachten muss. Das mit dem Autoban habe ich überhaupt nicht mehr gewusst. Aber das dadurch gleich das Upload nicht angezeigt wird, damit rechnet man ja nicht. Aber hinterher ist man immer schlauer als vorher.

Ein Dank geht nochmals besonders an Supernature, der sich die Zeit genommen hat, meine Gegebenheiten bei sich nachzustellen. Von mir ein Bienchen und weiter so.

Gruß Jan
 
Hi,

jetzt muss ich das mal fortsetzen. Ich habe für die Geschichte mit dem Upload-Verzeichnis 2 Scripte. Ein Altes und ein Neues. Bei dem alten Script wird im Upload-Verzeichnis wahlweise für den Accountnamen oder den Aliasnamen ein Verzeichnis angelegt. Beim neuen Script ist funktioniert das mit dem Aliasnamen nicht mehr. Bei dem neuen Script wurde irgendwas mit Multiuser hinzugefügt und überall "Client.Username" zu "Client.AccountName" abgeändert. Was das nun alles genau bedeutet, weiß ich nicht.
Vielleicht kann mir das jemand verraten und mir erklären, wie ich vielleicht beide Scripte vereinen könnte oder so.

Hier mal noch die beiden Scripte.
altes Script:
Code:
Option Explicit
'#####################################################
'# Script: UploadFolder.vbs @ G6FTPServer(3.2.0.72)
'# Author: IceMan @ tbm_iceman@hotmail.com (MSN)
'#
'# Date:         04-09-2004
'# Last Updated: 20-09-2004
'#
'# DESCRIPTION:
'# - When a user connects he gets his own 
'# - Upload folder, instead of all users sharing the
'# - same folder.
'# - Now this is nice because you don't have to
'# - create lots of folders and mount each folder
'# - to a user, class or group.
'# - With this script you just make one binding and
'# - it will do the rest.
'# - 
'# - When a user login, it creates a folder with 
'# - the users name as foldername and bind the
'# - new folder as that users upload folder.
'# - That way users can't see what other people have
'# - uploaded and not delete them.
'# - 
'# - If the folder is empty when the user Disconnects
'# - the script will delete it so that you don't have 
'# - a lot of empty folders.
'# - 
'# - This way you can also see what users upload.
'# *********************************
'# NOTE:
'# - Remember to set your upload dir like this:
'# -
'# -  Virtual[Path]:    Real[Path]:
'# -    /Upload           X:\Upload\$USR_ACCOUNT
'# -
'# *********************************
'# Plz don't steal my code.
'# If you do plz leave this message... :)
'#####################################################


'-----------------------------------------------------
' Path to your upload folder.
'   NB: Format must be closed with a "\"
'
Const UploadPath = "D:\Upload\"





'*************************************************************************
'**** DO NOT EDIT BELOW **** DO NOT EDIT BELOW **** DO NOT EDIT BELOW ****
'*************************************************************************
'**** DO NOT EDIT BELOW **** DO NOT EDIT BELOW **** DO NOT EDIT BELOW ****
'*************************************************************************

Sub OnClientLoggedIn()
	Dim FSO, FolderSize
	Set FSO = CreateObject("Scripting.FileSystemObject")
	If NOT (FSO.FolderExists(UploadPath & Client.Username)) Then
		FSO.CreateFolder(UploadPath & Client.Username)
	End If
	Set FSO = Nothing
End Sub

Sub OnClientDisconnected()
	Dim FSO, FolderSize
	Set FSO = CreateObject("Scripting.FileSystemObject")
	If (FSO.FolderExists(UploadPath & Client.Username)) Then
		FolderSize = FSO.GetFolder(UploadPath & Client.Username).Size
		If FolderSize = 0 Then
			FSO.DeleteFolder(UploadPath & Client.Username)
		End If
	End If
	Set FSO = Nothing
End Sub
neues Script:
Code:
Option Explicit
'#####################################################
'# Script: UploadFolder.vbs @ G6FTPServer(3.3.1.x)
'# Author: IceMan @ tbm_iceman@hotmail.com (MSN)
'#
'# Last Updated: 03-03-2005
'# Released:     04-09-2004
'#
'# DESCRIPTION:
'# - When a user connects he gets his own 
'# - Upload folder, instead of all users sharing the
'# - same folder.
'# - Now this is nice because you don't have to
'# - create lots of folders and mount each folder
'# - to a user, class or group.
'# - With this script you just make one binding and
'# - it will do the rest.
'# - 
'# - When a user login, it creates a folder with 
'# - the users name as foldername and bind the
'# - new folder as that users upload folder.
'# - That way users can't see what other people have
'# - uploaded and not delete them.
'# - 
'# - If the folder is empty when the user Disconnects
'# - the script will delete it so that you don't have 
'# - a lot of empty folders.
'# - 
'# - This way you can also see what users upload.
'# *********************************
'# NOTE:
'# - Remember to set your upload dir like this:
'# -
'# -  Virtual[Path]:    Real[Path]:
'# -    /Upload           X:\Upload\$USR_ACCOUNT
'# -
'# *********************************
'# Plz don't steal my code.
'# If you do plz leave this message... :)
'#####################################################


'-----------------------------------------------------
' Path to your upload folder.
'   NB: Format must be closed with a "\"
'
Const UploadPath = "D:\Upload\"



'*************************************************************************
'**** DO NOT EDIT BELOW **** DO NOT EDIT BELOW **** DO NOT EDIT BELOW ****
'*************************************************************************
'**** DO NOT EDIT BELOW **** DO NOT EDIT BELOW **** DO NOT EDIT BELOW ****
'*************************************************************************

Sub OnClientLoggedIn()
	Dim FSO, FolderSize
	Set FSO = CreateObject("Scripting.FileSystemObject")
	If NOT (FSO.FolderExists(UploadPath & Client.AccountName)) Then
		FSO.CreateFolder(UploadPath & Client.AccountName)
	End If
	Set FSO = Nothing
End Sub

Sub OnClientDisconnected()
	Dim FSO, FolderSize
	If MultiUser = True Then
		Exit Sub
	End If
	Set FSO = CreateObject("Scripting.FileSystemObject")
	If (FSO.FolderExists(UploadPath & Client.AccountName)) Then
		FolderSize = FSO.GetFolder(UploadPath & Client.AccountName).Size
		If FolderSize = 0 Then
			FSO.DeleteFolder(UploadPath & Client.AccountName)
		End If
	End If
	Set FSO = Nothing
End Sub

Function MultiUser()
	Dim Manager, Clients, LClient, UserCount, i
	Set Manager = CreateObject("G6FTPServer.Manager")
	Set Clients = Manager.Domains.Item(Domain.Name).ClientList
	For i = 0 To Clients.Count-1
		Set LClient = Clients.Item(i)
		If LClient.AccountName = Client.AccountName Then
			UserCount = UserCount + 1
		End If
		If UserCount > 1 Then
			MultiUser = True
			Exit Function
		End If
	Next
	MultiUser = False
End Function

Gruß Jan
 
Oben