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

Frage Entwicklung VB for Applications

Mitglied: koluschkiB

koluschkiB (Level 1) - Jetzt verbinden

10.06.2010 um 10:10 Uhr, 6362 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
Datenbanken
Betriebssystemfehlercode 5 (Zugriff verweigert)
gelöst Frage von orausdoDatenbanken10 Kommentare

Hallo Admins, ich bekomme bei Ausführung eines Agent Job immer die o.g. Fehlermeldung. Die Prozedur ließt via Bulk Insert ...

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 ...

Windows 10
Psexec - Zugriff verweigert - WIN10
gelöst Frage von knittiWindows 103 Kommentare

Hallo, möchte Befehle von einem Win10 PC auf einen anderen Win10 PC senden. -soll in der Firma genutzt werden ...

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 ...

Neue Wissensbeiträge
Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 19 StundenBatch & Shell8 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 21 StundenHumor (lol)6 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 1 TagMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 1 TagSicherheit1 Kommentar

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Heiß diskutierte Inhalte
Windows Server
RDP macht Server schneller???
Frage von JaniDJWindows Server17 Kommentare

Hallo Community, wir betrieben seit geraumer Zeit diverse virtuelle Maschinen und Server mit Windows Server 2012. Leider haben wir ...

Windows 10
Bitlocker nach Verschlüsselung nicht mehr aufrufbar!
gelöst Frage von alexlazaWindows 1013 Kommentare

Hallo, ich besitze ein HP ZBook 17 G4 mit einem Windows 10 Pro Betriebssystem. Bei diesem Problem handelt sich, ...

Off Topic
Fachkräftemangel in Deutschland? - Talentschmiede schreibt alle 2 Tage die gleichen Stellen aus
Frage von Penny.CilinOff Topic12 Kommentare

Hallo, haben wir in Deutschland Fachkräftemangel? Die Talentschmiede schreibt gefühlt alle zwei Tage dieselben Stellen aus. Und das schon ...

Windows Server
Sichere Remote Desktop Verbindung wie?
gelöst Frage von nuss33Windows Server11 Kommentare

Hallo zusammen, eins vorweg: Ich besitze einen privaten Windows Server 2008 R2 zu Hause im Netzwerk er wird nicht ...