Ordnerberechtigungen VBS CMD
Morgen Adminfreunde
hab ne frage zu meinem unten aufgeführten Script,
es ist eins script was User und Gruppen im AD anlegt, dazu erstellt er Benutzerdefinierte Ordner, die im Netzwerk freigegeben werden.
Nun zu meinem Problem was ich habe
Das Script läuft fehlerfrei durch ohne zu mucken, doch es scheitert an der Berechtigung für den Zugriff auf den Benutzerordner.
Der Administrator soll vollzugriff haben, gut kein Problem wird gesetzt.
Der Benutzer der diesesn Ordner nutzt soll Vollzugriff auf diesem Ordner haben.
Leider klappt es nicht so ganz, mit der Berechtigung für den Benutzer. In den Eigenschaften des Ordners nach dem er erstellt worden ist kann man einsehen wer was kann.
Administrator (TESTAD/ADMINSTRATOR) = Vollzugriff
Benutzer (TESTAD/BENUTZER) = Vollzugriff
dabei sollte es so aussehen (Der Benutzer Hans Maulwurf soll Zugriff haben, nicht Benutzer)
Administrator (TESTAD/ADMINSTRATOR) = Vollzugriff
Hans Maulwurf (HanMa@testAD.int) = Vollzugriff
Manuell kann man es problemlos eintragen, der Name wird aufgelöst und Angezeigt und man kann ihn wählen
Irgendwo in der Zeile 76 muss der Fehler stecken. Ich versuche dabei eine Variable aus VBS in einen CMD befehl zu übernehmen. Meine vermutung ist, dass dort der fehler steckt
Nach dem der User im AD angelegt worden ist, kann man Manuell die Berechtigungen aus einer CMD problemlos setzen
Die Berechtigungen kann man in denn Eigenschaften einsehen und alles klappt. nur eben nicht aus dem VBScript raus
hat einer von euch nen Tipp oder kann mir sagen wo der Fehler ist?
gruß und Danke
KoluschkiB
hab ne frage zu meinem unten aufgeführten Script,
es ist eins script was User und Gruppen im AD anlegt, dazu erstellt er Benutzerdefinierte Ordner, die im Netzwerk freigegeben werden.
Nun zu meinem Problem was ich habe
Das Script läuft fehlerfrei durch ohne zu mucken, doch es scheitert an der Berechtigung für den Zugriff auf den Benutzerordner.
Der Administrator soll vollzugriff haben, gut kein Problem wird gesetzt.
Der Benutzer der diesesn Ordner nutzt soll Vollzugriff auf diesem Ordner haben.
Leider klappt es nicht so ganz, mit der Berechtigung für den Benutzer. In den Eigenschaften des Ordners nach dem er erstellt worden ist kann man einsehen wer was kann.
Administrator (TESTAD/ADMINSTRATOR) = Vollzugriff
Benutzer (TESTAD/BENUTZER) = Vollzugriff
dabei sollte es so aussehen (Der Benutzer Hans Maulwurf soll Zugriff haben, nicht Benutzer)
Administrator (TESTAD/ADMINSTRATOR) = Vollzugriff
Hans Maulwurf (HanMa@testAD.int) = Vollzugriff
Manuell kann man es problemlos eintragen, der Name wird aufgelöst und Angezeigt und man kann ihn wählen
Option Explicit
Dim OU, objDomain, objOU, objUser, objGroup, WsHShell, CMD
Dim fso, f, Zeile, Feld, Vorname, Nachname, Abteilung, i, Passwort, Abfall
Dim objFolder, strComputer, objWMIService, objNewShare, errReturn, PermL1
OU = "cn=users,dc=testad,dc=int"
Set objOU = GetObject("LDAP://" & OU)
Dim File_Share
File_Share = 0
Dim MAXIMUM_CONNECTIONS
MAXIMUM_CONNECTIONS = 25
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set objNewShare = objWMIService.Get("Win32_Share")
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("c:\user.csv",1,0)
Abfall = f.Readline ' also die 1. Zeile
Do while not f.AtEndOfStream 'statt AtEndOfLine
Zeile = f.readLine
Feld = split(Zeile,";")
Vorname = Feld(0)
Nachname = Feld(1)
Abteilung = Feld(2)
' Gruppen werden in Schleife direkt angesprochen
' Gruppe1 = Feld(3)
' Gruppe2 = Feld(4)
' Gruppe3 = Feld(5)
' Gruppe4 = Feld(6)
' Gruppe5 = Feld(7)
Passwort = left(Vorname,3)&left(Nachname,2)&"1234%"
Passwort = LCase(passwort)
Set objUser = objOU.Create("user", "CN=" & Vorname & " " & Nachname)
objUser.Put "sAMAccountName", Nachname
objUser.Put "displayName", Vorname & " " & Nachname
objUser.Put "givenName", Vorname
objUser.Put "sn", Nachname
objUser.Put "description", Abteilung
objUser.Put "userPrincipalName", left(Vorname,3) & left(nachname,2) & "@testAD.int"
objUser.SetInfo
objUser.SetPassword Passwort
objUser.Put "userAccountControl", 544
objUser.Put "pwdLastSet", 0
objUser.SetInfo
For i = 3 To 7 'alle Gruppen bearbeiten
If Feld(i) <> "" Then
If GroupExists(Feld(i), objOU) Then
Set objGroup = GetObject("LDAP://cn=" & Feld(i) & "," & OU)
Else
Set objGroup = objOU.Create("Group", "cn=" & Feld(i))
objGroup.Put "sAMAccountName", Feld(i)
objGroup.SetInfo
End If
objGroup.Add objUser.ADSPath
End If
Next
'Ordner werden für denn Benutzer angelegt, dabei wird der Nachname als Ordnername verwendet
Set objFolder = fso.CreateFolder("C:\Freigaben\" & Nachname)
errReturn = objNewShare.Create _
("C:\Freigaben\" & Nachname, ""&Nachname, File_Share, _
MAXIMUM_CONNECTIONS, "Benutzerordner")
Set WshShell = WScript.CreateObject("WScript.Shell")
PermL1 = "Administratoren:F " & "left(Vorname,3) & left(nachname,2) & @testAD.int" & ":C"
CMD = "cmd /c echo j|cacls \\" & "C:\Freigaben\" &Nachname & " /G " & PermL1 & " && "
WshShell.Run CMD, 0, 1
Loop
Function GroupExists(Group, OU)
'OU wird als Objekt übergeben; es interessieren nur die enthaltenen Gruppen
OU.Filter = Array("group")
'Default: Gruppe noch nicht vorhanden
GroupExists = False
'Alle in der OU enthaltenen Gruppen durchgehen
For Each objGroup in OU
'klein geschriebenen Gruppennamen der betrachteten Gruppe
'mit klein geschriebenem übergebenen Gruppennamen vergleichen
If LCase(objGroup.sAMAccountName) = LCase(Group) Then
'bei Übereinstimmung gibt es die Gruppe bereits ...
GroupExists = True
'... und es müssen die weiteren Gruppen nicht mehr geprüft werden
Exit For
End If
Next
End Function
Irgendwo in der Zeile 76 muss der Fehler stecken. Ich versuche dabei eine Variable aus VBS in einen CMD befehl zu übernehmen. Meine vermutung ist, dass dort der fehler steckt
Nach dem der User im AD angelegt worden ist, kann man Manuell die Berechtigungen aus einer CMD problemlos setzen
cacls c:\freigabe\Maulwurf /P Maulwurf:F Administrator:F
Die Berechtigungen kann man in denn Eigenschaften einsehen und alles klappt. nur eben nicht aus dem VBScript raus
hat einer von euch nen Tipp oder kann mir sagen wo der Fehler ist?
gruß und Danke
KoluschkiB
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 143734
Url: https://administrator.de/contentid/143734
Ausgedruckt am: 15.11.2024 um 15:11 Uhr
6 Kommentare
Neuester Kommentar