Jump to content

AD Userflag ändern


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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

Link zu diesem Kommentar

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 )

Link zu diesem Kommentar

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

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...