Jump to content

AD: Best. Anzahl User anlegen


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

Empfohlene Beiträge

Hallo zusammen,

 

ich habe beim Arbeiten ein Test-ADS aufgesetzt und will nun in der Testumgebung Benutzer anlegen. Dazu will ich die gleiche Anzahl an Benutzern anlegen wie sie auch im Live-System ist. Und da ich vom Scripten nicht wirklich viel Ahnung habe, stehe ich nun vor einem kleinen Problem. Ich dachte daran mehrere Scripte zu verwenden. Eines, welches mir die Anzahl der Benutzer je Standort rauszieht und eines welches dann die Benutzer anlegt.

 

Zur Struktur...die Struktur der OUs ist im Testsystem wie im Livesystem gleich:

 

-test.com

|

.--asd.test.com

|..|

|...- Land

|.....|

|......- Standort1

|......- Standort2

|........|

|.........- Accounts

|...........|

|............- Users

|..............|

|...............- bla1

|...............- ....

|

.--fgh.test.com

|

.--jkl.test.com

 

Nun soll eben die Anzahl der User im Livesystem auch im Testsystem angelegt werden (Format: Standort_Testuser_Nr). Ich komme nur nicht so ganz dahinter wie ich die Anzahl der User automatisiert vom ganzen Zweig rausziehe und dann wieder im Testzweig anlege :-(

 

EDIT: Problem schon fast gelöst

 

Bin für jede Hilfe dankbar :)

 

Viele Grüße

PartyArty

Link zu diesem Kommentar

Hmm...habe grade entdeckt, dass hier ja vor kurzem ein ähnlicher Thread erstellt wurde.

 

Hab das im alten Thread erwähnte Script etwas abgeändert. Funktioniert wunderbar !

 

Nur die Sache mit den Standorten habe ich immer noch nicht gelöst. Ich bräuchte jetzt eben eine Textdatei im Format Land,Standort,Anzahl (der Benutzer).

 

Grüße

PartyArty

Link zu diesem Kommentar

Moin moin,

 

mit welcher Skript-Sprache machst Du das?

 

Wenn ich das richtig verstanden habe, kannst Du per LDAP-Abfragen (ActiveDirectory ist im Grunde ja nix anderes) bei jedem User herausfinden (den genauen Feldnamen kann ich morgen nachschauen), in welcher Struktur er steckt. Im gleichen Skript kannst Du dann diese Informationen nutzen, um den User auf dem Testserver in der gleichen OU wieder zu erstellen. (Kannst auch gleich alle Informationen vom User auslesen (mal abgesehen von der OID) und den User damit quasi "klonen").

 

Gruß

Lennu

Link zu diesem Kommentar
Moin moin,

 

mit welcher Skript-Sprache machst Du das?

 

Wenn ich das richtig verstanden habe, kannst Du per LDAP-Abfragen (ActiveDirectory ist im Grunde ja nix anderes) bei jedem User herausfinden (den genauen Feldnamen kann ich morgen nachschauen), in welcher Struktur er steckt. Im gleichen Skript kannst Du dann diese Informationen nutzen, um den User auf dem Testserver in der gleichen OU wieder zu erstellen. (Kannst auch gleich alle Informationen vom User auslesen (mal abgesehen von der OID) und den User damit quasi "klonen").

 

Gruß

Lennu

 

Hi, ich mach das Ganze per VBS. Ja, ich kann genau herausfinden wo der User steckt. Aber ich glaube das wäe jetzt ein Mehraufwand, da ich ja schon das Script fertig habe. Ich brauche jetzt halt noch ein Script mit dem ich mir meine Textdatei fürs Script fülle (Format: Land,Standort,AnzahlUser. Also z.B. 1.Zeile DE,MUN,512 2. Zeile DE,STG,264 usw.

 

Schau mal im Microsoft ScriptCenter. Dort findet sich bestimmt die eine oder andere Anregung...

http://www.microsoft.com/technet/scriptcenter/scripts/default.mspx

 

Dort hab ich mich auch schon ausgetobt :) Bei "Hey, Mr. Scripting Guy" habe ich inzw. auch gefunden wie ich die User in einer OU zählen kann. Nur wie das Ganze nun automatisch funktioniert versteh ich noch nicht.

 

Update: Bin wieder ein Stückchen weiter...Das Land und der Standort werden ausgelesen, die anzahl der User der jeweiligen Accounts-OU auch nur irgendwie springt das Script nach Aufruf der Sub irgendwie raus. Weiß jemand die Lösung ? Wird das nr aus der Sub nicht wieder ins Hauptscript zurückgegeben ?

 

On Error Resume Next

Const ADS_SCOPE_SUBTREE = 2

Set objConnection = CreateObject("ADODB.Connection")
Set objCommand =   CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection

objCommand.Properties("Page Size") = 10000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE 

objCommand.CommandText = _
   "SELECT sAMAccountName,distinguishedName,Name FROM 'LDAP://DC=asd,DC=test,DC=com' WHERE objectCategory='organizationalUnit' AND name='Accounts'"

Set objRecordSet = objCommand.Execute


'##### Datei erstellen ####################################
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objAusgabe = objFSO.CreateTextFile("test.txt", 2, True)
'##########################################################

objRecordSet.MoveFirst
Do Until objRecordSet.EOF
Rs = objRecordSet.Fields("distinguishedName").value
Zeile = split(Rs,",")
So = Zeile(1)
La = Zeile(2)
Co = split(La,"=")
Cy = Co(1)
St = split(So,"=")
Sd = St(1)
Call AnzahlAuslesen(Rs)
objAusgabe.write Cy & "," & Sd & "," & nr
objAusgabe.WriteBlankLines 1
objRecordSet.MoveNext
Loop
objAusgabe.Close
'
'##############################################################
'### Anzahl Benutzer je OU auslesen ###########################
'##############################################################
'
Sub AnzahlAuslesen (Rs)
On Error Resume Next

Const ADS_SCOPE_ONELEVEL = 1

Set objConnection = CreateObject("ADODB.Connection")
Set objCommand =   CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection

objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_ONELEVEL 

objCommand.CommandText = _
   "SELECT Name FROM 'LDAP://" & Rs & "' WHERE objectCategory='user'"  
Set objRecordSet = objCommand.Execute
nr = objRecordSet.RecordCount
End Sub

 

Grüße

P.A.

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...