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, 2700 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 ..
Ähnliche Inhalte
Windows Userverwaltung
Mit Powershell am AD Controller die aktiven Usersessions auslesen (1)

Frage von arduino zum Thema Windows Userverwaltung ...

Windows Userverwaltung
Lokale User Passworte im AD - Best Practice (5)

Frage von Der-Phil zum Thema Windows Userverwaltung ...

Batch & Shell
gelöst AD-Gruppen Auswahl als Dropdownliste (4)

Frage von Peterz zum Thema Batch & Shell ...

Windows Server
gelöst AD Userpasswörter setzen (11)

Frage von WPFORGE zum Thema Windows Server ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
Windows Systemdateien
NTFS und die Defragmentierung (23)

Frage von WinLiCLI zum Thema Windows Systemdateien ...

LAN, WAN, Wireless
Zwei Subnetze mit je eigenem Router und Internetzugang verbinden (17)

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

Windows Server
WIndows Server 2016 core auf dem Intel NUC NUC5i5RYK i5 5250U (17)

Frage von IxxZett zum Thema Windows Server ...