Top-Themen

Aktuelle Themen (A bis Z)

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 Zugriff verweigert beim schreiben einer error.log mit vbs

Mitglied: koluschkiB

koluschkiB (Level 1) - Jetzt verbinden

10.06.2010 um 10:10 Uhr, 6428 Aufrufe, 3 Kommentare

Morgen Admins

hab da ein kleines Problem ...mal wieder!!!

Ich hab ein Script was im AD USer udn Gruppen anlegt, sowie Benutzerordner mit denn nötigen Netzwerkfreigaben.
Da alles in .log files dokumentiert werden soll, habe ich solche befehle in meinen Quelltext eingebaut.
Hab aber nun Folgendes Problem:

Wenn cih mein Script ausführe, läuft es einmal durch. Stellt fest dass der Ordner mit Namen XY bereist existiert, diesen Fehler soll er dann in der Error.log dokumentieren.
Beim Ersten User klappts Super, beim zweiten leider nicht.
Man sagte mri bereits, dass die Ursache darin besteht, dass diese error.log noch offen sei. Dabei wird sie nach dem ersten kompletten durchlauf geschlossen.
Häng also an diesem Blöden ding fest und weiss nicht weiter

01.
Option Explicit 
02.
 
03.
'Variablen des gesamten Scripts werden hier ind iesen 3 Zeilen Deklariert 
04.
Dim OU, objDomain, objOU, objUser, objGroup, WsHShell, CMD 
05.
Dim fso, f, Zeile, Feld, Vorname, Nachname, Abteilung, i, Passwort, Abfall, objFile, logfile, errfile, logText, errtext 
06.
Dim objFolder, strComputer, objWMIService, objNewShare, errReturn, PermL1 
07.
Const ForAppending = 8 
08.
 
09.
 
10.
'Organisationseinheit im AD wird gesetzt (benutzer) 
11.
OU = "cn=users,dc=testad,dc=int" 
12.
Set objOU = GetObject("LDAP://" & OU) 
13.
 
14.
'Werte für die Freigegebenen Ordner, gesharte Dateien sowie Maximal Anzahl gleichzeitiger Zugriffe 
15.
Dim File_Share 
16.
File_Share = 0 
17.
Dim MAXIMUM_CONNECTIONS 
18.
MAXIMUM_CONNECTIONS = 25 
19.
 
20.
 
21.
'Verbidnung zum WMI wird hergestellt (Root-Verzeichnis) 
22.
strComputer = "." 
23.
Set objWMIService = GetObject("winmgmts:" _ 
24.
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 
25.
Set objNewShare = objWMIService.Get("Win32_Share") 
26.
 
27.
'Die Datei mit allen Benutzerangaben wird geladen 
28.
Set fso = CreateObject("Scripting.FileSystemObject") 
29.
Set f = fso.OpenTextFile("c:\user.csv",1,0) 
30.
 
31.
IF fso.FolderExists("C:\Helpdesk") then 
32.
		Set objFolder = fso.GetFolder("C:\Helpdesk") 
33.
ELSE 
34.
Set objFolder = fso.CreateFolder("C:\Helpdesk") 
35.
Wscript.Echo "Helpdeskordner wurde auf c:\ angelegt, in Ihm befindet sich die gesamte Doku!" 
36.
End if 
37.
 
38.
'1.Zeile der .csv Datei wird Übersprungen 
39.
Abfall = f.Readline   ' also die 1. Zeile   
40.
Do while not f.AtEndOfStream       'statt AtEndOfLine 
41.
 
42.
'Die Einzelnen Felder der .csv Datei werden gesetzt und zugeordnet 
43.
Zeile = f.readLine  
44.
Feld = split(Zeile,";") 
45.
Vorname = Feld(0) 
46.
Nachname = Feld(1) 
47.
Abteilung = Feld(2) 
48.
'        Gruppen werden in Schleife direkt angesprochen 
49.
'Gruppe1 = Feld(3) 
50.
'Gruppe2 = Feld(4) 
51.
'Gruppe3 = Feld(5) 
52.
'Gruppe4 = Feld(6) 
53.
'Gruppe5 = Feld(7) 
54.
 
55.
 
56.
'Variable zu Erstellung des Anmeldepassworts für die 1. Anmeldung  
57.
Passwort = left(Vorname,3)&left(Nachname,2)&"1234%" 
58.
Passwort = LCase(passwort) 
59.
 
60.
Set logfile = fso.CreateTextFile("C:\Helpdesk\" &Nachname&".log") 
61.
logfile.Close 
62.
 
63.
IF fso.FileExists("C:\Helpdesk\error.log") then 
64.
		Set objFile = fso.GetFile("C:\Helpdesk\error.log") 
65.
ELSE 
66.
Set errfile = fso.CreateTextFile("C:\Helpdesk\Error.log") 
67.
errfile.Close 
68.
End if 
69.
 
70.
 
71.
Set logtext = fso.OpenTextFile _ 
72.
("C:\Helpdesk\"&Nachname&".log", ForAppending, True) 
73.
Set errtext = fso.OpenTextFile _ 
74.
("C:\Helpdesk\error.log", ForAppending, True) 
75.
 
76.
'Infos für das AD, die dem User in den AD Eigenschaften zugeordnet werden 
77.
Set objUser = objOU.Create("user", "CN=" & Vorname & " " & Nachname) 
78.
objUser.Put "sAMAccountName", Nachname 
79.
objUser.Put "displayName", Vorname & " " & Nachname 
80.
objUser.Put "givenName", Vorname 
81.
objUser.Put "sn", Nachname 
82.
objUser.Put "description", Abteilung 
83.
objUser.Put "userPrincipalName", left(Vorname,3) & left(nachname,2) & "@testAD.int" 
84.
objUser.SetInfo 
85.
objUser.SetPassword Passwort 
86.
objUser.Put "userAccountControl", 544 
87.
objUser.Put "pwdLastSet", 0 
88.
objUser.SetInfo 
89.
 
90.
'Log-Datei mit Text füllen 
91.
logtext.WriteLine("Der Benutzer " &Vorname &" " &Nachname& " wurde im AD angelegt") 
92.
 
93.
'Die Function zur Erstellung der Gruppen aus Feld 3-7 wird aufgerufen und die Richtigen benutzer werden Zugeordnet 
94.
For i = 3 To 7 'alle Gruppen bearbeiten 
95.
If Feld(i) <> "" Then 
96.
If GroupExists(Feld(i), objOU) Then 
97.
Set objGroup = GetObject("LDAP://cn=" & Feld(i) & "," & OU) 
98.
Else 
99.
Set objGroup = objOU.Create("Group", "cn=" & Feld(i)) 
100.
objGroup.Put "sAMAccountName", Feld(i) 
101.
objGroup.SetInfo 
102.
End If 
103.
objGroup.Add objUser.ADSPath 
104.
End If 
105.
Next 
106.
 
107.
logtext.WriteLine("und ist Mitglied folgender Gruppen: 1." &Feld(3) &" 2. " &Feld(4) &" 3. " &Feld(5) &" 4. " &Feld(6) &" 5. " &Feld(7)) 
108.
logtext.WriteLine("Der Loginname des Benutzers lautet: " &Nachname) 
109.
logtext.WriteLine("Der Benutzer hat folgendes Passwort: " &Passwort) 
110.
 
111.
'Oberordner wird auf c:\ angelegt 
112.
IF fso.FolderExists("C:\Freigaben") then 
113.
         Set objFolder = fso.GetFolder("C:\Freigaben") 
114.
ELSE 
115.
Set objFolder = fso.CreateFolder("C:\Freigaben") 
116.
Wscript.Echo "Der Oberordner C:\Freigaben wurde angelegt! In Ihm befinden sich die Benutzerordner!" 
117.
END IF 
118.
 
119.
 
120.
'Benutzer spezifischer Ordner wird angelegt 
121.
IF fso.FolderExists("C:\Freigaben\" & Nachname) then 
122.
         'Msgbox ("Der Ordner mit dem Namen "&Nachname&" existiert bereits!") 
123.
		 errtext.WriteLine("Der Ordner " &Nachname& " existiert bereits und kann nicht angelegt werden") 
124.
         Set objFolder = fso.GetFolder("C:\Freigaben\" & Nachname) 
125.
	 
126.
ELSE 
127.
Set objFolder = fso.CreateFolder("C:\Freigaben\" & Nachname) 
128.
END IF 
129.
 
130.
errReturn = objNewShare.Create _ 
131.
    ("C:\Freigaben\" & Nachname, ""&Nachname, File_Share, _ 
132.
    MAXIMUM_CONNECTIONS, "Benutzerordner") 
133.
 
134.
	'WSH Shell für die Erstellung der Zugriffsrechte wird Erstellt 
135.
Set WshShell = WScript.CreateObject("WScript.Shell")    
136.
 
137.
'Ordnerzugriffe werden gesetzt (Admin= Voll, Inhaber= Voll) 
138.
PermL1 = "Administratoren:F " & Nachname & ":F"   
139.
CMD = "cmd /c echo j|cacls C:\Freigaben\" & Nachname & " /G " & PermL1 
140.
WshShell.Run CMD, 0, 1 
141.
Loop 
142.
 
143.
'Function für die Erstellung der Gruppen 
144.
Function GroupExists(Group, OU) 
145.
'OU wird als Objekt übergeben; es interessieren nur die enthaltenen Gruppen 
146.
OU.Filter = Array("group") 
147.
'Default: Gruppe noch nicht vorhanden 
148.
GroupExists = False 
149.
'Alle in der OU enthaltenen Gruppen durchgehen 
150.
For Each objGroup in OU 
151.
    'klein geschriebenen Gruppennamen der betrachteten Gruppe 
152.
    'mit klein geschriebenem übergebenen Gruppennamen vergleichen 
153.
    If LCase(objGroup.sAMAccountName) = LCase(Group) Then 
154.
        'bei Übereinstimmung gibt es die Gruppe bereits ... 
155.
        GroupExists = True 
156.
        '... und es müssen die weiteren Gruppen nicht mehr geprüft werden 
157.
        Exit For 
158.
    End If 
159.
Next 
160.
End Function 
161.
 
162.
logtext.Close 
163.
errtext.Close
Der fehler befinet sich in der Zeile 73 ---> Zugriff Verweigert.

Hab schon alle Variablen überprüft aufschriebweise usw. aber dies führte es nicht zum gewünschtem erfolg

hoffe einer von euch sieht den Fehler und kann mir evtl nen Tipp geben

Gruß und Danke im vorraus

koluschkiB
Mitglied: Snowman25
10.06.2010 um 10:16 Uhr
nach Zeile 64 musst du auch wieder schließen.
Bitte warten ..
Mitglied: TsukiSan
10.06.2010 um 10:17 Uhr
Hallo koluschiB

es fehlt in deinem Script das
01.
f.close
dann klappt's auch beim nächsten Durchlauf.

Gruss
Tsuki
Bitte warten ..
Mitglied: koluschkiB
10.06.2010 um 10:26 Uhr
Morgen Snowman & TsukiSan

und danke für die schnelle Antwort.

Hab dort ein errText.Close reingesetzt und siehe da

ES KLAPPT

Vielen Dank, werde mich sicherlich nochmal bei euch melden denn das Script ist noch nicht ganz fertig

Gruß und Danke

koluschkiB
Bitte warten ..
Ähnliche Inhalte
Windows 7
Domainanmeldung - Zugriff verweigert
gelöst Frage von Jannis92Windows 71 Kommentar

Moin Moin, wir befinden uns gerade in der Vorbereitung für einen Hardware Rollout. Somit werden aktuell alle Rechner mit ...

Windows Server
GPO Zugriff verweigert 0x80070005
gelöst Frage von xbast1xWindows Server29 Kommentare

Hallo zusammen, seit unsere Daten auf dem Netz inkl. Freigaben auf ein neues Storage übertragen wurden erhalten alle Clients ...

Windows 8
Error 5: Zugriff verweigert
gelöst Frage von oliverfberlinWindows 85 Kommentare

Guten Morgen, ich habe seit ein paar Wochen das sich Programme nicht Installieren lassen oder nach einem Reboot verschwunden ...

Windows Server

Zugriff verweigert (Sicherheitsfilterung)

Frage von n0cturneWindows Server9 Kommentare

Hallo zusammen, seit kurzem habe ich das Problem, dass GPOs, die sich auf Clients anwende, nicht mehr greifen. Mein ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 19 StundenWindows 103 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 22 StundenAdministrator.de Feedback16 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 1 TagHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 2 TagenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Server-Hardware
Welche Rolle spielt Design bei Enterprise IT Hardware?
Frage von ApolloXServer-Hardware17 Kommentare

Ich arbeite für einen internationalen Elektronikhersteller in der Forschung und meine Aufgabe ist es, Feedback von Nutzern in Hinsicht ...

Windows Netzwerk
WSUS4 und Windows 10 Updates automatisch installieren
Frage von sammy65Windows Netzwerk15 Kommentare

Hallo miteinander, ich habe mit einen neuen WSUS Server aufgesetzt Server 2016 darauf einen aktuellen WSUS. Grund, wir stellen ...

Speicherkarten
Vergessliche USB-Sticks?
Frage von hanheikSpeicherkarten14 Kommentare

Ich habe in den letzten Tagen 500 USB-Sticks mit Bilddateien bespielt. Obwohl ich die Dateien mit größter Sorgfalt kopiert ...

Windows Netzwerk
Backup über WAN
Frage von petereWindows Netzwerk11 Kommentare

Hallo, ich muss aus einem entfernten WAN (synchrone 1Gbit) Daten sichern. Dabei handelt es sich sowohl um wenige große ...