Thunderdragon17 10 Geschrieben 11. März 2009 Melden Teilen Geschrieben 11. März 2009 Hi @ all, ich sitze hier vor einem kleinen Problem: Und zwar möchte ich vor dem Erstellen eines Userbackups (mit ldifde) das useraccontcontrol auf 544 setzten (standard 512). Wisst ihr, wie sich das Bewerkstellen lässt? Hab da bisher leider nichts hilfreiches gefunden... :( Danke im vorraus Gruß David Zitieren Link zu diesem Kommentar
NorbertFe 2.114 Geschrieben 11. März 2009 Melden Teilen Geschrieben 11. März 2009 Eventuell hilft folgendes Script. http://www.sysoptools.com/support/files/Fixing%20user%20accounts%20flagged%20as%20system%20accounts%20-%20the%20UserAccountControl%20AD%20attribute.doc Mußt du nur entsprechend anpassen. HTH Norbert ' ChangeUser .vbs ' Sample VBScript to change user account attributes ' SysOp Tools, Inc – Offered ‘as-is’ – use with care ' Version 1.0 – March 2007 ' --------------------------------------------------------------' Option Explicit Dim objOU, objUser, objRootDSE Dim strContainer, strLastUser, strDNSDomain, intAccValue ' Bind to Active Directory Domain Set objRootDSE = GetObject("LDAP://RootDSE") strDNSDomain = objRootDSE.Get("DefaultNamingContext") ' Here is where we set the value to enable the account ' 512 = Enable as normal user account, 514 = Disable as normal user account. intAccValue = 512 ' -------------------------------------------------------------' ' Important - change “OU=MyUsers,OU=BadAccounts, “ to the proper OU path for your user accounts ' -------------------------------------------------------------' strContainer = "OU=MyUsers,OU=BadAccounts, " strContainer = strContainer & strDNSDomain set objOU =GetObject("LDAP://" & strContainer ) For each objUser in objOU If objUser.class="user" then ' The heart of this script - Enable users objUser.Put "userAccountControl", intAccValue objUser.SetInfo End if next ' End of Free Sample UserAccountControl VBScript Zitieren Link zu diesem Kommentar
Thunderdragon17 10 Geschrieben 11. März 2009 Autor Melden Teilen Geschrieben 11. März 2009 Hi, danke NorbertFe, das Script hilft mir sehr :) Alleridngs habe ich noch ein (hoffentlich) kleines Problem: For each objUser in objOU If objUser.class="user" then if "userAccountControl" = "512" then objUser.Put "userAccountControl", intAccValue objUser.SetInfo End if End if next In dem Beispiel möchte ich erst abfragen, ob useraccountcontrol den Wert 512 besitzt, und nur dann soll dieser auf 544 gesetzt werden. Erkennt jmd. den Fehler bei mir, denn es klappt iwie nicht... PS: Dim objOU, objUser, objRootDSE Dim strContainer, strLastUser, strDNSDomain, intAccValue Set objRootDSE = GetObject("LDAP://RootDSE") strDNSDomain = objRootDSE.Get("DefaultNamingContext") intAccValue = 544 strContainer = "OU=Sicherheitsgruppen, " strContainer = strContainer & strDNSDomain set objOU =GetObject("LDAP://" & strContainer ) Zitieren Link zu diesem Kommentar
NorbertFe 2.114 Geschrieben 11. März 2009 Melden Teilen Geschrieben 11. März 2009 Hi, vielleicht wäre es besser, wenn du mit Scripting Fragen ins Scripting Forum umziehst und auf den Thread hier verweist? ;) Bye Norbert Zitieren Link zu diesem Kommentar
NilsK 2.971 Geschrieben 11. März 2009 Melden Teilen Geschrieben 11. März 2009 Moin, Hi, if "userAccountControl" = "512" then du schreibst sonst Batches, oder? :cool: Erkennt jmd. den Fehler bei mir, denn es klappt iwie nicht... Ja. In VBS vergleichst du eine Variable mit ihrem Wert. Dabei musst du aber natürlich erst mal den Wert auslesen und einer Variablen zuweisen. Ungetesteter Schnipsel: For each objUser in objOU If objUser.class="user" then ' The heart of this script - Enable users intUAC = objUser.Get("userAccountControl") If intUAC = 512 Then objUser.Put "userAccountControl", intAccValue objUser.SetInfo End If End if next Gruß, Nils Zitieren Link zu diesem Kommentar
Thunderdragon17 10 Geschrieben 11. März 2009 Autor Melden Teilen Geschrieben 11. März 2009 cool thx :) hat geklappt ;) vielen Dank euch beiden. Gruß David PS: kann geclosed werden^^ Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.