Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

AD UserScript

Frage Microsoft Windows Server

Mitglied: lafiney

lafiney (Level 1) - Jetzt verbinden

15.08.2011, aktualisiert 15:12 Uhr, 2682 Aufrufe, 5 Kommentare

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:

01.
 
02.
Sub UserGroup()   
03.
 
04.
Dim oDomain 
05.
Dim strDomain 
06.
Dim strUser 
07.
Dim intRow As Integer 
08.
Dim strOU 
09.
Dim rng As Range 
10.
 
11.
Const intStartRow = 5 
12.
intRow = intStartRow 
13.
 
14.
... 
15.
 
16.
 
17.
For Each strUser In oDomain 
18.
 
19.
 
20.
Set rng = ActiveSheet.Range("A1:A65000").Find(strUser.SamAccountName) 
21.
If rng Is Nothing Then 
22.
  GoTo run 
23.
  Else 
24.
  Cells(rng.Row, 1).Select 
25.
  MsgBox (strUser.SamAccountName & " existiert") 
26.
End If 
27.
 
28.
GoTo NextUser 
29.
 
30.
 
31.
run: 
32.
 
33.
  On Error GoTo Fehler 
34.
   
35.
  intRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row 
36.
  intRow = intRow + 1 
37.
   
38.
  Cells(intRow, 1).Select 
39.
  Cells(intRow, 1).FormulaR1C1 = strUser.SamAccountName 
40.
 
41.
  Cells(intRow, 2).Select 
42.
  Cells(intRow, 2).FormulaR1C1 = strUser.GivenName 
43.
 
44.
  Cells(intRow, 3).Select 
45.
  Cells(intRow, 3).FormulaR1C1 = strUser.lastname 
46.
 
47.
  Cells(intRow, 4).Select 
48.
  Cells(intRow, 4).FormulaR1C1 = strUser.department 
49.
 
50.
  Cells(intRow, 5).Select 
51.
  Cells(intRow, 5).FormulaR1C1 = strUser.objectCategory 
52.
   
53.
  Cells(intRow, 6).Select 
54.
  Cells(intRow, 6).FormulaR1C1 = strUser.UserWorkstations 
55.
   
56.
  Cells(intRow, 7).Select 
57.
  Cells(intRow, 7).FormulaR1C1 = strUser.EmailAddress 
58.
 
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!
Mitglied: Logan000
15.08.2011 um 13:40 Uhr
Moin Moin

1. Wenn du in Zukunft Code Postest sei doch bitte so gut und verwende die Code Tags aus der Formatierungshilfe.
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.
Bitte warten ..
Mitglied: bastla
15.08.2011 um 14:29 Uhr
... 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"-Formatierung ...
Bitte warten ..
Mitglied: lafiney
15.08.2011 um 14:44 Uhr
@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.
Bitte warten ..
Mitglied: lafiney
15.08.2011 um 15:35 Uhr
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.
Bitte warten ..
Mitglied: Logan000
16.08.2011 um 08:29 Uhr
Moin Moin

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

Gruß L.
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (32)

Frage von patz223 zum Thema Windows Userverwaltung ...

Windows Server
AD-Berechtigungen von zwei Servern miteinander vergleichen (3)

Frage von s0m3ting zum Thema Windows Server ...

Windows Server
AD Replikation zwischen untergeordneten Domäne zwingend? (4)

Frage von Gien-app zum Thema Windows Server ...

Windows Server
AD DC Failover zeitintensiv und DHCP repliziert nicht (5)

Frage von JiggyLee zum Thema Windows Server ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (32)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...