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, 2699 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 Server
WSUS in Samba AD (3)

Frage von NerfNed zum Thema Windows Server ...

Windows Server
gelöst AD RMS - Sharepoint mag ihn nicht (1)

Frage von DerWoWusste zum Thema Windows Server ...

Windows Server
Windows Server 2012R2 - Ausfall AD, DNS etc. nach Update (14)

Frage von m8ichael zum Thema Windows Server ...

Exchange Server
gelöst Reste von Exchange-Postfach aus AD-Benutzer entfernen (2)

Frage von Pretorian zum Thema Exchange Server ...

Neue Wissensbeiträge
Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(29)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Humor (lol)

Bester Vorschlag eines Supporttechnikers ever: APC

(15)

Erfahrungsbericht von DerWoWusste zum Thema Humor (lol) ...

Windows Server

Exchange 2010 Active Directory und Windows Server 2016

(4)

Erfahrungsbericht von Herbrich19 zum Thema Windows Server ...

Heiß diskutierte Inhalte
Internet
gelöst Mitarbeiter surft auf unerwünschter Seite - Wie damit umgehen? (52)

Frage von sabines zum Thema Internet ...

Netzwerke
LAN2LAN Verbindung sehr langsam flaschenhals gesucht (27)

Frage von PixL86 zum Thema Netzwerke ...

Router & Routing
PFsense - Netzverbindung steht, aber kein Internet vorhanden (24)

Frage von aschmid zum Thema Router & Routing ...

Windows Server
gelöst Windows 2016 Hyper-V und VHDS (19)

Frage von emeriks zum Thema Windows Server ...