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
***
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
***
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 92756
Url: https://administrator.de/contentid/92756
Ausgedruckt am: 22.11.2024 um 15:11 Uhr
3 Kommentare
Neuester Kommentar
Hallo JoshuaTree!
Und wenn Du schon einmal dort bist: unter AD Attributes findest Du einige (Excel-)Tabellen zum Download ...
Grüße
bastla
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
Hallo JoshuaTree!
Falls, wie anzunehmen, in der Variable "ComputerName" einfach der Name des Rechners steht, müsste die Zeile etwa so aussehen:
bzw, wenn der Computer in einer OU zu finden ist:
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]
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")
Set computer = GetObject("LDAP://cn="& ComputerName & ",ou=DeineOU,dc=domäne,dc=corp")
Grüße
bastla
[Edit] Fehlende Kommata nachgetragen [/Edit]