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-ID: 104465

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

Ausgedruckt am: 24.11.2024 um 06:11 Uhr

bastla
bastla 19.12.2008 um 12:19:26 Uhr
Goto Top
Hallo ledonz!

Und wenn Du die Zeile 1 änderst?
strComputer = "."
Grüße
bastla
ledonz
ledonz 19.12.2008 um 14:20:59 Uhr
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????
Biber
Biber 19.12.2008 um 17:43:44 Uhr
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
ledonz
ledonz 21.12.2008 um 15:16:12 Uhr
Goto Top
hey, hab gar nicht gemerkt, dass du das im anderen auch bist.
=-))


vielen dank.