53111
Goto Top

per VBS neuen nutzer mit adminrechten anlegen

ich würde gerne per script einen neuen nutzer anlegen lassen und ihm adminrechte zuteilen. ich habe mal versucht das hinzubekommen, allerdings finde ich den fehler nicht (zeile 25?). auch ist mir die zuteilung ("WinNT://" & co & "/Administratoren") nicht klar. nach welchen schema funktioniert das?


Dim netzobjekt, benutzername, computername, becokombination, vorlagenarray
set netzobjekt=wscript.createobject("wscript.network")  
benutzername = netzobjekt.UserName
computername = netzobjekt.ComputerName
becokombination = benutzername&computername

vorlagenarray = Array("tobiasSO210", "patrickSO211")  
For i = 0 to UBound(vorlagenarray)			
		If becokombination = vorlagenarray(i) Then
    			'wscript.Echo benutzername&computername	  
    		  
neuerbenutzer = "testuser"  
passwort = "hallo1234"  
name = "Test User"  
beschreibung = "Test User"  


set rechner = GetObject("WinNT://" & computername )  
set konto = rechner.Create("User", neuerbenutzer)  
konto.SetPassword passwort
konto.fullname = name
konto.description = beschreibung

user = neuerbenutzer
Set userObj = GetObject("WinNT://" & co & "/Administratoren")  
Set user = GetObject("WinNT://" & co & "/neuerbenutzer")  
userObj.Add user.ADsPath


msgbox("Useraccount " & neuerbenutzer & " wurde angelegt.")  
    		  
    		  
    		
		Else
		      			wscript.Echo "nein"  
    End If
	Next


gruß saibonaut

Content-Key: 68137

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

Printed on: April 19, 2024 at 04:04 o'clock

Member: bastla
bastla Sep 07, 2007 at 16:14:52 (UTC)
Goto Top
Hallo saibonaut!

Versuch es so:
Dim netzobjekt, benutzername, computername, becokombination, vorlagenarray
set netzobjekt=wscript.createobject("wscript.network")  
benutzername = netzobjekt.UserName
computername = netzobjekt.ComputerName
becokombination = benutzername&computername

vorlagenarray = Array("tobiasSO210", "patrickSO211")  
For i = 0 to UBound(vorlagenarray)			
	If becokombination = vorlagenarray(i) Then
    		'wscript.Echo benutzername&computername	  
    		  
		neuerbenutzer = "testuser"  
		passwort = "hallo1234"  
		name = "Test User"  
		beschreibung = "Test User"  

		set rechner = GetObject("WinNT://" & computername)  
		set konto = rechner.Create("User", neuerbenutzer)  
		konto.SetPassword passwort
		konto.fullname = name
		konto.description = beschreibung
		konto.SetInfo

		Set userObj = GetObject("WinNT://" & computername & "/Administratoren")  
		Set user = GetObject("WinNT://" & computername & "/" & neuerbenutzer)  
		userObj.Add user.ADsPath

		msgbox("Useraccount " & neuerbenutzer & " wurde angelegt.")  
   		
	Else
		wscript.Echo "nein"  
    End If
Next

auch ist mir die zuteilung ("WinNT://" & co & "/Administratoren") nicht klar. nach welchen schema funktioniert das?
Gar nicht, weil es keine Variable "co" für den Computernamen gibt - ansonsten erhältst Du damit das Objekt der "Administratoren"-Gruppe, dem Du später mit ".Add" den neuen Benutzer hinzufügst.

Grüße
bastla
Mitglied: 53111
53111 Sep 10, 2007 at 07:20:25 (UTC)
Goto Top
vielen dank

wie würde ich nun vorgehen wenn ich den neuen benutzer einer domain hinzufügen wollte?

ich finde beim googlen manchmal die verwendung von WinNT:und manchmal LDAP: wann verwendet man was?


auf diese art bekomme ich die domain ausgegeben:
set objRoot = GetObject("LDAP://rootDSE")  
strDomain = objRoot.Get("DefaultNamingContext")  
wie kann ich dann den neuen nutzer der domain hinzufügen?


ich habe jetzt folgendes gemacht was aber einen fehler in zeile 26 ausgibt???
Dim netzobjekt, benutzername, computername, becokombination, vorlagenarray
set netzobjekt=wscript.createobject("wscript.network")  

set objRoot = GetObject("LDAP://rootDSE")  
strDomain = objRoot.Get("DefaultNamingContext")  


benutzername = netzobjekt.UserName
computername = netzobjekt.ComputerName

wscript.Echo strDomain

becokombination = benutzername&computername

vorlagenarray = Array("tobiasSO210", "patrickSO211")  
For i = 0 to UBound(vorlagenarray)			
	If becokombination = vorlagenarray(i) Then
    		'wscript.Echo benutzername&computername	  
    		  
		neuerbenutzer = "testuser"  
		passwort = "hallo1234"  

    set domainobj = GetObject("LDAP://" & strDomain)   
		set rechner = GetObject("WinNT://" & computername)  
		set konto = domainobj.Create("User", neuerbenutzer)  
		konto.SetPassword passwort
		konto.fullname = name
		konto.description = beschreibung
		konto.SetInfo

		Set userObj = GetObject("WinNT://" & computername & "/Administratoren")  
		Set user = GetObject("WinNT://" & computername & "/" & neuerbenutzer)  
		userObj.Add user.ADsPath

		msgbox("Useraccount " & neuerbenutzer & " wurde angelegt.")  
   		
	Else
		wscript.Echo "nein"  
    End If
Next
Member: bastla
bastla Sep 10, 2007 at 11:57:07 (UTC)
Goto Top
Hallo saibonaut!

Schau Dich einmal hier um: http://www.activexperts.com/activmonitor/windowsmanagement/scripts/acti ...

Grüße
bastla
Mitglied: 53111
53111 Sep 10, 2007 at 12:16:58 (UTC)
Goto Top
ok das scheint dann der entscheidende teil für mich zu sein?

Set objOU = GetObject("LDAP://OU=Management,dc=fabrikam,dc=com")  
Set objGroup = objOU.Create("Group", "cn=atl-users")  
objGroup.Put "sAMAccountName", "atl-users"  
objGroup.SetInfo
 
objGroup.Add objUser.ADSPath
	


ich verstehe nicht ganz was diese ganzen einträge sollen? was ist ou, dc, cn, und wo muss ich den domain und den neuen usernamen eintragen?

dieses "sAMAccountName" verstehe ich als neuen nutzernamen?
Member: bastla
bastla Sep 10, 2007 at 14:25:42 (UTC)
Goto Top
Hallo saibonaut!

dieses "sAMAccountName" verstehe ich als neuen nutzernamen?
Genau: Benutzeranmeldename

OU=Management,dc=fabrikam,dc=com
Der neue Benutzer soll in der Organisationseinheit "Management" der Domäne "fabrikam.com" angelegt und Mitglied der neu erstellten Gruppe "atl-users" werden.

Siehe http://www.rlmueller.net/Name_Attributes.htm (und zu "WinNT vs LDAP": http://www.rlmueller.net/WinNT_LDAP.htm).

Grüße
bastla