Check ob user im AD existiert mit vbs
Hallo Adminanhänger
früher oder später kommen sie alle wieder
Hab da ein Problem beim Umsetzen einer Idee in meinem Script was User und Gruppen im AD anlegt.
Da es vorkommt, das evtl. beim Anlegen eines User mit VBS ein fehler rausgehauen wird, dass das Objekt (user) bereist existiert. Will ich eine If abfrage basteln, die dies vorher Checkt.
Leider habe ich das Problem, dass ich eine´Eigenschaft oder Methode verwenden will die nicht existiert...
Der Fehler liegt direkt ind er 1. zeile ---> UserExists
Hab schon verschieden ansätze versucht, mit fso. usw. aber nichts hat geholfen. Hab natürlich auch andere angehensweise getestet und probiert aber leider ebenfalls ohne erfolg
http://www.computerperformance.co.uk/Logon/code/code_80071392.htm
http://blogs.technet.com/b/heyscriptingguy/archive/2005/09/07/how-can-i ...
leider scheitert es an der umsetzung des ganzen...
Dabei wäre es ratsam diesen Fehler abzufangen.
hat einer von euch ne Idee was ich da am besten nutzen könnte um dieses Problem zu lösen?
gruß
koluschkiB
früher oder später kommen sie alle wieder
Hab da ein Problem beim Umsetzen einer Idee in meinem Script was User und Gruppen im AD anlegt.
Da es vorkommt, das evtl. beim Anlegen eines User mit VBS ein fehler rausgehauen wird, dass das Objekt (user) bereist existiert. Will ich eine If abfrage basteln, die dies vorher Checkt.
Leider habe ich das Problem, dass ich eine´Eigenschaft oder Methode verwenden will die nicht existiert...
If UserExists (Feld(0),Feld(1),objOU) Then
errtext.WriteLine("Der Benutzer " &Vorname & " " & Nachname& " existiert bereits und kann nicht angelegt werden")
On Error Resume Next
Else
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
'Log-Datei mit Text füllen
logtext.WriteLine("Der Benutzer " &Vorname &" " &Nachname& " wurde im AD angelegt")
End If
Der Fehler liegt direkt ind er 1. zeile ---> UserExists
Hab schon verschieden ansätze versucht, mit fso. usw. aber nichts hat geholfen. Hab natürlich auch andere angehensweise getestet und probiert aber leider ebenfalls ohne erfolg
http://www.computerperformance.co.uk/Logon/code/code_80071392.htm
http://blogs.technet.com/b/heyscriptingguy/archive/2005/09/07/how-can-i ...
leider scheitert es an der umsetzung des ganzen...
Dabei wäre es ratsam diesen Fehler abzufangen.
hat einer von euch ne Idee was ich da am besten nutzen könnte um dieses Problem zu lösen?
gruß
koluschkiB
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 144555
Url: https://administrator.de/contentid/144555
Ausgedruckt am: 15.11.2024 um 15:11 Uhr
31 Kommentare
Neuester Kommentar
Moin,
die Frage ist doch - woher kommt der Datensatzsalat, mit dem du die User anlegen willst.
Und deine Zeile 1 ist nicht der Anfang des ganzen.
Du kennst doch mittlerweile den Scripting Guy...
da steht doch fast alles schwarz auf weiss...
Einfach "wild" irgendwelche Befehle erfinden...
die Frage ist doch - woher kommt der Datensatzsalat, mit dem du die User anlegen willst.
Und deine Zeile 1 ist nicht der Anfang des ganzen.
Du kennst doch mittlerweile den Scripting Guy...
da steht doch fast alles schwarz auf weiss...
We’re just searching for all the user accounts (objectCategory = ‘user’) that have a samAccountName equal to .....
das bisschen umstricken schaffst du doch If UserExists
- so macht der Guy das aber in deinem verlinkten link nicht - denn das geht auch nicht...Einfach "wild" irgendwelche Befehle erfinden...
Zitat von @koluschkiB:
Ich will keinen Zahl die hinten dran gehangen wird... zb Maulwurf666 oder sowas, das war auch nicht das wonach ich gefragt habe.
Ich suche einfach nen Befehl, der Überprüft ob der User existiert..
Ich will keinen Zahl die hinten dran gehangen wird... zb Maulwurf666 oder sowas, das war auch nicht das wonach ich gefragt habe.
Ich suche einfach nen Befehl, der Überprüft ob der User existiert..
Woran denkst du erkennt man, ob es einen User gibt?
Rischdisch - der samAccountName ist bereits vergeben...
Gruß
Hallo kolouschki!
Was TimoBeil damit meint:
Du brauchst ein Skript, das innerhalb Deiner User überprüft, obs jemanden gibt, der so heisst wie der, den Du anlegen möchtest...
der entsprechende Code im von ihm angeführten Link ist:
strSearchName ist der von dir neuanzulegende User, eh klar
Hoffe, Dir etwas auf die Sprünge geholfen zu haben...
lg
Was TimoBeil damit meint:
Du brauchst ein Skript, das innerhalb Deiner User überprüft, obs jemanden gibt, der so heisst wie der, den Du anlegen möchtest...
der entsprechende Code im von ihm angeführten Link ist:
objCommand.CommandText = _
"SELECT AdsPath FROM 'LDAP://dc=fabrikam,dc=com' WHERE objectCategory='user' " & _
"AND samAccountName = '" & strSearchName & "'"
Set objRecordSet = objCommand.Execute
If objRecordset.RecordCount = 0 then
' User ist noch nicht vorhanden
end if
Hoffe, Dir etwas auf die Sprünge geholfen zu haben...
lg
Hy
die untenstehende Funktion sollte dir weiterhelfen.
gruss
die untenstehende Funktion sollte dir weiterhelfen.
gruss
Function GetCurrentRootDse()
Dim objRootDse
Set objRootDse = GetObject("LDAP://RootDSE")
GetCurrentRootDse = "LDAP://" & objRootDSE.Get("defaultNamingContext")
Set objRootDse = Nothing
End Function
Function QueryAD(strRootDse,strSamAccount,strScope)
Dim objConnection,objCommand,objRecordSet
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Open "Provider=ADsDSOObject;"
Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConnection = objConnection
objCommand.CommandText="<"&strRootDse&">;"&"(&(objectClass=user)(samAccountname=" & strSamAccount & "))"&";samAccountName;"&strScope
Set objRecordSet = objCommand.Execute
If objRecordSet.RecordCount > 0 Then
QueryAD=True
Else
QueryAD=False
End If
objRecordSet.Close
objConnection.Close
Set objConnection = Nothing
Set objCommand = Nothing
Set objRecordSet = Nothing
End Function
If QueryAD(GetCurrentRootDse,"JohnDoe","subtree") = True Then
'+-------> JohnDoe mit LoginName ersetzen
WScript.Echo "Benutzer existiert bereits"
Else
WScript.Echo "Benutzer existert nicht"
End If
[OT]
Ach was...
Liegt bestimmt an der Wärme heute.
[/OT]
Zitat von @koluschkiB:----
Hab ich gemacht und gleich in der 1. Zeile der Function haut er mir nen Syntaxfehler raus.
mach ich irgendwas falsch?
Hab ich gemacht und gleich in der 1. Zeile der Function haut er mir nen Syntaxfehler raus.
mach ich irgendwas falsch?
Ach was...
Liegt bestimmt an der Wärme heute.
[/OT]
Sorry hat etwas gedauert....Bei mir lief das Script ohne Probleme durch
Cu
Cu
Option Explicit
'Variablen des gesamten Scripts werden hier in diesen 3 Zeilen Deklariert
Dim OU, objDomain, objOU, objUser, objGroup, WsHShell, CMD
Dim fso, f, Zeile, Feld, Vorname, Nachname, Abteilung, i, Passwort, Abfall, objFile, logfile, errfile, logText, errtext
Dim objFolder, strComputer, objWMIService, objNewShare, errReturn, PermL1
Const ForAppending = 8
'Organisationseinheit im AD wird gesetzt (benutzer)
OU = "cn=users,dc=testad,dc=int"
Set objOU = GetObject("LDAP://" & OU)
'Werte für die Freigegebenen Ordner, gesharte Dateien sowie Maximal Anzahl gleichzeitiger Zugriffe
Dim File_Share
File_Share = 0
Dim MAXIMUM_CONNECTIONS
MAXIMUM_CONNECTIONS = 25
'Verbidnung zum WMI wird hergestellt (Root-Verzeichnis)
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set objNewShare = objWMIService.Get("Win32_Share")
'Die Datei mit allen Benutzerangaben wird geladen
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("c:\user.csv",1,0)
IF fso.FolderExists("C:\Helpdesk") then
Set objFolder = fso.GetFolder("C:\Helpdesk")
ELSE
Set objFolder = fso.CreateFolder("C:\Helpdesk")
Wscript.Echo "Helpdeskordner wurde auf c:\ angelegt, in Ihm befindet sich die gesamte Doku!"
End if
'1.Zeile der .csv Datei wird Übersprungen
Abfall = f.Readline ' also die 1. Zeile
Do while not f.AtEndOfStream 'statt AtEndOfLine
'Die Einzelnen Felder der .csv Datei werden gesetzt und zugeordnet
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)
'Variable zu Erstellung des Anmeldepassworts für die 1. Anmeldung
Passwort = left(Vorname,3)&left(Nachname,2)&"1234%"
Passwort = LCase(passwort)
If QueryAD(GetCurrentRootDse,Nachname,"subtree") = True Then
'+-------> JohnDoe mit LoginName ersetzen
WScript.Echo "Benutzer existiert bereits"
Else
Set logfile = fso.CreateTextFile("C:\Helpdesk\" &Nachname&".log")
logfile.Close
IF fso.FileExists("C:\Helpdesk\error.log") then
Set objFile = fso.GetFile("C:\Helpdesk\error.log")
'errtext.Close
Else
Set errfile = fso.CreateTextFile("C:\Helpdesk\Error.log")
'errfile.Close
End If
Set logtext = fso.OpenTextFile _
("C:\Helpdesk\"&Nachname&".log", ForAppending, True)
Set errtext = fso.OpenTextFile _
("C:\Helpdesk\error.log", ForAppending, True)
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
'Log-Datei mit Text füllen
logtext.WriteLine("Der Benutzer " &Vorname &" " &Nachname& " wurde im AD angelegt")
'Die Function zur Erstellung der Gruppen aus Feld 3-7 wird aufgerufen und die Richtigen benutzer werden Zugeordnet
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
logtext.WriteLine("und ist Mitglied folgender Gruppen: 1." &Feld(3) &" 2. " &Feld(4) &" 3. " &Feld(5) &" 4. " &Feld(6) &" 5. " &Feld(7))
logtext.WriteLine("Der Loginname des Benutzers lautet: " &Nachname)
logtext.WriteLine("Der Benutzer hat folgendes Passwort: " &Passwort)
'Oberordner wird auf c:\ angelegt
If fso.FolderExists("C:\Freigaben") Then
Set objFolder = fso.GetFolder("C:\Freigaben")
Else
Set objFolder = fso.CreateFolder("C:\Freigaben")
Wscript.Echo "Der Oberordner C:\Freigaben wurde angelegt! In Ihm befinden sich die Benutzerordner!"
END If
'Benutzer spezifischer Ordner wird angelegt
IF fso.FolderExists("C:\Freigaben\" & Nachname) Then
'Msgbox ("Der Ordner mit dem Namen "&Nachname&" existiert bereits!")
errtext.WriteLine("Der Ordner " &Nachname& " existiert bereits und kann nicht angelegt werden")
Set objFolder = fso.GetFolder("C:\Freigaben\" & Nachname)
Else
Set objFolder = fso.CreateFolder("C:\Freigaben\" & Nachname)
END If
errReturn = objNewShare.Create _
("C:\Freigaben\" & Nachname, ""&Nachname, File_Share, _
MAXIMUM_CONNECTIONS, "Benutzerordner")
'WSH Shell für die Erstellung der Zugriffsrechte wird Erstellt
Set WshShell = WScript.CreateObject("WScript.Shell")
'Ordnerzugriffe werden gesetzt (Admin= Voll, Inhaber= Voll)
PermL1 = "Administratoren:F " & Nachname & ":F"
CMD = "cmd /c echo j|cacls C:\Freigaben\" & Nachname & " /G " & PermL1
WshShell.Run CMD, 0, 1
logtext.Close
errtext.Close
End If
Loop
'Function für die Erstellung der Gruppen
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
Function GetCurrentRootDse()
Dim objRootDse
Set objRootDse = GetObject("LDAP://RootDSE")
GetCurrentRootDse = "LDAP://" & objRootDSE.Get("defaultNamingContext")
Set objRootDse = Nothing
End Function
Function QueryAD(strRootDse,strSamAccount,strScope)
Dim objConnection,objCommand,objRecordSet
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Open "Provider=ADsDSOObject;"
Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConnection = objConnection
objCommand.CommandText="<"&strRootDse&">;"&"(&(objectClass=user)(samAccountname=" & strSamAccount & "))"&";samAccountName;"&strScope
Set objRecordSet = objCommand.Execute
If objRecordSet.RecordCount > 0 Then
QueryAD=True
Else
QueryAD=False
End If
objRecordSet.Close
objConnection.Close
Set objConnection = Nothing
Set objCommand = Nothing
Set objRecordSet = Nothing
End Function
Hallo koluschkiB!
Das ganze Herumgekaspere mit "
verwendest, wird die gewünschte Datei im Anfüge-Modus ("ForAppending") geöffnet - egal, ob bereits vorhanden, oder (wegen des "True") erst nach (automatischer) Erstellung ...
Falls Du nicht anfügen willst, genügt ein "
Grüße
bastla
P.S.: Freut mich, dass Du "
Das ganze Herumgekaspere mit "
FileExists
" für die Logs ist doch unnötig - wenn Du einfach (am Beispiel des Errorlogs)Set errtext = fso.OpenTextFile("C:\Helpdesk\error.log", ForAppending, True)
Falls Du nicht anfügen willst, genügt ein "
CreateTextFile
", um die Datei neu zu erstellen (unabhängig davon, ob es schon eine gleichnamige Datei gibt).Grüße
bastla
P.S.: Freut mich, dass Du "
Option Explicit
" verwendest ...
Moin koluschkiB,
wie bastla schon sagte...
Wenn du das mal wegschmelzen würdest, sind auch die Fehler weg.
"Option Explicit" stellt zumindest sicher, dass alle verwendeten Variablen auch deklariert sein müssen.
Können natürlich auch mehr deklariert worden sein, als verwendet werden... aber hey! Kostet ja das Gleiche.
Aber: wenn es so ist, dass alle Variablen, die evtl mal im Programmfluss "leer" bleiben oder "kein Object enthalten" wider Erwarten...
--> dann müsstest du doch jede einzelne gatesverdammte Variable mit einem normalen Strg-F-Such-Handgriff finden können... jeweils vom ersten Auftreten (der Deklaration) angefangen.
Mach das doch mal... insbesondere verfolge mal die beiden Variablen "objFile" und "logfile".
Und was diese beiden in kurzen Existenz zugewiesen bekommen beziehungsweise öffnen und ob sie es jemals wieder schliessen.
... und stelle dir danach die selbstkritischen Fragen:
Der Tag wird kommen, an dem dein erstes Skript mal "produktiv" läuft.... über die Daten von 2000 Usern...
Rein statistisch sind da immer ein paar Prozent dabei, die wissen, wo du wohnst UND die schneller laufen können als du...
Grüße
Biber
wie bastla schon sagte...
Wenn du das mal wegschmelzen würdest, sind auch die Fehler weg.
P.S.: Freut mich, dass Du "
Da würde ich noch einen Schritt weiter gehen mit der Erklärung.Option Explicit
" verwendest ... "Option Explicit" stellt zumindest sicher, dass alle verwendeten Variablen auch deklariert sein müssen.
Können natürlich auch mehr deklariert worden sein, als verwendet werden... aber hey! Kostet ja das Gleiche.
Aber: wenn es so ist, dass alle Variablen, die evtl mal im Programmfluss "leer" bleiben oder "kein Object enthalten" wider Erwarten...
--> dann müsstest du doch jede einzelne gatesverdammte Variable mit einem normalen Strg-F-Such-Handgriff finden können... jeweils vom ersten Auftreten (der Deklaration) angefangen.
Mach das doch mal... insbesondere verfolge mal die beiden Variablen "objFile" und "logfile".
Und was diese beiden in kurzen Existenz zugewiesen bekommen beziehungsweise öffnen und ob sie es jemals wieder schliessen.
... und stelle dir danach die selbstkritischen Fragen:
- WhyTF sind einige objFile-Variablen "objFile" benamst und andere "logfile"? Und nicht z.B. "oFileErrorLog" und "oFileUserLog"?
- WhyTF ist ausgerechnet an den Stellen, wo mal die, mal die andere Datei mal neu angelegt, mal zum weiterschreiben geöffnet wird und es durch die Copy&Pasterei ohnehin total tippfehlerträchtig ist keinerlei Kommentare?? Weil es da sofort lesbar und offensichtlich ist OHNE Kommentare??
- WhatTHF reitet einen Coder, Variablennamen wie "CMD" zu verwenden ? Oder eine Variable MAXIMUM_CONNECTIONS gross zu schreiben (was eigentlich nur Const/Konstanten auszeichnet) ??
- WhoTF hat die Einrückungen vorgenommen und nach welchen ästhetischen Gesichtspunkten? Stevie Wonder?
Der Tag wird kommen, an dem dein erstes Skript mal "produktiv" läuft.... über die Daten von 2000 Usern...
Rein statistisch sind da immer ein paar Prozent dabei, die wissen, wo du wohnst UND die schneller laufen können als du...
Grüße
Biber
... nur eine kurze Anmerkung zu
Grüße
bastla
dann müsstest du doch jede einzelne gatesverdammte Variable mit einem normalen Strg-F-Such-Handgriff finden können
Noch besser: Verwende Notepad++ und mach einen Doppelklick auf die Variable ...Grüße
bastla
Hallo Biber!
Bin begeistert von Deinen WTF-Fragen, und möchte folgendes beitragen:
frag am besten bastla, er ist der Coder, der geritten wurde
Der Teil stammt aus einer Anregung von mir, die ich hier gecopypastete, und dieser Baustein stammt wiederum aus einer Verbesserung von bastla...
schönes Tagerl noch
Bin begeistert von Deinen WTF-Fragen, und möchte folgendes beitragen:
WhatTHF reitet einen Coder, Variablennamen wie "CMD" zu verwenden ?
frag am besten bastla, er ist der Coder, der geritten wurde
Der Teil stammt aus einer Anregung von mir, die ich hier gecopypastete, und dieser Baustein stammt wiederum aus einer Verbesserung von bastla...
schönes Tagerl noch
Moin,
Yupp ist das vom Guy und anderen anderen....
Vielen dank für die Informative Zeile - egal wieviele Smilies dran kleben.
Damit sind deine Probleme für mich nie wieder welche.
Denk mal drüber nach, welch "alte" x mal vorexerzierte Hüte du da aus dem Karton zauberst und wieviel "hin & her der ganze Larifarisalmon bis jetzt schon gebraucht hat.
Gruß
Zitat von @koluschkiB:
Ist nicht mein erstes Script
Der Tag wird kommen, an dem dein erstes Skript mal "produktiv" läuft.... über die Daten von 2000 Usern...
Rein statistisch sind da immer ein paar Prozent dabei, die wissen, wo du wohnst UND die schneller laufen können als du...
Rein statistisch sind da immer ein paar Prozent dabei, die wissen, wo du wohnst UND die schneller laufen können als du...
Ist nicht mein erstes Script
Yupp ist das vom Guy und anderen anderen....
Rein statistisch und auch allgemein gehen mir die paar Prozent der User, voll am Arsch vorbei und es ist mir egal ob die wissen wo ich wohne und schnelle laufen können
Vielen dank für die Informative Zeile - egal wieviele Smilies dran kleben.
Damit sind deine Probleme für mich nie wieder welche.
Denk mal drüber nach, welch "alte" x mal vorexerzierte Hüte du da aus dem Karton zauberst und wieviel "hin & her der ganze Larifarisalmon bis jetzt schon gebraucht hat.
Gruß
Hallo koluschkiB!
Du weisst, ich bin einer der Dir gut gesinnten, aber, in aller Ehrlichkeit:
Cholerik ist das Eine, Pöbelei etwas Anderes...
und: Wenn einem Admin die User am Axxxxx vorbei gehen, dann sollter er sich ohnehin besser einen Job als Versicherungsmathematiker im BackBackBackoffice suchen...
Ist zumindest meine bescheidene Meinung. Das Wort Dienstleistung hat eine tiefere Bedeutung...
lg
Du weisst, ich bin einer der Dir gut gesinnten, aber, in aller Ehrlichkeit:
Rein statistisch und auch allgemein gehen mir die paar Prozent der User, voll am Arsch vorbei
hättest Du dir sparen können und eine entsprechende Entschuldigung hätte so manches Gemüt besänftigt...Cholerik ist das Eine, Pöbelei etwas Anderes...
und: Wenn einem Admin die User am Axxxxx vorbei gehen, dann sollter er sich ohnehin besser einen Job als Versicherungsmathematiker im BackBackBackoffice suchen...
Ist zumindest meine bescheidene Meinung. Das Wort Dienstleistung hat eine tiefere Bedeutung...
lg
Hallo koluschkiB!
Grüße
bastla
P.S.: Ganz unabhängig vom Thema, und sogar wenn Du tatsächlich im "backesten" Office landen solltest: Die Formulierungen in manchen Deiner Wortmeldungen würde ich nicht einmal im Selbstgespräch, geschweige denn in geschriebener und (hier) veröffentlichter Form verwenden ...
Die denken, ahh er schreibt Scripte, er muss es können...
Die meisten in Deinen Threads Helfenden wissen, dass Du Dich in Ausbildung befindest und sehen es gerades deshalb nicht als sinnvoll an, Dir (sofort) eine fertige Lösung zu servieren.dort steht aber nicht geschrieben wo man in einem bestimmten Script einen befehl setzen muss damit es auch Funktioniert.
Es uns zum Vorwurf zu machen, dass Du (durch Deinen Ausbilder) überfordert bist, kann ich aber nicht akzeptieren: Den Kurs "Grundlagen der Programmierung" wirst Du nicht im Fernstudium bei "administrator.de" absolvieren können.Wir geben keine lösungen nur Hilfe, ja nur das ich die Hilfe nicht umsetzen kann, dass Interessiert niemanden
Dass Dir im Gegensatz zu Deiner Behauptung eine Umsetzung doch gelingen kann, hat sich ja gezeigt ... Grüße
bastla
P.S.: Ganz unabhängig vom Thema, und sogar wenn Du tatsächlich im "backesten" Office landen solltest: Die Formulierungen in manchen Deiner Wortmeldungen würde ich nicht einmal im Selbstgespräch, geschweige denn in geschriebener und (hier) veröffentlichter Form verwenden ...
Zitat von @koluschkiB:
ja manchmal gehe denn Pferde mit mir durch, ich war schon immer so Impulsiv...
gruß
koluschkiB
ja manchmal gehe denn Pferde mit mir durch, ich war schon immer so Impulsiv...
gruß
koluschkiB
Ich schreib mal - Das erkennen des Problems ist der erste Weg zur Besserung - und auch - das ist aber nur weil freitags ist grade nochmal so etwas, das deine div. Zeilen "entfernt" entschuldigt.
Und jetzt liesst du dir bitte das fett markierte nochmal durch und sagst diese Zeile auf während du meine allererste Antwort zu deiner Frage nochmal durchließt.
die Frage ist doch - woher kommt der Datensatzsalat, mit dem du die User anlegen willst.
Darauf gabs ja keine Antwort und daher hab ich da auch nicht noch weiter nachgebohrt.
Und jetzt bitte - diese beiden Zeilen zusammen lesen.
Und mit etwas Kaffe im Kopf wirst du erkennen - es macht manchmal mehr Sinn sich vorher Gedanken zu machen, als nachher.
Wie bekomme ich denn ganz schnell - ohne vbs heraus ob ein User existiert?
net user /domain
Soweit "helfe ich dir mal - und die weiteren Schritte machst du allein.
- Wie kann ich eine Ausgabe vom Prompt in eine Datei ausgeben?
- Wenn diese Datei mehrere Spalten oder eine andere "Trennung" der einzelnen Datensätze hat - wie kann ich einzelne Werte aus der Datei auslesen?
- Wenn ich zwei Listen hätte - eine mit der den anzulegenden Benutzern und eine mit den vorhandenen - wie könnte ich die Liste der anzulegenden bereits vorm anlegen bereinigen?
Und dann merkst du - es ist alles so einfach, wenn der erste Weg das aussortieren der unnötigen Schritte ist.
Gruß
Moin,
ich habe meine Sicht zu diesen Beiträgen der letzten Tage hier in einem der ParallelThreads zusammengefasst.
Grüße
Biber
ich habe meine Sicht zu diesen Beiträgen der letzten Tage hier in einem der ParallelThreads zusammengefasst.
Grüße
Biber