joshuatree
Goto Top

Fehler im Script Methode nicht unterstützt

Hallo,

ich versuche mit folgendem Script user aus einer CSV zu erstellen.
So sieht die user.txt aus : MeinUser;start123;Main;User;User, Main;Mainuser.CMD;a00_g_Fil0201

Jetzt läuft alles soweit bis er zu dem Punkt "kontoneu.sn" und sagt die Methode ist nicht unterstützt.
Das gleich Problem hatte ich schon zuvor beim "userprincipalname" daher ist dieser auskommentiert
Kann es sein das der Provider WinNT sn nicht unterstützt?
Bitte schau sich das mal jemand an, Danke

Gruss
Andreas

*

msg = "Kurzbeschreibung:" & vbCr & "Dieses Skript legt automatisiert neue Konten an und liest die dafür nötigen Angaben aus c:\test\user.txt ." & vbCr & vbCr & "Skript jetzt ausführen?"
antwort = MsgBox(msg, vbYesNo + vbQuestion)
if antwort = vbNo then
MsgBox "Abbruch", vbExclamation
WScript.Quit
end if
protokoll = "c:\temp\protokoll.txt"

' Das WScript.Network-Objekt liefert den Namen des Computers,
' der als Vorgabe angeboten wird
'SYS: Windows Script Host Runtime Library
Set net = CreateObject("WScript.Network")

ComputerName = InputBox("Bitte geben Sie den Computernamen ein!",,net.ComputerName)
On Error Resume Next
Set computer = GetObject("WinNT:" & ComputerName & ",computer")
If Err.number = 0 Then
MsgBox "Verbindung hergestellt."
Else
MsgBox "Keine Verbindung zu " & ComputerName
WScript.Quit
End If
On Error Goto 0

dateiname = InputBox("Wo liegen die Kontoinformationen?",,"c:\temp\user.txt")

' Datei öffnen
'SYS: Microsoft (r) Script Runtime
Set fs = CreateObject("Scripting.FileSystemObject")
If Not fs.FileExists(dateiname) Then
MsgBox "Die Datei existiert am angegebenen Ort nicht!"
WScript.Quit
End If

Set infos = fs.OpenTextFile(dateiname)

' Protokolldatei öffnen
Set output = fs.CreateTextFile(protokoll, True)

' Datei zeilenweise bis zum Ende (atEndOfStream) lesen:
Do Until infos.AtEndOfStream
' eine Zeile einlesen
zeile = infos.ReadLine

' Informationen durch Semikola splitten
details = Split(zeile, ";")

' Konto anlegen
Set kontoneu = computer.Create("User", Trim(details(0)))
kontoneu.setpassword Trim(details(1))
'kontoneu.userprincipalname = Trim(details(2))
kontoneu.sn = Trim(details(2))
kontoneu.givenname = Trim(details(3))
kontoneu.displayname = Trim(details(4))
kontoneu.scriptpath = Trim(details(5))
kontoneu.userhome = Trim(details(6))


On Error Resume Next
kontoneu.SetInfo
If Err.number = 0 Then
WriteLog details(0) & " angelegt."
AddToGroup Trim(details(7)), kontoneu.ADsPath
Else
WriteLog details(0) & " konnte nicht angelegt werden!"
End If
Err.Clear
On Error Goto 0
Loop

' Dateien schließen
infos.Close
output.Close

' Protokoll anzeigen:
'SYS: Microsoft (r) Script Runtime
Set wshshell = CreateObject("WScript.Shell")
wshshell.Run """" & protokoll & """"


Sub AddToGroup(gruppenname, kontoname)
On Error Resume Next
Set gruppe = GetObject("WinNT:
" & ComputerName & "/" & gruppenname & ",group")
gruppe.Add kontoname
gruppe.SetInfo
If Err.number = 0 Then
WriteLog "Konto ist Mitglied in Gruppe " & gruppenname
Else
WriteLog "Konto konnte nicht zum Mitglied in Gruppe " & gruppenname & " gemacht werden."
End If
Err.Clear
End Sub

Sub WriteLog(text)
' eine Zeile ins Protokoll schreiben
output.WriteLine text
End Sub

***

Content-Key: 92756

Url: https://administrator.de/contentid/92756

Printed on: April 23, 2024 at 09:04 o'clock

Member: bastla
bastla Jul 23, 2008 at 15:11:16 (UTC)
Goto Top
Hallo JoshuaTree!

Kann es sein das der Provider WinNT sn nicht unterstützt?
Problem erkannt - siehe NameAttributes unter WinNT vs LDAP.

Und wenn Du schon einmal dort bist: unter AD Attributes findest Du einige (Excel-)Tabellen zum Download ...

Grüße
bastla
Member: JoshuaTree
JoshuaTree Jul 24, 2008 at 07:26:16 (UTC)
Goto Top
Hi,

dachte mir schon sowas.

Jetzt habe ich das Bind so gemacht
Set computer = GetObject("LDAP://"& ComputerName &"/dc=domäne,dc=corp")

Jetzt meckert er rum das mit der DN in Zeile 54 was nicht stimmt
vermute es geht dabei um das --->computer.Create("User", Trim(details(0))).

Oh man ich bin echt zu doof für dieses Zeug, was könnte ihm denn
jetzt wieder nicht passen. Bekomme jetzt langsam Zeitdruck das
ist nich förderlich. Bin für jede hilfe dankbar
Member: bastla
bastla Jul 24, 2008 at 07:37:06 (UTC)
Goto Top
Hallo JoshuaTree!

Falls, wie anzunehmen, in der Variable "ComputerName" einfach der Name des Rechners steht, müsste die Zeile etwa so aussehen:
Set computer = GetObject("LDAP://cn="& ComputerName & ",cn=Computers,dc=domäne,dc=corp")  
bzw, wenn der Computer in einer OU zu finden ist:
Set computer = GetObject("LDAP://cn="& ComputerName & ",ou=DeineOU,dc=domäne,dc=corp")  
Hier kannst Du übrigens den "Softerra LDAP Browser" als Freeware herunterladen - der sollte beim Finden der richtigen Pfade helfen ...

Grüße
bastla

[Edit] Fehlende Kommata nachgetragen [/Edit]