Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Ordnerberechtigungen VBS CMD

Frage Entwicklung VB for Applications

Mitglied: koluschkiB

koluschkiB (Level 1) - Jetzt verbinden

28.05.2010 um 11:09 Uhr, 6031 Aufrufe, 6 Kommentare

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

01.
Option Explicit 
02.
 
03.
Dim OU, objDomain, objOU, objUser, objGroup, WsHShell, CMD 
04.
Dim fso, f, Zeile, Feld, Vorname, Nachname, Abteilung, i, Passwort, Abfall 
05.
Dim objFolder, strComputer, objWMIService, objNewShare, errReturn, PermL1 
06.
 
07.
OU = "cn=users,dc=testad,dc=int" 
08.
Set objOU = GetObject("LDAP://" & OU) 
09.
 
10.
Dim File_Share 
11.
File_Share = 0 
12.
Dim MAXIMUM_CONNECTIONS 
13.
MAXIMUM_CONNECTIONS = 25 
14.
 
15.
strComputer = "." 
16.
Set objWMIService = GetObject("winmgmts:" _ 
17.
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 
18.
Set objNewShare = objWMIService.Get("Win32_Share") 
19.
 
20.
Set fso = CreateObject("Scripting.FileSystemObject") 
21.
Set f = fso.OpenTextFile("c:\user.csv",1,0) 
22.
 
23.
Abfall = f.Readline   ' also die 1. Zeile   
24.
Do while not f.AtEndOfStream       'statt AtEndOfLine 
25.
 
26.
Zeile = f.readLine  
27.
Feld = split(Zeile,";") 
28.
Vorname = Feld(0) 
29.
Nachname = Feld(1) 
30.
Abteilung = Feld(2) 
31.
'        Gruppen werden in Schleife direkt angesprochen 
32.
'        Gruppe1 = Feld(3) 
33.
'        Gruppe2 = Feld(4) 
34.
'        Gruppe3 = Feld(5) 
35.
'        Gruppe4 = Feld(6) 
36.
'        Gruppe5 = Feld(7) 
37.
 
38.
 
39.
Passwort = left(Vorname,3)&left(Nachname,2)&"1234%" 
40.
Passwort = LCase(passwort) 
41.
 
42.
Set objUser = objOU.Create("user", "CN=" & Vorname & " " & Nachname) 
43.
objUser.Put "sAMAccountName", Nachname 
44.
objUser.Put "displayName", Vorname & " " & Nachname 
45.
objUser.Put "givenName", Vorname 
46.
objUser.Put "sn", Nachname 
47.
objUser.Put "description", Abteilung 
48.
objUser.Put "userPrincipalName", left(Vorname,3) & left(nachname,2) & "@testAD.int" 
49.
objUser.SetInfo 
50.
objUser.SetPassword Passwort 
51.
objUser.Put "userAccountControl", 544 
52.
objUser.Put "pwdLastSet", 0 
53.
objUser.SetInfo 
54.
 
55.
For i = 3 To 7 'alle Gruppen bearbeiten 
56.
If Feld(i) <> "" Then 
57.
If GroupExists(Feld(i), objOU) Then 
58.
Set objGroup = GetObject("LDAP://cn=" & Feld(i) & "," & OU) 
59.
Else 
60.
Set objGroup = objOU.Create("Group", "cn=" & Feld(i)) 
61.
objGroup.Put "sAMAccountName", Feld(i) 
62.
objGroup.SetInfo 
63.
End If 
64.
objGroup.Add objUser.ADSPath 
65.
End If 
66.
Next 
67.
 
68.
'Ordner werden für denn Benutzer angelegt, dabei wird der Nachname als Ordnername verwendet 
69.
Set objFolder = fso.CreateFolder("C:\Freigaben\" & Nachname) 
70.
errReturn = objNewShare.Create _ 
71.
    ("C:\Freigaben\" & Nachname, ""&Nachname, File_Share, _ 
72.
    MAXIMUM_CONNECTIONS, "Benutzerordner") 
73.
 
74.
Set WshShell = WScript.CreateObject("WScript.Shell")    
75.
 
76.
PermL1 = "Administratoren:F " & "left(Vorname,3) & left(nachname,2) & @testAD.int" & ":C" 
77.
CMD = "cmd /c echo j|cacls \\" & "C:\Freigaben\" &Nachname & " /G " & PermL1 & " && " 
78.
WshShell.Run CMD, 0, 1 
79.
Loop 
80.
 
81.
Function GroupExists(Group, OU) 
82.
'OU wird als Objekt übergeben; es interessieren nur die enthaltenen Gruppen 
83.
OU.Filter = Array("group") 
84.
'Default: Gruppe noch nicht vorhanden 
85.
GroupExists = False 
86.
'Alle in der OU enthaltenen Gruppen durchgehen 
87.
For Each objGroup in OU 
88.
    'klein geschriebenen Gruppennamen der betrachteten Gruppe 
89.
    'mit klein geschriebenem übergebenen Gruppennamen vergleichen 
90.
    If LCase(objGroup.sAMAccountName) = LCase(Group) Then 
91.
        'bei Übereinstimmung gibt es die Gruppe bereits ... 
92.
        GroupExists = True 
93.
        '... und es müssen die weiteren Gruppen nicht mehr geprüft werden 
94.
        Exit For 
95.
    End If 
96.
Next 
97.
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

01.
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
Mitglied: TsukiSan
28.05.2010 um 11:55 Uhr
Hallo KoluschkiB
versuche mal die Zeile 76
01.
PermL1 = "Administratoren:F " & "left(Vorname,3) & left(nachname,2) & @testAD.int" & ":C"
umzuändern in
01.
PermL1 = "Administratoren:F " &  left(Vorname,3) & left(nachname,2) & "@testAD.int" & ":C"
Gruss
Tsuki
Bitte warten ..
Mitglied: koluschkiB
28.05.2010 um 12:04 Uhr
Hey Tsuki

habs mal versucht, klappt leide rnicht. Die Einträge bleiben weiterhin so wie vorhin.
Hab auch mal geschaut, ob das Script icht evtl. die Berechtigungen für die Freigabe machen, aber dort ist Admin und Jeder eingetragen.

hab die Zeile auch noch umgebastelt um zu schauen, obs vielleicht anders klappt

01.
PermL1 = "Administratoren:F " & Nachname &":C"
also so gebastelt, dass er nur den Nachnamen verwendet. Wie man es zb Manuell in der CMD macht. brachte aber leider keinen Erfolg mit sich

gruß

koluschkiB
Bitte warten ..
Mitglied: koluschkiB
28.05.2010 um 12:40 Uhr
Kann mir jemand sagen wie das mit "Net SHare" ausschaut?

kann sein, dass ich das verwenden muss?
da ja der Ordne rim Netzwerk freigegeben wird

gruß und danke

koluschkiB
Bitte warten ..
Mitglied: bastla
28.05.2010 um 14:18 Uhr
Hallo koluschkiB!

"net share" wäre zum Erstellen von Freigaben zu verwenden ...
Versuch es mit folgenden Zeilen:
PermL1 = "Administratoren:F " & Nachname & ":C"  
CMD = "cmd /c echo j|cacls C:\Freigaben\" & Nachname & " /G " & PermL1
Grüße
bastla
Bitte warten ..
Mitglied: koluschkiB
28.05.2010 um 14:51 Uhr
Hey Bastla

kannst es sicherlich schon an meinem Grinsen erkennen
Es hat geklappt. ersetzt die Berechtigungen richtig.
Hab gedacht, dass der Fehler in der 1. Zeile ist, dabei musste ich eben beim vergleichen feststellen das es nicht so war
wenn ich das richtig erkannt habe lag es wohl nur an diesen zeichen in meinem script "\\" &"
Kleine Zeichen, große Wirkung

Gruß und Danke für die Hilfe

KoluschkiB
Bitte warten ..
Mitglied: koluschkiB
28.05.2010 um 15:06 Uhr
Hey Bastla,

ich hab da was gesehen, was ich mir selbst nicht erklären kann.

Ich nutze nen Win Server 2008, ich hab einen Ordner Manuell erstenne C:\freigaben. wenn ich in die EIgenschaften des Ordners gehe unter Registerkarte Freigabe
dort sind zwei schaltflächen 1. "Freigabe" und 2. "Erweiterte Freigabe", alles so weit ok.

Wenn ich aber mein Script ausführe, legt es in dem Ordner C:\freigaben die benutzer ordner an. Gehe ich dort in Die Eigenschaften Registerkarte Freigabe, ist die 1. Schlatfläche "Freigabe" nicht aktiviert, sozusagen. nur die 2. Erweiterete...

also ich vorhin bisschen rumgespeilt habe und geschaut habe, gingen beide problemlos. habs ja selbst gesehen.
hast du vielleicht ne erklärung dafür?

ansich ist es ja egal, der Ordner ist so oder so Freigegeben, abe rich kann es mir mit dieserSchaltfläche nicht erklären

danke und gruß

koluschkiB
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Batch & Shell
Eventlog Druckjobs mit VBS auslesen (2)

Frage von joni2000de zum Thema Batch & Shell ...

VB for Applications
VBS Script zum versenden mehrerer Verknüpfungen zu Dateien per Lotus Notes

Frage von Sentinel87 zum Thema VB for Applications ...

Batch & Shell
CMD Verschlüsslung ( Batch ) (11)

Frage von clragon zum Thema Batch & Shell ...

Batch & Shell
Schleife mit todos CMD

Frage von TommyDerWalker zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (17)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

DSL, VDSL
DSL-Signal bewerten (14)

Frage von SarekHL zum Thema DSL, VDSL ...