ledonz
Goto Top

Lokalen User in Lokale Gruppe verschieben mit VBSCRIPT

Also, ich möchte einen Lokalen (nicht AD!!) User in eine Lokale Gruppe (Hauptbenutzer) legen, finde überall nur das
Beispiel von Unten, das funktioniert aber nicht... =-(
denke weil man da von AD-user ausgeht, nicht von lokalen....


strComputer = "atl-ws-01"
Set objGroup = GetObject("WinNT:" & strComputer & "/Administrators,group")

Set objUser = GetObject("WinNT:
" & strComputer & "/kenmyer,user")
objGroup.Add(objUser.ADsPath)

Kann mir jemand helfen, wie ist die Funktion für lokale user....??

Danke

Content-Key: 104465

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

Printed on: April 26, 2024 at 11:04 o'clock

Member: bastla
bastla Dec 19, 2008 at 11:19:26 (UTC)
Goto Top
Hallo ledonz!

Und wenn Du die Zeile 1 änderst?
strComputer = "."
Grüße
bastla
Member: ledonz
ledonz Dec 19, 2008 at 13:20:59 (UTC)
Goto Top
asooo ja nee hab ich schon, hab vergessen das im Beispiel rauszunehmen.. aber vielen Dank, hab das Problem schon gelöst(erklärung unten) aber ein neues problem...

also funkt nicht:
strComputer = "."
Set objGroup = GetObject("WinNT:" & strComputer & "/groupname,group")

Set objUser = GetObject("WinNT:
" & strComputer & "/username,user")
objGroup.Add(objUser.ADsPath)

das hier klappte aber toll

rechner = "."
userid = "username"
passwort = "meinpasswort"
name = "username"
beschreibung = "So ein Beispiel halt"
Set wn = CreateObject("Wscript.Network")
set rechner = GetObject("WinNT:" & rechner )
set konto = rechner.Create("user", userid)
konto.SetPassword passwort
konto.fullname = name
konto.description = beschreibung
konto.SetInfo 'Daten werden aus Cache in Objekt geschrieben.
msgbox("Useraccount " & userid & " wurde angelegt.")

Set objWshNet = CreateObject("wscript.network")
strComputer = objwshnet.computername
strUser = "username"
strUser = "WinNT:
" & strComputer & "/" & strUser
Set ObjAdminGroup = GetObject("WinNT://" & strComputer &_
"/gruppe,group")
objAdminGroup.Add strUser


klappt alles suuuper. aber wie kann ich jetzt angeben, dass das userpasswort nie ablaufen soll??? weiß das irgendwer hier????
Member: Biber
Biber Dec 19, 2008 at 16:43:44 (UTC)
Goto Top
Moin ledonz,

meines Wissens nach sind die empfohlene Lösung, die Password-Never-Expires-Eigenschaft über den LDAP-Provider zu setzen und dann über das Property ."userAccountControl" auf Hex 10000 zu setzen.

Du dagegen willst ja einen lokalen Account setzen und über WINNT:// gehen.
Da wirst Du bestenfalls mit folgender (eindeutig veralteten Strategie) eventuell zum Ziel kommen:
  • Du musst AFAIK zwingend ein bereits gebundenes User-Objekt haben/erzeugen oder auf deutsch, das konkret an einer Remoteressource, also am "Rechnernamen" Userobjekt vorhandene Objekt holen

Eher kommst Du nicht an die Property "UserFlags" ran, die Du bei diesem Nicht-LDAP-Weg setzen musst.

Const ADS_UF_DONT_EXPIRE_PASSWD = &h10000
passwort = "meinpasswort"  
'  --- Userobj MUSS remote bzw gebunden sein   
' !!! Deshalb ein vorhandenes nehmen   
' (der User heisst "PwNeverExTest")  
set user = GetObject("WinNT://MyCompiName/PwNeverExTest" )    
' Edit: ... GetObject("WinNT://./PwNeverExTest" )   -> sollte auch gehen.  
user.SetPassword passwort
oldFlags = user.Get("UserFlags")  
newFlags = oldFlags Or ADS_UF_DONT_EXPIRE_PASSWD
user.Put "UserFlags", newFlags  
 user.SetInfo
    WScript.Echo "DEBUG:Password never expires wurde gesetzt"  

Grüße
Biber
Member: ledonz
ledonz Dec 21, 2008 at 14:16:12 (UTC)
Goto Top
hey, hab gar nicht gemerkt, dass du das im anderen auch bist.
=-))


vielen dank.