Problem mit Netzwerkfreigabe Zugriff
Halloo,
nach stundenlangem googlen, komm ich einfach nicht weiter und dachte mir dass ich mein Problem einfach mal hier schildere.
Folgendes:
Ich habe einen Win2003 SBS server und zwei Clients. Auf dem Server gibts zwei Netzwerkfreigaben zu Daten-Ordnern auf die von den Clients zugegriffen werden soll. Ordner PUBLIC und Ordner PRIVATE
Nun gibt es in der Domäne einen Benutzer A und einen Benutzer B.
Benutzer A darf nur auf Ordner PUBLIC zugreifen. Benutzer B darf auf beide Ordner zugreifen.
Die Freigaben werden jenachdem welcher Benutzer sich anmeldet per NETLOGON script als Laufwerke gemappt.
Das funktioniert "eigentlich" noch.....
Mein Problem ist nun, dass es manchmal passiert, dass ich mich als Benutzer B anmelde und auf das Laufwerk PUBLIC aber nicht auf das Laufwerk PRIVATE zugreifen kann. Nicht nur im Arbeitsplatz...auch in der Netzwerkumgebung. Meldung "Zugriff verweigert".
Wenn das passiert, sehe ich auf dem Server bei Netzwerkfreigaben unter Sitzungen, dass nicht der Benutzer B sondern der Benutzer A auf diesem Rechner angemeldet ist?!?!
Wie kann das sein?? Obwohl ich auf jeden Fall als Benutzer B angemeldet bin am Client?!?!
Jetzt ist mir ja aufgefallen, dass wenn man in einer Session am Client mit einer bestimmten benutzerkennung auf eine Freigabe zugreift, man nur noch diese Verwenden kann bis man sich neu anmeldet am Client!
Evtl. liegt es an irgendeinem Dienst oder Programm dass sich beim Anmelden immer mit BENUTZER A irgendwo ins Netzwerk verbindet?!?!Und dann kann ich mich natürlich nicht mehr als Benutzer B anmelden wenn der Dienst zuvor schonmal Benutzer A hat. Falls dieser prozess vor dem NETLOGON script ausgeführt wird.
Falls die prozesse und NETLOGON in einer immer wieder zufälligen reihenfolge ausgeführt werden, würde es erklären warum es manchmal funktioniert mit dem Zugriff und manchmal nicht.
Habe aber eigenltich alle laufenden Prozesse gechecked.....mir ist da nichts aufgefallen!
Fällt euch vielleicht noch etwas ein, oder kennt einer vielleicht das Problem??
Danke euch schon mal!!
Grüße
nach stundenlangem googlen, komm ich einfach nicht weiter und dachte mir dass ich mein Problem einfach mal hier schildere.
Folgendes:
Ich habe einen Win2003 SBS server und zwei Clients. Auf dem Server gibts zwei Netzwerkfreigaben zu Daten-Ordnern auf die von den Clients zugegriffen werden soll. Ordner PUBLIC und Ordner PRIVATE
Nun gibt es in der Domäne einen Benutzer A und einen Benutzer B.
Benutzer A darf nur auf Ordner PUBLIC zugreifen. Benutzer B darf auf beide Ordner zugreifen.
Die Freigaben werden jenachdem welcher Benutzer sich anmeldet per NETLOGON script als Laufwerke gemappt.
Das funktioniert "eigentlich" noch.....
Mein Problem ist nun, dass es manchmal passiert, dass ich mich als Benutzer B anmelde und auf das Laufwerk PUBLIC aber nicht auf das Laufwerk PRIVATE zugreifen kann. Nicht nur im Arbeitsplatz...auch in der Netzwerkumgebung. Meldung "Zugriff verweigert".
Wenn das passiert, sehe ich auf dem Server bei Netzwerkfreigaben unter Sitzungen, dass nicht der Benutzer B sondern der Benutzer A auf diesem Rechner angemeldet ist?!?!
Wie kann das sein?? Obwohl ich auf jeden Fall als Benutzer B angemeldet bin am Client?!?!
Jetzt ist mir ja aufgefallen, dass wenn man in einer Session am Client mit einer bestimmten benutzerkennung auf eine Freigabe zugreift, man nur noch diese Verwenden kann bis man sich neu anmeldet am Client!
Evtl. liegt es an irgendeinem Dienst oder Programm dass sich beim Anmelden immer mit BENUTZER A irgendwo ins Netzwerk verbindet?!?!Und dann kann ich mich natürlich nicht mehr als Benutzer B anmelden wenn der Dienst zuvor schonmal Benutzer A hat. Falls dieser prozess vor dem NETLOGON script ausgeführt wird.
Falls die prozesse und NETLOGON in einer immer wieder zufälligen reihenfolge ausgeführt werden, würde es erklären warum es manchmal funktioniert mit dem Zugriff und manchmal nicht.
Habe aber eigenltich alle laufenden Prozesse gechecked.....mir ist da nichts aufgefallen!
Fällt euch vielleicht noch etwas ein, oder kennt einer vielleicht das Problem??
Danke euch schon mal!!
Grüße
Please also mark the comments that contributed to the solution of the article
Content-Key: 129063
Url: https://administrator.de/contentid/129063
Printed on: April 17, 2024 at 21:04 o'clock
5 Comments
Latest comment
Hi,
das hört sich für mich stark danach an das du den Parameter "/persistent" nicht auf "no" gesetzt hast.
Denn damit werden die Netzwerkverbindungen _nicht_ jedesmal neu verbunden wenn du dich anmeldest sondern erst wenn das Skript durchläuft.
Du solltest dich einmal mit dem Benutzer anmelden, die Netzluafwerke trennen und dich ab- und wieder anmelden mit dem oben genannten Parameter.
Dann sollte das auch ohne Probleme funktionieren :o)
das hört sich für mich stark danach an das du den Parameter "/persistent" nicht auf "no" gesetzt hast.
Denn damit werden die Netzwerkverbindungen _nicht_ jedesmal neu verbunden wenn du dich anmeldest sondern erst wenn das Skript durchläuft.
Du solltest dich einmal mit dem Benutzer anmelden, die Netzluafwerke trennen und dich ab- und wieder anmelden mit dem oben genannten Parameter.
Dann sollte das auch ohne Probleme funktionieren :o)
Hallo,
hast du Gruppenrechtlinen erstellt? Dann könntest du die beiden User in verschiedene Gruppen nehmen und sie dann mittels Skript beim Start den einzelnen Gruppen zuordnen. z.b so:
###QUELLCODE####
Dim strComputerName
Dim strUserName
Dim strDomainName
dim strUserOU
Dim strPrinter
Dim objADSysInfo
Dim wshNetwork
Dim WshShell
Dim WshSysEnv
Dim oShell
Dim oShFolder
Dim objUser
Dim objOU
Dim objNetwork
Dim rootDSE
Dim oPq
Set wshNetwork = WScript.CreateObject( "WScript.Network" )
Set WshShell = WScript.CreateObject("WScript.Shell")
Set WshProcEnv = WshShell.Environment("Process")
Set WshUserEnv = WshShell.Environment("USER")
Set objADSysInfo = CreateObject("ADSystemInfo")
Set oShell = CreateObject("Shell.application")
Set oShFolder = oShell.Namespace(17)
Set objUser = GetObject("LDAP:" & objADSysInfo.UserName)
Set objOU = GetObject(objUser.parent)
Set objFSO = CreateObject("Scripting.FileSystemObject")
strComputerName = wshNetwork.computerName
strUserName = wshNetwork.userName
strDomainName = wshNetwork.userDomain
Server1 = "XXXXXXXXX"
Do While wshNetwork.username = ""
WScript.Sleep 500
Loop
wshShell.Run "net time /domain:" & wshNetwork.UserDomain & " /set /yes", 0, TRUE
Call subdrivemap
Sub subdrivemap()
adspath = "WinNT:" & strDomainName & "/" & strUserName
Set adsobj = GetObject( adspath )
'##### vorhandene Laufwerke löschen
On Error Resume Next
wshNetwork.RemoveNetworkDrive "X:", True, True
wshNetwork.RemoveNetworkDrive "Y:", True, True
wshNetwork.MapNetworkDrive "Y:", "\\"&Server1&"\PRIVATE"
For Each prop In adsobj.groups
Select Case UCase(prop.name)
Case "Gruppe A"
WScript.Echo "Anmeldung für "& strUserName erfolgreich!"
Case "Gruppe B"
wshNetwork.MapNetworkDrive "X:", "\\"&Server1&"\PUBLIC"
WScript.Echo "Anmeldung für "& strUserName erfolgreich!"
Exit Sub
End Select
Next
End Sub
Dann überprüft der beim Start welche Gruppe dem User gehört und mappt dann die Laufwerke, nachbelieben kann man auch noch Drucker hinzufügen.
Gruß Martin
hast du Gruppenrechtlinen erstellt? Dann könntest du die beiden User in verschiedene Gruppen nehmen und sie dann mittels Skript beim Start den einzelnen Gruppen zuordnen. z.b so:
###QUELLCODE####
Dim strComputerName
Dim strUserName
Dim strDomainName
dim strUserOU
Dim strPrinter
Dim objADSysInfo
Dim wshNetwork
Dim WshShell
Dim WshSysEnv
Dim oShell
Dim oShFolder
Dim objUser
Dim objOU
Dim objNetwork
Dim rootDSE
Dim oPq
Set wshNetwork = WScript.CreateObject( "WScript.Network" )
Set WshShell = WScript.CreateObject("WScript.Shell")
Set WshProcEnv = WshShell.Environment("Process")
Set WshUserEnv = WshShell.Environment("USER")
Set objADSysInfo = CreateObject("ADSystemInfo")
Set oShell = CreateObject("Shell.application")
Set oShFolder = oShell.Namespace(17)
Set objUser = GetObject("LDAP:" & objADSysInfo.UserName)
Set objOU = GetObject(objUser.parent)
Set objFSO = CreateObject("Scripting.FileSystemObject")
strComputerName = wshNetwork.computerName
strUserName = wshNetwork.userName
strDomainName = wshNetwork.userDomain
Server1 = "XXXXXXXXX"
Do While wshNetwork.username = ""
WScript.Sleep 500
Loop
wshShell.Run "net time /domain:" & wshNetwork.UserDomain & " /set /yes", 0, TRUE
Call subdrivemap
Sub subdrivemap()
adspath = "WinNT:" & strDomainName & "/" & strUserName
Set adsobj = GetObject( adspath )
'##### vorhandene Laufwerke löschen
On Error Resume Next
wshNetwork.RemoveNetworkDrive "X:", True, True
wshNetwork.RemoveNetworkDrive "Y:", True, True
wshNetwork.MapNetworkDrive "Y:", "\\"&Server1&"\PRIVATE"
For Each prop In adsobj.groups
Select Case UCase(prop.name)
Case "Gruppe A"
WScript.Echo "Anmeldung für "& strUserName erfolgreich!"
Case "Gruppe B"
wshNetwork.MapNetworkDrive "X:", "\\"&Server1&"\PUBLIC"
WScript.Echo "Anmeldung für "& strUserName erfolgreich!"
Exit Sub
End Select
Next
End Sub
Dann überprüft der beim Start welche Gruppe dem User gehört und mappt dann die Laufwerke, nachbelieben kann man auch noch Drucker hinzufügen.
Gruß Martin