lafiney
Goto Top

AD UserScript

Hallo Zusammen,

ich habe eine Script zum Auslesen der Userdaten (in der AD) in eine Exceltabelle geschrieben.
Ich habe mir das ganze Script ohne große Kenntnisse zu haben zusammengestellt und kommen
momentan nicht mehr weiter

Folgende Schritte werden im Script abgearbeitet:

1. Über einen ComboBox wird die netsprechende OU abgefragt, wo sich die User befinden.
2. Daraus ergibt sich der Pfad der OU.
3. Danach wird in der Exceltabelle überprüft, ob der User schon existiert (SamAccountName), wenn JA, dann wird dieser User übersprungen.
3.1 in Zukunft soll es eineAbfrage geben, ob die Daten aktualisiert werden sollen
4. Wenn die Userdaten noch nicht in der Tabelle existieren, werden diese wie folgt ausgelesen.

Die ist ein Ausschnitt aus dem Script mit den Variablen:

Sub UserGroup()  

Dim oDomain
Dim strDomain
Dim strUser
Dim intRow As Integer
Dim strOU
Dim rng As Range

Const intStartRow = 5
intRow = intStartRow

...


For Each strUser In oDomain


Set rng = ActiveSheet.Range("A1:A65000").Find(strUser.SamAccountName)  
If rng Is Nothing Then
  GoTo run
  Else
  Cells(rng.Row, 1).Select
  MsgBox (strUser.SamAccountName & " existiert")  
End If

GoTo NextUser


run:

  On Error GoTo Fehler
  
  intRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
  intRow = intRow + 1
  
  Cells(intRow, 1).Select
  Cells(intRow, 1).FormulaR1C1 = strUser.SamAccountName

  Cells(intRow, 2).Select
  Cells(intRow, 2).FormulaR1C1 = strUser.GivenName

  Cells(intRow, 3).Select
  Cells(intRow, 3).FormulaR1C1 = strUser.lastname

  Cells(intRow, 4).Select
  Cells(intRow, 4).FormulaR1C1 = strUser.department

  Cells(intRow, 5).Select
  Cells(intRow, 5).FormulaR1C1 = strUser.objectCategory
  
  Cells(intRow, 6).Select
  Cells(intRow, 6).FormulaR1C1 = strUser.UserWorkstations
  
  Cells(intRow, 7).Select
  Cells(intRow, 7).FormulaR1C1 = strUser.EmailAddress

Jetzt habe ich das Problem, dass ich bei einigen Usern die Anmeldung nur an bestimmten Computern erlaubt habe und andere User
sich an allen Computern anmelden dürfen.

Bsp.: Ein User kann sich an 3 Clients anmelden, aber nur der 1. wird in die Zelle geschrieben
Wie kann man alle Einträge aus der AD lesen?
Wie kann man die Eigenschaft auslesen, dass sich der User an Allen Computern anmelden kann?

Für Antworten und Vorschläge bedanke ich mich schon im Voraus!

Content-ID: 171500

Url: https://administrator.de/forum/ad-userscript-171500.html

Ausgedruckt am: 23.12.2024 um 10:12 Uhr

Logan000
Logan000 15.08.2011 um 13:40:09 Uhr
Goto Top
Moin Moin

1. Wenn du in Zukunft Code Postest sei doch bitte so gut und verwende die Code Tags aus der .
Das erhöht die Übersichtlichkeit doch erheblich.

2. Ich bin nicht ganz sicher was "strUser" bei Dir für ein Objekt ist (den Teil hast du leider weggelassen), aber das Property das die Liste der erlaubten Workstations enthält heißt "UserWorkstations". und ist leer wenn der User sich an allen PCs anmelden darf bzw. enthält eine kommagetrennte Liste mit PC Namen.

Ich hoffe das hilft dir weiter.

Gruß L.
bastla
bastla 15.08.2011 um 14:29:40 Uhr
Goto Top
... und ganz nebenbei: Die Zeilen der Art
Cells(intRow, 1).Select
sind unnötig und
Cells(intRow, 1).FormulaR1C1 = strUser.SamAccountName
lässt sich kürzer und lesbarer
Cells(intRow, "A").Value = strUser.SamAccountName
schreiben (und sogar ".Value" könntest Du, da Default, weglassen) ...

Grüße
bastla

P.S.: Logan meinte die "Code"- ...
lafiney
lafiney 15.08.2011 um 14:44:44 Uhr
Goto Top
@Logan000 & @bastla,

vielen Dank für die schnellen Antworten.

Ich werde Eure Anmerkungen testen und ein Ergebnis posten.
Wie schon beschrieben steckt mein Wissen, was das Scripting betrifft, in den Kinderschuhen, eröffnet aber eine Menge Möglichkeiten.
lafiney
lafiney 15.08.2011 um 15:35:09 Uhr
Goto Top
Ich habe nun die Formatierung angepasst und den Code etwas ausführlicher hinzugefügt.

Die Property "UserWorkstations" war genau der richtige Hinweis.

Jetzt kann ich die Daten auswerten und in einer 2. Tabelle eine Matrix aufbauen.
Die Optimierung des Codes werde ich in Ruhe angehen.

Danke!!!
Grüße E.
Logan000
Logan000 16.08.2011 um 08:29:47 Uhr
Goto Top
Moin Moin

Freut mich, das wir dir helfen konnten.
Sei doch so gut und setzte den Beitrag auf erledigt.

Gruß L.