PartyArty 10 Geschrieben 15. März 2005 Melden Teilen Geschrieben 15. März 2005 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 Zitieren Link zu diesem Kommentar
PartyArty 10 Geschrieben 15. März 2005 Autor Melden Teilen Geschrieben 15. März 2005 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 Zitieren Link zu diesem Kommentar
lennu 10 Geschrieben 15. März 2005 Melden Teilen Geschrieben 15. März 2005 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 Zitieren Link zu diesem Kommentar
carlito 10 Geschrieben 15. März 2005 Melden Teilen Geschrieben 15. März 2005 Schau mal im Microsoft ScriptCenter. Dort findet sich bestimmt die eine oder andere Anregung... http://www.microsoft.com/technet/scriptcenter/scripts/default.mspx Zitieren Link zu diesem Kommentar
PartyArty 10 Geschrieben 16. März 2005 Autor Melden Teilen Geschrieben 16. März 2005 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. 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.